> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> André Draszik
> Sent: den 4 september 2017 11:37
> To: [email protected]
> Subject: [OE-core] [PATCH] useradd-staticids: don't create username-
> group if gid is specified
>
> From: André Draszik <[email protected]>
>
> Adding distcc to an image, and having staticids enabled,
> doesn't work as it causes a a superfluous 'distcc' group
> being added using a conflicting GID, thus failing the
> build:
> | ERROR: distcc-3.2-r0 do_prepare_recipe_sysroot: distcc: groupadd command
> did not succeed.
>
> Compared to other recipes, the distcc recipe only
> specifies --gid for the primary group, and doesn't specify
> --no-user-group, but when --gid is given, it doesn't make
> sense to create a matching username-group in addition,
> even if --no-user-group was not specified, and 'useradd'
> actually complains if --gid and --user-group are given
> both.
>
> If only --gid is given, the current code in here
> effectively behaves as if --user-group was specified,
> taking the group-id of the username-group from the
> --gid parameter. This causes the error above, as we try
> to add a new group (distcc) with an existing group-id
> (nogroup).
>
> This is contrary to the comment in this file just above,
> contrary to what useradd can do, contrary to behaviour
> without the useradd-staticids bbclass, and non-intuitive.
>
> Change the code such that a username-group is only created
> if actually requested, of if a primary group using --gid
> was *not* specified.
>
> Signed-off-by: André Draszik <[email protected]>
> ---
> meta/classes/useradd-staticids.bbclass | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes/useradd-staticids.bbclass
> b/meta/classes/useradd-staticids.bbclass
> index ce4ac62ab5..1b61a8bf9b 100644
> --- a/meta/classes/useradd-staticids.bbclass
> +++ b/meta/classes/useradd-staticids.bbclass
> @@ -102,7 +102,7 @@ def update_useradd_static_config(d):
> # So if the implicit username-group creation is on, then the
> implicit groupname (LOGIN)
> # is used, and we disable the user_group option.
> #
> - user_group = uaargs.user_group is None or uaargs.user_group is
> True
> + user_group = uaargs.gid is None or uaargs.user_group is True
Hmm, I believe that should be:
user_group = uaargs.gid is None and uaargs.user_group is None or
uaargs.user_group is True
I.e., if neither --gid nor --user-group is specified, then it should
treat it as if --user-group was specified.
> uaargs.groupname = uaargs.LOGIN if user_group else uaargs.gid
> uaargs.groupid = field[3] or uaargs.gid or uaargs.groupname
>
> --
> 2.14.1
//Peter
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core