Bug 10977 - quilt missing in recipe-sysroot-native for build with slightly older bitbake revision
Summary: quilt missing in recipe-sysroot-native for build with slightly older bitbake ...
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Undecided normal
Target Milestone: ---
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2017-01-26 20:31 UTC by Martin Jansa
Modified: 2017-01-27 12:04 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Jansa 2017-01-26 20:31:18 UTC
Long story short:

And the root cause of this is slightly older revision of bitbake (both oe-core and bitbake are from master branch).

So I belive that bitbake version should be bumped and oe-core should require this newer bitbake to prevent random errors like this.

Bitbake revision where it was failing like this:
518b901 cookerdata: Convert multiconfig to use BB_CURRENT_MC

Long version:
Latest bitbake world build on jenkins failed for all recipes which have some .patch files in SRC_URI with error like this:

NOTE: Applying patch '0001-PATCH-Disable-the-test-to-convert-euc-jp.patch' (openembedded-core/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch)
ERROR: Command Error: 'quilt --quiltrc /home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0  Output:
/bin/sh: 1: quilt: not found
DEBUG: Python function patch_do_patch finished

The quilt-native was correctly built before gettext-minimal-native do_patch was started and it's staged in sysroot-components:

OE qemux86@ ~/oe/world/shr-core $ find tmp-glibc/ -name quilt
tmp-glibc/sysroots-components/x86_64/quilt-native/etc/bash_completion.d/quilt
tmp-glibc/sysroots-components/x86_64/quilt-native/usr/bin/quilt
tmp-glibc/sysroots-components/x86_64/quilt-native/usr/share/quilt
tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/sysroot-destdir/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/recipe-sysroot-native/usr/share/quilt
tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/sysroot-destdir/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/recipe-sysroot-native/usr/bin/quilt
tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/sysroot-destdir/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/recipe-sysroot-native/etc/bash_completion.d/quilt

But recipe-sysroot and recipe-sysroot-native are empty in gettext-minimal-native:

OE qemux86@ ~/oe/world/shr-core $ find /home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot*
/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot
/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot-native
/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot-native/installeddeps

quilt-native is also shown correctly in bitbake -e gettext-minimal-native:
#
# $PATCHDEPENDENCY
#   set /home/jenkins/oe/world/shr-core/openembedded-core/meta/classes/patch.bbclass:6
#     "${PATCHTOOL}-native:do_populate_sysroot"
PATCHDEPENDENCY="quilt-native:do_populate_sysroot"


/oe/world/shr-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/temp/log.do_prepare_recipe_sysroot shows only this:
DEBUG: Executing python function do_prepare_recipe_sysroot
DEBUG: Executing python function extend_recipe_sysroot
NOTE: Direct dependencies are []
DEBUG: Python function extend_recipe_sysroot finished
DEBUG: Python function do_prepare_recipe_sysroot finished

And in the build where this works fine I see:
OE qemux86@ ~/build/oe-core $ find tmp-glibc/ -name quilt
tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/sysroot-destdir/OE/build/oe-core/tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/recipe-sysroot-native/usr/share/quilt
tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/sysroot-destdir/OE/build/oe-core/tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/recipe-sysroot-native/usr/bin/quilt
tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/sysroot-destdir/OE/build/oe-core/tmp-glibc/work/x86_64-linux/quilt-native/0.65-r0/recipe-sysroot-native/etc/bash_completion.d/quilt
tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot-native/etc/bash_completion.d/quilt
tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot-native/usr/bin/quilt
tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot-native/usr/share/quilt
tmp-glibc/work/sysroots-components/x86_64/quilt-native/etc/bash_completion.d/quilt
tmp-glibc/work/sysroots-components/x86_64/quilt-native/usr/bin/quilt
tmp-glibc/work/sysroots-components/x86_64/quilt-native/usr/share/quilt

There is no temp/log.do_prepare_recipe_sysroot, but at the begining of temp/log.do_patch I see:
DEBUG: Executing python function extend_recipe_sysroot
NOTE: Direct dependencies are ['/OE/build/oe-core/openembedded-core/meta/recipes-devtools/quilt/quilt-native_0.65.bb:do_populate_sysroot']
NOTE: sed -e 's:^[^/]*/:/OE/build/oe-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot-native/:g' /OE/build/oe-core/tmp-glibc/sysroots-components/x86_64/quilt-native/fixmepath | xargs sed -i -e 's:FIXMESTAGINGDIRTARGET:/OE/build/oe-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot:g; s:FIXMESTAGINGDIRHOST:/OE/build/oe-core/tmp-glibc/work/x86_64-linux/gettext-minimal-native/0.19.8.1-r0/recipe-sysroot-native:g' -e 's:FIXME_PKGDATA_DIR:/OE/build/oe-core/tmp-glibc/pkgdata/qemux86:g'
DEBUG: Python function extend_recipe_sysroot finished
Comment 1 Martin Jansa 2017-01-26 21:13:58 UTC
The required bitbake commit is:
4dcd0e5 event/ast: Add RecipeTaskPreProcess event before task finalisation
Comment 2 Ross Burton 2017-01-26 22:19:25 UTC
Richard, can we get a bump of bitbake version so we can require it in oe?
Comment 3 Ross Burton 2017-01-27 12:04:15 UTC
Version bumped (bitbake 2a309cd20cddf3d2258bd00ad06b26452e6cc043) and dependency added (oe-core 3a617a4c66941cecbdccb6f410e1b0d8bfde9845).