From a22755721b51949dbf03bc1eb156d6f37dc10bac Mon Sep 17 00:00:00 2001 From: regnat Date: Wed, 19 May 2021 14:51:34 +0200 Subject: Recursively substitute the realisations Make sure that whenever we substitute a realisation, we also substitute its entire closure --- src/libstore/build/drv-output-substitution-goal.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/libstore') diff --git a/src/libstore/build/drv-output-substitution-goal.cc b/src/libstore/build/drv-output-substitution-goal.cc index a5ac4c49d..1703e845d 100644 --- a/src/libstore/build/drv-output-substitution-goal.cc +++ b/src/libstore/build/drv-output-substitution-goal.cc @@ -53,6 +53,12 @@ void DrvOutputSubstitutionGoal::tryNext() return; } + for (const auto & [drvOutputDep, _] : outputInfo->dependentRealisations) { + if (drvOutputDep != id) { + addWaitee(worker.makeDrvOutputSubstitutionGoal(drvOutputDep)); + } + } + addWaitee(worker.makePathSubstitutionGoal(outputInfo->outPath)); if (waitees.empty()) outPathValid(); -- cgit v1.2.3