Hey! Leo Famulari <l...@famulari.name> skribis:
> I updated my Guix installation on a Debian system to the latest > core-updates (8b9dbdf36fa89b7eb02). > > After restarting the guix-daemon, anything requiring a build fails like > this: > > # guix package --rollback > guix package: error: build failed: the group `guixbuild' specified in > `build-users-group' does not exist [...] > [pid 21672] socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3 > [pid 21672] connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, > 110) = -1 ENOENT (No such file or directory) > [pid 21672] close(3) = 0 > [pid 21672] socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3 > [pid 21672] connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, > 110) = -1 ENOENT (No such file or directory) > [pid 21672] close(3) = 0 > [pid 21672] futex(0x7f49fbe86190, FUTEX_WAKE_PRIVATE, 2147483647) = 0 > [pid 21672] rt_sigaction(SIGIO, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], > sa_flags=SA_RESTORER, sa_restorer=0x7f49fb8f2250}, {sa_handler=0x4096f0, > sa_mask=~[KILL STOP RTMIN RT_1], sa_flags=SA_RESTORER, > sa_restorer=0x7f49fb8f2250}, 8) = 0 > [pid 21672] write(4, "ptxc\0\0\0\0E\0\0\0\0\0\0\0the group `guixb"..., 96) = > 96 > [pid 21672] exit_group(0) = ? > [pid 21672] +++ exited with 0 +++ I suppose it works if you start nscd on this Debian machine (as is the case on GuixSD), right? The question is why isn’t guix-daemon falling back to loading libnss_files and reading /etc/groups directly. How is this guix-daemon built? What libc is it linked against? Does /etc/nsswitch.conf exist and what does it contain? On my GuixSD it seems to work as expected: --8<---------------cut here---------------start------------->8--- $ /gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/bin/getent group guixbuild guixbuild:x:30000:guixbuilder01,guixbuilder02,guixbuilder03,guixbuilder04,guixbuilder05,guixbuilder06,guixbuilder07,guixbuilder08,guixbuilder09,guixbuilder10 $ sudo herd stop nscd Service nscd has been stopped. $ /gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/bin/getent group guixbuild guixbuild:x:30000:guixbuilder01,guixbuilder02,guixbuilder03,guixbuilder04,guixbuilder05,guixbuilder06,guixbuilder07,guixbuilder08,guixbuilder09,guixbuilder10 $ strace /gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/bin/getent group guixbuild [...] socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3 connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) close(3) = 0 socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3 connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) close(3) = 0 open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0444, st_size=207, ...}) = 0 read(3, "group:\tcompat [NOTFOUND=return] "..., 4096) = 207 read(3, "", 4096) = 0 close(3) = 0 openat(AT_FDCWD, "/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/lib/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.105-g0890d5379c/lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\"\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0555, st_size=56928, ...}) = 0 mmap(NULL, 2168632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f420943d000 mprotect(0x7f4209448000, 2093056, PROT_NONE) = 0 mmap(0x7f4209647000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa000) = 0x7f4209647000 mmap(0x7f4209649000, 22328, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f4209649000 close(3) = 0 mprotect(0x7f4209647000, 4096, PROT_READ) = 0 open("/etc/group", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=666, ...}) = 0 read(3, "root:x:0:\nwheel:x:999:ludo\nusers"..., 4096) = 666 close(3) = 0 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 10), ...}) = 0 write(1, "guixbuild:x:30000:guixbuilder01,"..., 158guixbuild:x:30000:guixbuilder01,guixbuilder02,guixbuilder03,guixbuilder04,guixbuilder05,guixbuilder06,guixbuilder07,guixbuilder08,guixbuilder09,guixbuilder10 ) = 158 exit_group(0) = ? +++ exited with 0 +++ --8<---------------cut here---------------end--------------->8--- Ludo’.