aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-07-21 14:45:24 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-07-21 14:45:24 +0200
commit1993b10d1169b04b83443a9ef5d4e3e38667afeb (patch)
tree29b197528040b8145577555ea3138a01df89fe36
parent0a2bee307b20411f5b0dda0c662b1f9bb9e0e131 (diff)
Fix Darwin build
Turns out getgrouplist() is not POSIX. http://hydra.nixos.org/build/23881243
-rw-r--r--src/libstore/build.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 46d2841dc..e7696e44e 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -543,6 +543,7 @@ void UserLock::acquire()
throw Error(format("the Nix user should not be a member of ‘%1%’")
% settings.buildUsersGroup);
+#if __linux__
/* Get the list of supplementary groups of this build user. This
is usually either empty or contains a group such as "kvm". */
supplementaryGIDs.resize(10);
@@ -553,6 +554,7 @@ void UserLock::acquire()
throw Error(format("failed to get list of supplementary groups for ‘%1%’") % pw->pw_name);
supplementaryGIDs.resize(ngroups);
+#endif
return;
}
@@ -2372,7 +2374,8 @@ void DerivationGoal::runChild()
if (buildUser.enabled()) {
/* Preserve supplementary groups of the build user, to allow
admins to specify groups such as "kvm". */
- if (setgroups(buildUser.getSupplementaryGIDs().size(),
+ if (!buildUser.getSupplementaryGIDs().empty() &&
+ setgroups(buildUser.getSupplementaryGIDs().size(),
buildUser.getSupplementaryGIDs().data()) == -1)
throw SysError("cannot set supplementary groups of build user");