diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2008-08-25 15:49:22 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2008-08-25 15:49:22 +0000 |
commit | d06be428f6dd046c89a69995d5328b8250bec3d2 (patch) | |
tree | c1154d3e0ac81a78c3cb9aa0b8098ab3dc874275 /src | |
parent | abec1c000410a1533f9c80357be6061730d8c6aa (diff) |
* Disable chroot builds for fixed-output derivations so that we don't
need /etc in the chroot (in particular, /etc/resolv.conf for
fetchurl). Not having /etc/resolv.conf in the chroot is a good
thing, since we don't want normal derivations to download files.
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/build.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 33a53c148..c5807d32f 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -1610,6 +1610,7 @@ void DerivationGoal::startBuilder() } // The same for derivations + // !!! urgh, cut&paste duplication s = drv.env["exportBuildReferencesGraph"]; ss = tokenizeString(s); if (ss.size() % 2 != 0) @@ -1685,10 +1686,16 @@ void DerivationGoal::startBuilder() } - /* Are we doing a chroot build? */ + /* Are we doing a chroot build? Note that fixed-output + derivations are never done in a chroot, mainly so that + functions like fetchurl (which needs a proper /etc/resolv.conf) + work properly. Purity checking for fixed-output derivations + is somewhat pointless anyway. */ useChroot = queryBoolSetting("build-use-chroot", false); Path tmpRootDir; + if (fixedOutput) useChroot = false; + if (useChroot) { #if CHROOT_ENABLED /* Create a temporary directory in which we set up the chroot |