Go to file
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
config Add config.guess, config.sub and install-sh 2013-11-25 11:26:02 +00:00
corepkgs Remove Automakefiles 2014-02-01 13:54:38 +01:00
doc nix-store --gc --max-freed: Support a unit specifier 2014-02-17 14:48:50 +01:00
misc Remove Automakefiles 2014-02-01 13:54:38 +01:00
mk Merge commit 'a210c995cdd9279ed4137ec5d2e4cc928cb36097' 2014-02-07 16:27:34 +01:00
perl Fix "make dist" 2014-02-01 14:38:12 +01:00
scripts Add a flag ‘--check’ to verify build determinism 2014-02-18 01:01:14 +01:00
src Add a flag ‘--check’ to verify build determinism 2014-02-18 01:01:14 +01:00
tests Test nix-store --verify-path and --repair-path 2014-02-17 23:24:12 +01:00
.gitignore Add support for ‘make installcheck’ 2013-11-25 18:47:03 +01:00
AUTHORS * Put something in here. 2004-11-07 20:30:02 +00:00
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
build.nix Add an experimental nix-make file 2012-05-21 09:43:01 -04:00
configure.ac Build/install manual 2014-02-01 11:30:21 +01:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
dev-shell Hack to clean up tests/test-tmp 2013-08-21 12:53:46 +02:00
INSTALL * Autoconf / Automake configuration and building. 2003-04-04 16:14:56 +00:00
local.mk Install header files 2014-02-07 17:36:04 +01:00
Makefile Add download-via-ssh substituter 2014-02-08 00:13:33 -05:00
Makefile.config.in Install header files 2014-02-07 17:36:04 +01:00
nix.spec.in Fix the RPM build 2014-02-07 17:36:04 +01:00
README * Install documentation in $(docdir) (i.e. share/doc/nix). 2008-11-19 13:19:09 +00:00
release.nix Don't build on Debian 6.0 2014-02-17 23:10:40 +01:00
version Bump version number 2013-11-19 14:45:19 +01:00

Nix is a purely functional package manager.  For installation and
usage instructions, please read the manual, which can be found in
`docs/manual/manual.html', and additionally at the Nix website at
<http://nixos.org/>.


Acknowledgments

This product includes software developed by the OpenSSL Project for
use in the OpenSSL Toolkit (http://www.OpenSSL.org/).