Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Mike Looijmans <mike.looijmans@topic.nl>
To: Mark Hatle <mark.hatle@windriver.com>,
	 openembedded-core@lists.openembedded.org
Subject: Re: Living without shadow
Date: Sat, 17 May 2014 08:41:29 +0200	[thread overview]
Message-ID: <53770499.50805@topic.nl> (raw)
In-Reply-To: <5376498C.5060507@windriver.com>

On 05/16/2014 07:23 PM, Mark Hatle wrote:
> On 5/16/14, 10:04 AM, Mike Looijmans wrote:
>> Any package that wants to add user accounts (e.g. dbus) automatically
>> installs the "shadow" package into the image. This appears to be done by
>> adduser.bbclass.
>>
>> We want to keep it small, and can easily live without the shadow
>> package. Busybox already provides adduser and similar commands, and also
>> handles login etc. just fine. So I tried adding a line
>> RPROVIDES_busybox+="shadow"
>> to the busybox recipe. I would expect to have an alternative provider
>> now, and no more forces installation of the big shadow.
>>
>> The result was much more surprising though. Letting busybox provide
>> "shadow" resulted in failing to build the rootfs. The "adduser" command
>> did not work on the host. This was very unexpected - does shadow deliver
>> something into the sysroot that adduser.bbclass needs?
>>
>> How can I get rid of the shadow package?
>>
>
> Lets expand that briefly, from the current version of useradd.bbclass:
>
> DEPENDS_append = "${USERADDDEPENDS}"
> USERADDDEPENDS = " base-passwd shadow-native shadow-sysroot shadow"
> USERADDDEPENDS_class-cross = ""
> USERADDDEPENDS_class-native = ""
> USERADDDEPENDS_class-nativesdk = ""
>
> What this does is for target packages, base-passwd [the password file],
> shadow-native [tools needed to configure passwords at install time],
> shadow-sysroot [shadow components needed to update the sysroot, and
> shadow [target utilities] are added to the -depends-.
>
> The DEPENDS are only build-time requirements, not runtime.
>
> The system further requires RDEPENDS:
>
>          # RDEPENDS setup
>          rdepends = d.getVar("RDEPENDS_%s" % pkg, True) or ""
>          rdepends += ' ' + d.getVar('MLPREFIX') + 'base-passwd'
>          rdepends += ' ' + d.getVar('MLPREFIX') + 'shadow'
>          # base-files is where the default /etc/skel is packaged
>          rdepends += ' ' + d.getVar('MLPREFIX') + 'base-files'
>          d.setVar("RDEPENDS_%s" % pkg, rdepends)
>
> For any package that has a call to a groupadd, useradd or groupmems,
> those dependencies are added.  We can't install the package onto the
> target without base-passwd (passwd/group file), shadow (utilities needed
> by the package install scripting) and base-files (/etc/skel is needed to
> add new users) being installed.
>
> So with that said, what is required in the end is something that honors
> the necessary 'groupadd', 'useradd' and 'groupmems' executables.  If
> bitbake can provide them, then your RPROVIDES_busybox = "shadow" should
> work fine.  (bitbake also provides 'su', may provide 'login', and
> 'chpasswd'.)
>
> If you are getting rootfs creation issues, then I need a reference to
> the error messages to have an idea of what may be needed.
>

At the end I see this:

Collected errors:
  * preinst_configure: Aborting installation of dbus-1.
  * opkg_install_cmd: Cannot install package libavahi-client3.
  * preinst_configure: Aborting installation of rpcbind.
  * opkg_install_cmd: Cannot install package packagegroup-base.
  * preinst_configure: Aborting installation of rpcbind.
  * opkg_install_cmd: Cannot install package nfs-utils-client.
  * preinst_configure: Aborting installation of avahi-daemon.
  * opkg_install_cmd: Cannot install package avahi-daemon.

The logs seems to be "interlaced", but here's a summary of the things I 
cound find. If you want, I can send the full log.


Downloading 
file:/media/work/openpli-next/build/tmp/deploy/ipk/mips32el/base-passwd_3.5.29-r0_mips32el.ipk.
  Removing any system startup links for dbus-1 ...
Running groupadd commands...
NOTE: Performing groupadd with [--root 
/media/work/openpli-next/build/tmp/work/et10000-oe-linux/my-image/1.0-r0/rootfs 
-r netdev] and 10 times of retry
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
WARNING: groupadd command did not succeed. Retrying...
ERROR: Tried running groupadd command 10 times without scucess, giving up

  Removing any system startup links for rpcbind ...
Running useradd commands...
NOTE: Performing useradd with [--root 
/media/work/openpli-next/build/tmp/work/et10000-oe-linux/my-image/1.0-r0/rootfs 
--system --no-create-home                        --shell /bin/false 
--user-group rpc] and 10 times of retry
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
WARNING: useradd command did not succeed. Retrying...
ERROR: Tried running useradd command 10 times without scucess, giving up





-- 
Mike Looijmans


      reply	other threads:[~2014-05-17  6:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-16 15:04 Living without shadow Mike Looijmans
2014-05-16 17:23 ` Mark Hatle
2014-05-17  6:41   ` Mike Looijmans [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53770499.50805@topic.nl \
    --to=mike.looijmans@topic.nl \
    --cc=mark.hatle@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox