1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-29 02:11:15 +02:00

rename chroot to sandbox (fixes #656, close #682)

- 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:
Vladimír Čunát 2015-09-29 18:21:10 +02:00
parent aaf8a1c16b
commit b39622a487
4 changed files with 62 additions and 29 deletions

View file

@ -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 {