summaryrefslogtreecommitdiff
path: root/meta/classes/gzipnative.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-21 10:59:58 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-21 11:05:19 +0100
commit16cb83d13bdb7e1abc88c18ec224efcd9ceef4f6 (patch)
tree77492e6286d348a279a7fd69741f9e43a746a401 /meta/classes/gzipnative.bbclass
parent7be8010186889cece97829025d97d94f21c1f2e5 (diff)
downloadopenembedded-core-16cb83d13bdb7e1abc88c18ec224efcd9ceef4f6.tar.gz
openembedded-core-16cb83d13bdb7e1abc88c18ec224efcd9ceef4f6.tar.bz2
openembedded-core-16cb83d13bdb7e1abc88c18ec224efcd9ceef4f6.zip
gzipnative: Ensure dependencies apply to do_unpack and do_populate_lic
| DEBUG: Executing python function sstate_task_postfunc| DEBUG: Staging files from /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/work/qemux86_64-poky-linux-gnux32/core-image-minimal/1.0-r0/license-destdir to /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/deploy/licenses| NOTE: Using umask 002 (not 22) for sstate packaging| DEBUG: Preparing tree /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/work/qemux86_64-poky-linux-gnux32/core-image-minimal/1.0-r0/license-destdir for packaging at /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/work/qemux86_64-poky-linux-gnux32/core-image-minimal/1.0-r0/sstate-build-populate-lic/license-destdir| NOTE: Removing hardcoded paths from sstate package: 'find /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/work/qemux86_64-poky-linux-gnux32/core-image-minimal/1.0-r0/sstate-build -populate-lic/ \( -name "*.la" -o -name "*-config" -o -name "*_config" \) -type f | xargs grep -l -e '/srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/sysroots/qemux86-64' | tee /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/work/qemux86_64-poky-linux-gnux32/core-image-minimal/1.0-r0/sstate-build-populate-lic/fixmepath | xargs --no-run-if-empty sed -i -e 's:/srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/sysroots/qemux86-64:FIXMESTAGINGDIRHOST:g'' | DEBUG: Executing shell function sstate_create_package | gzip: /lib64/libz.so.1: version `ZLIB_1.2.5.1' not found (required by gzip) | tar: Child returned status 1 | tar: Error is not recoverable: exiting now | WARNING: /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/work/qemux86_64-poky-linux-gnux32/core-image-minimal/1.0-r0/temp/run.sstate_create_package.20384:1 exit 2 from | tar --ignore-failed-read -czf $TFILE license-destdir | DEBUG: Python function sstate_task_postfunc finished | ERROR: Function failed: sstate_create_package (log file is located at /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-x32/build/build/tmp/work/qemux86_64-poky-linux-gnux32/core-image-minimal/1.0-r0/temp/log.do_populate_lic.20384) NOTE: recipe core-image-minimal-1.0-r0: task do_populate_lic: Failed Imagine: pigz-native is used from sstate. zlib-native is getting rebuilt. pigz-native has some special handling to ensure its not used until the system is ready. This is through a class and installing into a subdir of PATH which only gets added in when we believe its available. We use pigz-native in the image generation code and its in DEPENDS. DEPENDS are guaranteed available for do_configure. do_populate_lic can run before do_configure so the DEPENDS isn't met and I think this is our corner case.I suspect ways of fixing this are to either: a) force do_populate_lic after do_configure everywhere b) statically link pigz-native c) add in an explicit dependency to gzipnative.bbclass forcing do_populate_lic after do_configure. If do_unpack handled a tar file in an image, it would also be at risk of course. Looking at each, a) is overkill and our dependency tree is nasty enough already. b) sounds nice but is also risky since what happens if the gzip binary is half copied when we run it. Our hardlink copying should deal with that but I'm still nervous. This leaves us with c) so we could do: do_unpack[depends] += "gzip-native:do_populate_sysroot" The reproducer is: bitbake pigz-native bitbake zlib-native -c clean bitbake core-image-minimal -c populate_lic --no-setscene -f however your system needs to have an old version of zlib on it which pigz-native can't run against. The line above fixes it. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/gzipnative.bbclass')
-rw-r--r--meta/classes/gzipnative.bbclass2
1 files changed, 2 insertions, 0 deletions
diff --git a/meta/classes/gzipnative.bbclass b/meta/classes/gzipnative.bbclass
index 007e32c690..326cbbb6f6 100644
--- a/meta/classes/gzipnative.bbclass
+++ b/meta/classes/gzipnative.bbclass
@@ -1,3 +1,5 @@
EXTRANATIVEPATH += "pigz-native gzip-native"
DEPENDS += "gzip-native"
+# tar may get run by do_unpack or do_populate_lic which could call gzip
+do_unpack[depends] += "gzip-native:do_populate_sysroot"