guix/src
Eelco Dolstra 1aa19b24b2 Add a flag ‘--check’ to verify build determinism
The flag ‘--check’ to ‘nix-store -r’ or ‘nix-build’ will cause Nix to
redo the build of a derivation whose output paths are already valid.
If the new output differs from the original output, an error is
printed.  This makes it easier to test if a build is deterministic.
(Obviously this cannot catch all sources of non-determinism, but it
catches the most common one, namely the current time.)

For example:

  $ nix-build '<nixpkgs>' -A patchelf
  ...
  $ nix-build '<nixpkgs>' -A patchelf --check
  error: derivation `/nix/store/1ipvxsdnbhl1rw6siz6x92s7sc8nwkkb-patchelf-0.6' may not be deterministic: hash mismatch in output `/nix/store/4pc1dmw5xkwmc6q3gdc9i5nbjl4dkjpp-patchelf-0.6.drv'

The --check build fails if not all outputs are valid.  Thus the first
call to nix-build is necessary to ensure that all outputs are valid.

The current outputs are left untouched: the new outputs are either put
in a chroot or diverted to a different location in the store using
hash rewriting.
2014-02-18 01:01:14 +01:00
..
boost Remove Automakefiles 2014-02-01 13:54:38 +01:00
bsdiff-4.3 Fix "make dist" 2014-02-01 14:38:12 +01:00
download-via-ssh download-via-ssh: Use readStorePath 2014-02-14 12:31:10 +01:00
libexpr More "make dist" fixes 2014-02-01 15:18:48 +01:00
libmain nix-store --gc --max-freed: Support a unit specifier 2014-02-17 14:48:50 +01:00
libstore Add a flag ‘--check’ to verify build determinism 2014-02-18 01:01:14 +01:00
libutil Remove Automakefiles 2014-02-01 13:54:38 +01:00
nix-daemon Remove Automakefiles 2014-02-01 13:54:38 +01:00
nix-env Add a flag ‘--check’ to verify build determinism 2014-02-18 01:01:14 +01:00
nix-hash Remove Automakefiles 2014-02-01 13:54:38 +01:00
nix-instantiate nix-instantiate --eval-only --read-write-mode: Don't depend on ordering 2014-02-07 18:03:38 +01:00
nix-log2xml Remove Automakefiles 2014-02-01 13:54:38 +01:00
nix-store Add a flag ‘--check’ to verify build determinism 2014-02-18 01:01:14 +01:00