libstore: drop support for reading impure derivations
writing them is technically still supported because what makes a derivation impure is entirely specified by magically named data, but without derivationStrict being able to pass these through to libstore there is no way (besides reading existing files) to get any new impure derivations into an existing store. it will still be possible to garbage-collect existing impure derivations since the gc process does not need to read them as derivations, and we are not introducing any new kinds of unsupported-feature errors. Change-Id: I648f53129ce67ee2b48d0591219759812dd557da
This commit is contained in:
@@ -276,13 +276,7 @@ static DerivationOutput parseDerivationOutput(
|
||||
xpSettings.require(Xp::DynamicDerivations);
|
||||
const auto hashType = parseHashType(hashAlgo);
|
||||
if (hashS == "impure") {
|
||||
xpSettings.require(Xp::ImpureDerivations);
|
||||
if (pathS != "")
|
||||
throw FormatError("impure derivation output should not specify output path");
|
||||
return DerivationOutput::Impure {
|
||||
.method = std::move(method),
|
||||
.hashType = std::move(hashType),
|
||||
};
|
||||
throw UnimplementedError("impure derivations are not supported");
|
||||
} else if (hashS != "") {
|
||||
validatePath(pathS);
|
||||
auto hash = Hash::parseNonSRIUnprefixed(hashS, hashType);
|
||||
@@ -1332,12 +1326,7 @@ DerivationOutput DerivationOutput::fromJSON(
|
||||
}
|
||||
|
||||
else if (keys == (std::set<std::string_view> { "hashAlgo", "impure" })) {
|
||||
xpSettings.require(Xp::ImpureDerivations);
|
||||
auto [method, hashType] = methodAlgo();
|
||||
return DerivationOutput::Impure {
|
||||
.method = std::move(method),
|
||||
.hashType = hashType,
|
||||
};
|
||||
throw UnimplementedError("impure derivations are not supported");
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user