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

Scott Garman scott.a.garman at intel.com
Wed Oct 26 16:52:27 UTC 2011


On 10/26/2011 08:23 AM, Mark Hatle wrote:
> On 10/25/11 10:37 PM, James Limbouris wrote:
>>> -----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: 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




More information about the Openembedded-core mailing list