[OE-core] useradd changes to dbus, base-passwd

James Limbouris james at digitalmatter.com.au
Wed Oct 26 03:37:37 UTC 2011


> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> James Limbouris
> Sent: Wednesday, 26 October 2011 9:35 AM
> To: openembedded-core at lists.openembedded.org
> Subject: [OE-core] useradd changes to dbus, base-passwd
> 
> Hi,
> 
> Recent changes to dbus have broken some sdk building:
> 
> Missing or unbuildable dependency chain was: ['meta-toolchain-qte', 'task-qte-
> toolchain-host-nativesdk', 'qt4-tools-nativesdk', 'dbus-nativesdk', 'base-passwd-
> nativesdk']
> 
> I think the commit introducing the base-passed dependency is
> 46e6c3fa8034b12d178d605f3f5d7efe69671a13 (dbus: use useradd class to
> allow use in read-only filesystems).
> I'm not too clear on how useradd works, so I can't tell if simply adding
> BBCLASSEXTEND = "native nativesdk" to base-passwd is sufficient. I'd expect
> that this would cause dbus to add itself to the sdk sysroot's passwd (which
> previously didn't exist?). Seems harmless enough... I'm giving it a try now, but
> any advice or opinions would be appreciated.

It seems that adding BBCLASSEXTEND = "native nativesdk" to base-passwd and shadow-sysroot is not sufficient.
dbus itself will not build for nativesdk:

NOTE: package dbus-nativesdk-1.4.12-r1: task do_install: Started
ERROR: Function 'useradd_sysroot' failed (see /home/james/oe/build/tmp-eglibc/work/i686-nativesdk-ricasdk-linux/dbus-nativesdk-1.4.12-r1/temp/log.do_install.1735 for further information)
ERROR: Logfile of failure stored in: /home/james/oe/build/tmp-eglibc/work/i686-nativesdk-ricasdk-linux/dbus-nativesdk-1.4.12-r1/temp/log.do_install.1735
Log data follows:
| DEBUG: SITE files ['endian-little', 'bit-32', 'ix86-common', 'common-linux', 'common-glibc', 'i686-linux', 'common']
| + cd /home/james/oe/build/tmp-eglibc/work/i686-nativesdk-ricasdk-linux/dbus-nativesdk-1.4.12-r1/dbus-1.4.12
| + useradd_sysroot
| + export PSEUDO=/home/james/oe/build/tmp-eglibc/sysroots/i686-linux/usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/usr/bin/pseudo
| + PSEUDO=/home/james/oe/build/tmp-eglibc/sysroots/i686-linux/usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/usr/bin/pseudo
| + export PSEUDO_LOCALSTATEDIR=/home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux/usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/var/pseudo
| + PSEUDO_LOCALSTATEDIR=/home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux/usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/var/pseudo
| + D=/home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux
| + useradd_preinst
| + OPT=
| + SYSROOT=
| + test x/home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux '!=' x
| + SYSROOT=/home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux
| + OPT='--root /home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux'
| + GROUPADD_PARAM='-r netdev'
| + USERADD_PARAM='--system --home /usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/var/lib/dbus                        --no-create-home --user-group messagebus'
| + test 'x-r netdev' '!=' x
| + echo 'Running groupadd commands...'
| Running groupadd commands...
| ++ echo '-r netdev'
| ++ cut -d ';' -f 1
| + opts='-r netdev'
| ++ echo '-r netdev'
| ++ cut -d ';' -f 2-
| + remaining='-r netdev'
| + test 'x-r netdev' '!=' x
| ++ echo '-r netdev'
| ++ awk '{ print $NF }'
| + groupname=netdev
| ++ grep '^netdev:' /home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux/etc/group
| grep: /home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux/etc/group: No such file or directory
| ++ true
| + group_exists=
| + test x = x
| + eval /home/james/oe/build/tmp-eglibc/sysroots/i686-linux/usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/usr/bin/pseudo groupadd --root /home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux -r netdev
| ++ /home/james/oe/build/tmp-eglibc/sysroots/i686-linux/usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/usr/bin/pseudo groupadd --root /home/james/oe/build/tmp-eglibc/sysroots/i686-nativesdk-ricasdk-linux -r netdev
| /home/james/oe/build/tmp-eglibc/work/i686-nativesdk-ricasdk-linux/dbus-nativesdk-1.4.12-r1/temp/run.useradd_sysroot.1735: line 129: /home/james/oe/build/tmp-eglibc/sysroots/i686-linux/usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/usr/bin/pseudo: No such file or directory
| ERROR: Function 'useradd_sysroot' failed (see /home/james/oe/build/tmp-eglibc/work/i686-nativesdk-ricasdk-linux/dbus-nativesdk-1.4.12-r1/temp/log.do_install.1735 for further information)
NOTE: package dbus-nativesdk-1.4.12-r1: task do_install: Failed
ERROR: Task 1370 (virtual:nativesdk:/home/james/oe/sources/oe-core/meta/recipes-core/dbus/dbus_1.4.12.bb, do_install) failed with exit code '1'

Perhaps we should not inherit useradd when building for nativesdk? After all, the sdk sysroots have not had /etc/passwd in the past.

James





More information about the Openembedded-core mailing list