On 10/26/2011 08:23 AM, Mark Hatle wrote:
On 10/25/11 10:37 PM, James Limbouris wrote:
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of
James Limbouris
Sent: Wednesday, 26 October 2011 9:35 AM
To: [email protected]
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: 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.
The useradd class should only be used in a target build. Neither nativesdk or
native have a reasonable set of actions with useradd.
I am a bit confused as to why we are building dbus in a nativesdk situation. I
would have thought that we'd be forced to use the host system's version of dbus
for compatibility sake. Perhaps this is the root of the problem -- or I'm
mistaken and we do need to build it -- in that case we need to avoid including
useradd with non-target builds.
Grepping through our classes, it looks like I can detect the nativesdk
within useradd.bbclass by checking for
bb.data.inherits_class('nativesdk', d).
I've filed a bug for this and will develop a patch to ensure useradd is
becomes a no-op for nativesdk builds:
http://bugzilla.pokylinux.org/show_bug.cgi?id=1702
Thanks for reporting this!
Scott
--
Scott Garman
Embedded Linux Engineer - Yocto Project
Intel Open Source Technology Center
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core