about summary refs log tree commit diff
path: root/src/libstore/misc.cc
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2019-09-03T14·02+0200
committerEelco Dolstra <edolstra@gmail.com>2019-09-03T14·03+0200
commite07ec8d27e08bf23eccab079b044a6f1b37f3ac9 (patch)
tree0dacd79c9a2ff40662de47d2e0515b535e684867 /src/libstore/misc.cc
parentcec50290bf5537d574fd94557bd3918f2bea8a30 (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.cc4
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));