about summary refs log tree commit diff
path: root/src/libstore/binary-cache-store.hh (follow)
AgeCommit message (Collapse)AuthorFilesLines
2017-05-01 Add a dummy Store::buildPaths() methodEelco Dolstra1-17/+12
This default implementation of buildPaths() does nothing if all requested paths are already valid, and throws an "unsupported operation" error otherwise. This fixes a regression introduced by c30330df6f67c81986dfb124631bc756c8e58c0d in binary cache and legacy SSH stores.
2017-04-13 Add a Config class to simplify adding configuration settingsEelco Dolstra1-4/+6
The typical use is to inherit Config and add Setting<T> members: class MyClass : private Config { Setting<int> foo{this, 123, "foo", "the number of foos to use"}; Setting<std::string> bar{this, "blabla", "bar", "the name of the bar"}; MyClass() : Config(readConfigFile("/etc/my-app.conf")) { std::cout << foo << "\n"; // will print 123 unless overriden } }; Currently, this is used by Store and its subclasses for store parameters. You now get a warning if you specify a non-existant store parameter in a store URI.
2017-03-15 S3BinaryCacheStore: Set Content-TypeEelco Dolstra1-1/+3
This is necessary for serving log files to browsers.
2017-03-15 BinaryCacheStore: Implement getBuildLog()Eelco Dolstra1-0/+2
We assume that build logs are stored under log/<drv>, e.g. /nix/store/q7ab198v13p0f8x8wgnd75dva7d5mip6-friday-devil-0.1.1.1.drv maps to https://cache.nixos.org/log/q7ab198v13p0f8x8wgnd75dva7d5mip6-friday-devil-0.1.1.1.drv
2017-02-07 Provide default implementations for a couple of Store methodsEelco Dolstra1-19/+0
2017-02-07 CleanupEelco Dolstra1-2/+0
2016-10-21 Remove addPathToAccessorEelco Dolstra1-10/+7
2016-10-21 BinaryCacheStore: Optionally write a NAR listingEelco Dolstra1-1/+7
The store parameter "write-nar-listing=1" will cause BinaryCacheStore to write a file ‘<store-hash>.ls.xz’ for each ‘<store-hash>.narinfo’ added to the binary cache. This file contains an XZ-compressed JSON file describing the contents of the NAR, excluding the contents of regular files. E.g. { "version": 1, "root": { "type": "directory", "entries": { "lib": { "type": "directory", "entries": { "Mcrt1.o": { "type": "regular", "size": 1288 }, "Scrt1.o": { "type": "regular", "size": 3920 }, } } } ... } } (The actual file has no indentation.) This is intended to speed up the NixOS channels programs index generator [1], since fetching gazillions of large NARs from cache.nixos.org is currently a bottleneck for updating the regular (non-small) channel. [1] https://github.com/NixOS/nixos-channel-scripts/blob/master/generate-programs-index.cc
2016-10-07 Implement generic Store::queryValidPaths()Eelco Dolstra1-3/+0
2016-10-07 importPaths(): Fix accessor support for HydraEelco Dolstra1-0/+6
2016-09-16 Make computeFSClosure() single-threaded againEelco Dolstra1-2/+8
The fact that queryPathInfo() is synchronous meant that we needed a thread for every concurrent binary cache lookup, even though they end up being handled by the same download thread. Requiring hundreds of threads is not a good idea. So now there is an asynchronous version of queryPathInfo() that takes a callback function to process the result. Similarly, enqueueDownload() now takes a callback rather than returning a future. Thus, a command like nix path-info --store https://cache.nixos.org/ -r /nix/store/slljrzwmpygy1daay14kjszsr9xix063-nixos-16.09beta231.dccf8c5 that returns 4941 paths now takes 1.87s using only 2 threads (the main thread and the downloader thread). (This is with a prewarmed CloudFront.)
2016-06-01 Make the store directory a member variable of StoreEelco Dolstra1-1/+1
2016-05-31 Shut up some clang warningsEelco Dolstra1-3/+3
2016-05-31 nix-copy-closure / build-remote.pl: Disable signature checkingEelco Dolstra1-1/+1
This restores the Nix 1.11 behaviour.
2016-05-30 Re-implement the WantMassQuery property of binary cachesEelco Dolstra1-0/+5
2016-05-30 BinaryCacheStore: Remove buildPaths() / ensurePath()Eelco Dolstra1-7/+7
2016-05-04 Add a Store::addToStore() variant that accepts a NAREelco Dolstra1-9/+3
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 Dolstra1-2/+2
2016-04-29 BinaryCacheStore: Support "none" compression methodEelco Dolstra1-1/+3
2016-04-29 BinaryCacheStore: Make the signing key a parameterEelco Dolstra1-1/+2
2016-04-29 BinaryCacheStore::queryPathInfo: Don't check signaturesEelco Dolstra1-1/+0
Other stores don't do this either. It's up to the caller to check signatures.
2016-04-19 Move path info caching from BinaryCacheStore to StoreEelco Dolstra1-42/+2
Caching path info is generally useful. For instance, it speeds up "nix path-info -rS /run/current-system" (i.e. showing the closure sizes of all paths in the closure of the current system) from 5.6s to 0.15s. This also eliminates some APIs like Store::queryDeriver() and Store::queryReferences().
2016-04-15 Make the .narinfo cache biggerEelco Dolstra1-1/+1
2016-04-15 BinaryCacheStore: Do negative caching of .narinfo lookupsEelco Dolstra1-1/+2
2016-04-15 BinaryCacheStore::readFile(): Return a shared_ptr to a stringEelco Dolstra1-1/+3
This allows readFile() to indicate that a file doesn't exist, and might eliminate some large string copying.
2016-04-08 Remove failed build cachingEelco Dolstra1-6/+0
This feature was implemented for Hydra, but Hydra no longer uses it.
2016-04-05 Add "nix copy-sigs" commandEelco Dolstra1-0/+3
This imports signatures from one store into another. E.g. $ nix copy-sigs -r /run/current-system -s https://cache.nixos.org/ imported 595 signatures
2016-03-22 Don't overload dumpPath()Eelco Dolstra1-1/+1
2016-03-21 Add Store::dumpPath() methodEelco Dolstra1-0/+2
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-04 BinaryCacheStore: Remove publicKeyFile argumentEelco Dolstra1-2/+1
The public key can be derived from the secret key, so there's no need for the user to supply it separately.
2016-02-26 importPaths(): Optionally add NARs to binary cache accessorEelco Dolstra1-2/+3
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-25 Add NAR / Store accessor abstractionEelco Dolstra1-2/+3
This is primary to allow hydra-queue-runner to extract files like "nix-support/hydra-build-products" from NARs in binary caches.
2016-02-24 BinaryCacheStore: Implement addToStore()Eelco Dolstra1-8/+8
So now you can do $ NIX_REMOTE=file:///tmp/binary-cache nix-instantiate '<nixpkgs>' -A hello and lots of other operations.
2016-02-24 Show a proper error message for unimplemented binary cache operationsEelco Dolstra1-17/+19
2016-02-24 Move BinaryCacheStore / LocalBinaryCacheStore from HydraEelco Dolstra1-0/+170
So you can now do: $ NIX_REMOTE=file:///tmp/binary-cache nix-store -qR /nix/store/...