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

Reply via email to