diff --git a/lix/libcmd/built-path.cc b/lix/libcmd/built-path.cc index bb4c03124..77f4f98a1 100644 --- a/lix/libcmd/built-path.cc +++ b/lix/libcmd/built-path.cc @@ -112,21 +112,7 @@ try { staticOutputHashes(store, TRY_AWAIT(store.readDerivation(p.drvPath.path))) ); for (auto& [outputName, outputPath] : p.outputs) { - if (experimentalFeatureSettings.isEnabled( - Xp::CaDerivations)) { - auto drvOutput = get(drvHashes, outputName); - if (!drvOutput) - throw Error( - "the derivation '%s' has unrealised output '%s' (derived-path.cc/toRealisedPaths)", - store.printStorePath(p.drvPath.path), outputName); - auto thisRealisation = TRY_AWAIT(store.queryRealisation( - DrvOutput{*drvOutput, outputName})); - assert(thisRealisation); // We’ve built it, so we must - // have the realisation - res.insert(*thisRealisation); - } else { - res.insert(outputPath); - } + res.insert(outputPath); } co_return result::success(); } catch (...) { diff --git a/lix/libstore/misc.cc b/lix/libstore/misc.cc index f29583834..39a9066ad 100644 --- a/lix/libstore/misc.cc +++ b/lix/libstore/misc.cc @@ -259,33 +259,7 @@ struct QueryMissingContext ParsedDerivation parsedDrv(StorePath(drvPath), *drv); if (!knownOutputPaths && settings.useSubstitutes && parsedDrv.substitutesAllowed()) { - experimentalFeatureSettings.require(Xp::CaDerivations); - - // If there are unknown output paths, attempt to find if the - // paths are known to substituters through a realisation. - auto outputHashes = aio.blockOn(staticOutputHashes(store, *drv)); - knownOutputPaths = true; - - for (auto [outputName, hash] : outputHashes) { - if (!bfd.outputs.contains(outputName)) - continue; - - bool found = false; - for (auto &sub : aio.blockOn(getDefaultSubstituters())) { - auto realisation = aio.blockOn(sub->queryRealisation({hash, outputName})); - if (!realisation) - continue; - found = true; - if (!aio.blockOn(store.isValidPath(realisation->outPath))) - invalid.insert(realisation->outPath); - break; - } - if (!found) { - // Some paths did not have a realisation, this must be built. - knownOutputPaths = false; - break; - } - } + throw UnimplementedError("ca derivations are not supported"); } if (knownOutputPaths && settings.useSubstitutes && parsedDrv.substitutesAllowed()) { diff --git a/lix/libstore/remote-store.cc b/lix/libstore/remote-store.cc index 01b1bad5a..4daf270ba 100644 --- a/lix/libstore/remote-store.cc +++ b/lix/libstore/remote-store.cc @@ -743,20 +743,12 @@ try { "the derivation '%s' doesn't have an output named '%s'", printStorePath(drvPath), output); auto outputId = DrvOutput{ *outputHash, output }; - if (experimentalFeatureSettings.isEnabled(Xp::CaDerivations)) { - auto realisation = - TRY_AWAIT(queryRealisation(outputId)); - if (!realisation) - throw MissingRealisation(outputId); - res.builtOutputs.emplace(output, *realisation); - } else { - res.builtOutputs.emplace( - output, - Realisation { - .id = outputId, - .outPath = outputPath, - }); - } + res.builtOutputs.emplace( + output, + Realisation { + .id = outputId, + .outPath = outputPath, + }); } results.push_back(res); diff --git a/lix/libstore/store-api.cc b/lix/libstore/store-api.cc index 3d63e7b57..e882ca366 100644 --- a/lix/libstore/store-api.cc +++ b/lix/libstore/store-api.cc @@ -526,26 +526,7 @@ Store::queryPartialDerivationOutputMap(const StorePath & path, Store * evalStore try { auto & evalStore = evalStore_ ? *evalStore_ : *this; - auto outputs = TRY_AWAIT(evalStore.queryStaticPartialDerivationOutputMap(path)); - - if (!experimentalFeatureSettings.isEnabled(Xp::CaDerivations)) - co_return outputs; - - auto drv = TRY_AWAIT(evalStore.readInvalidDerivation(path)); - auto drvHashes = TRY_AWAIT(staticOutputHashes(*this, drv)); - for (auto & [outputName, hash] : drvHashes) { - auto realisation = TRY_AWAIT(queryRealisation(DrvOutput{hash, outputName})); - if (realisation) { - outputs.insert_or_assign(outputName, realisation->outPath); - } else { - // queryStaticPartialDerivationOutputMap is not guaranteed - // to return std::nullopt for outputs which are not - // statically known. - outputs.insert({outputName, std::nullopt}); - } - } - - co_return outputs; + co_return TRY_AWAIT(evalStore.queryStaticPartialDerivationOutputMap(path)); } catch (...) { co_return result::current_exception(); }