mirror of
https://github.com/NixOS/nix
synced 2025-07-07 22:33:57 +02:00
Remove nix-build --hash
Instead, if a fixed-output derivation produces has an incorrect output hash, we now unconditionally move the outputs to the path corresponding with the actual hash and register it as valid. Thus, after correcting the hash in the Nix expression (e.g. in a fetchurl call), the fixed-output derivation doesn't have to be built again. It would still be good to have a command for reporting the actual hash of a fixed-output derivation (instead of throwing an error), but "nix-build --hash" didn't do that.
This commit is contained in:
parent
de96daf54f
commit
84722d67d2
6 changed files with 43 additions and 33 deletions
|
@ -5,15 +5,22 @@ clearStore
|
|||
export IMPURE_VAR1=foo
|
||||
export IMPURE_VAR2=bar
|
||||
|
||||
path=$(nix-store -q $(nix-instantiate fixed.nix -A good.0))
|
||||
|
||||
echo 'testing bad...'
|
||||
nix-build fixed.nix -A bad --no-out-link && fail "should fail"
|
||||
|
||||
# Building with the bad hash should produce the "good" output path as
|
||||
# a side-effect.
|
||||
[[ -e $path ]]
|
||||
nix path-info --json $path | grep fixed:md5:2qk15sxzzjlnpjk9brn7j8ppcd
|
||||
|
||||
echo 'testing good...'
|
||||
nix-build fixed.nix -A good --no-out-link
|
||||
|
||||
echo 'testing good2...'
|
||||
nix-build fixed.nix -A good2 --no-out-link
|
||||
|
||||
echo 'testing bad...'
|
||||
nix-build fixed.nix -A bad --no-out-link && fail "should fail"
|
||||
|
||||
echo 'testing reallyBad...'
|
||||
nix-instantiate fixed.nix -A reallyBad && fail "should fail"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue