about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2016-08-24 Fix queryPathFromHashPart()Eelco Dolstra1-1/+1
The inner lambda was returning a SQLite-internal char * rather than a std::string, leading to Hydra errors liks Caught exception in Hydra::Controller::Root->narinfo "path ‘ø˜£â€™ is not in the Nix store at /nix/store/6mvvyb8fgwj23miyal5mdr8ik4ixk15w-hydra-0.1.1234.abcdef/libexec/hydra/lib/Hydra/Controller/Root.pm line 352."
2016-08-23 nix build: Use Nix search pathEelco Dolstra5-13/+57
That is, unless --file is specified, the Nix search path is synthesized into an attribute set. Thus you can say $ nix build nixpkgs.hello assuming $NIX_PATH contains an entry of the form "nixpkgs=...". This is more verbose than $ nix build hello but is less ambiguous.
2016-08-17 Add a mechanism for derivation attributes to reference the derivation's outputsEelco Dolstra4-14/+38
For example, you can now say: configureFlags = "--prefix=${placeholder "out"} --includedir=${placeholder "dev"}"; The strings returned by the ‘placeholder’ builtin are replaced at build time by the actual store paths corresponding to the specified outputs. Previously, you had to work around the inability to self-reference by doing stuff like: preConfigure = '' configureFlags+=" --prefix $out --includedir=$dev" ''; or rely on ad-hoc variable interpolation semantics in Autoconf or Make (e.g. --prefix=\$(out)), which doesn't always work.
2016-08-16 Merge pull request #1031 from abbradar/replacestrings-contextEelco Dolstra1-7/+17
Allow contexted strings in replaceStrings
2016-08-16 Allow contexted strings in replaceStringsNikolay Amiantov1-7/+17
2016-08-15 builtins.fetch{url,tarball}: Allow name attributeShea Levy3-9/+13
2016-08-11 Merge branch 'buildenv-c++' of https://github.com/shlevy/nixEelco Dolstra2-0/+195
2016-08-11 buildenv: perl -> c++Shea Levy2-0/+195
2016-08-10 HttpBinaryCacheStore: Retry on transient HTTP errorsEelco Dolstra3-14/+34
This makes us more robust against 500 errors from CloudFront or S3 (assuming the 500 error isn't cached by CloudFront...).
2016-08-10 Show HTTP error codesEelco Dolstra1-2/+6
2016-08-10 SQLite:: Add some convenienceEelco Dolstra4-28/+33
2016-08-10 FSAccessor: Throw InvalidPathEelco Dolstra2-2/+2
2016-08-10 NarAccessor: Fix handling of non-executable filesEelco Dolstra1-1/+1
2016-08-10 Mark content-addressed paths in the Nix database and in .narinfoEelco Dolstra11-43/+146
This allows such paths to be imported without signatures.
2016-08-10 LocalFSStore::narFromPath(): Handle the diverted store caseEelco Dolstra1-1/+1
2016-08-10 Add a "root" parameter to local storesEelco Dolstra5-5/+13
This makes it easier to create a diverted store, i.e. NIX_REMOTE="local?root=/tmp/root" instead of NIX_REMOTE="local?real=/tmp/root/nix/store&state=/tmp/root/nix/var/nix" NIX_LOG_DIR=/tmp/root/nix/var/log
2016-08-10 Remove $NIX_DB_DIREelco Dolstra4-6/+1
This variable has no reason to exist, given $NIX_STATE_DIR.
2016-08-10 RemoteStore / nix-daemon: Drop support for Nix < 1.0Eelco Dolstra2-44/+33
2016-07-26 makeFixedOutputPath(): Drop superfluous HashType argumentEelco Dolstra11-27/+25
2016-07-26 builtins.{fetchurl,fetchTarball}: Support a sha256 attributeEelco Dolstra3-12/+37
Also, allow builtins.{fetchurl,fetchTarball} in restricted mode if a hash is specified.
2016-07-24 Merge branch 'find-runtime-roots-c++'Shea Levy1-8/+108
2016-07-23 Respect --keep-going when a substituter fails.Shea Levy1-2/+4
Fixes #977
2016-07-21 Fix assertion failureEelco Dolstra1-1/+1
2016-07-21 Fix random failures caused by CurlDownloader modifying a shared stringEelco Dolstra1-1/+1
2016-07-21 NarInfo::NarInfo(): Ensure that we get a NAR size/hashEelco Dolstra2-2/+3
2016-07-21 Fix assertion failure in ThreadPool::enqueue()Eelco Dolstra2-2/+6
2016-07-21 Store::queryMissing(): Use a thread poolEelco Dolstra1-85/+104
For one particular NixOS configuration, this cut the runtime of "nix-store -r --dry-run" from 6m51s to 3.4s. It also fixes a bug in the size calculation that was causing certain paths to be counted twice, e.g. before: these paths will be fetched (1249.98 MiB download, 2995.74 MiB unpacked): and after: these paths will be fetched (1219.56 MiB download, 2862.17 MiB unpacked):
2016-07-21 Store::computeFSClosure(): Use thread poolEelco Dolstra1-27/+48
This speeds up queries against the binary cache.
2016-07-21 find-runtime-roots: fold into gc.ccShea Levy1-8/+108
2016-07-13 FdSink: Restore move constructor/assignmentShea Levy1-0/+2
2016-07-13 Make Buffered{Source,Sink} move-safeShea Levy2-27/+12
2016-07-11 Modernize AutoCloseFDShea Levy11-151/+137
2016-06-20 Re-implement negative binary cache lookup cachingEelco Dolstra2-15/+22
2016-06-09 Run builds in a user namespaceEelco Dolstra1-14/+65
This way, all builds appear to have a uid/gid of 0 inside the chroot. In the future, this may allow using programs like systemd-nspawn inside builds, but that will require assigning a larger UID/GID map to the build. Issue #625.
2016-06-09 Use O_CLOEXEC in most placesEelco Dolstra8-18/+22
2016-06-03 Fix "creating statement: table ValidPaths has no column named ultimate"Eelco Dolstra1-41/+29
2016-06-03 Support sandbox builds by non-root usersEelco Dolstra3-53/+69
This allows an unprivileged user to perform builds on a diverted store (i.e. where the physical store location differs from the logical location). Example: $ NIX_LOG_DIR=/tmp/log NIX_REMOTE="local?real=/tmp/store&state=/tmp/var" nix-build -E \ 'with import <nixpkgs> {}; runCommand "foo" { buildInputs = [procps nettools]; } "id; ps; ifconfig; echo $out > $out"' will do a build in the Nix store physically in /tmp/store but logically in /nix/store (and thus using substituters for the latter).
2016-06-03 Consistent quotesEelco Dolstra1-1/+1
2016-06-03 Don't call shared_from_this() from a destructorEelco Dolstra1-1/+1
2016-06-03 Fix some more references to storeDirEelco Dolstra1-2/+2
2016-06-03 Merge pull request #925 from abbradar/masterEelco Dolstra1-5/+5
Show both cycle ends
2016-06-03 Show both cycle endsNikolay Amiantov1-5/+5
2016-06-03 Fix narrowing conversion from int64_t to boolEelco Dolstra1-1/+1
http://hydra.nixos.org/build/36613774
2016-06-02 nix run: Set a reasonable uid/gidEelco Dolstra1-0/+7
2016-06-02 Make derivationFromPath work on diverted storesEelco Dolstra5-18/+27
2016-06-02 nix run: Handle the case where the /nix/store mount point doesn't existEelco Dolstra1-2/+39
2016-06-02 createTempDir(): Don't do a chown on LinuxEelco Dolstra1-0/+2
It's not needed and can cause problems in a user namespace.
2016-06-02 nix run: Mount the Nix store in a private namespaceEelco Dolstra2-1/+25
This is a convenience command to allow users who are not privileged to create /nix/store to use Nix with regular binary caches. For example, $ NIX_REMOTE="local?state=$HOME/nix/var&real=/$HOME/nix/store" nix run firefox bashInteractive will download Firefox and bash from cache.nixos.org, then start a shell in which $HOME/nix/store is mounted on /nix/store.
2016-06-02 Add basic "nix run" commandEelco Dolstra1-0/+62
2016-06-02 LocalStore: Allow the physical and logical store directories to differEelco Dolstra5-54/+68
This is primarily to subsume the functionality of the copy-from-other-stores substituter. For example, in the NixOS installer, we can now do (assuming we're in the target chroot, and the Nix store of the installation CD is bind-mounted on /tmp/nix): $ nix-build ... --option substituters 'local?state=/tmp/nix/var&real=/tmp/nix/store' However, unlike copy-from-other-stores, this also allows write access to such a store. One application might be fetching substitutes for /nix/store in a situation where the user doesn't have sufficient privileges to create /nix, e.g.: $ NIX_REMOTE="local?state=/home/alice/nix/var&real=/home/alice/nix/store" nix-build ...