about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2014-02-26 And another oneEelco Dolstra2-41/+2
2014-02-26 Remove another unused functionEelco Dolstra2-22/+0
2014-02-26 Remove unused functionEelco Dolstra2-32/+0
2014-02-26 nix-store -r: Respect --add-root for non-derivationsEelco Dolstra1-1/+9
Fixes #68. Fixes #117.
2014-02-26 Warn about missing -I pathsEelco Dolstra3-5/+6
Fixes #121. Note that we don't warn about missing $NIX_PATH entries because it's intended that some may be missing (cf. the default $NIX_PATH on NixOS, which includes paths like /etc/nixos/nixpkgs for backward compatibility).
2014-02-26 Simplify getting use-ssh-substituter from untrusted usersEelco Dolstra2-14/+3
2014-02-26 Only start download-via-ssh if it's enabledEelco Dolstra1-12/+14
2014-02-26 Add use-ssh-substituter setting.Shea Levy3-0/+17
It defaults to false and can be overridden by RemoteStore. Untested currently, just quickly put this together
2014-02-19 nix-instantiate: Allow --dry-run as a synonym for --readonly-modeEelco Dolstra1-0/+2
--dry-run is more consistent with nix-env and nix-store.
2014-02-19 nix-instantiate: Rename --eval-only to --eval, --parse-only to --parseEelco Dolstra1-2/+2
2014-02-19 nix-instantiate: Add a flag --expr / -E to read expressions from the command ↵Eelco Dolstra1-2/+7
line This is basically a shortcut for ‘echo 'expr...' | nix-instantiate -’. Also supported by nix-build and nix-shell.
2014-02-18 lexer-tab.o and parser-tab.o require each other's headersShea Levy1-0/+4
2014-02-18 Slight simplificationEelco Dolstra1-17/+10
2014-02-18 Add a flag ‘--check’ to verify build determinismEelco Dolstra8-55/+93
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 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 Dolstra2-4/+19
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-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-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-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-08 Add download-via-ssh substituterShea Levy5-0/+167
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 Levy1-1/+1
Signed-off-by: Shea Levy <shea@shealevy.com>
2014-02-07 nix-instantiate: Add a --no-readonly-mode flagShea Levy1-0/+3
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-03 Fix assertion failure in ‘nix-store --load-db’Eelco Dolstra1-1/+12
Namely: nix-store: derivations.cc:242: nix::Hash nix::hashDerivationModulo(nix::StoreAPI&, nix::Derivation): Assertion `store.isValidPath(i->first)' failed. This happened because of the derivation output correctness check being applied before the references of a derivation are valid.
2014-02-01 Give a friendly error message if the DB directory is not writableEelco Dolstra1-2/+6
Previously we would say "error: setting synchronous mode: unable to open database file" which isn't very helpful.
2014-02-01 More "make dist" fixesEelco Dolstra1-0/+2
2014-02-01 Fix "make dist"Eelco Dolstra3-5/+7
2014-02-01 Remove AutomakefilesEelco Dolstra13-201/+0
2014-02-01 Update Makefile variable namesEelco Dolstra12-13/+13
2014-01-30 Rename Makefile -> local.mkEelco Dolstra12-0/+0
2014-01-30 Install nix-worker symlinkEelco Dolstra1-0/+2
2014-01-21 Fix some clang warningsEelco Dolstra6-18/+12
2014-01-21 Fix building against Bison 3.0.2Eelco Dolstra1-1/+1