bitbake.conf/base.bbclass: Rename the staging directory to sysroots and the populate_staging task to populate_sysroot

This change makes the purpose of the staging directory more obvious and
the taskname more true to what it now actually does.

The layout version number is increased due to the change in layout
but code to convert existing directories and insert a symlink for
backwards compatibility is included.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie 2009-11-10 14:55:23 +00:00
parent 6c92cfc020
commit b772c8cde5
25 changed files with 71 additions and 64 deletions

View File

@ -890,7 +890,7 @@ python base_eventhandler() {
addtask configure after do_unpack do_patch
do_configure[dirs] = "${S} ${B}"
do_configure[deptask] = "do_populate_staging"
do_configure[deptask] = "do_populate_sysroot"
base_do_configure() {
:
}
@ -978,26 +978,26 @@ def is_legacy_staging(d):
legacy = True
return legacy
do_populate_staging[dirs] = "${STAGING_DIR_TARGET}/${bindir} ${STAGING_DIR_TARGET}/${libdir} \
do_populate_sysroot[dirs] = "${STAGING_DIR_TARGET}/${bindir} ${STAGING_DIR_TARGET}/${libdir} \
${STAGING_DIR_TARGET}/${includedir} \
${STAGING_BINDIR_NATIVE} ${STAGING_LIBDIR_NATIVE} \
${STAGING_INCDIR_NATIVE} \
${STAGING_DATADIR} \
${S} ${B}"
# Could be compile but populate_staging and do_install shouldn't run at the same time
addtask populate_staging after do_install
# Could be compile but populate_sysroot and do_install shouldn't run at the same time
addtask populate_sysroot after do_install
PSTAGING_ACTIVE = "0"
SYSROOT_PREPROCESS_FUNCS ?= ""
SYSROOT_DESTDIR = "${WORKDIR}/sysroot-destdir/"
SYSROOT_LOCK = "${STAGING_DIR}/staging.lock"
python populate_staging_prehook () {
python populate_sysroot_prehook () {
return
}
python populate_staging_posthook () {
python populate_sysroot_posthook () {
return
}
@ -1005,7 +1005,7 @@ packagedstaging_fastpath () {
:
}
python do_populate_staging () {
python do_populate_sysroot () {
#
# if do_stage exists, we're legacy. In that case run the do_stage,
# modify the SYSROOT_DESTDIR variable and then run the staging preprocess
@ -1023,10 +1023,10 @@ python do_populate_staging () {
bb.note("Legacy staging mode for %s" % bb.data.getVar("FILE", d, True))
lock = bb.utils.lockfile(lockfile)
bb.build.exec_func('do_stage', d)
bb.build.exec_func('populate_staging_prehook', d)
bb.build.exec_func('populate_sysroot_prehook', d)
for f in (bb.data.getVar('SYSROOT_PREPROCESS_FUNCS', d, True) or '').split():
bb.build.exec_func(f, d)
bb.build.exec_func('populate_staging_posthook', d)
bb.build.exec_func('populate_sysroot_posthook', d)
bb.utils.unlockfile(lock)
else:
dest = bb.data.getVar('D', d, True)
@ -1057,7 +1057,7 @@ base_do_package() {
:
}
addtask build after do_populate_staging
addtask build after do_populate_sysroot
do_build = ""
do_build[func] = "1"
@ -1109,19 +1109,19 @@ def base_after_parse(d):
srcuri = bb.data.getVar('SRC_URI', d, 1)
if "git://" in srcuri:
depends = bb.data.getVarFlag('do_fetch', 'depends', d) or ""
depends = depends + " git-native:do_populate_staging"
depends = depends + " git-native:do_populate_sysroot"
bb.data.setVarFlag('do_fetch', 'depends', depends, d)
# Mercurial packages should DEPEND on mercurial-native
elif "hg://" in srcuri:
depends = bb.data.getVarFlag('do_fetch', 'depends', d) or ""
depends = depends + " mercurial-native:do_populate_staging"
depends = depends + " mercurial-native:do_populate_sysroot"
bb.data.setVarFlag('do_fetch', 'depends', depends, d)
# OSC packages should DEPEND on osc-native
elif "osc://" in srcuri:
depends = bb.data.getVarFlag('do_fetch', 'depends', d) or ""
depends = depends + " osc-native:do_populate_staging"
depends = depends + " osc-native:do_populate_sysroot"
bb.data.setVarFlag('do_fetch', 'depends', depends, d)
# bb.utils.sha256_file() will fail if hashlib isn't present, so we fallback
@ -1131,7 +1131,7 @@ def base_after_parse(d):
import hashlib
except ImportError:
depends = bb.data.getVarFlag('do_fetch', 'depends', d) or ""
depends = depends + " shasum-native:do_populate_staging"
depends = depends + " shasum-native:do_populate_sysroot"
bb.data.setVarFlag('do_fetch', 'depends', depends, d)
# 'multimachine' handling

View File

@ -12,11 +12,11 @@
# ${APPEND} - an override list of append strings for each label
# ${SYSLINUX_OPTS} - additional options to add to the syslinux file ';' delimited
do_bootimg[depends] += "dosfstools-native:do_populate_staging \
syslinux:do_populate_staging \
syslinux-installer-native:do_populate_staging \
mtools-native:do_populate_staging \
cdrtools-native:do_populate_staging"
do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \
syslinux:do_populate_sysroot \
syslinux-installer-native:do_populate_sysroot \
mtools-native:do_populate_sysroot \
cdrtools-native:do_populate_sysroot"
PACKAGES = " "

View File

@ -12,7 +12,7 @@ export PACKAGE_INSTALL ?= "${IMAGE_INSTALL}"
PACKAGE_INSTALL_ATTEMPTONLY ?= ""
# We need to recursively follow RDEPENDS and RRECOMMENDS for images
do_rootfs[recrdeptask] += "do_deploy do_populate_staging"
do_rootfs[recrdeptask] += "do_deploy do_populate_sysroot"
# Images are generally built explicitly, do not need to be part of world.
EXCLUDE_FROM_WORLD = "1"
@ -23,15 +23,15 @@ PID = "${@os.getpid()}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
do_rootfs[depends] += "makedevs-native:do_populate_staging fakeroot-native:do_populate_staging ldconfig-native:do_populate_staging"
do_rootfs[depends] += "makedevs-native:do_populate_sysroot fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot"
python () {
deps = bb.data.getVarFlag('do_rootfs', 'depends', d) or ""
for type in (bb.data.getVar('IMAGE_FSTYPES', d, True) or "").split():
for dep in ((bb.data.getVar('IMAGE_DEPENDS_%s' % type, d) or "").split() or []):
deps += " %s:do_populate_staging" % dep
deps += " %s:do_populate_sysroot" % dep
for dep in (bb.data.getVar('EXTRA_IMAGEDEPENDS', d, True) or "").split():
deps += " %s:do_populate_staging" % dep
deps += " %s:do_populate_sysroot" % dep
bb.data.setVarFlag('do_rootfs', 'depends', deps, d)
runtime_mapping_rename("PACKAGE_INSTALL", d)

View File

@ -473,7 +473,7 @@ python do_package_qa () {
# The Staging Func, to check all staging
addtask qa_staging after do_populate_staging before do_build
addtask qa_staging after do_populate_sysroot before do_build
python do_qa_staging() {
bb.note("QA checking staging")

View File

@ -1,4 +1,4 @@
do_rootfs[depends] += "insserv-native:do_populate_staging"
do_rootfs[depends] += "insserv-native:do_populate_sysroot"
run_insserv () {
insserv -p ${IMAGE_ROOTFS}/etc/init.d -c ${STAGING_ETCDIR_NATIVE}/insserv.conf
}

View File

@ -119,7 +119,7 @@ python () {
if bb.data.getVar('PACKAGES', d, True) != '':
deps = bb.data.getVarFlag('do_package', 'depends', d) or ""
for dep in (bb.data.getVar('PACKAGE_DEPENDS', d, True) or "").split():
deps += " %s:do_populate_staging" % dep
deps += " %s:do_populate_sysroot" % dep
bb.data.setVarFlag('do_package', 'depends', deps, d)
deps = (bb.data.getVarFlag('do_package', 'deptask', d) or "").split()

View File

@ -252,8 +252,8 @@ python do_package_deb () {
python () {
if bb.data.getVar('PACKAGES', d, True) != '':
deps = (bb.data.getVarFlag('do_package_write_deb', 'depends', d) or "").split()
deps.append('dpkg-native:do_populate_staging')
deps.append('fakeroot-native:do_populate_staging')
deps.append('dpkg-native:do_populate_sysroot')
deps.append('fakeroot-native:do_populate_sysroot')
bb.data.setVarFlag('do_package_write_deb', 'depends', " ".join(deps), d)
}

View File

@ -302,8 +302,8 @@ python do_package_ipk () {
python () {
if bb.data.getVar('PACKAGES', d, True) != '':
deps = (bb.data.getVarFlag('do_package_write_ipk', 'depends', d) or "").split()
deps.append('opkg-utils-native:do_populate_staging')
deps.append('fakeroot-native:do_populate_staging')
deps.append('opkg-utils-native:do_populate_sysroot')
deps.append('fakeroot-native:do_populate_sysroot')
bb.data.setVarFlag('do_package_write_ipk', 'depends', " ".join(deps), d)
}

View File

@ -210,8 +210,8 @@ python do_package_rpm () {
python () {
if bb.data.getVar('PACKAGES', d, True) != '':
deps = (bb.data.getVarFlag('do_package_write_rpm', 'depends', d) or "").split()
deps.append('rpm-native:do_populate_staging')
deps.append('fakeroot-native:do_populate_staging')
deps.append('rpm-native:do_populate_sysroot')
deps.append('fakeroot-native:do_populate_sysroot')
bb.data.setVarFlag('do_package_write_rpm', 'depends', " ".join(deps), d)
}

View File

@ -93,8 +93,8 @@ python do_package_tar () {
python () {
if bb.data.getVar('PACKAGES', d, True) != '':
deps = (bb.data.getVarFlag('do_package_write_tar', 'depends', d) or "").split()
deps.append('tar-native:do_populate_staging')
deps.append('fakeroot-native:do_populate_staging')
deps.append('tar-native:do_populate_sysroot')
deps.append('fakeroot-native:do_populate_sysroot')
bb.data.setVarFlag('do_package_write_tar', 'depends', " ".join(deps), d)
}

View File

@ -52,7 +52,7 @@ python () {
# as inactive.
if pstage_allowed:
deps = bb.data.getVarFlag('do_setscene', 'depends', d) or ""
deps += " stagemanager-native:do_populate_staging"
deps += " stagemanager-native:do_populate_sysroot"
bb.data.setVarFlag('do_setscene', 'depends', deps, d)
policy = bb.data.getVar("BB_STAMP_POLICY", d, True)
@ -157,7 +157,7 @@ staging_helper () {
fi
}
PSTAGE_TASKS_COVERED = "fetch unpack munge patch configure qa_configure rig_locales compile sizecheck install deploy package populate_staging package_write_deb package_write_ipk package_write package_stage qa_staging"
PSTAGE_TASKS_COVERED = "fetch unpack munge patch configure qa_configure rig_locales compile sizecheck install deploy package populate_sysroot package_write_deb package_write_ipk package_write package_stage qa_staging"
SCENEFUNCS += "packagestage_scenefunc"
@ -259,21 +259,21 @@ python packagedstage_stampfixing_eventhandler() {
return NotHandled
}
populate_staging_preamble () {
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
fi
}
populate_staging_postamble () {
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
# 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}/staging
stage-manager -p ${STAGING_DIR} -c ${DEPLOY_DIR_PSTAGE}/stamp-cache-staging -u -d ${PSTAGE_TMPDIR_STAGE}/sysroots
exitcode=$?
if [ "$exitcode" != "5" -a "$exitcode" != "0" ]; then
exit $exitcode
@ -288,20 +288,20 @@ populate_staging_postamble () {
packagedstaging_fastpath () {
if [ "$PSTAGING_ACTIVE" = "1" ]; then
mkdir -p ${PSTAGE_TMPDIR_STAGE}/staging/
mkdir -p ${PSTAGE_TMPDIR_STAGE}/sysroots/
mkdir -p ${PSTAGE_TMPDIR_STAGE}/cross/
cp -fpPR ${SYSROOT_DESTDIR}/${STAGING_DIR}/* ${PSTAGE_TMPDIR_STAGE}/staging/ || /bin/true
cp -fpPR ${SYSROOT_DESTDIR}/${STAGING_DIR}/* ${PSTAGE_TMPDIR_STAGE}/sysroots/ || /bin/true
cp -fpPR ${SYSROOT_DESTDIR}/${CROSS_DIR}/* ${PSTAGE_TMPDIR_STAGE}/cross/ || /bin/true
fi
}
do_populate_staging[dirs] =+ "${DEPLOY_DIR_PSTAGE}"
python populate_staging_prehook() {
bb.build.exec_func("populate_staging_preamble", d)
do_populate_sysroot[dirs] =+ "${DEPLOY_DIR_PSTAGE}"
python populate_sysroot_prehook() {
bb.build.exec_func("populate_sysroot_preamble", d)
}
python populate_staging_posthook() {
bb.build.exec_func("populate_staging_postamble", d)
python populate_sysroot_posthook() {
bb.build.exec_func("populate_sysroot_postamble", d)
}
@ -444,9 +444,9 @@ python do_package_stage () {
}
#
# Note an assumption here is that do_deploy runs before do_package_write/do_populate_staging
# Note an assumption here is that do_deploy runs before do_package_write/do_populate_sysroot
#
addtask package_stage after do_package_write do_populate_staging before do_build
addtask package_stage after do_package_write do_populate_sysroot before do_build
do_package_stage_all () {
:

View File

@ -450,7 +450,7 @@ def patch_init(d):
addtask patch after do_unpack
do_patch[dirs] = "${WORKDIR}"
PATCHDEPENDENCY = "${PATCHTOOL}-native:do_populate_staging"
PATCHDEPENDENCY = "${PATCHTOOL}-native:do_populate_sysroot"
do_patch[depends] = "${PATCHDEPENDENCY}"
python patch_do_patch() {

View File

@ -5,7 +5,7 @@
ROOTFS_PKGMANAGE = "run-postinsts dpkg"
ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts"
do_rootfs[depends] += "dpkg-native:do_populate_staging apt-native:do_populate_staging"
do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot"
do_rootfs[recrdeptask] += "do_package_write_deb"
fakeroot rootfs_deb_do_rootfs () {

View File

@ -9,7 +9,7 @@ EXTRAOPKGCONFIG ?= ""
ROOTFS_PKGMANAGE = "opkg opkg-collateral ${EXTRAOPKGCONFIG}"
ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts"
do_rootfs[depends] += "opkg-native:do_populate_staging opkg-utils-native:do_populate_staging"
do_rootfs[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
do_rootfs[recrdeptask] += "do_package_write_ipk"
IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS}"
@ -164,7 +164,7 @@ python () {
flags = bb.data.getVarFlag('do_rootfs', 'recrdeptask', d)
flags = flags.replace("do_package_write_ipk", "")
flags = flags.replace("do_deploy", "")
flags = flags.replace("do_populate_staging", "")
flags = flags.replace("do_populate_sysroot", "")
bb.data.setVarFlag('do_rootfs', 'recrdeptask', flags, d)
bb.data.setVar('OPKG_PREPROCESS_COMMANDS', "package_generate_archlist\nipk_insert_feed_uris", d)
bb.data.setVar('OPKG_POSTPROCESS_COMMANDS', '', d)

View File

@ -6,10 +6,10 @@ ROOTFS_PKGMANAGE = "rpm yum"
ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts"
do_rootfs[depends] += "rpm-native:do_populate_staging yum-native:do_populate_staging createrepo-native:do_populate_staging fakechroot-native:do_populate_staging"
do_rootfs[depends] += "rpm-native:do_populate_sysroot yum-native:do_populate_sysroot createrepo-native:do_populate_sysroot fakechroot-native:do_populate_sysroot"
# Needed for update-alternatives
do_rootfs[depends] += "opkg-native:do_populate_staging"
do_rootfs[depends] += "opkg-native:do_populate_sysroot"
do_rootfs[recrdeptask] += "do_package_write_rpm"
@ -238,7 +238,7 @@ python () {
flags = bb.data.getVarFlag('do_rootfs', 'recrdeptask', d)
flags = flags.replace("do_package_write_rpm", "")
flags = flags.replace("do_deploy", "")
flags = flags.replace("do_populate_staging", "")
flags = flags.replace("do_populate_sysroot", "")
bb.data.setVarFlag('do_rootfs', 'recrdeptask', flags, d)
bb.data.setVar('RPM_PREPROCESS_COMMANDS', "rpm_insert_feed_uris", d)
bb.data.setVar('RPM_POSTPROCESS_COMMANDS', '', d)

View File

@ -147,6 +147,13 @@ def check_sanity(e):
if not abi.isdigit():
f = file(abifile, "w")
f.write(current_abi)
elif abi == "2" and current_abi == "3":
bb.note("Converting staging from layout version 2 to layout version 3")
os.system(bb.data.expand("mv ${TMPDIR}/staging ${TMPDIR}/sysroots", e.data))
os.system(bb.data.expand("ln -s sysroots ${TMPDIR}/staging", e.data))
os.system(bb.data.expand("cd ${TMPDIR}/stamps; for i in */*do_populate_staging; do new=`echo $i | sed -e 's/do_populate_staging/do_populate_sysroot/'`; mv $i $new; done", e.data))
f = file(abifile, "w")
f.write(current_abi)
elif (abi != current_abi):
# Code to convert from one ABI to another could go here if possible.
messages = messages + "Error, TMPDIR has changed ABI (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi)

View File

@ -34,7 +34,7 @@ EOF
}
EXPORT_FUNCTIONS do_sdl_install
addtask sdl_install after do_compile before do_populate_staging
addtask sdl_install after do_compile before do_populate_sysroot
SECTION = "x11/games"
SECTION_${PN}-opie = "opie/games"

View File

@ -4,4 +4,4 @@
# that breaks the format and have been previously discussed on the mailing list
# with general agreement from the core team.
#
OELAYOUT_ABI = "2"
OELAYOUT_ABI = "3"

View File

@ -250,7 +250,7 @@ D = "${WORKDIR}/image"
S = "${WORKDIR}/${BP}"
B = "${S}"
STAGING_DIR = "${TMPDIR}/staging"
STAGING_DIR = "${TMPDIR}/sysroots"
STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"

View File

@ -38,4 +38,4 @@ do_deploy() {
do_deploy[dirs] = "${S}"
addtask deploy before do_populate_staging after do_install
addtask deploy before do_populate_sysroot after do_install

View File

@ -43,4 +43,4 @@ do_deploy() {
do_deploy[dirs] = "${S}"
addtask deploy before do_populate_staging after do_install
addtask deploy before do_populate_sysroot after do_install

View File

@ -38,5 +38,5 @@ do_deploy() {
do_deploy[dirs] = "${S}"
addtask deploy before do_populate_staging after do_install
addtask deploy before do_populate_sysroot after do_install

View File

@ -19,4 +19,4 @@ do_deploy() {
do_deploy[dirs] = "${S}"
addtask deploy before do_populate_staging after do_install
addtask deploy before do_populate_sysroot after do_install

View File

@ -73,7 +73,7 @@ UCLIBC_STAGE_PREFIX = "${STAGING_DIR_HOST}${prefix}"
OEMAKE_NO_CC = "'OPTIMIZATION=' 'CPU_CFLAGS=${CFLAGS}' 'STRIPTOOL=true' 'LD=${LD}' \
'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' HOSTCFLAGS='-I${STAGING_INCDIR_NATIVE}'"
EXTRA_OEMAKE_task_do_populate_staging = "${OEMAKE_NO_CC}"
EXTRA_OEMAKE_task_do_populate_sysroot = "${OEMAKE_NO_CC}"
EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
KERNEL_SOURCE = "${STAGING_INCDIR}"

View File

@ -32,4 +32,4 @@ do_deploy() {
esac
}
addtask deploy before do_populate_staging after do_compile
addtask deploy before do_populate_sysroot after do_compile