diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2019-09-03T14·02+0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2019-09-03T14·03+0200 |
commit | e07ec8d27e08bf23eccab079b044a6f1b37f3ac9 (patch) | |
tree | 0dacd79c9a2ff40662de47d2e0515b535e684867 /src/libstore/misc.cc | |
parent | cec50290bf5537d574fd94557bd3918f2bea8a30 (diff) |
Support allowSubstitutes attribute in structured attribute derivations
Hopefully fixes #3081 (didn't test).
Diffstat (limited to 'src/libstore/misc.cc')
-rw-r--r-- | src/libstore/misc.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libstore/misc.cc b/src/libstore/misc.cc index adcce026fa1d..dddf134300d6 100644 --- a/src/libstore/misc.cc +++ b/src/libstore/misc.cc @@ -1,4 +1,5 @@ #include "derivations.hh" +#include "parsed-derivations.hh" #include "globals.hh" #include "local-store.hh" #include "store-api.hh" @@ -189,6 +190,7 @@ void Store::queryMissing(const PathSet & targets, } Derivation drv = derivationFromPath(i2.first); + ParsedDerivation parsedDrv(i2.first, drv); PathSet invalid; for (auto & j : drv.outputs) @@ -197,7 +199,7 @@ void Store::queryMissing(const PathSet & targets, invalid.insert(j.second.path); if (invalid.empty()) return; - if (settings.useSubstitutes && drv.substitutesAllowed()) { + if (settings.useSubstitutes && parsedDrv.substitutesAllowed()) { auto drvState = make_ref<Sync<DrvState>>(DrvState(invalid.size())); for (auto & output : invalid) pool.enqueue(std::bind(checkOutput, i2.first, make_ref<Derivation>(drv), output, drvState)); |