janneke pushed a commit to branch wip-hurd
in repository guix.
commit c32b64950972a459af7192abd7a8bc9619c013e9
Author: Manolis Ragkousis <[email protected]>
AuthorDate: Wed Dec 28 02:49:22 2016 +0200
daemon: Workaround 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
* nix/libstore/build.cc (DerivationGoal::startBuilder)[__GNU__]: Allow
non-chrooted build.
* nix/libutil/util.cc (killUser)[__GNU__]: Avoid wait failure.
---
nix/libstore/build.cc | 2 +-
nix/libutil/util.cc | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 17e92c6..f3787cd 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -1824,7 +1824,7 @@ void DerivationGoal::startBuilder()
}
if (useChroot) {
-#if CHROOT_ENABLED
+#if CHROOT_ENABLED || __GNU__
/* Create a temporary directory in which we set up the chroot
environment using bind-mounts. We put it in the store
to ensure that we can create hard-links to non-directory
diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc
index fb2dfad..df2cb1e 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