aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
AgeCommit message (Collapse)Author
2016-08-24Fix queryPathFromHashPart()Eelco Dolstra
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-17Add a mechanism for derivation attributes to reference the derivation's outputsEelco Dolstra
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-15builtins.fetch{url,tarball}: Allow name attributeShea Levy
2016-08-10HttpBinaryCacheStore: Retry on transient HTTP errorsEelco Dolstra
This makes us more robust against 500 errors from CloudFront or S3 (assuming the 500 error isn't cached by CloudFront...).
2016-08-10Show HTTP error codesEelco Dolstra
2016-08-10SQLite:: Add some convenienceEelco Dolstra
2016-08-10FSAccessor: Throw InvalidPathEelco Dolstra
2016-08-10NarAccessor: Fix handling of non-executable filesEelco Dolstra
2016-08-10Mark content-addressed paths in the Nix database and in .narinfoEelco Dolstra
This allows such paths to be imported without signatures.
2016-08-10LocalFSStore::narFromPath(): Handle the diverted store caseEelco Dolstra
2016-08-10Add a "root" parameter to local storesEelco Dolstra
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-10Remove $NIX_DB_DIREelco Dolstra
This variable has no reason to exist, given $NIX_STATE_DIR.
2016-08-10RemoteStore / nix-daemon: Drop support for Nix < 1.0Eelco Dolstra
2016-07-26makeFixedOutputPath(): Drop superfluous HashType argumentEelco Dolstra
2016-07-26builtins.{fetchurl,fetchTarball}: Support a sha256 attributeEelco Dolstra
Also, allow builtins.{fetchurl,fetchTarball} in restricted mode if a hash is specified.
2016-07-24Merge branch 'find-runtime-roots-c++'Shea Levy
2016-07-23Respect --keep-going when a substituter fails.Shea Levy
Fixes #977
2016-07-21Fix random failures caused by CurlDownloader modifying a shared stringEelco Dolstra
2016-07-21NarInfo::NarInfo(): Ensure that we get a NAR size/hashEelco Dolstra
2016-07-21Store::queryMissing(): Use a thread poolEelco Dolstra
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-21Store::computeFSClosure(): Use thread poolEelco Dolstra
This speeds up queries against the binary cache.
2016-07-21find-runtime-roots: fold into gc.ccShea Levy
2016-07-11Modernize AutoCloseFDShea Levy
2016-06-20Re-implement negative binary cache lookup cachingEelco Dolstra
2016-06-09Run builds in a user namespaceEelco Dolstra
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-09Use O_CLOEXEC in most placesEelco Dolstra
2016-06-03Fix "creating statement: table ValidPaths has no column named ultimate"Eelco Dolstra
2016-06-03Support sandbox builds by non-root usersEelco Dolstra
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-03Consistent quotesEelco Dolstra
2016-06-03Don't call shared_from_this() from a destructorEelco Dolstra
2016-06-03Fix some more references to storeDirEelco Dolstra
2016-06-03Merge pull request #925 from abbradar/masterEelco Dolstra
Show both cycle ends
2016-06-03Show both cycle endsNikolay Amiantov
2016-06-03Fix narrowing conversion from int64_t to boolEelco Dolstra
http://hydra.nixos.org/build/36613774
2016-06-02Make derivationFromPath work on diverted storesEelco Dolstra
2016-06-02nix run: Mount the Nix store in a private namespaceEelco Dolstra
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-02LocalStore: Allow the physical and logical store directories to differEelco Dolstra
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-02Respect build-use-substitutesEelco Dolstra
2016-06-02Allow setting the state directory as a store parameterEelco Dolstra
E.g. "local?store=/tmp/store&state=/tmp/var".
2016-06-01<nix/fetchurl.nix>: Use tarballs.nixos.orgEelco Dolstra
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-01TypoEelco Dolstra
2016-06-01Skip substituters with an incompatible store directoryEelco Dolstra
2016-06-01HttpBinaryCacheStore: Fix caching of WantMassQueryEelco Dolstra
Also, test HttpBinaryCacheStore in addition to LocalBinaryCacheStore.
2016-06-01Make the store directory a member variable of StoreEelco Dolstra
2016-05-31Shut up some clang warningsEelco Dolstra
2016-05-31Fix clang build failureEelco Dolstra
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-31nix-copy-closure / build-remote.pl: Disable signature checkingEelco Dolstra
This restores the Nix 1.11 behaviour.
2016-05-30Fix buildEelco Dolstra
2016-05-30Check signatures before downloading the substituteEelco Dolstra
2016-05-30Test the NAR info cacheEelco Dolstra