From d06be428f6dd046c89a69995d5328b8250bec3d2 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 25 Aug 2008 15:49:22 +0000 Subject: [PATCH] * 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. --- src/libstore/build.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 33a53c148f..c5807d32f7 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