forked from lix-project/lix
* Add an option ‘build-use-substitutes’, which can be set to ‘false’
to disable use of substitutes; i.e., force building from source. Fixes Nix/221.
This commit is contained in:
parent
59a26360c7
commit
db5b86ef13
|
@ -225,6 +225,15 @@ env-keep-derivations = false
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
|
||||||
|
<varlistentry><term><literal>build-use-substitutes</literal></term>
|
||||||
|
|
||||||
|
<listitem><para>If set to <literal>true</literal> (default), Nix
|
||||||
|
will use binary substitutes if available. This option can be
|
||||||
|
disabled to force building from source.</para></listitem>
|
||||||
|
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
|
||||||
<varlistentry xml:id="conf-build-chroot-dirs"><term><literal>build-chroot-dirs</literal></term>
|
<varlistentry xml:id="conf-build-chroot-dirs"><term><literal>build-chroot-dirs</literal></term>
|
||||||
|
|
||||||
<listitem><para>When builds are performed in a chroot environment,
|
<listitem><para>When builds are performed in a chroot environment,
|
||||||
|
|
|
@ -962,7 +962,7 @@ void DerivationGoal::haveDerivation()
|
||||||
foreach (PathSet::iterator, i, invalidOutputs)
|
foreach (PathSet::iterator, i, invalidOutputs)
|
||||||
/* Don't bother creating a substitution goal if there are no
|
/* Don't bother creating a substitution goal if there are no
|
||||||
substitutes. */
|
substitutes. */
|
||||||
if (worker.store.hasSubstitutes(*i))
|
if (queryBoolSetting("build-use-substitutes", true) && worker.store.hasSubstitutes(*i))
|
||||||
addWaitee(worker.makeSubstitutionGoal(*i));
|
addWaitee(worker.makeSubstitutionGoal(*i));
|
||||||
|
|
||||||
if (waitees.empty()) /* to prevent hang (no wake-up event) */
|
if (waitees.empty()) /* to prevent hang (no wake-up event) */
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "misc.hh"
|
#include "misc.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
#include "local-store.hh"
|
#include "local-store.hh"
|
||||||
|
#include "globals.hh"
|
||||||
|
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
@ -69,7 +70,8 @@ void queryMissing(StoreAPI & store, const PathSet & targets,
|
||||||
|
|
||||||
bool mustBuild = false;
|
bool mustBuild = false;
|
||||||
foreach (DerivationOutputs::iterator, i, drv.outputs)
|
foreach (DerivationOutputs::iterator, i, drv.outputs)
|
||||||
if (!store.isValidPath(i->second.path) && !store.hasSubstitutes(i->second.path))
|
if (!store.isValidPath(i->second.path) &&
|
||||||
|
!(queryBoolSetting("build-use-substitutes", true) && store.hasSubstitutes(i->second.path)))
|
||||||
mustBuild = true;
|
mustBuild = true;
|
||||||
|
|
||||||
if (mustBuild) {
|
if (mustBuild) {
|
||||||
|
|
|
@ -197,6 +197,9 @@ void RemoteStore::setOptions()
|
||||||
}
|
}
|
||||||
if (GET_PROTOCOL_MINOR(daemonVersion) >= 6)
|
if (GET_PROTOCOL_MINOR(daemonVersion) >= 6)
|
||||||
writeInt(buildCores, to);
|
writeInt(buildCores, to);
|
||||||
|
if (GET_PROTOCOL_MINOR(daemonVersion) >= 10)
|
||||||
|
writeInt(queryBoolSetting("build-use-substitutes", true), to);
|
||||||
|
|
||||||
processStderr();
|
processStderr();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ namespace nix {
|
||||||
#define WORKER_MAGIC_1 0x6e697863
|
#define WORKER_MAGIC_1 0x6e697863
|
||||||
#define WORKER_MAGIC_2 0x6478696f
|
#define WORKER_MAGIC_2 0x6478696f
|
||||||
|
|
||||||
#define PROTOCOL_VERSION 0x109
|
#define PROTOCOL_VERSION 0x10a
|
||||||
#define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00)
|
#define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00)
|
||||||
#define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff)
|
#define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff)
|
||||||
|
|
||||||
|
|
|
@ -513,8 +513,13 @@ static void performOp(unsigned int clientVersion,
|
||||||
logType = (LogType) readInt(from);
|
logType = (LogType) readInt(from);
|
||||||
printBuildTrace = readInt(from) != 0;
|
printBuildTrace = readInt(from) != 0;
|
||||||
}
|
}
|
||||||
if (GET_PROTOCOL_MINOR(clientVersion) >= 6) {
|
if (GET_PROTOCOL_MINOR(clientVersion) >= 6)
|
||||||
buildCores = readInt(from);
|
buildCores = readInt(from);
|
||||||
|
if (GET_PROTOCOL_MINOR(clientVersion) >= 10) {
|
||||||
|
int x = readInt(from);
|
||||||
|
Strings ss;
|
||||||
|
ss.push_back(x == 0 ? "false" : "true");
|
||||||
|
overrideSetting("build-use-substitutes", ss);
|
||||||
}
|
}
|
||||||
startWork();
|
startWork();
|
||||||
stopWork();
|
stopWork();
|
||||||
|
|
Loading…
Reference in a new issue