Support for freezing BBFILES and reading BBFILES from a conf file.
authorJohn Bowler <jbowler@nslu2-linux.org>
Tue, 26 Jul 2005 01:56:54 +0000 (01:56 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Tue, 26 Jul 2005 01:56:54 +0000 (01:56 +0000)
conf/distro/freeze.conf [new file with mode: 0644]
conf/distro/openslug-packages.conf [new file with mode: 0644]
conf/distro/openslug.conf
conf/distro/unslung.conf
packages/freeze/.mtn2git_empty [new file with mode: 0644]
packages/freeze/files/.mtn2git_empty [new file with mode: 0644]
packages/freeze/files/freeze [new file with mode: 0644]
packages/freeze/files/unfreeze [new file with mode: 0644]
packages/freeze/freeze.bb [new file with mode: 0644]
packages/freeze/unfreeze.bb [new file with mode: 0644]
packages/meta/package-index.bb

diff --git a/conf/distro/freeze.conf b/conf/distro/freeze.conf
new file mode 100644 (file)
index 0000000..a51e40f
--- /dev/null
@@ -0,0 +1,24 @@
+# general configuration file for freezing a distribution
+#
+# If freeze.conf is included (include distro/freeze.conf) in the
+# distro conf file it will define BBFILES from the information in
+# ${DISTRO}-bbfiles.conf or ${DISTRO}-package-dirs.conf (whichever
+# exists in that order of preference.)
+#
+# NOTE that these conf files use ${PKGDIR} and therefore that
+# variable must be defined before this file is included.
+#
+# First pull in the frozen definitions (if they exist)  The multiple
+# includes allow the frozen file to be stored alongside local.conf
+# and in the conf/distro directory - the former take precedence over
+# the latter.
+PKGDIR ?= "${TOPDIR}/openembedded"
+FROZEN_DIR ?= "/non/-existent/-directory/-for/-security"
+
+include conf/distro/${DISTRO}-packages.conf
+include conf/${DISTRO}-packages.conf
+include ${FROZEN_DIR}/${DISTRO}-packages.conf
+
+include conf/distro/${DISTRO}-bbfiles.conf
+include conf/${DISTRO}-bbfiles.conf
+include ${FROZEN_DIR}/${DISTRO}-bbfiles.conf
diff --git a/conf/distro/openslug-packages.conf b/conf/distro/openslug-packages.conf
new file mode 100644 (file)
index 0000000..b250574
--- /dev/null
@@ -0,0 +1,150 @@
+# automatically generated by bitbake freeze
+BBFILES := "\
+${PKGDIR}/packages/audiofile/*.bb \
+${PKGDIR}/packages/autoconf/*.bb \
+${PKGDIR}/packages/automake/*.bb \
+${PKGDIR}/packages/base-files/*.bb \
+${PKGDIR}/packages/base-passwd/*.bb \
+${PKGDIR}/packages/bash/*.bb \
+${PKGDIR}/packages/bind/*.bb \
+${PKGDIR}/packages/binutils/*.bb \
+${PKGDIR}/packages/bison/*.bb \
+${PKGDIR}/packages/bluez-libs/*.bb \
+${PKGDIR}/packages/bluez-utils/*.bb \
+${PKGDIR}/packages/boost/*.bb \
+${PKGDIR}/packages/bridge-utils/*.bb \
+${PKGDIR}/packages/busybox/*.bb \
+${PKGDIR}/packages/bzip2/*.bb \
+${PKGDIR}/packages/coreutils/*.bb \
+${PKGDIR}/packages/cpio/*.bb \
+${PKGDIR}/packages/cron/*.bb \
+${PKGDIR}/packages/cvs/*.bb \
+${PKGDIR}/packages/db/*.bb \
+${PKGDIR}/packages/devio/*.bb \
+${PKGDIR}/packages/diffutils/*.bb \
+${PKGDIR}/packages/dnsmasq/*.bb \
+${PKGDIR}/packages/dropbear/*.bb \
+${PKGDIR}/packages/e2fsprogs/*.bb \
+${PKGDIR}/packages/expat/*.bb \
+${PKGDIR}/packages/fakeroot/*.bb \
+${PKGDIR}/packages/findutils/*.bb \
+${PKGDIR}/packages/flac/*.bb \
+${PKGDIR}/packages/flex/*.bb \
+${PKGDIR}/packages/freeze/*.bb \
+${PKGDIR}/packages/ftpd-topfield/*.bb \
+${PKGDIR}/packages/gawk/*.bb \
+${PKGDIR}/packages/gcc/*.bb \
+${PKGDIR}/packages/gdb/*.bb \
+${PKGDIR}/packages/gdbm/*.bb \
+${PKGDIR}/packages/gettext/*.bb \
+${PKGDIR}/packages/glib-2.0/*.bb \
+${PKGDIR}/packages/glibc/*.bb \
+${PKGDIR}/packages/gnu-config/*.bb \
+${PKGDIR}/packages/gphoto2/*.bb \
+${PKGDIR}/packages/grep/*.bb \
+${PKGDIR}/packages/gtk-doc/*.bb \
+${PKGDIR}/packages/gzip/*.bb \
+${PKGDIR}/packages/hotplug-ng/*.bb \
+${PKGDIR}/packages/initscripts/*.bb \
+${PKGDIR}/packages/install/*.bb \
+${PKGDIR}/packages/ipkg-utils/*.bb \
+${PKGDIR}/packages/ipkg/*.bb \
+${PKGDIR}/packages/ixp425-eth/*.bb \
+${PKGDIR}/packages/ixp4xx/*.bb \
+${PKGDIR}/packages/jpeg/*.bb \
+${PKGDIR}/packages/less/*.bb \
+${PKGDIR}/packages/libaal/*.bb \
+${PKGDIR}/packages/libao/*.bb \
+${PKGDIR}/packages/libexif/*.bb \
+${PKGDIR}/packages/libgphoto2/*.bb \
+${PKGDIR}/packages/libid3tag/*.bb \
+${PKGDIR}/packages/libmad/*.bb \
+${PKGDIR}/packages/libmikmod/*.bb \
+${PKGDIR}/packages/libogg/*.bb \
+${PKGDIR}/packages/libpcap/*.bb \
+${PKGDIR}/packages/libtool/*.bb \
+${PKGDIR}/packages/libusb/*.bb \
+${PKGDIR}/packages/libvorbis/*.bb \
+${PKGDIR}/packages/libxml/*.bb \
+${PKGDIR}/packages/linux-libc-headers/*.bb \
+${PKGDIR}/packages/linux/*.bb \
+${PKGDIR}/packages/lrzsz/*.bb \
+${PKGDIR}/packages/lsof/*.bb \
+${PKGDIR}/packages/lzo/*.bb \
+${PKGDIR}/packages/m4/*.bb \
+${PKGDIR}/packages/make/*.bb \
+${PKGDIR}/packages/makedevs/*.bb \
+${PKGDIR}/packages/man-pages/*.bb \
+${PKGDIR}/packages/man/*.bb \
+${PKGDIR}/packages/meta/*.bb \
+${PKGDIR}/packages/mgetty/*.bb \
+${PKGDIR}/packages/miau/*.bb \
+${PKGDIR}/packages/microcom/*.bb \
+${PKGDIR}/packages/module-init-tools/*.bb \
+${PKGDIR}/packages/modutils/*.bb \
+${PKGDIR}/packages/monotone/*.bb \
+${PKGDIR}/packages/mt-daapd/*.bb \
+${PKGDIR}/packages/mtd/*.bb \
+${PKGDIR}/packages/musicpd/*.bb \
+${PKGDIR}/packages/mutt/*.bb \
+${PKGDIR}/packages/mysql/*.bb \
+${PKGDIR}/packages/nail/*.bb \
+${PKGDIR}/packages/ncftp/*.bb \
+${PKGDIR}/packages/ncurses/*.bb \
+${PKGDIR}/packages/netbase/*.bb \
+${PKGDIR}/packages/nfs-utils/*.bb \
+${PKGDIR}/packages/nis/*.bb \
+${PKGDIR}/packages/nslu2-binary-only/*.bb \
+${PKGDIR}/packages/ntp/*.bb \
+${PKGDIR}/packages/openldap/*.bb \
+${PKGDIR}/packages/openntpd/*.bb \
+${PKGDIR}/packages/openslug-init/*.bb \
+${PKGDIR}/packages/openssh/*.bb \
+${PKGDIR}/packages/openssl/*.bb \
+${PKGDIR}/packages/openvpn/*.bb \
+${PKGDIR}/packages/pam/*.bb \
+${PKGDIR}/packages/patch/*.bb \
+${PKGDIR}/packages/patcher/*.bb \
+${PKGDIR}/packages/pciutils/*.bb \
+${PKGDIR}/packages/pcmcia-cs/*.bb \
+${PKGDIR}/packages/pcre/*.bb \
+${PKGDIR}/packages/perl/*.bb \
+${PKGDIR}/packages/php/*.bb \
+${PKGDIR}/packages/pkgconfig/*.bb \
+${PKGDIR}/packages/popt/*.bb \
+${PKGDIR}/packages/portmap/*.bb \
+${PKGDIR}/packages/postfix/*.bb \
+${PKGDIR}/packages/ppp/*.bb \
+${PKGDIR}/packages/procps/*.bb \
+${PKGDIR}/packages/psmisc/*.bb \
+${PKGDIR}/packages/puppy/*.bb \
+${PKGDIR}/packages/pwc/*.bb \
+${PKGDIR}/packages/python/*.bb \
+${PKGDIR}/packages/quilt/*.bb \
+${PKGDIR}/packages/readline/*.bb \
+${PKGDIR}/packages/reiser4progs/*.bb \
+${PKGDIR}/packages/reiserfsprogs/*.bb \
+${PKGDIR}/packages/rsync/*.bb \
+${PKGDIR}/packages/samba/*.bb \
+${PKGDIR}/packages/sane-backends/*.bb \
+${PKGDIR}/packages/screen/*.bb \
+${PKGDIR}/packages/sed/*.bb \
+${PKGDIR}/packages/slugimage/*.bb \
+${PKGDIR}/packages/streamripper/*.bb \
+${PKGDIR}/packages/sudo/*.bb \
+${PKGDIR}/packages/sysfsutils/*.bb \
+${PKGDIR}/packages/sysvinit/*.bb \
+${PKGDIR}/packages/tar/*.bb \
+${PKGDIR}/packages/thttpd/*.bb \
+${PKGDIR}/packages/tinylogin/*.bb \
+${PKGDIR}/packages/unionfs/*.bb \
+${PKGDIR}/packages/unzip/*.bb \
+${PKGDIR}/packages/update-modules/*.bb \
+${PKGDIR}/packages/update-rc.d/*.bb \
+${PKGDIR}/packages/upslug/*.bb \
+${PKGDIR}/packages/util-linux/*.bb \
+${PKGDIR}/packages/vlan/*.bb \
+${PKGDIR}/packages/wget/*.bb \
+${PKGDIR}/packages/xinetd/*.bb \
+${PKGDIR}/packages/zlib/*.bb \
+"
index 6f321b5..dd4d7c0 100644 (file)
@@ -6,6 +6,9 @@ DISTRO_NAME = "OpenSlug"
 DISTRO_VERSION = "2.4-beta"
 DISTRO_TYPE ?= "beta"
 
+# pull in the frozen list of bbfiles
+include conf/distro/freeze.conf
+
 # Add to the user's feeds from local.conf (there may be none)
 FEED_URIS_append_linux += "cross##http://ipkg.nslu2-linux.org/feeds/openslug/cross/${DISTRO_VERSION}"
 FEED_URIS_append_linux += "native##http://ipkg.nslu2-linux.org/feeds/openslug/native/${DISTRO_VERSION}"
index 7389a33..76e063d 100644 (file)
@@ -10,6 +10,9 @@ DISTRO_NAME = "Unslung"
 DISTRO_VERSION = "5.5-beta"
 DISTRO_TYPE = "beta"
 
+# pull in the frozen list of bbfiles
+include conf/distro/freeze.conf
+
 TARGET_FPU = "soft"
 TARGET_OS = "linux"
 
diff --git a/packages/freeze/.mtn2git_empty b/packages/freeze/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/freeze/files/.mtn2git_empty b/packages/freeze/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/freeze/files/freeze b/packages/freeze/files/freeze
new file mode 100644 (file)
index 0000000..f058402
--- /dev/null
@@ -0,0 +1,200 @@
+#!/bin/sh
+#
+# This script must be executed with the following environment variables
+# and arguments:
+#
+# export FROZEN_DIR=<place to write conf files>
+# export PKGDIR=<location of openembedded package source>
+# export DISTRO=<distro being frozen>
+# freeze {directories}
+#
+# where {directories} are one or more directories containing built
+# packages.  If not given or empty FROZEN_DIR defaults to the directory
+# on BBPATH containing conf/local.conf.  With no arguments $TMPDIR/work must
+# be the location of the built packages.
+#
+# The output of the script consists of two files:
+#      $FROZEN_DIR/$DISTRO-bbfiles.conf
+#        defines BBFILES to a list of all the .bb files required
+#
+#      $FROZEN_DIR/$DISTRO-packages.conf
+#        defines BBFILES to a list of the directories containing
+#        those bb files.
+#
+# The output path definitions use ${PKGDIR} (literally)
+#
+# Check the arguments.
+test -n "$DISTRO" || {
+       echo "FATAL: freeze: set \$DISTRO to the name of the distro to freeze" >&2
+       exit 1
+}
+test -r "$PKGDIR/packages/freeze/freeze.bb" || {
+       echo "FATAL: freeze: set \$PKGDIR to the directory containing OE packages" >&2
+       exit 1
+}
+if test -n "$FROZEN_DIR" -a -d "$FROZEN_DIR"
+then
+       : # ok, given a directory
+else
+       if test -n "$BBPATH"
+       then
+               FROZEN_DIR=""
+               for d in ${BBPATH//:/ }
+               do
+                       if test -r "$d/conf/local.conf"
+                       then
+                               FROZEN_DIR="$d/conf"
+                               break
+                       elif test -z "$FROZEN_DIR" -a -d "$d"
+                       then
+                               # default to the first existing directory on
+                               # the path
+                               FROZEN_DIR="$d"
+                       fi
+               done
+       fi
+       if test -n "$FROZEN_DIR"
+       then
+               echo "NOTE: freeze: \$FROZEN_DIR=\"$FROZEN_DIR\"" >&2
+               echo "NOTE:         (defaulted from \$BBPATH=\"$BBPATH\")" >&2
+       else
+               echo "FATAL: freeze: set \$FROZEN_DIR to the directory for the new .conf files" >&2
+               exit 1
+       fi
+fi
+test -d "$1" || {
+       if test -d "$TMPDIR/work"
+       then
+               set "$TMPDIR/work"
+       else
+               echo "FATAL: freeze: give one or more directories containing built packages" >&2
+               exit 1
+       fi
+}
+#
+# First some helper functions
+#
+# output "$@" if there is exactly one argument (so this selectively
+# outputs a file name if the pattern matches exactly one file).
+output() {
+       if test $# -eq 1 -a -r "$1"
+       then
+               echo '${PKGDIR}/packages/'"$1 \\"
+               return 0
+       else
+               return 1
+       fi
+}
+#
+# Perform edit '$1' on '$2' and check to see if the result is a valid
+# file name.  If '$1' is empty '$2' is checked with no edit
+check() {
+       local nf
+       if test -n "$1"
+       then
+               nf="$(echo "$2" | sed -n "$1")"
+               test -n "$nf" && output */$nf.bb
+       else
+               output */"$2.bb"
+       fi
+}
+#
+# Output a note - because bitbake swallows the stderr stream and redirects to the
+# log file, which never gets read, it is necessary to do something horrible here.
+bberror(){
+       echo "ERROR:" "$@" >/dev/tty
+}
+bbnote(){
+       echo "NOTE:" "$@" >/dev/tty
+}
+#
+# Say where the files go (this goes to the log file)
+bbnote "frozen bbfiles.conf  --> $FROZEN_DIR/$DISTRO-bbfiles.conf" >&2
+bbnote "frozen packages.conf --> $FROZEN_DIR/$DISTRO-packages.conf" >&2
+#
+# List the built packages, for each one find the corresponding bb file
+# (from the packages directory).
+for d in "$@"
+do
+       (cd "$d"; ls) | while read x
+       do
+               echo "$x" "$d/$x"
+       done
+done | {
+       report=
+       while read d full
+       do
+               if test ! -d "$full"
+               then
+                       bberror "$full: not a directory, ignored" >&2
+               elif echo "$d" | egrep '\-[^-][^-]*-[a-z][a-z]*[0-9][0-9.]*$'
+               then
+                       :
+               else
+                       bberror "$full: expected package-version-rev" >&2
+                       if test -z "$report"
+                       then
+                               bberror "  name not recognised as a package and so ignored" >&2
+                               report="$d"
+                       fi
+               fi
+       done
+       if test -n "$report"
+       then
+               bberror "$report: at least this directory was ignored" >&2
+               bberror "  The output files may be wrong, some .bb files may be missing!" >&2
+       fi
+} | sed 's/^\(.*\)-\([^-]*\)-\([^-]*\)$/\1 \2 \3/' | {
+       # the check commands need to be executed from the packages directory so they
+       # can use shell wildcarding to match the bb files
+       cd "$PKGDIR/packages"
+       # This would be several orders of magnitude easier if portmap did not have
+       # the version '5-7' (etc).  This is the only package with a '-' in the
+       # version number...
+       report=
+       while read p v r
+       do
+               # Each package/version must be found in $PKGDIR/packages, this search
+               # is a heuristic, note that there are never any '_' characters in the
+               # work directory name.
+               f="${p}_$v"
+               check '' "$f" ||
+               check 's/-/[-_]/gp' "$p-$v" ||
+               check 's/_1\.0$//p' "$f" ||
+               check 's/_\([0-9.]*\)cvs200[0-9]*$/_\1cvs/p' "$f" ||
+               check 's/_\([0-9.]*\)+cvs200[0-9]*$/_\1+cvs/p' "$f" ||
+               check 's/_0\.1cvs200[0-9]*$/_cvs/p' "$f" ||
+               check 's/_0\.1cvs\(200[0-9]*\)$/_\1/p' "$f" || {
+                       bberror "($p,$v,$r): package not found" >&2
+                       if test -z "$report"
+                       then
+                               report="($p,$v,$r)"
+                               bberror "at least one package has not been found" >&2
+                       fi
+               }
+       done
+       # in all cases add freeze and unfreeze
+       echo '${PKGDIR}/packages/freeze/freeze.bb '"\\"
+       echo '${PKGDIR}/packages/freeze/unfreeze.bb '"\\"
+       # check for a problem
+       if test -n "$report"
+       then
+               bberror "At least $report was not found." >&2
+               bberror "This can be ignored if the .bb file has been removed, however if not" >&2
+               bberror "the frozen .conf output files are useless unless you fix them up" >&2
+       fi
+} | sort | uniq | {
+       # the simple bb file list (package/bbfile.bb)
+       out="$FROZEN_DIR/$DISTRO-bbfiles.conf"
+       echo '# automatically generated by bitbake freeze' >"$out"
+       echo 'BBFILES := "\' >>"$out"
+       tee -a "$out"
+       echo '"' >>"$out"
+} | sed 's!^\(.*\)/[^/]*\.bb \\$!\1/*.bb \\!' | uniq | {
+       # the package directories list (package)
+       out="$FROZEN_DIR/$DISTRO-packages.conf"
+       echo '# automatically generated by bitbake freeze' >"$out"
+       echo 'BBFILES := "\' >>"$out"
+       cat >>"$out"
+       echo '"' >>"$out"
+}
diff --git a/packages/freeze/files/unfreeze b/packages/freeze/files/unfreeze
new file mode 100644 (file)
index 0000000..746bbc2
--- /dev/null
@@ -0,0 +1,64 @@
+#!/bin/sh
+#
+# This script must be executed with the following environment variables
+# and arguments:
+#
+# export FROZEN_DIR=<place to write conf files>
+# export DISTRO=<distro being frozen>
+# unfreeze
+#
+# If not given or empty FROZEN_DIR defaults to the directory on BBPATH containing
+# conf/local.conf.
+#
+# The output of the script consists of two files:
+#      $FROZEN_DIR/$DISTRO-bbfiles.conf
+#        empty
+#
+#      $FROZEN_DIR/$DISTRO-packages.conf
+#        empty
+#
+# Check the arguments.
+test -n "$DISTRO" || {
+       echo "FATAL: unfreeze: set \$DISTRO to the name of the distro to freeze" >&2
+       exit 1
+}
+if test -n "$FROZEN_DIR" -a -d "$FROZEN_DIR"
+then
+       : # ok, given a directory
+else
+       if test -n "$BBPATH"
+       then
+               FROZEN_DIR=""
+               for d in ${BBPATH//:/ }
+               do
+                       if test -r "$d/conf/local.conf"
+                       then
+                               FROZEN_DIR="$d/conf"
+                               break
+                       elif test -z "$FROZEN_DIR" -a -d "$d"
+                       then
+                               # default to the first existing directory on
+                               # the path
+                               FROZEN_DIR="$d"
+                       fi
+               done
+       fi
+       if test -n "$FROZEN_DIR"
+       then
+               echo "NOTE: unfreeze: \$FROZEN_DIR=\"$FROZEN_DIR\"" >&2
+               echo "NOTE:           (defaulted from \$BBPATH=\"$BBPATH\")" >&2
+       else
+               echo "FATAL: unfreeze: set \$FROZEN_DIR to the directory for the new .conf files" >&2
+               exit 1
+       fi
+fi
+#
+# do it
+#
+# the simple bb file list (package/bbfile.bb)
+out="$FROZEN_DIR/$DISTRO-bbfiles.conf"
+echo '# automatically generated by bitbake unfreeze' >"$out"
+#
+# the package directories list (package)
+out="$FROZEN_DIR/$DISTRO-packages.conf"
+echo '# automatically generated by bitbake unfreeze' >"$out"
diff --git a/packages/freeze/freeze.bb b/packages/freeze/freeze.bb
new file mode 100644 (file)
index 0000000..f658558
--- /dev/null
@@ -0,0 +1,53 @@
+# freeze finds all the bitbake files used by the stuff
+# currently built in ${TMPDIR}/work and writes those
+# files into frozen-bbfiles.conf, then it writes the
+# directories containing the files into frozen-packages.conf
+#
+# The two files define (just) the BBFILES variable.
+#
+# The path names in the BBFILES variable are of the form:
+#
+# ${PKGDIR}/packages/directory/bbfile.bb
+# ${PKGDIR}/packages/directory/*.bb
+#
+# as appropriate, directory is the sub-directory of 'packages'.
+#
+DESCRIPTION = "Freeze the bitbake files in the build"
+MAINTAINER = "John Bowler <jbowler@acm.org>"
+SECTION = "console/networking"
+PRIORITY = "optional"
+LICENSE = "MIT"
+PR = "r0"
+
+INHIBIT_DEFAULT_DEPS = "1"
+PATCH_DEPENDS = ""
+ALLOW_EMPTY = 1
+PACKAGES = ""
+
+SRC_URI = "file://freeze"
+
+do_configure() {
+}
+do_compile() {
+}
+do_install() {
+}
+do_stage() {
+}
+
+do_build[nostamp] = 1
+do_build() {
+       # export FROZEN_DIR=<place to write conf files>
+       # export PACKAGE_DIR=<location of openembedded package source>
+       # freeze {directories}
+       set -x
+       if test -d "${PKGDIR}/packages"
+       then
+               FROZEN_DIR="${FROZEN_DIR}" DISTRO="${DISTRO}" \
+                       sh "${WORKDIR}/freeze" "${TMPDIR}/work"
+       else
+               oenote "\$PKGDIR/packages ($PKGDIR/packages) not found"
+               oefatal "\$PKGDIR must be defined for freeze to work"
+       fi
+       set +x
+}
diff --git a/packages/freeze/unfreeze.bb b/packages/freeze/unfreeze.bb
new file mode 100644 (file)
index 0000000..0c0eadc
--- /dev/null
@@ -0,0 +1,42 @@
+# unfreeze undoes the work of freeze by making the frozen
+# configuration fails empty (they just contain a comment).
+#
+DESCRIPTION = "Unfreeze the bitbake files in the build"
+MAINTAINER = "John Bowler <jbowler@acm.org>"
+SECTION = "console/networking"
+PRIORITY = "optional"
+LICENSE = "MIT"
+PR = "r0"
+
+INHIBIT_DEFAULT_DEPS = "1"
+PATCH_DEPENDS = ""
+ALLOW_EMPTY = 1
+PACKAGES = ""
+
+SRC_URI = "file://unfreeze"
+
+do_configure() {
+}
+do_compile() {
+}
+do_install() {
+}
+do_stage() {
+}
+
+do_build[nostamp] = 1
+do_build() {
+       # export FROZEN_DIR=<place to write conf files>
+       # export PKGDIR=<location of openembedded package source>
+       # unfreeze
+       set -x
+       # this is a sanity check:
+       if test -d "${PKGDIR}/packages"
+       then
+               FROZEN_DIR="${FROZEN_DIR}" DISTRO="${DISTRO}" sh "${WORKDIR}/unfreeze"
+       else
+               oenote "\$PKGDIR/packages ($PKGDIR/packages) not found"
+               oefatal "\$PKGDIR must be defined for freeze/unfreeze to work"
+       fi
+       set +x
+}
index 3db9e33..f230af0 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "Rebuild the package index"
-LICENSE = MIT
+LICENSE = "MIT"
 PR = "r0"
 
 DEPENDS = "ipkg-native"