From b2c843089883a167c409afd269e307549cd8d869 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Mon, 25 Jan 2010 17:36:08 +0000 Subject: [PATCH] packaged-staging: Move packaged staging directory outside of DEPLOY_DIR Rename DEPLOY_DIR_PSTAGE to PSTAGE_DIR and move it outside of deploy. Do soft assignment of a default variable inside bitbake.conf as ${OEROOT}/tmp/pstage. Use a separate directory, PSTAGE_WORKDIR, to store transient packaged staging files such as the stamp files and opkg.conf Signed-off-by: Joshua Lock --- build/conf/local.conf.sample | 2 ++ meta/classes/packaged-staging.bbclass | 24 ++++++++++++------------ meta/conf/bitbake.conf | 1 + 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/build/conf/local.conf.sample b/build/conf/local.conf.sample index fea0a1828a..149c73d664 100644 --- a/build/conf/local.conf.sample +++ b/build/conf/local.conf.sample @@ -1,5 +1,7 @@ # Where to cache the files Poky downloads DL_DIR ?= "${OEROOT}/sources" +# Where to cache Poky's built staging output +PSTAGE_DIR ?= "${OEROOT}/pstage" BBFILES += "\ ${OEROOT}/meta/packages/*/*.bb \ ${OEROOT}/meta-moblin/packages/*/*.bb" diff --git a/meta/classes/packaged-staging.bbclass b/meta/classes/packaged-staging.bbclass index cdee42256e..74855c4ab3 100644 --- a/meta/classes/packaged-staging.bbclass +++ b/meta/classes/packaged-staging.bbclass @@ -17,7 +17,8 @@ PSTAGE_EXTRAPATH ?= "" PSTAGE_PKGPATH = "${DISTRO}/${OELAYOUT_ABI}${PSTAGE_EXTRAPATH}" PSTAGE_PKGPN = "${@bb.data.expand('staging-${PN}-${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}', d).replace('_', '-')}" PSTAGE_PKGNAME = "${PSTAGE_PKGPN}_${PSTAGE_PKGVERSION}_${PSTAGE_PKGARCH}.ipk" -PSTAGE_PKG = "${DEPLOY_DIR_PSTAGE}/${PSTAGE_PKGPATH}/${PSTAGE_PKGNAME}" +PSTAGE_PKG = "${PSTAGE_DIR}/${PSTAGE_PKGPATH}/${PSTAGE_PKGNAME}" +PSTAGE_WORKDIR = "${TMPDIR}/pstage" PSTAGE_NATIVEDEPENDS = "\ shasum-native \ @@ -69,8 +70,7 @@ python () { bb.data.setVar("PSTAGING_ACTIVE", "0", d) } -DEPLOY_DIR_PSTAGE ?= "${DEPLOY_DIR}/pstage" -PSTAGE_MACHCONFIG = "${DEPLOY_DIR_PSTAGE}/opkg.conf" +PSTAGE_MACHCONFIG = "${PSTAGE_WORKDIR}/opkg.conf" PSTAGE_PKGMANAGER = "stage-manager-ipkg" @@ -141,7 +141,7 @@ do_clean_prepend() { staging_helper () { # Assemble appropriate opkg.conf conffile=${PSTAGE_MACHCONFIG} - mkdir -p ${DEPLOY_DIR_PSTAGE}/pstaging_lists + mkdir -p ${PSTAGE_WORKDIR}/pstaging_lists if [ ! -e $conffile ]; then ipkgarchs="${BUILD_SYS}" priority=1 @@ -263,24 +263,24 @@ python packagedstage_stampfixing_eventhandler() { populate_sysroot_preamble () { if [ "$PSTAGING_ACTIVE" = "1" ]; then - stage-manager -p ${STAGING_DIR} -c ${DEPLOY_DIR_PSTAGE}/stamp-cache-staging -u || true - stage-manager -p ${CROSS_DIR} -c ${DEPLOY_DIR_PSTAGE}/stamp-cache-cross -u || true + stage-manager -p ${STAGING_DIR} -c ${PSTAGE_WORKDIR}/stamp-cache-staging -u || true + stage-manager -p ${CROSS_DIR} -c ${PSTAGE_WORKDIR}/stamp-cache-cross -u || true fi } populate_sysroot_postamble () { if [ "$PSTAGING_ACTIVE" = "1" ]; then # list the packages currently installed in staging - # ${PSTAGE_LIST_CMD} | awk '{print $1}' > ${DEPLOY_DIR_PSTAGE}/installed-list + # ${PSTAGE_LIST_CMD} | awk '{print $1}' > ${PSTAGE_WORKDIR}/installed-list # exitcode == 5 is ok, it means the files change set +e - stage-manager -p ${STAGING_DIR} -c ${DEPLOY_DIR_PSTAGE}/stamp-cache-staging -u -d ${PSTAGE_TMPDIR_STAGE}/sysroots + stage-manager -p ${STAGING_DIR} -c ${PSTAGE_WORKDIR}/stamp-cache-staging -u -d ${PSTAGE_TMPDIR_STAGE}/sysroots exitcode=$? if [ "$exitcode" != "5" -a "$exitcode" != "0" ]; then exit $exitcode fi - stage-manager -p ${CROSS_DIR} -c ${DEPLOY_DIR_PSTAGE}/stamp-cache-cross -u -d ${PSTAGE_TMPDIR_STAGE}/cross/${BASE_PACKAGE_ARCH} + stage-manager -p ${CROSS_DIR} -c ${PSTAGE_WORKDIR}/stamp-cache-cross -u -d ${PSTAGE_TMPDIR_STAGE}/cross/${BASE_PACKAGE_ARCH} if [ "$exitcode" != "5" -a "$exitcode" != "0" ]; then exit $exitcode fi @@ -297,7 +297,7 @@ packagedstaging_fastpath () { fi } -do_populate_sysroot[dirs] =+ "${DEPLOY_DIR_PSTAGE}" +do_populate_sysroot[dirs] =+ "${PSTAGE_DIR}" python populate_sysroot_prehook() { bb.build.exec_func("populate_sysroot_preamble", d) } @@ -310,7 +310,7 @@ python populate_sysroot_posthook() { staging_packager () { mkdir -p ${PSTAGE_TMPDIR_STAGE}/CONTROL - mkdir -p ${DEPLOY_DIR_PSTAGE}/${PSTAGE_PKGPATH} + mkdir -p ${PSTAGE_DIR}/${PSTAGE_PKGPATH} echo "Package: ${PSTAGE_PKGPN}" > ${PSTAGE_TMPDIR_STAGE}/CONTROL/control echo "Version: ${PSTAGE_PKGVERSION}" >> ${PSTAGE_TMPDIR_STAGE}/CONTROL/control @@ -335,7 +335,7 @@ staging_packager () { sed -i -e s:${STAGING_DIR}:FIXMESTAGINGDIR:g $i done - ${PSTAGE_BUILD_CMD} ${PSTAGE_TMPDIR_STAGE} ${DEPLOY_DIR_PSTAGE}/${PSTAGE_PKGPATH} + ${PSTAGE_BUILD_CMD} ${PSTAGE_TMPDIR_STAGE} ${PSTAGE_DIR}/${PSTAGE_PKGPATH} } staging_package_installer () { diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 37b428905a..2e8af0ab50 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -616,6 +616,7 @@ require conf/abi_version.conf ################################################################## DL_DIR ?= "${TMPDIR}/downloads" +PSTAGE_DIR ?= "${TMPDIR}/pstage" IMAGE_FSTYPES ?= "tar.gz" PCMCIA_MANAGER ?= "pcmcia-cs" DEFAULT_TASK_PROVIDER ?= "task-base"