aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2014-12-29 07:18:48 -0500
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-12-29 14:40:13 +0100
commit3d97b8d1e77f133eb725665752a6ec909a7584b2 (patch)
tree960a059e1c31ec96fe5250af009edcd7123560ef /src
parentbd0f362d2fad1dd5f28e762011888b5eabd21280 (diff)
LocalStore initialization: Don't die if build-users-group doesn't exist
See NixOS/nixpkgs@9245516
Diffstat (limited to 'src')
-rw-r--r--src/libstore/local-store.cc23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index 3ad80bc4e..1b3538316 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -258,18 +258,19 @@ LocalStore::LocalStore(bool reserveSpace)
struct group * gr = getgrnam(settings.buildUsersGroup.c_str());
if (!gr)
- throw Error(format("the group ‘%1%’ specified in ‘build-users-group’ does not exist")
+ printMsg(lvlError, format("warning: the group ‘%1%’ specified in ‘build-users-group’ does not exist")
% settings.buildUsersGroup);
-
- struct stat st;
- if (stat(settings.nixStore.c_str(), &st))
- throw SysError(format("getting attributes of path ‘%1%’") % settings.nixStore);
-
- if (st.st_uid != 0 || st.st_gid != gr->gr_gid || (st.st_mode & ~S_IFMT) != 01775) {
- if (chown(settings.nixStore.c_str(), 0, gr->gr_gid) == -1)
- throw SysError(format("changing ownership of path ‘%1%’") % settings.nixStore);
- if (chmod(settings.nixStore.c_str(), 01775) == -1)
- throw SysError(format("changing permissions on path ‘%1%’") % settings.nixStore);
+ else {
+ struct stat st;
+ if (stat(settings.nixStore.c_str(), &st))
+ throw SysError(format("getting attributes of path ‘%1%’") % settings.nixStore);
+
+ if (st.st_uid != 0 || st.st_gid != gr->gr_gid || (st.st_mode & ~S_IFMT) != 01775) {
+ if (chown(settings.nixStore.c_str(), 0, gr->gr_gid) == -1)
+ throw SysError(format("changing ownership of path ‘%1%’") % settings.nixStore);
+ if (chmod(settings.nixStore.c_str(), 01775) == -1)
+ throw SysError(format("changing permissions on path ‘%1%’") % settings.nixStore);
+ }
}
}