aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
AgeCommit message (Collapse)Author
2016-03-23Drop support for daemon socket path >= 108 charactersEelco Dolstra
Doing a chdir() is a bad idea in multi-threaded programs, leading to failures such as error: cannot connect to daemon at ‘/nix/var/nix/daemon-socket/socket’: No such file or directory Since Linux doesn't have a connectat() syscall like FreeBSD, there is no way we can support this in a race-free way.
2016-03-23LocalStoreAccessor::stat: Handle ENOTDIREelco Dolstra
Closes https://github.com/NixOS/hydra/pull/286.
2016-03-22Don't overload dumpPath()Eelco Dolstra
2016-03-21Move signatures from NarInfo to ValidPathInfoEelco Dolstra
This allows queryPathInfo() to return signatures.
2016-03-21Add Store::dumpPath() methodEelco Dolstra
This allows applying nix-store --verify-path to binary cache stores: NIX_REMOTE=https://cache.nixos.org nix-store --verify-path /nix/store/s5c7...
2016-03-21Drop support for upgrading from Nix <= 0.12Eelco Dolstra
2016-03-15Fix Darwin buildEelco Dolstra
http://hydra.nixos.org/build/33279996
2016-03-14Fix another mismatched tagEelco Dolstra
http://hydra.nixos.org/build/33279570
2016-03-14BinaryCacheStore::isValidPath(): Use .narinfo cacheEelco Dolstra
If a path is in the .narinfo cache, obviously it's valid.
2016-03-04Add option binary-cache-secret-key-file for signing binary cachesEelco Dolstra
2016-03-04BinaryCacheStore: Remove publicKeyFile argumentEelco Dolstra
The public key can be derived from the secret key, so there's no need for the user to supply it separately.
2016-03-04Eliminate some large string copyingEelco Dolstra
2016-03-04Merge branch 'new-cli'Eelco Dolstra
2016-03-03Add file missing from 201b48de60751979835037a4b4f78128ba3fb7b3Eelco Dolstra
2016-03-03build.cc: fs.h doesn't appear to be necessary anymoreNathan Zadoks
2016-03-02Provide function required by HydraEelco Dolstra
2016-03-02Add an HTTP binary cache storeEelco Dolstra
Allowing stuff like NIX_REMOTE=https://cache.nixos.org nix-store -qR /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 or NIX_REMOTE=https://cache.nixos.org nix-store --export /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 | nix-store --import
2016-03-02Eliminate local-binary-cache-store.hhEelco Dolstra
2016-03-02Make store implementations pluggableEelco Dolstra
This for instance allows hydra-queue-runner to add the S3 backend at runtime.
2016-03-02Remove bad assertionEelco Dolstra
2016-03-02importPaths(): Optionally add NARs to binary cache accessorEelco Dolstra
This enables an optimisation in hydra-queue-runner, preventing a download of a NAR it just uploaded to the cache when reading files like hydra-build-products.
2016-02-29Add an HTTP binary cache storeEelco Dolstra
Allowing stuff like NIX_REMOTE=https://cache.nixos.org nix-store -qR /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 or NIX_REMOTE=https://cache.nixos.org nix-store --export /nix/store/x1p1gl3a4kkz5ci0nfbayjqlqmczp1kq-geeqie-1.1 | nix-store --import
2016-02-29Eliminate local-binary-cache-store.hhEelco Dolstra
2016-02-29Make store implementations pluggableEelco Dolstra
This for instance allows hydra-queue-runner to add the S3 backend at runtime.
2016-02-26Remove bad assertionEelco Dolstra
2016-02-26importPaths(): Optionally add NARs to binary cache accessorEelco Dolstra
This enables an optimisation in hydra-queue-runner, preventing a download of a NAR it just uploaded to the cache when reading files like hydra-build-products.
2016-02-25Add NAR / Store accessor abstractionEelco Dolstra
This is primary to allow hydra-queue-runner to extract files like "nix-support/hydra-build-products" from NARs in binary caches.
2016-02-24deletePath(): Succeed if path doesn't existEelco Dolstra
Also makes it robust against concurrent deletions.
2016-02-24Eliminate reserveSpace flagEelco Dolstra
2016-02-24LocalStore::addTextToStore(): Don't read the path we just wroteEelco Dolstra
This eliminates some unnecessary (presumably cached) I/O.
2016-02-24BinaryCacheStore: Implement addToStore()Eelco Dolstra
So now you can do $ NIX_REMOTE=file:///tmp/binary-cache nix-instantiate '<nixpkgs>' -A hello and lots of other operations.
2016-02-24openStoreAt(): Initialise the binary cacheEelco Dolstra
2016-02-24Show a proper error message for unimplemented binary cache operationsEelco Dolstra
2016-02-24Move BinaryCacheStore / LocalBinaryCacheStore from HydraEelco Dolstra
So you can now do: $ NIX_REMOTE=file:///tmp/binary-cache nix-store -qR /nix/store/...
2016-02-24Remove bad daemon connections from the poolEelco Dolstra
This is necessary for long-running processes like hydra-queue-runner: if a nix-daemon worker is killed, we need to stop reusing that connection.
2016-02-23Pool<T>: Allow a maximum pool sizeEelco Dolstra
2016-02-23RemoteStore: Make thread-safeEelco Dolstra
This allows a RemoteStore object to be used safely from multiple threads concurrently. It will make multiple daemon connections if necessary. Note: pool.hh and sync.hh have been copied from the Hydra source tree.
2016-02-22curl: Set CURLOPT_NOSIGNALEelco Dolstra
Otherwise using curl is not safe in multi-threaded applications because it installs a SIGALRM handler.
2016-02-17Fix build without sodiumEelco Dolstra
http://hydra.nixos.org/build/32085949
2016-02-16Add C++ functions for .narinfo processing / signingEelco Dolstra
This is currently only used by the Hydra queue runner rework, but like eff5021eaa6dc69f65ea1a8abe8f3ab11ef5eb0a it presumably will be useful for the C++ rewrite of nix-push and download-from-binary-cache. (@shlevy)
2016-02-16Rename ValidPathInfo::hash -> narHash for consistencyEelco Dolstra
2016-02-15Expose the export magic value and move LocalStore::queryReferences to StoreEelco Dolstra
2016-02-15Add function to extract hash part of a store pathEelco Dolstra
2016-02-11Move addPermRoot into StoreEelco Dolstra
2016-02-11ref<T>: Add cast operatorEelco Dolstra
2016-02-04StoreAPI -> StoreEelco Dolstra
Calling a class an API is a bit redundant...
2016-02-04Eliminate the "store" global variableEelco Dolstra
Also, move a few free-standing functions into StoreAPI and Derivation. Also, introduce a non-nullable smart pointer, ref<T>, which is just a wrapper around std::shared_ptr ensuring that the pointer is never null. (For reference-counted values, this is better than passing a "T&", because the latter doesn't maintain the refcount. Usually, the caller will have a shared_ptr keeping the value alive, but that's not always the case, e.g., when passing a reference to a std::thread via std::bind.)
2016-01-31Add build mode to compute fixed-output derivation hashesEelco Dolstra
For example, $ nix-build --hash -A nix-repl.src will build the fixed-output derivation nix-repl.src (a fetchFromGitHub call), but instead of *verifying* the hash given in the Nix expression, it prints out the resulting hash, and then moves the result to its content-addressed location in the Nix store. E.g build produced path ‘/nix/store/504a4k6zi69dq0yjc0bm12pa65bccxam-nix-repl-8a2f5f0607540ffe56b56d52db544373e1efb980-src’ with sha256 hash ‘0cjablz01i0g9smnavhf86imwx1f9mnh5flax75i615ml71gsr88’ The goal of this is to make all nix-prefetch-* scripts unnecessary: we can just let Nix run the real thing (i.e., the corresponding fetch* derivation). Another example: $ nix-build --hash -E 'with import <nixpkgs> {}; fetchgit { url = "https://github.com/NixOS/nix.git"; sha256 = "ffffffffffffffffffffffffffffffffffffffffffffffffffff"; }' ... git revision is 9e7c1a4bbdbe6129dd9dc385776612c307d3d1bb ... build produced path ‘/nix/store/gmsnh9i7x4mb7pyd2ns7n3c9l90jfsi1-nix’ with sha256 hash ‘1188xb621diw89n25rifqg9lxnzpz7nj5bfh4i1y3dnis0dmc0zp’ (Having to specify a fake sha256 hash is a bit annoying...)
2016-01-31Use the daemon when we don't have write access to the Nix databaseEelco Dolstra
2016-01-12--option build-repeat: Keep the differing output if -K is givenEelco Dolstra
Similar to 00903fa79961d7eb0fadeb9ed2d7cda7821dc293. Regardless of -K, we now also print which output differs.