Fix the nix command with CA derivations

Prevents a crash because most `nix` subcommands assumed that derivations
know their output path, which isn't the case for CA derivations
This commit is contained in:
regnat 2020-12-10 17:40:00 +01:00
parent 253571e4ec
commit eb45308109
2 changed files with 7 additions and 1 deletions

View file

@ -409,7 +409,7 @@ std::vector<InstallableValue::DerivationInfo> InstallableAttrPath::toDerivations
for (auto & drvInfo : drvInfos) { for (auto & drvInfo : drvInfos) {
res.push_back({ res.push_back({
state->store->parseStorePath(drvInfo.queryDrvPath()), state->store->parseStorePath(drvInfo.queryDrvPath()),
state->store->parseStorePath(drvInfo.queryOutPath()), state->store->maybeParseStorePath(drvInfo.queryOutPath()),
drvInfo.queryOutputName() drvInfo.queryOutputName()
}); });
} }

View file

@ -50,7 +50,13 @@ testGC () {
nix-collect-garbage --experimental-features ca-derivations --option keep-derivations true nix-collect-garbage --experimental-features ca-derivations --option keep-derivations true
} }
testNixCommand () {
clearStore
nix build --experimental-features 'nix-command ca-derivations' --file ./content-addressed.nix --no-link
}
testRemoteCache testRemoteCache
testDeterministicCA testDeterministicCA
testCutoff testCutoff
testGC testGC
testNixCommand