On Fri, 2019-07-05 at 09:30 +0800, Chen Qi wrote:
> For build-sysroots.bb, the xmlcatalog would not be in its
> staging directory. Causing the following error for eSDK.
> 
> ERROR: build-sysroots-1.0-r0 do_build_native_sysroot: Command 
> '/PATH/TO/IMAGE/testsdkext/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog'
>  returned non-zero exit status 127.
> ERROR: build-sysroots-1.0-r0 do_build_native_sysroot: Function failed: 
> do_build_native_sysroot
> 
> The problem could be reproduced by the following steps.
> 1. Add in local.conf:
>    IMAGE_INSTALL_append = " btrfs-tools"
>    DISTRO_FEATURES_append = " api-documentation"
>    INHERIT += "testsdk"
> 2. bitbake core-image-minimal -c populate_sdk_ext
> 3. bitbake core-image-minimal -c testsdkext
> 
> Signed-off-by: Chen Qi <[email protected]>
> ---
>  meta/classes/xmlcatalog.bbclass | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/meta/classes/xmlcatalog.bbclass b/meta/classes/xmlcatalog.bbclass
> index 075aef8..e805e7b 100644
> --- a/meta/classes/xmlcatalog.bbclass
> +++ b/meta/classes/xmlcatalog.bbclass
> @@ -5,6 +5,8 @@ XMLCATALOGS ?= ""
>  SYSROOT_PREPROCESS_FUNCS_append = " xmlcatalog_sstate_postinst"
>  
>  xmlcatalog_complete() {
> +     # In case of eSDK, build-sysroot does not have xmlcatalog in its 
> staging directory.
> +     [ "`which xmlcatalog`" = "" ] && exit 0
>       ROOTCATALOG="${STAGING_ETCDIR_NATIVE}/xml/catalog"
>       if [ ! -f $ROOTCATALOG ]; then
>               mkdir --parents $(dirname $ROOTCATALOG)

This seems rather risky since it leaves the sysroot in an unexpected
state and means that elsewhere in the code we now have to account for
postinst scripts which may or may not have run.

Whilst this fixes a bug I worry it may open up a whole new class of
even worse problems :(

Cheers,

Richard



-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to