about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2014-02-18 Add a flag ‘--check’ to verify build determinismEelco Dolstra9-55/+97
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-17 Test nix-store --verify-path and --repair-pathEelco Dolstra1-0/+18
2014-02-17 Don't build on Debian 6.0Eelco Dolstra1-2/+2
Its linker is too old to understand --no-copy-dt-needed-entries. http://hydra.nixos.org/build/9113883
2014-02-17 Make --repair work on DarwinEelco Dolstra1-3/+3
Mac OS X doesn't allow renaming a read-only directory. http://hydra.nixos.org/build/9113895
2014-02-17 RefactoringEelco Dolstra1-29/+36
2014-02-17 When using a build hook, only copy missing pathsEelco Dolstra1-9/+6
2014-02-17 Move some code aroundEelco Dolstra1-92/+82
In particular, do replacing of valid paths during repair later. This prevents us from replacing a valid path after the build fails.
2014-02-17 nix-store --gc --max-freed: Support a unit specifierEelco Dolstra3-6/+25
E.g. "--max-freed 10G" means "free ten gigabytes".
2014-02-17 Heuristically detect if a build may have failed due to a full diskEelco Dolstra2-5/+28
This will allow Hydra to detect that a build should not be marked as "permanently failed", allowing it to be retried later.
2014-02-17 nix-shell: Execute shellHook if it existsEelco Dolstra2-0/+17
Since normal builds don't execute shellHook, this allows nix-shell specific customisation. Suggested by Domen.
2014-02-17 Add a test for repairing pathsEelco Dolstra5-8/+56
2014-02-14 download-via-ssh: Use readStorePathEelco Dolstra2-5/+13
2014-02-14 download-via-ssh: Show where we're downloading fromEelco Dolstra1-1/+3
2014-02-14 Minor style fixesEelco Dolstra4-6/+14
2014-02-14 Merge remote-tracking branch 'shlevy/ssh-substituter'Eelco Dolstra8-0/+271
2014-02-12 Indendation fixShea Levy1-21/+19
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-12 Remove relic of old codeShea Levy1-2/+0
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-12 error messages start in lowercaseShea Levy2-3/+3
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-12 Remove using declarations from download-via-sshShea Levy1-20/+16
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-12 Document current meaning of preferLocalBuildEelco Dolstra1-5/+8
Closes #208.
2014-02-10 Force use of BashEelco Dolstra1-1/+1
"echo -n" doesn't work with /bin/sh on Darwin.
2014-02-10 Binary tarball: Automatically create /nixEelco Dolstra3-37/+117
The tarball can now be unpacked anywhere. The installation script uses "sudo" to create /nix if it doesn't exist. It also fetches the nixpkgs-unstable channel.
2014-02-10 nix-store --serve: Use a versioned protocolShea Levy4-34/+102
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-10 Move StoreApi::serve into opServeShea Levy3-39/+29
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-10 Pass in params by const refShea Levy2-2/+2
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-10 Clarify commentShea Levy1-1/+2
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-10 Binary tarball: Automatically fetch the Nixpkgs channelEelco Dolstra1-1/+7
2014-02-10 nix-shell: Use shell.nix as the default expression if it existsEelco Dolstra2-7/+14
2014-02-08 Add download-via-ssh substituterShea Levy6-0/+168
This substituter connects to a remote host, runs nix-store --serve there, and then forwards substituter commands on to the remote host and sends their results to the calling program. The ssh-substituter-hosts option can be specified as a list of hosts to try. This is an initial implementation and, while it works, it has some limitations: * Only the first host is used * There is no caching of query results (all queries are sent to the remote machine) * There is no informative output (such as progress bars) * Some failure modes may cause unhelpful error messages * There is no concept of trusted-ssh-substituter-hosts Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-08 nix-store --serve: Flush out after every loopShea Levy2-2/+3
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-08 nix-store --serve: Use dump instead of exportShea Levy3-12/+7
Also remove signing support Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-08 nix-store --serve: Don't fail if asked for info about non-valid pathShea Levy1-0/+2
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-08 nix-store --serve: Don't loop foreverShea Levy1-26/+25
nix-store --export takes a tmproot, which can only release by exiting. Substituters don't currently work in a way that could take advantage of the looping, anyway. Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-08 Add the nix-store --serve commandShea Levy3-0/+55
This is essentially the substituter API operating on the local store, which will be used by the ssh substituter. It runs in a loop rather than just taking one command so that in the future nix will be able to keep one connection open for multiple instances of the substituter. Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-07 nix-instantiate --eval-only --read-write-mode: Don't depend on orderingShea Levy1-9/+8
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-07 Rename --no-readonly-mode --read-write-modeShea Levy2-3/+3
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-07 nix-instantiate: Add a --no-readonly-mode flagShea Levy2-0/+15
This allows running nix-instantiate --eval-only without performing the evaluation in readonly mode, letting features like import from derivation and automatic substitution of builtins.storePath paths work. Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-07 Fix the RPM buildEelco Dolstra1-12/+4
2014-02-07 Install header filesEelco Dolstra2-0/+3
2014-02-07 Merge commit 'a210c995cdd9279ed4137ec5d2e4cc928cb36097'Eelco Dolstra5-26/+33
2014-02-07 Support DESTDIREelco Dolstra3-22/+27
2014-02-06 Remove dead codeEelco Dolstra1-3/+0
2014-02-06 Set a maintainer addressEelco Dolstra1-0/+1
Issue #202.
2014-02-06 Clean up a test warningEelco Dolstra1-1/+1
2014-02-06 Drop dependency on ‘expr’Eelco Dolstra1-2/+2
http://hydra.nixos.org/build/8715639 Not sure why this causes a failure now.
2014-02-06 Create the target directory of libraries and programsEelco Dolstra4-4/+9
2014-02-04 Fix version in nix.specEelco Dolstra1-4/+4
http://hydra.nixos.org/build/8715502
2014-02-04 GNU Make 3.81 compatibilityEelco Dolstra7-12/+12
3.81 doesn't understand the ‘define foo =’ syntax, which was added in 3.82. So use ‘define foo’ instead.
2014-02-04 GNU Make 3.81 compatibilityEelco Dolstra7-12/+12
3.81 doesn't understand the ‘define foo =’ syntax, which was added in 3.82. So use ‘define foo’ instead.
2014-02-04 Add nix.spec to the distributionEelco Dolstra1-1/+1