aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/builtins/fetchurl.cc4
-rw-r--r--src/libstore/daemon.cc19
-rw-r--r--src/libstore/globals.cc18
-rw-r--r--src/libstore/remote-store.cc1
4 files changed, 22 insertions, 20 deletions
diff --git a/src/libstore/builtins/fetchurl.cc b/src/libstore/builtins/fetchurl.cc
index b28eb01d0..69a9f993f 100644
--- a/src/libstore/builtins/fetchurl.cc
+++ b/src/libstore/builtins/fetchurl.cc
@@ -13,11 +13,11 @@ void builtinFetchurl(const BasicDerivation & drv, const std::string & netrcData,
this to be stored in a file. It would be nice if we could just
pass a pointer to the data. */
if (netrcData != "") {
- settings.netrcFile = "netrc";
+ settings.netrcFile.override("netrc");
writeFile(settings.netrcFile, netrcData, 0600);
}
- settings.caFile = "ca-certificates.crt";
+ settings.caFile.override("ca-certificates.crt");
writeFile(settings.caFile, caFileData, 0600);
auto getAttr = [&](const std::string & name) {
diff --git a/src/libstore/daemon.cc b/src/libstore/daemon.cc
index a9239197b..93b405c01 100644
--- a/src/libstore/daemon.cc
+++ b/src/libstore/daemon.cc
@@ -195,15 +195,15 @@ struct ClientSettings
void apply(TrustedFlag trusted)
{
- settings.keepFailed = keepFailed;
- settings.keepGoing = keepGoing;
- settings.tryFallback = tryFallback;
+ settings.keepFailed.override(keepFailed);
+ settings.keepGoing.override(keepGoing);
+ settings.tryFallback.override(tryFallback);
nix::verbosity = verbosity;
- settings.maxBuildJobs.assign(maxBuildJobs);
- settings.maxSilentTime = maxSilentTime;
+ settings.maxBuildJobs.override(maxBuildJobs);
+ settings.maxSilentTime.override(maxSilentTime);
settings.verboseBuild = verboseBuild;
- settings.buildCores = buildCores;
- settings.useSubstitutes = useSubstitutes;
+ settings.buildCores.override(buildCores);
+ settings.useSubstitutes.override(useSubstitutes);
for (auto & i : overrides) {
auto & name(i.first);
@@ -225,12 +225,13 @@ struct ClientSettings
else
warn("ignoring untrusted substituter '%s', you are not a trusted user.\n"
"Run `man nix.conf` for more information on the `substituters` configuration option.", s);
- res = subs;
+ res.override(subs);
return true;
};
try {
- if (name == "ssh-auth-sock") // obsolete
+ if (name == "ssh-auth-sock" // obsolete
+ || name == "store") // the daemon *is* the store
;
else if (name == experimentalFeatureSettings.experimentalFeatures.name) {
// We don’t want to forward the experimental features to
diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc
index f43b759d2..9377ac936 100644
--- a/src/libstore/globals.cc
+++ b/src/libstore/globals.cc
@@ -69,12 +69,12 @@ Settings::Settings()
, nixManDir(canonPath(NIX_MAN_DIR))
, nixDaemonSocketFile(canonPath(getEnvNonEmpty("NIX_DAEMON_SOCKET_PATH").value_or(nixStateDir + DEFAULT_SOCKET_PATH)))
{
- buildUsersGroup = getuid() == 0 ? "nixbld" : "";
- allowSymlinkedStore = getEnv("NIX_IGNORE_SYMLINK_STORE") == "1";
+ buildUsersGroup.setDefault(getuid() == 0 ? "nixbld" : "");
+ allowSymlinkedStore.setDefault(getEnv("NIX_IGNORE_SYMLINK_STORE") == "1");
auto sslOverride = getEnv("NIX_SSL_CERT_FILE").value_or(getEnv("SSL_CERT_FILE").value_or(""));
if (sslOverride != "")
- caFile = sslOverride;
+ caFile.setDefault(sslOverride);
/* Backwards compatibility. */
auto s = getEnv("NIX_REMOTE_SYSTEMS");
@@ -82,17 +82,17 @@ Settings::Settings()
Strings ss;
for (auto & p : tokenizeString<Strings>(*s, ":"))
ss.push_back("@" + p);
- builders = concatStringsSep(" ", ss);
+ builders.setDefault(concatStringsSep(" ", ss));
}
#if defined(__linux__) && defined(SANDBOX_SHELL)
- sandboxPaths = tokenizeString<StringSet>("/bin/sh=" SANDBOX_SHELL);
+ sandboxPaths.setDefault(tokenizeString<StringSet>("/bin/sh=" SANDBOX_SHELL));
#endif
/* chroot-like behavior from Apple's sandbox */
#if __APPLE__
- sandboxPaths = tokenizeString<StringSet>("/System/Library/Frameworks /System/Library/PrivateFrameworks /bin/sh /bin/bash /private/tmp /private/var/tmp /usr/lib");
- allowedImpureHostPrefixes = tokenizeString<StringSet>("/System/Library /usr/lib /dev /bin/sh");
+ sandboxPaths.setDefault(tokenizeString<StringSet>("/System/Library/Frameworks /System/Library/PrivateFrameworks /bin/sh /bin/bash /private/tmp /private/var/tmp /usr/lib"));
+ allowedImpureHostPrefixes.setDefault(tokenizeString<StringSet>("/System/Library /usr/lib /dev /bin/sh"));
#endif
/* Set the build hook location
@@ -118,10 +118,10 @@ Settings::Settings()
if (!pathExists(nixExePath)) {
nixExePath = getSelfExe().value_or("nix");
}
- buildHook = {
+ buildHook.setDefault(Strings {
nixExePath,
"__build-remote",
- };
+ });
}
void loadConfFile()
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc
index a9f9818be..ff3722085 100644
--- a/src/libstore/remote-store.cc
+++ b/src/libstore/remote-store.cc
@@ -139,6 +139,7 @@ void RemoteStore::setOptions(Connection & conn)
overrides.erase(loggerSettings.showTrace.name);
overrides.erase(experimentalFeatureSettings.experimentalFeatures.name);
overrides.erase(settings.pluginFiles.name);
+ overrides.erase(settings.storeUri.name); // the daemon *is* the store
conn.to << overrides.size();
for (auto & i : overrides)
conn.to << i.first << i.second.value;