Subject: Re: bug#17786: group specified in `build-users-group' does not exist

From: [email-masked] (Ludovic Courtès)
Date: Mon, 16 Jun 2014 13:53:04 +0200

Tomas Cech <[email-masked]> skribis:

> On Mon, Jun 16, 2014 at 09:48:39AM +0200, Ludovic Courtès wrote:
>>Hello,
>>
>>Tomas Cech <[email-masked]> skribis:
>>
>>> guix package: error: build failed: the group `"guix-builders"' specified in
>>> `build-users-group' does not exist
>>>
>>> # grep guix /etc/passwd
>>> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin
>>> guix-builder2:x:62:479:Guix builder 2:/var/empty:/sbin/nologin
>>> guix-builder3:x:63:479:Guix builder 3:/var/empty:/sbin/nologin
>>> guix-builder4:x:64:479:Guix builder 4:/var/empty:/sbin/nologin
>>> guix-builder5:x:65:479:Guix builder 5:/var/empty:/sbin/nologin
>>> # grep guix /etc/group
>>> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
>>>
>>> Nothing seems to be obviously wrong, but guix ends with this error.
>>
>>Hmm, what does “getent group guix-builders” return?
>>And “getent passwd guix-builder1”?
>
> # getent group guix-builders
> guix-builders:x:479:guix-builder1,guix-builder2,guix-builder3,guix-builder4,guix-builder5
> # getent passwd guix-builder1
> guix-builder1:x:61:479:Guix builder 1:/var/empty:/sbin/nologin

So that’s all good.

The daemon simply does that (build.cc):

--8<---------------cut here---------------start------------->8---
    /* Get the members of the build-users-group. */
    struct group * gr = getgrnam(settings.buildUsersGroup.c_str());
    if (!gr)
        throw Error(format("the group `%1%' specified in `build-users-group' does not exist")
            % settings.buildUsersGroup);
--8<---------------cut here---------------end--------------->8---

Can you try getgrnam("guix-builders") in C or some other language (from
Guile: (getgrnam "guix-builders")) ?

Does it make a difference if nscd is stopped or restarted?

Thanks,
Ludo’.