Require ca-derivations everywhere we create a CA derivation

"create" as in read one in from a serialized form, or build one from
scratch in memory.
This commit is contained in:
John Ericson 2020-07-27 17:56:36 +00:00
parent e32a9e124b
commit 951415b568
2 changed files with 10 additions and 6 deletions

View file

@ -640,8 +640,10 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * *
if (i->value->type == tNull) continue; if (i->value->type == tNull) continue;
} }
if (i->name == state.sContentAddressed) if (i->name == state.sContentAddressed) {
settings.requireExperimentalFeature("ca-derivations");
contentAddressed = state.forceBool(*i->value, pos); contentAddressed = state.forceBool(*i->value, pos);
}
/* The `args' attribute is special: it supplies the /* The `args' attribute is special: it supplies the
command-line arguments to the builder. */ command-line arguments to the builder. */

View file

@ -163,12 +163,13 @@ static DerivationOutput parseDerivationOutput(const Store & store, std::istrings
}, },
} }
} }
: DerivationOutput { : (settings.requireExperimentalFeature("ca-derivations"),
DerivationOutput {
.output = DerivationOutputFloating { .output = DerivationOutputFloating {
.method = std::move(method), .method = std::move(method),
.hashType = std::move(hashType), .hashType = std::move(hashType),
}, },
}; });
} else } else
return DerivationOutput { return DerivationOutput {
.output = DerivationOutputInputAddressed { .output = DerivationOutputInputAddressed {
@ -559,12 +560,13 @@ static DerivationOutput readDerivationOutput(Source & in, const Store & store)
}, },
} }
} }
: DerivationOutput { : (settings.requireExperimentalFeature("ca-derivations"),
DerivationOutput {
.output = DerivationOutputFloating { .output = DerivationOutputFloating {
.method = std::move(method), .method = std::move(method),
.hashType = std::move(hashType), .hashType = std::move(hashType),
}, },
}; });
} else } else
return DerivationOutput { return DerivationOutput {
.output = DerivationOutputInputAddressed { .output = DerivationOutputInputAddressed {