about summary refs log tree commit diff
path: root/src/libstore
AgeCommit message (Collapse)AuthorFilesLines
2016-07-26 makeFixedOutputPath(): Drop superfluous HashType argumentEelco Dolstra8-22/+21
2016-07-26 builtins.{fetchurl,fetchTarball}: Support a sha256 attributeEelco Dolstra2-9/+30
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 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 Dolstra1-2/+2
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-11 Modernize AutoCloseFDShea Levy5-84/+82
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 Dolstra5-11/+11
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 Make derivationFromPath work on diverted storesEelco Dolstra5-18/+27
2016-06-02 nix run: Mount the Nix store in a private namespaceEelco Dolstra1-0/+4
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 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 ...
2016-06-02 Respect build-use-substitutesEelco Dolstra2-1/+3
2016-06-02 Allow setting the state directory as a store parameterEelco Dolstra8-48/+57
E.g. "local?store=/tmp/store&state=/tmp/var".
2016-06-01 <nix/fetchurl.nix>: Use tarballs.nixos.orgEelco Dolstra1-20/+35
This ensures that the disappearance of upstream bootstrap tarballs (e.g. https://github.com/NixOS/nixpkgs-channels/pull/1) doesn't break stdenv rebuilds.
2016-06-01 TypoEelco Dolstra1-1/+1
2016-06-01 Skip substituters with an incompatible store directoryEelco Dolstra2-0/+7
2016-06-01 HttpBinaryCacheStore: Fix caching of WantMassQueryEelco Dolstra5-20/+25
Also, test HttpBinaryCacheStore in addition to LocalBinaryCacheStore.
2016-06-01 Make the store directory a member variable of StoreEelco Dolstra25-229/+249
2016-05-31 Shut up some clang warningsEelco Dolstra2-9/+9
2016-05-31 Fix clang build failureEelco Dolstra1-1/+2
Apparently opinion is divided on whether [[noreturn]] is allowed on a lambda: http://stackoverflow.com/questions/26888805/how-to-declare-a-lambdas-operator-as-noreturn http://hydra.nixos.org/build/36462100
2016-05-31 nix-copy-closure / build-remote.pl: Disable signature checkingEelco Dolstra8-12/+15
This restores the Nix 1.11 behaviour.
2016-05-30 Fix buildEelco Dolstra1-1/+1
2016-05-30 Check signatures before downloading the substituteEelco Dolstra2-0/+11
2016-05-30 Test the NAR info cacheEelco Dolstra1-0/+7
2016-05-30 Re-implement binary cache signature checkingEelco Dolstra2-0/+9
This is now done in LocalStore::addToStore(), rather than in the binary cache substituter (which no longer exists).
2016-05-30 LocalStore::addToStore: Verify hash of the imported pathEelco Dolstra1-0/+5
2016-05-30 Re-implement the WantMassQuery property of binary cachesEelco Dolstra8-8/+40
2016-05-30 Fix repair during substitutionEelco Dolstra3-4/+5
2016-05-30 BinaryCacheStore: Remove buildPaths() / ensurePath()Eelco Dolstra6-83/+20
2016-05-04 Make the aws-cpp-sdk dependency optionalEelco Dolstra2-1/+11
2016-05-04 Cleanup: Remove singleton()Eelco Dolstra3-8/+6
2016-05-04 Do compression in a sinkEelco Dolstra2-43/+20
2016-05-04 More GC fixesEelco Dolstra1-5/+5
2016-05-04 Add a Store::addToStore() variant that accepts a NAREelco Dolstra11-323/+222
As a side effect, this ensures that signatures are propagated when copying paths between stores. Also refactored import/export to make use of this.
2016-05-04 Remove OpenSSL-based signingEelco Dolstra8-102/+29
2016-05-04 Add a copyStorePath() utility functionEelco Dolstra3-5/+19
2016-04-29 Add fetchgit builtinEelco Dolstra1-1/+1
The function builtins.fetchgit fetches Git repositories at evaluation time, similar to builtins.fetchTarball. (Perhaps the name should be changed, being confusing with respect to Nixpkgs's fetchgit function, with works at build time.) Example: (import (builtins.fetchgit git://github.com/NixOS/nixpkgs) {}).hello or (import (builtins.fetchgit { url = git://github.com/NixOS/nixpkgs-channels; rev = "nixos-16.03"; }) {}).hello Note that the result does not contain a .git directory.