bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Tomas Cech
Subject: bug#17786: group specified in `build-users-group' does not exist
Date: Tue, 17 Jun 2014 12:04:49 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Hello,

On Tue, Jun 17, 2014 at 11:57:16AM +0200, Ludovic Courtès wrote:
Hello,

Please keep address@hidden Cc’d.

Tomas Cech <address@hidden> skribis:

On Mon, Jun 16, 2014 at 01:52:36PM +0200, Ludovic Courtès wrote:
Tomas Cech <address@hidden> skribis:

On Mon, Jun 16, 2014 at 09:48:39AM +0200, Ludovic Courtès wrote:
Hello,

Tomas Cech <address@hidden> 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")) ?

scheme@(guile-user)> (getgrnam "guix-builders")
$2 = #("guix-builders" "x" 479 ("guix-builder1" "guix-builder2" "guix-builder3" 
"guix-builder4" "guix-builder5"))

Then there’s something weird: Guile’s getgrnam directly corresponds to
libc’s getgrnam(3), which is what guix-daemon uses in the snippet above.

Oh, I see the error message you gave above reads:

 the group `"guix-builders"'

Note the extra double quotes.

Could it be that the script that launches guix-daemon does something
that amounts to:

 guix-daemon '--build-users-group="guix-builders"'

That is, it leaves the double quotes as is in the argument?

It seems to be that case. Thank you and sorry for the noise...

Best regards,

Tomas

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]