Recursively substitute the realisations
Make sure that whenever we substitute a realisation, we also substitute its entire closure
This commit is contained in:
parent
ce1a6c6b13
commit
a22755721b
3 changed files with 15 additions and 3 deletions
|
@ -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();
|
||||
|
|
|
@ -25,6 +25,8 @@
|
|||
}
|
||||
#define GENERATE_EQUAL(args...) GENERATE_ONE_CMP(==, args)
|
||||
#define GENERATE_LEQ(args...) GENERATE_ONE_CMP(<, args)
|
||||
#define GENERATE_NEQ(args...) GENERATE_ONE_CMP(!=, args)
|
||||
#define GENERATE_CMP(args...) \
|
||||
GENERATE_EQUAL(args) \
|
||||
GENERATE_LEQ(args)
|
||||
GENERATE_LEQ(args) \
|
||||
GENERATE_NEQ(args)
|
||||
|
|
|
@ -17,11 +17,15 @@ buildDrvs () {
|
|||
|
||||
# Populate the remote cache
|
||||
clearStore
|
||||
buildDrvs --post-build-hook ../push-to-store.sh
|
||||
nix copy --to $REMOTE_STORE --file ./content-addressed.nix
|
||||
|
||||
# Restart the build on an empty store, ensuring that we don't build
|
||||
clearStore
|
||||
buildDrvs --substitute --substituters $REMOTE_STORE --no-require-sigs -j0
|
||||
buildDrvs --substitute --substituters $REMOTE_STORE --no-require-sigs -j0 transitivelyDependentCA
|
||||
# Check that the thing we’ve just substituted has its realisation stored
|
||||
nix realisation info --file ./content-addressed.nix transitivelyDependentCA
|
||||
# Check that its dependencies have it too
|
||||
nix realisation info --file ./content-addressed.nix dependentCA rootCA
|
||||
|
||||
# Same thing, but
|
||||
# 1. With non-ca derivations
|
||||
|
|
Loading…
Reference in a new issue