mirror of
https://github.com/NixOS/nix
synced 2025-06-29 02:11:15 +02:00
- rename options but leav old names as lower-priority aliases, also "-dirs" -> "-paths" to get closer to the meaning - update docs to reflect the new names (old aliases are not documented), including a new file with release notes - tests need an update after corresponding changes to nixpkgs - __noChroot is left as it is (after discussion on the PR)
This commit is contained in:
parent
aaf8a1c16b
commit
b39622a487
4 changed files with 62 additions and 29 deletions
|
@ -1842,12 +1842,14 @@ void DerivationGoal::startBuilder()
|
|||
work properly. Purity checking for fixed-output derivations
|
||||
is somewhat pointless anyway. */
|
||||
{
|
||||
string x = settings.get("build-use-chroot", string("false"));
|
||||
string x = settings.get("build-use-sandbox",
|
||||
/* deprecated alias */
|
||||
settings.get("build-use-chroot", string("false")));
|
||||
if (x != "true" && x != "false" && x != "relaxed")
|
||||
throw Error("option ‘build-use-chroot’ must be set to one of ‘true’, ‘false’ or ‘relaxed’");
|
||||
throw Error("option ‘build-use-sandbox’ must be set to one of ‘true’, ‘false’ or ‘relaxed’");
|
||||
if (x == "true") {
|
||||
if (get(drv->env, "__noChroot") == "1")
|
||||
throw Error(format("derivation ‘%1%’ has ‘__noChroot’ set, but that's not allowed when ‘build-use-chroot’ is ‘true’") % drvPath);
|
||||
throw Error(format("derivation ‘%1%’ has ‘__noChroot’ set, but that's not allowed when ‘build-use-sandbox’ is ‘true’") % drvPath);
|
||||
useChroot = true;
|
||||
}
|
||||
else if (x == "false")
|
||||
|
@ -1866,8 +1868,13 @@ void DerivationGoal::startBuilder()
|
|||
|
||||
/* Allow a user-configurable set of directories from the
|
||||
host file system. */
|
||||
PathSet dirs = tokenizeString<StringSet>(settings.get("build-chroot-dirs", defaultChrootDirs));
|
||||
PathSet dirs2 = tokenizeString<StringSet>(settings.get("build-extra-chroot-dirs", string("")));
|
||||
PathSet dirs = tokenizeString<StringSet>(
|
||||
settings.get("build-sandbox-paths",
|
||||
/* deprecated alias with lower priority */
|
||||
settings.get("build-chroot-dirs", defaultChrootDirs)));
|
||||
PathSet dirs2 = tokenizeString<StringSet>(
|
||||
settings.get("build-extra-chroot-dirs",
|
||||
settings.get("build-extra-sandbox-paths", string(""))));
|
||||
dirs.insert(dirs2.begin(), dirs2.end());
|
||||
|
||||
for (auto & i : dirs) {
|
||||
|
@ -2010,7 +2017,7 @@ void DerivationGoal::startBuilder()
|
|||
/* We don't really have any parent prep work to do (yet?)
|
||||
All work happens in the child, instead. */
|
||||
#else
|
||||
throw Error("chroot builds are not supported on this platform");
|
||||
throw Error("sandboxing builds is not supported on this platform");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -2059,7 +2066,7 @@ void DerivationGoal::startBuilder()
|
|||
auto line = std::string{lines, lastPos, nlPos};
|
||||
lastPos = nlPos + 1;
|
||||
if (state == stBegin) {
|
||||
if (line == "extra-chroot-dirs") {
|
||||
if (line == "extra-sandbox-paths" || line == "extra-chroot-dirs") {
|
||||
state = stExtraChrootDirs;
|
||||
} else {
|
||||
throw Error(format("unknown pre-build hook command ‘%1%’")
|
||||
|
@ -2607,7 +2614,7 @@ void DerivationGoal::registerOutputs()
|
|||
replaceValidPath(path, actualPath);
|
||||
else
|
||||
if (buildMode != bmCheck && rename(actualPath.c_str(), path.c_str()) == -1)
|
||||
throw SysError(format("moving build output ‘%1%’ from the chroot to the Nix store") % path);
|
||||
throw SysError(format("moving build output ‘%1%’ from the sandbox to the Nix store") % path);
|
||||
}
|
||||
if (buildMode != bmCheck) actualPath = path;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue