diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/build.cc | 2 | ||||
-rw-r--r-- | src/libstore/local-store.cc | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index a2b24524028a..f70ab8108fd7 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -3249,6 +3249,8 @@ void DerivationGoal::registerOutputs() info.ultimate = true; worker.store.signPathInfo(info); + if (!info.references.empty()) info.ca.clear(); + infos.push_back(info); } diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index b63584f28a30..ef8c2811bd86 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -581,7 +581,8 @@ void LocalStore::checkDerivationOutputs(const Path & drvPath, const Derivation & uint64_t LocalStore::addValidPath(State & state, const ValidPathInfo & info, bool checkOutputs) { - assert(info.ca == "" || info.isContentAddressed(*this)); + if (info.ca != "" && !info.isContentAddressed(*this)) + throw Error("cannot add path '%s' to the Nix store because it claims to be content-addressed but isn't", info.path); state.stmtRegisterValidPath.use() (info.path) |