diff options
author | regnat <rg@regnat.ovh> | 2020-09-23 16:30:42 +0200 |
---|---|---|
committer | regnat <rg@regnat.ovh> | 2020-10-27 07:29:23 +0100 |
commit | c092fa4702215fdb61611c5dd28194401d056170 (patch) | |
tree | a9db7d344fb17377c02852b9a76e8716ba925b19 /src/libstore/local-store.cc | |
parent | e0ca98c2071b815578470e280df8fdb750c7e23b (diff) |
Allow non-CA derivations to depend on CA derivations
Diffstat (limited to 'src/libstore/local-store.cc')
-rw-r--r-- | src/libstore/local-store.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index d29236a9c..d29a68179 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -573,6 +573,8 @@ void LocalStore::checkDerivationOutputs(const StorePath & drvPath, const Derivat [&](DerivationOutputCAFloating _) { /* Nothing to check */ }, + [&](DerivationOutputDeferred) { + }, }, i.second.output); } } @@ -817,7 +819,7 @@ std::map<std::string, std::optional<StorePath>> LocalStore::queryPartialDerivati } /* can't just use else-if instead of `!haveCached` because we need to unlock `drvPathResolutions` before it is locked in `Derivation::resolve`. */ - if (!haveCached && drv.type() == DerivationType::CAFloating) { + if (!haveCached && (drv.type() == DerivationType::CAFloating || drv.type() == DerivationType::DeferredInputAddressed)) { /* Try resolve drv and use that path instead. */ auto attempt = drv.tryResolve(*this); if (!attempt) |