Yep, seems like a known bug
Also the bug exists if you merge in a binary package I believe?
Quite annoying - workarounds would be highly appreciated!
Ed
Shinkan wrote:
Hi everyone,
I posted this on gentoo-user initially, but someone answered and
advised to post this to embedded :
I wanted to submit this as a bug on bugzilla, but I must be sure there
is nothing that I miss.
Let's say I have a /target dir.
If I do 'emerge --root=/target <someport>' (cross-emerge), and that
<someport> is supposed to create users (like vixie-cron, clamav or
many others), users are not created on /target. I can verify that by
chrooting on /target and making something that requires this user
(such as launching clamd for clamav), or simply by looking at
/target/etc/passwd to see that there's no expected users.
Am I missing somethings or is this really a bug ?
Here is "Willie Wong" answer :
If you don't get a better answer here, you should ask the embedded
group. But I think it maybe a bug:
Looking at eutils.eclass, in function enewuser, it explicitly checks
for whether the shell specified is available in ${ROOT}, but when it
comes time to create the actual user, it calls the system useradd,
which I think will add the user to /etc, and not ${ROOT}/etc...
Though, I cannot right now think of how to actually change it so that
it will create the appropriate accounts in a modified ${ROOT}. AFAIK
useradd does not support this. It may require re-implementing useradd
in portage? Which will just be silly.
Perhaps ${ROOT} is not designed to be used the way you intend to use
it? It looks like you are building embedded or cross-compiled, right?
Maybe a work-around is to do everything in a CHROOT?
Anyway, ask gentoo-embedded to see if there's any work arounds, and
maybe ask gentoo-dev to clarify on what $ROOT is used for?
Thanks in advance.
--
Pierre.
"Sometimes when I'm talking, my words can't keep up with my thoughts.
I wonder why we think faster than we speak. Probably so we can think
twice." - Bill Watterson