aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/local-store.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index bfad8fb21..2892b0407 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -623,7 +623,10 @@ uint64_t LocalStore::addValidPath(State & state,
efficiently query whether a path is an output of some
derivation. */
if (info.path.isDerivation()) {
- auto drv = readDerivation(info.path);
+ auto drv = parseDerivation(
+ *this,
+ readFile(Store::toRealPath(info.path)),
+ Derivation::nameFromPath(info.path));
/* Verify that the output paths in the derivation are correct
(i.e., follow the scheme for computing output paths from
@@ -1000,7 +1003,11 @@ void LocalStore::registerValidPaths(const ValidPathInfos & infos)
for (auto & i : infos)
if (i.path.isDerivation()) {
// FIXME: inefficient; we already loaded the derivation in addValidPath().
- checkDerivationOutputs(i.path, readDerivation(i.path));
+ checkDerivationOutputs(i.path,
+ parseDerivation(
+ *this,
+ readFile(Store::toRealPath(i.path)),
+ Derivation::nameFromPath(i.path)));
}
/* Do a topological sort of the paths. This will throw an