From 9bd213b23e9095cc0aa94952cc345a110a5cdc40 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 31 Dec 2006 22:31:24 +0000 Subject: Split STAGING_BINDIR into CROSS and NATIVE versions. This means there is no need to rename -config scripts and multimachine won't break with binconfig.bbclass. ***NOTE: This change will require staging to be rebuilt*** --- classes/binconfig.bbclass | 13 ++++--------- classes/e.bbclass | 30 +++++++++++++----------------- classes/efl.bbclass | 6 +++++- 3 files changed, 22 insertions(+), 27 deletions(-) (limited to 'classes') diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass index 317e080fc5..dadf2dddfc 100644 --- a/classes/binconfig.bbclass +++ b/classes/binconfig.bbclass @@ -20,11 +20,6 @@ def get_binconfig_mangle(d): s += " -e 's:OEEXECPREFIX:${STAGING_LIBDIR}/..:'" return s -# Native package configurations go in ${BINDIR}/-config-native to prevent a collision with cross packages -def is_native(d): - import bb.data - return ["","-native"][bb.data.inherits_class('native', d)] - BINCONFIG_GLOB ?= "*-config" do_install_append() { @@ -52,9 +47,9 @@ do_install_append() { do_stage_append() { for config in `find ${S} -name '${BINCONFIG_GLOB}'`; do - configname=`basename $config`${@is_native(d)} - install -d ${STAGING_BINDIR} - cat $config | sed ${@get_binconfig_mangle(d)} > ${STAGING_BINDIR}/$configname - chmod u+x ${STAGING_BINDIR}/$configname + configname=`basename $config` + install -d ${STAGING_BINDIR_CROSS} + cat $config | sed ${@get_binconfig_mangle(d)} > ${STAGING_BINDIR_CROSS}/$configname + chmod u+x ${STAGING_BINDIR_CROSS}/$configname done } diff --git a/classes/e.bbclass b/classes/e.bbclass index ae8fea0d5d..f20c1f8b60 100644 --- a/classes/e.bbclass +++ b/classes/e.bbclass @@ -8,23 +8,19 @@ do_prepsources () { } addtask prepsources after do_fetch before do_unpack -def binconfig_suffix(d): - import bb - return ["","-native"][bb.data.inherits_class('native', d)] - -export CURL_CONFIG = "${STAGING_BINDIR}/curl-config${@binconfig_suffix(d)}" -export EDB_CONFIG = "${STAGING_BINDIR}/edb-config${@binconfig_suffix(d)}" -export EET_CONFIG = "${STAGING_BINDIR}/eet-config${@binconfig_suffix(d)}" -export EVAS_CONFIG = "${STAGING_BINDIR}/evas-config${@binconfig_suffix(d)}" -export ECORE_CONFIG = "${STAGING_BINDIR}/ecore-config${@binconfig_suffix(d)}" -export EMBRYO_CONFIG = "${STAGING_BINDIR}/embryo-config${@binconfig_suffix(d)}" -export ENGRAVE_CONFIG = "${STAGING_BINDIR}/engrave-config${@binconfig_suffix(d)}" -export ENLIGHTENMENT_CONFIG = "${STAGING_BINDIR}/enlightenment-config${@binconfig_suffix(d)}" -export EPSILON_CONFIG = "${STAGING_BINDIR}/epsilon-config${@binconfig_suffix(d)}" -export EPEG_CONFIG = "${STAGING_BINDIR}/epeg-config${@binconfig_suffix(d)}" -export ESMART_CONFIG = "${STAGING_BINDIR}/esmart-config${@binconfig_suffix(d)}" -export FREETYPE_CONFIG = "${STAGING_BINDIR}/freetype-config${@binconfig_suffix(d)}" -export IMLIB2_CONFIG = "${STAGING_BINDIR}/imlib2-config${@binconfig_suffix(d)}" +export CURL_CONFIG = "${STAGING_BINDIR_CROSS}/curl-config" +export EDB_CONFIG = "${STAGING_BINDIR_CROSS}/edb-config" +export EET_CONFIG = "${STAGING_BINDIR_CROSS}/eet-config" +export EVAS_CONFIG = "${STAGING_BINDIR_CROSS}/evas-config" +export ECORE_CONFIG = "${STAGING_BINDIR_CROSS}/ecore-config" +export EMBRYO_CONFIG = "${STAGING_BINDIR_CROSS}/embryo-config" +export ENGRAVE_CONFIG = "${STAGING_BINDIR_CROSS}/engrave-config" +export ENLIGHTENMENT_CONFIG = "${STAGING_BINDIR_CROSS}/enlightenment-config" +export EPSILON_CONFIG = "${STAGING_BINDIR_CROSS}/epsilon-config" +export EPEG_CONFIG = "${STAGING_BINDIR_CROSS}/epeg-config" +export ESMART_CONFIG = "${STAGING_BINDIR_CROSS}/esmart-config" +export FREETYPE_CONFIG = "${STAGING_BINDIR_CROSS}/freetype-config" +export IMLIB2_CONFIG = "${STAGING_BINDIR_CROSS}/imlib2-config" do_compile_prepend() { find ${S} -name Makefile | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:' diff --git a/classes/efl.bbclass b/classes/efl.bbclass index be5ef9dcb0..9b0345a5b8 100644 --- a/classes/efl.bbclass +++ b/classes/efl.bbclass @@ -13,6 +13,10 @@ libdirectory = "src/lib" libraries = "lib${SRCNAME}" headers = "${@bb.data.getVar('SRCNAME',d,1).capitalize()}.h" +def efl_is_native(d): + import bb + return ["","-native"][bb.data.inherits_class('native', d)] + do_stage_append () { for i in ${libraries} do @@ -24,7 +28,7 @@ do_stage_append () { done # Install binaries automatically for native builds - if [ "${@binconfig_suffix(d)}" = "-native" ] + if [ "${@efl_is_native(d)}" = "-native" ] then # Most EFL binaries start with the package name -- cgit v1.2.3 From a7c7d20784667526ec3fce58da7efe2b415aa884 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 31 Dec 2006 23:28:56 +0000 Subject: Rename: image_ipk -> image.bbclass, IPKG_INSTALL -> PACKAGE_INSTALL to prepare for deb packaging --- classes/image.bbclass | 99 ++++++++++++++++++++++++++++++++++++++++++++++ classes/image_ipk.bbclass | 99 ---------------------------------------------- classes/rootfs_ipk.bbclass | 8 ++-- classes/wrt-image.bbclass | 2 +- 4 files changed, 104 insertions(+), 104 deletions(-) create mode 100644 classes/image.bbclass delete mode 100644 classes/image_ipk.bbclass (limited to 'classes') diff --git a/classes/image.bbclass b/classes/image.bbclass new file mode 100644 index 0000000000..2beb137aef --- /dev/null +++ b/classes/image.bbclass @@ -0,0 +1,99 @@ +inherit rootfs_ipk + +# We need to recursively follow RDEPENDS and RRECOMMENDS for images +BUILD_ALL_DEPS = "1" +do_rootfs[recrdeptask] = "do_package_write" + +# Images are generally built explicitly, do not need to be part of world. +EXCLUDE_FROM_WORLD = "1" + +USE_DEVFS ?= "0" + +DEPENDS += "makedevs-native" +PACKAGE_ARCH = "${MACHINE_ARCH}" + +def get_image_deps(d): + import bb + str = "" + for type in (bb.data.getVar('IMAGE_FSTYPES', d, 1) or "").split(): + deps = bb.data.getVar('IMAGE_DEPENDS_%s' % type, d) or "" + if deps: + str += " %s" % deps + return str + +DEPENDS += "${@get_image_deps(d)}" + +# +# Get a list of files containing device tables to create. +# * IMAGE_DEVICE_TABLE is the old name to an absolute path to a device table file +# * IMAGE_DEVICE_TABLES is a new name for a file, or list of files, seached +# for in the BBPATH +# If neither are specified then the default name of files/device_table-minimal.txt +# is searched for in the BBPATH (same as the old version.) +# +def get_devtable_list(d): + import bb + devtable = bb.data.getVar('IMAGE_DEVICE_TABLE', d, 1) + if devtable != None: + return devtable + str = "" + devtables = bb.data.getVar('IMAGE_DEVICE_TABLES', d, 1) + if devtables == None: + devtables = 'files/device_table-minimal.txt' + for devtable in devtables.split(): + str += " %s" % bb.which(bb.data.getVar('BBPATH', d, 1), devtable) + return str + +IMAGE_POSTPROCESS_COMMAND ?= "" + +# Must call real_do_rootfs() from inside here, rather than as a separate +# task, so that we have a single fakeroot context for the whole process. +fakeroot do_rootfs () { + set -x + rm -rf ${IMAGE_ROOTFS} + + if [ "${USE_DEVFS}" != "1" ]; then + mkdir -p ${IMAGE_ROOTFS}/dev + for devtable in ${@get_devtable_list(d)}; do + makedevs -r ${IMAGE_ROOTFS} -D $devtable + done + fi + + real_do_rootfs + + insert_feed_uris + + rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/lists/oe + + ${IMAGE_PREPROCESS_COMMAND} + + export TOPDIR=${TOPDIR} + + for type in ${IMAGE_FSTYPES}; do + if test -z "$FAKEROOTKEY"; then + fakeroot -i ${TMPDIR}/fakedb.image bbimage -t $type -e ${FILE} + else + bbimage -n "${IMAGE_NAME}" -t "$type" -e "${FILE}" + fi + done + + ${IMAGE_POSTPROCESS_COMMAND} +} + +insert_feed_uris () { + + echo "Building feeds for [${DISTRO}].." + + for line in ${FEED_URIS} + do + # strip leading and trailing spaces/tabs, then split into name and uri + line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`" + feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`" + feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`" + + echo "Added $feed_name feed with URL $feed_uri" + + # insert new feed-sources + echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg/${feed_name}-feed.conf + done +} diff --git a/classes/image_ipk.bbclass b/classes/image_ipk.bbclass deleted file mode 100644 index 2beb137aef..0000000000 --- a/classes/image_ipk.bbclass +++ /dev/null @@ -1,99 +0,0 @@ -inherit rootfs_ipk - -# We need to recursively follow RDEPENDS and RRECOMMENDS for images -BUILD_ALL_DEPS = "1" -do_rootfs[recrdeptask] = "do_package_write" - -# Images are generally built explicitly, do not need to be part of world. -EXCLUDE_FROM_WORLD = "1" - -USE_DEVFS ?= "0" - -DEPENDS += "makedevs-native" -PACKAGE_ARCH = "${MACHINE_ARCH}" - -def get_image_deps(d): - import bb - str = "" - for type in (bb.data.getVar('IMAGE_FSTYPES', d, 1) or "").split(): - deps = bb.data.getVar('IMAGE_DEPENDS_%s' % type, d) or "" - if deps: - str += " %s" % deps - return str - -DEPENDS += "${@get_image_deps(d)}" - -# -# Get a list of files containing device tables to create. -# * IMAGE_DEVICE_TABLE is the old name to an absolute path to a device table file -# * IMAGE_DEVICE_TABLES is a new name for a file, or list of files, seached -# for in the BBPATH -# If neither are specified then the default name of files/device_table-minimal.txt -# is searched for in the BBPATH (same as the old version.) -# -def get_devtable_list(d): - import bb - devtable = bb.data.getVar('IMAGE_DEVICE_TABLE', d, 1) - if devtable != None: - return devtable - str = "" - devtables = bb.data.getVar('IMAGE_DEVICE_TABLES', d, 1) - if devtables == None: - devtables = 'files/device_table-minimal.txt' - for devtable in devtables.split(): - str += " %s" % bb.which(bb.data.getVar('BBPATH', d, 1), devtable) - return str - -IMAGE_POSTPROCESS_COMMAND ?= "" - -# Must call real_do_rootfs() from inside here, rather than as a separate -# task, so that we have a single fakeroot context for the whole process. -fakeroot do_rootfs () { - set -x - rm -rf ${IMAGE_ROOTFS} - - if [ "${USE_DEVFS}" != "1" ]; then - mkdir -p ${IMAGE_ROOTFS}/dev - for devtable in ${@get_devtable_list(d)}; do - makedevs -r ${IMAGE_ROOTFS} -D $devtable - done - fi - - real_do_rootfs - - insert_feed_uris - - rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/lists/oe - - ${IMAGE_PREPROCESS_COMMAND} - - export TOPDIR=${TOPDIR} - - for type in ${IMAGE_FSTYPES}; do - if test -z "$FAKEROOTKEY"; then - fakeroot -i ${TMPDIR}/fakedb.image bbimage -t $type -e ${FILE} - else - bbimage -n "${IMAGE_NAME}" -t "$type" -e "${FILE}" - fi - done - - ${IMAGE_POSTPROCESS_COMMAND} -} - -insert_feed_uris () { - - echo "Building feeds for [${DISTRO}].." - - for line in ${FEED_URIS} - do - # strip leading and trailing spaces/tabs, then split into name and uri - line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`" - feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`" - feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`" - - echo "Added $feed_name feed with URL $feed_uri" - - # insert new feed-sources - echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg/${feed_name}-feed.conf - done -} diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index 8020fd0ca3..9af23c7a73 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -2,7 +2,7 @@ # Creates a root filesystem out of IPKs # # This rootfs can be mounted via root-nfs or it can be put into an cramfs/jffs etc. -# See image_ipk.oeclass for a usage of this. +# See image.bbclass for a usage of this. # DEPENDS_prepend="ipkg-native ipkg-utils-native fakeroot-native " @@ -17,7 +17,7 @@ do_build[nostamp] = "1" IPKG_ARGS = "-f ${T}/ipkg.conf -o ${IMAGE_ROOTFS}" -IPKG_INSTALL += "ipkg ipkg-collateral" +PACKAGE_INSTALL += "ipkg ipkg-collateral" ROOTFS_POSTPROCESS_COMMAND ?= "" @@ -55,8 +55,8 @@ real_do_rootfs () { ipkg-cl ${IPKG_ARGS} install $i done fi - if [ ! -z "${IPKG_INSTALL}" ]; then - ipkg-cl ${IPKG_ARGS} install ${IPKG_INSTALL} + if [ ! -z "${PACKAGE_INSTALL}" ]; then + ipkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL} fi export D=${IMAGE_ROOTFS} diff --git a/classes/wrt-image.bbclass b/classes/wrt-image.bbclass index ba1163a719..45d9ac923f 100644 --- a/classes/wrt-image.bbclass +++ b/classes/wrt-image.bbclass @@ -3,7 +3,7 @@ ROOTFS_POSTPROCESS_COMMAND += "rm -f ${IMAGE_ROOTFS}/boot/zImage*" def wrt_get_kernel_version(d): import bb - if bb.data.inherits_class('image_ipk', d): + if bb.data.inherits_class('image', d): skd = bb.data.getVar('STAGING_KERNEL_DIR', d, 1) return base_read_file(skd+'/kernel-abiversion') return "-no kernel version for available-" -- cgit v1.2.3 From ca7658fb6fe2edf45495375df6b494fa3173254a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 1 Jan 2007 16:10:22 +0000 Subject: site: Start to refactor files to benefit from common site files. Much more work is needed but this is a start --- classes/siteinfo.bbclass | 1 + 1 file changed, 1 insertion(+) (limited to 'classes') diff --git a/classes/siteinfo.bbclass b/classes/siteinfo.bbclass index 5a37768b52..f1671d9613 100644 --- a/classes/siteinfo.bbclass +++ b/classes/siteinfo.bbclass @@ -49,6 +49,7 @@ def get_siteinfo_list(d): if target in targetinfo: info = targetinfo[target].split() info.append(target) + info.append("common") return info else: bb.error("Information not available for target '%s'" % target) -- cgit v1.2.3 From ed0618025894ddc21172f924c96ce20495bc6e3a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 1 Jan 2007 17:21:49 +0000 Subject: base.bbclass: Allow base_contains to take an array of values to check for (from poky) --- classes/base.bbclass | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'classes') diff --git a/classes/base.bbclass b/classes/base.bbclass index 249a25a218..504707e37b 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -41,12 +41,17 @@ def base_conditional(variable, checkvalue, truevalue, falsevalue, d): else: return falsevalue -def base_contains(variable, checkvalue, truevalue, falsevalue, d): - import bb - if bb.data.getVar(variable,d,1).find(checkvalue) != -1: - return truevalue - else: - return falsevalue +def base_contains(variable, checkvalues, truevalue, falsevalue, d): + import bb + matches = 0 + if type(checkvalues).__name__ == "str": + checkvalues = [checkvalues] + for value in checkvalues: + if bb.data.getVar(variable,d,1).find(value) != -1: + matches = matches + 1 + if matches == len(checkvalues): + return truevalue + return falsevalue def base_both_contain(variable1, variable2, checkvalue, d): import bb -- cgit v1.2.3 From 11315f968609211436c9c180262037440458c580 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 1 Jan 2007 17:48:17 +0000 Subject: siteinfo.bbclass: Demote site files message to debug log level (from poky) --- classes/siteinfo.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/siteinfo.bbclass b/classes/siteinfo.bbclass index f1671d9613..94d25bf56f 100644 --- a/classes/siteinfo.bbclass +++ b/classes/siteinfo.bbclass @@ -91,7 +91,7 @@ def siteinfo_get_files(d): if os.path.exists(fname): sitefiles += fname + " " - bb.note("SITE files " + sitefiles); + bb.debug(1, "SITE files " + sitefiles); return sitefiles # -- cgit v1.2.3 From ca83fbf24c3a77074f8fbf8bfef42aa468dd07c3 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 1 Jan 2007 17:49:24 +0000 Subject: package.bbclass: Add fakeroot-native as a depenedncy (from poky) --- classes/package.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/package.bbclass b/classes/package.bbclass index 132fdcb37a..a327aa46bd 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -116,7 +116,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst bb.data.setVar('PACKAGES', ' '.join(packages), d) -PACKAGE_DEPENDS ?= "file-native" +PACKAGE_DEPENDS ?= "file-native fakeroot-native" DEPENDS_prepend =+ "${PACKAGE_DEPENDS} " # file(1) output to match to consider a file an unstripped executable FILE_UNSTRIPPED_MATCH ?= "not stripped" -- cgit v1.2.3 From 4a6ac907a9d6a444004a4384b53581b9ca09e090 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 1 Jan 2007 17:50:31 +0000 Subject: image.bbclass rootfs_ipk.bbclass: Move common functionality into image.bbclass to prepare for rootfs_deb/bbclass (from poky) --- classes/image.bbclass | 72 ++++++++++++++++++++++++++++++- classes/rootfs_ipk.bbclass | 104 ++++++++------------------------------------- 2 files changed, 87 insertions(+), 89 deletions(-) (limited to 'classes') diff --git a/classes/image.bbclass b/classes/image.bbclass index 2beb137aef..bcf9bef13c 100644 --- a/classes/image.bbclass +++ b/classes/image.bbclass @@ -1,4 +1,6 @@ -inherit rootfs_ipk +inherit rootfs_${IMAGE_PKGTYPE} + +PACKAGES = "" # We need to recursively follow RDEPENDS and RRECOMMENDS for images BUILD_ALL_DEPS = "1" @@ -9,6 +11,8 @@ EXCLUDE_FROM_WORLD = "1" USE_DEVFS ?= "0" +PID = "${@os.getpid()}" + DEPENDS += "makedevs-native" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -46,6 +50,17 @@ def get_devtable_list(d): IMAGE_POSTPROCESS_COMMAND ?= "" +# some default locales +IMAGE_LINGUAS ?= "de-de fr-fr en-gb" + +LINGUAS_INSTALL = "${@" ".join(map(lambda s: "locale-base-%s" % s, bb.data.getVar('IMAGE_LINGUAS', d, 1).split()))}" + +ROOTFS_POSTPROCESS_COMMAND ?= "" + +do_rootfs[nostamp] = "1" +do_rootfs[dirs] = "${TOPDIR}" +do_build[nostamp] = "1" + # Must call real_do_rootfs() from inside here, rather than as a separate # task, so that we have a single fakeroot context for the whole process. fakeroot do_rootfs () { @@ -59,7 +74,7 @@ fakeroot do_rootfs () { done fi - real_do_rootfs + rootfs_${IMAGE_PKGTYPE}_do_rootfs insert_feed_uris @@ -68,6 +83,7 @@ fakeroot do_rootfs () { ${IMAGE_PREPROCESS_COMMAND} export TOPDIR=${TOPDIR} + export MACHINE=${MACHINE} for type in ${IMAGE_FSTYPES}; do if test -z "$FAKEROOTKEY"; then @@ -97,3 +113,55 @@ insert_feed_uris () { echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg/${feed_name}-feed.conf done } + +log_check() { + set +x + for target in $* + do + lf_path="${WORKDIR}/temp/log.do_$target.${PID}" + + echo "log_check: Using $lf_path as logfile" + + if test -e "$lf_path" + then + rootfs_${IMAGE_PKGTYPE}_log_check $target $lf_path + else + echo "Cannot find logfile [$lf_path]" + fi + echo "Logfile is clean" + done + + set -x +} + +# set '*' as the rootpassword so the images +# can decide if they want it or not + +zap_root_password () { + sed 's%^root:[^:]*:%root:*:%' < ${IMAGE_ROOTFS}/etc/passwd >${IMAGE_ROOTFS}/etc/passwd.new + mv ${IMAGE_ROOTFS}/etc/passwd.new ${IMAGE_ROOTFS}/etc/passwd +} + +create_etc_timestamp() { + date +%2m%2d%2H%2M%Y >${IMAGE_ROOTFS}/etc/timestamp +} + +# Turn any symbolic /sbin/init link into a file +remove_init_link () { + if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then + LINKFILE=${IMAGE_ROOTFS}`readlink ${IMAGE_ROOTFS}/sbin/init` + rm ${IMAGE_ROOTFS}/sbin/init + cp $LINKFILE ${IMAGE_ROOTFS}/sbin/init + fi +} + +make_zimage_symlink_relative () { + if [ -L ${IMAGE_ROOTFS}/boot/zImage ]; then + (cd ${IMAGE_ROOTFS}/boot/ && for i in `ls zImage-* | sort`; do ln -sf $i zImage; done) + fi +} + +# export the zap_root_password, create_etc_timestamp and remote_init_link +EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link do_rootfs make_zimage_symlink_relative + +addtask rootfs before do_build after do_install diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index 9af23c7a73..03ba5f86b7 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -9,33 +9,15 @@ DEPENDS_prepend="ipkg-native ipkg-utils-native fakeroot-native " DEPENDS_append=" ${EXTRA_IMAGEDEPENDS}" RDEPENDS += "ipkg ipkg-collateral" -PACKAGES = "" - -do_rootfs[nostamp] = "1" -do_rootfs[dirs] = "${TOPDIR}" -do_build[nostamp] = "1" - IPKG_ARGS = "-f ${T}/ipkg.conf -o ${IMAGE_ROOTFS}" PACKAGE_INSTALL += "ipkg ipkg-collateral" -ROOTFS_POSTPROCESS_COMMAND ?= "" - -PID = "${@os.getpid()}" - -# some default locales -IMAGE_LINGUAS ?= "de-de fr-fr en-gb" - -LINGUAS_INSTALL = "${@" ".join(map(lambda s: "locale-base-%s" % s, bb.data.getVar('IMAGE_LINGUAS', d, 1).split()))}" - -real_do_rootfs () { +fakeroot rootfs_ipk_do_rootfs () { set -x mkdir -p ${IMAGE_ROOTFS}/dev - #work around a build in ipkg-make-index - touch ${DEPLOY_DIR_IPK}/Packages - if [ -z "${DEPLOY_KEEP_PACKAGES}" ]; then touch ${DEPLOY_DIR_IPK}/Packages ipkg-make-index -r ${DEPLOY_DIR_IPK}/Packages -p ${DEPLOY_DIR_IPK}/Packages -l ${DEPLOY_DIR_IPK}/Packages.filelist -m ${DEPLOY_DIR_IPK} @@ -60,6 +42,7 @@ real_do_rootfs () { fi export D=${IMAGE_ROOTFS} + export OFFLINE_ROOT=${IMAGE_ROOTFS} export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} mkdir -p ${IMAGE_ROOTFS}/etc/ipkg/ grep "^arch" ${T}/ipkg.conf >${IMAGE_ROOTFS}/etc/ipkg/arch.conf @@ -83,75 +66,22 @@ real_do_rootfs () { log_check rootfs } -log_check() { - set +x - for target in $* - do - lf_path="${WORKDIR}/temp/log.do_$target.${PID}" - - echo "log_check: Using $lf_path as logfile" - - if test -e "$lf_path" +rootfs_ipk_log_check() { + target="$1" + lf_path="$2" + + lf_txt="`cat $lf_path`" + for keyword_die in "Cannot find package" "exit 1" ERR Fail + do + if (echo "$lf_txt" | grep -v log_check | grep "$keyword_die") >/dev/null 2>&1 then - lf_txt="`cat $lf_path`" - - for keyword_die in "Cannot find package" "exit 1" ERR Fail - do - - if (echo "$lf_txt" | grep -v log_check | grep "$keyword_die") >/dev/null 2>&1 - then - echo "log_check: There were error messages in the logfile" - echo -e "log_check: Matched keyword: [$keyword_die]\n" - echo "$lf_txt" | grep -v log_check | grep -i "$keyword_die" -C1 - echo "" - do_exit=1 - fi - done - test "$do_exit" = 1 && exit 1 - else - echo "Cannot find logfile [$lf_path]" + echo "log_check: There were error messages in the logfile" + echo -e "log_check: Matched keyword: [$keyword_die]\n" + echo "$lf_txt" | grep -v log_check | grep -i "$keyword_die" -C1 + echo "" + do_exit=1 fi - echo "Logfile is clean" done - - set -x - + test "$do_exit" = 1 && exit 1 + true } - -fakeroot do_rootfs () { - rm -rf ${IMAGE_ROOTFS} - real_do_rootfs -} - -# set '*' as the rootpassword so the images -# can decide if they want it or not - -zap_root_password () { - sed 's%^root:[^:]*:%root:*:%' < ${IMAGE_ROOTFS}/etc/passwd >${IMAGE_ROOTFS}/etc/passwd.new - mv ${IMAGE_ROOTFS}/etc/passwd.new ${IMAGE_ROOTFS}/etc/passwd -} - -create_etc_timestamp() { - date +%2m%2d%2H%2M%Y >${IMAGE_ROOTFS}/etc/timestamp -} - -# Turn any symbolic /sbin/init link into a file -remove_init_link () { - if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then - LINKFILE=${IMAGE_ROOTFS}`readlink ${IMAGE_ROOTFS}/sbin/init` - rm ${IMAGE_ROOTFS}/sbin/init - cp $LINKFILE ${IMAGE_ROOTFS}/sbin/init - fi -} - -make_zimage_symlink_relative () { - if [ -L ${IMAGE_ROOTFS}/boot/zImage ]; then - (cd ${IMAGE_ROOTFS}/boot/ && for i in `ls zImage-* | sort`; do ln -sf $i zImage; done) - fi -} - -# export the zap_root_password, create_etc_timestamp and remote_init_link -EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link make_zimage_symlink_relative - - -addtask rootfs before do_build after do_install -- cgit v1.2.3