From f7a04d93f8ef43d56809dc7171b8e681982e2b51 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Wed, 28 Dec 2016 02:49:22 +0200 Subject: [PATCH 2/2] daemon: Avoid killing issues for the Hurd. This allows for native builds on the Hurd, doing sudo ./pre-inst-env guix-daemon --disable-chroot --build-users-group=guixbuild & ./pre-inst-env guix build hello XXX This works around ./pre-inst-env guix build -e '(@@ (gnu packages commencement) binutils-boot0)' --no-offload phase `compress-documentation' succeeded after 0.4 seconds error: cannot kill processes for uid `999': Operation not permitted guix build: error: cannot kill processes for uid `999': failed with exit code 1 * nix/libutil/util.cc (killUser)[__GNU__]: Avoid wait failure. --- nix/libutil/util.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc index fb2dfad1f7..df2cb1eb09 100644 --- a/nix/libutil/util.cc +++ b/nix/libutil/util.cc @@ -872,9 +872,11 @@ void killUser(uid_t uid) _exit(0); }); +#if !__GNU__ int status = pid.wait(true); if (status != 0) throw Error(format("cannot kill processes for uid `%1%': %2%") % uid % statusToString(status)); +#endif /* !!! We should really do some check to make sure that there are no processes left running under `uid', but there is no portable -- 2.24.0