mirror of
https://git.yoctoproject.org/poky
synced 2026-04-27 21:32:13 +02:00
staging_populate_sysroot_dir() collects postinsts from the sysroot and executes them. These postinsts, in turn, may call binaries that are only available from the sysroot. This works fine with recipe-specific sysroots, as all necessary paths are already in PATH, but breaks down in this recipe which imitates the old global sysroot way but doesn't adjust the PATH to include the binary paths from global sysroot. To reproduce the failure: $ bitbake docbook-xml-dtd4-native $ bitbake -c build_native_sysroot build-sysroots ... Exception: subprocess.CalledProcessError: Command '/home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog' returned non-zero exit status 127. Subprocess output: /home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog: 5: /home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog: xmlcatalog: not found /home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog: 8: /home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog: xmlcatalog: not found (From OE-Core rev: 6b5f7bda4204d45cd29670cefcd53dc5da031095) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
43 lines
1.4 KiB
BlitzBasic
43 lines
1.4 KiB
BlitzBasic
INHIBIT_DEFAULT_DEPS = "1"
|
|
LICENSE = "MIT"
|
|
|
|
STANDALONE_SYSROOT = "${STAGING_DIR}/${MACHINE}"
|
|
STANDALONE_SYSROOT_NATIVE = "${STAGING_DIR}/${BUILD_ARCH}"
|
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
EXCLUDE_FROM_WORLD = "1"
|
|
|
|
inherit nopackages
|
|
deltask fetch
|
|
deltask unpack
|
|
deltask patch
|
|
deltask prepare_recipe_sysroot
|
|
deltask populate_lic
|
|
deltask configure
|
|
deltask compile
|
|
deltask install
|
|
deltask populate_sysroot
|
|
|
|
python do_build_native_sysroot () {
|
|
targetsysroot = d.getVar("STANDALONE_SYSROOT")
|
|
nativesysroot = d.getVar("STANDALONE_SYSROOT_NATIVE")
|
|
import os
|
|
os.environ['PATH'] = "%s/bin:%s/usr/bin:%s" % (nativesysroot, nativesysroot, os.environ['PATH'])
|
|
staging_populate_sysroot_dir(targetsysroot, nativesysroot, True, d)
|
|
}
|
|
do_build_native_sysroot[cleandirs] = "${STANDALONE_SYSROOT_NATIVE}"
|
|
do_build_native_sysroot[nostamp] = "1"
|
|
addtask do_build_native_sysroot before do_build
|
|
|
|
python do_build_target_sysroot () {
|
|
targetsysroot = d.getVar("STANDALONE_SYSROOT")
|
|
nativesysroot = d.getVar("STANDALONE_SYSROOT_NATIVE")
|
|
import os
|
|
os.environ['PATH'] = "%s/bin:%s/usr/bin:%s" % (nativesysroot, nativesysroot, os.environ['PATH'])
|
|
staging_populate_sysroot_dir(targetsysroot, nativesysroot, False, d)
|
|
}
|
|
do_build_target_sysroot[cleandirs] = "${STANDALONE_SYSROOT}"
|
|
do_build_target_sysroot[nostamp] = "1"
|
|
addtask do_build_target_sysroot before do_build
|
|
|
|
do_clean[cleandirs] += "${STANDALONE_SYSROOT} ${STANDALONE_SYSROOT_NATIVE}"
|