Hi RP,
On 1/15/21 4:45 PM, Richard Purdie wrote:
On Fri, 2021-01-15 at 11:23 +0800, Yu, Mingli wrote:
From: Mingli Yu <mingli...@windriver.com>
When multilib enabled, there comes below error for packages which
inherit useradd bbclass randomly when build eSDK.
$ bitbake image-name -c populate_sdk_ext
Exception: subprocess.CalledProcessError: Command
'/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/lib32-recipe-sysroot/usr/bin/postinst-useradd-lib32-avahi'
returned non-zero exit status 1.
Subprocess output:
/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/recipe-sysroot-native/usr/sbin/useradd
Running useradd commands...
NOTE: lib32-avahi: Performing useradd with [--root
/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/recipe-sysroot
--system --home /run/avahi-daemon
--no-create-home --shell /bin/false --user-group
avahi]
useradd: Warning: missing or non-executable shell '/bin/false'
abort()ing pseudo client by server request. See
https://wiki.yoctoproject.org/wiki/Pseudo_Abort for more details on this.
Check logfile:
/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/pseudo//pseudo.log
ERROR: lib32-avahi: useradd command did not succeed.
ERROR: Logfile of failure stored in:
/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/temp/log.do_sdk_depends.20567
$ cat
/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/pseudo//pseudo.log
[snip]
path mismatch [1 link]: ino 26553244 db
'/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/recipe-sysroot/etc/group'
req
'/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/recipe-sysroot/etc/group.33605'.
[snip]
Check the PSEUDO_IGNORE_PATHS in [1], the recipe-sysroot part is
/prj/tmp-glibc/work/corei7-32-wrsmllib32-linux/lib32-avahi/0.8-r0/recipe-sysroot.
Use ${RECIPE_SYSROOT} for PSEUDO_IGNORE_PATHS to guarantee the
recipe-syroot part to be
/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/recipe-sysroot
to fix the above issue.
[1]
/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std/1.0-r5/lib32-recipe-sysroot/usr/bin/postinst-useradd-lib32-avahi
Signed-off-by: Mingli Yu <mingli...@windriver.com>
---
meta/conf/bitbake.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 96c1c62b10..1dc08344ca 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -686,7 +686,7 @@ SRC_URI = ""
PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}"
PSEUDO_SYSROOT = "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native"
-PSEUDO_IGNORE_PATHS =
"/usr/,/etc/,/lib,/dev/,/run/,${T},${WORKDIR}/recipe-sysroot,${SSTATE_DIR},${STAMPS_DIR},${WORKDIR}/pkgdata-sysroot,${TMPDIR}/sstate-control,${DEPLOY_DIR},${WORKDIR}/deploy-,${TMPDIR}/buildstats,${WORKDIR}/sstate-build-package_,${WORKDIR}/sstate-install-package_,${WORKDIR}/sstate-build-image_complete,${TMPDIR}/sysroots-components,${BUILDHISTORY_DIR},${TMPDIR}/pkgdata,${TOPDIR}/cache,${COREBASE}/scripts,${CCACHE_DIR}"
+PSEUDO_IGNORE_PATHS =
"/usr/,/etc/,/lib,/dev/,/run/,${T},${RECIPE_SYSROOT},${SSTATE_DIR},${STAMPS_DIR},${WORKDIR}/pkgdata-sysroot,${TMPDIR}/sstate-control,${DEPLOY_DIR},${WORKDIR}/deploy-,${TMPDIR}/buildstats,${WORKDIR}/sstate-build-package_,${WORKDIR}/sstate-install-package_,${WORKDIR}/sstate-build-image_complete,${TMPDIR}/sysroots-components,${BUILDHISTORY_DIR},${TMPDIR}/pkgdata,${TOPDIR}/cache,${COREBASE}/scripts,${CCACHE_DIR}"
This isn't correct since we're aiming to ignore both WORKDIR/recipe-
Will send out V2 to also ignore ${RECIPE_SYSROOT_NATIVE} altogether.
sysroot and WORKDIR/recipe-sysroot-native which the above does since
the paths can be thought of to end with "*".
I'm also confused by your mention of corei7-32-wrsmllib32-linux above
in:
/prj/tmp-glibc/work/corei7-32-wrsmllib32-linux/lib32-avahi/0.8-r0/recipe-sysroot.
since I thought you were working in:
/prj/tmp-glibc/work/intel_x86_64-wrs-linux/wrlinux-image-std
?
Steps to reproduce:
Add below logic to enable multilib and also install some package which
inherit useradd bbclass.
require conf/multilib.conf
MULTILIBS ?= "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 ?= "core2-32"
IMAGE_INSTALL_append += " bind lib32-bind openssh lib32-openssh dhcpcd
lib32-dhcpcd postfix lib32-postfix nfs-utils lib32-nfs-utils cronie
lib32-cronie dbus lib32-dbus systemd lib32-systemd rpcbind lib32-rpcbind"
And it fails when build extend sdk randomly.
$ bitbake core-image-minimal -c populate_sdk_ext
Exception: subprocess.CalledProcessError: Command
'/prj/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r5/lib32-recipe-sysroot/usr/bin/postinst-useradd-lib32-avahi'
returned non-zero exit status 1.
>> Subprocess output:
>>
/prj/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r5/recipe-sysroot-native/usr/sbin/useradd
>> Running useradd commands...
>> NOTE: lib32-avahi: Performing useradd with [--root
/prj/tmp/qemux86_64-poky-linux/core-image-minimal/1.0-r5/recipe-sysroot
--system --home /run/avahi-daemon
--no-create-home --shell /bin/false
--user-group avahi]
>> useradd: Warning: missing or non-executable shell '/bin/false'
>> abort()ing pseudo client by server request. See
https://wiki.yoctoproject.org/wiki/Pseudo_Abort for more details on this.
>> Check logfile:
/prj/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r5/pseudo//pseudo.log
>> ERROR: lib32-avahi: useradd command did not succeed.
>> ERROR: Logfile of failure stored in:
/prj/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r5/temp/log.do_sdk_depends.30554
Check the PSEUDO_IGNORE_PATHS in
/prj/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/lib32-recipe-sysroot/usr/bin/postinst-useradd-lib32-avahi,
and the recipe sysroot part is
/prj/tmp/work/core2-32-pokymllib32-linux/lib32-avahi/0.8-r0/recipe-sysroot.
And meanwhile check PSEUDO_IGNORE_PATHS in
/prj/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/bin/postinst-useradd-avahi,
the recipe sysroot part is
/prj/tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/recipe-sysroot.
So set ${RECIPE_SYSROOT} for PSEUDO_IGNORE_PATHS to fix the recipe
sysroot part is incorrect in multilib env.
Thanks,
Cheers,
Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#147016):
https://lists.openembedded.org/g/openembedded-core/message/147016
Mute This Topic: https://lists.openembedded.org/mt/79694117/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-