about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2016-03-02 importPaths(): Optionally add NARs to binary cache accessorEelco Dolstra9-43/+57
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 nix: Add commands to query contents of NARs / binary cachesEelco Dolstra2-0/+197
For example, $ NIX_REMOTE=file:///my-cache nix ls-store -lR /nix/store/f4kbgl8shhyy76rkk3nbxr0lz8d2ip7q-binutils-2.23.1 dr-xr-xr-x 0 ./bin -r-xr-xr-x 30748 ./bin/addr2line -r-xr-xr-x 66973 ./bin/ar ... Similarly, "nix ls-nar" lists the contents of a NAR file, "nix cat-nar" extracts a file from a NAR file, and "nix cat-store" extract a file from a Nix store.
2016-02-25 Merge branch 'master' into new-cliEelco Dolstra11-13/+352
2016-02-25 Add NAR / Store accessor abstractionEelco Dolstra11-13/+352
This is primary to allow hydra-queue-runner to extract files like "nix-support/hydra-build-products" from NARs in binary caches.
2016-02-25 Fix short boolean flagsEelco Dolstra1-1/+1
2016-02-25 Fix buildEelco Dolstra3-6/+6
2016-02-25 Merge branch 'master' into new-cliEelco Dolstra54-490/+2044
2016-02-24 deletePath(): Succeed if path doesn't existEelco Dolstra5-23/+23
Also makes it robust against concurrent deletions.
2016-02-24 Eliminate reserveSpace flagEelco Dolstra10-37/+33
2016-02-24 LocalStore::addTextToStore(): Don't read the path we just wroteEelco Dolstra1-3/+5
This eliminates some unnecessary (presumably cached) I/O.
2016-02-24 BinaryCacheStore: Implement addToStore()Eelco Dolstra4-12/+74
So now you can do $ NIX_REMOTE=file:///tmp/binary-cache nix-instantiate '<nixpkgs>' -A hello and lots of other operations.
2016-02-24 openStoreAt(): Initialise the binary cacheEelco Dolstra1-1/+3
2016-02-24 Show a proper error message for unimplemented binary cache operationsEelco Dolstra2-17/+24
2016-02-24 TypoEelco Dolstra1-2/+2
2016-02-24 Move BinaryCacheStore / LocalBinaryCacheStore from HydraEelco Dolstra7-5/+658
So you can now do: $ NIX_REMOTE=file:///tmp/binary-cache nix-store -qR /nix/store/...
2016-02-24 Merge pull request #816 from tsion/incomplete-parseEelco Dolstra3-1/+11
Throw a specific error for incomplete parse errors.
2016-02-24 std::condition_variable_any -> std::condition_variableEelco Dolstra2-11/+11
The latter is supposed to be more efficient.
2016-02-24 C++ templates are just a glorified macro facilityEelco Dolstra1-2/+2
2016-02-24 Remove bad daemon connections from the poolEelco Dolstra4-14/+55
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-24 Throw a specific error for incomplete parse errors.Scott Olson3-1/+11
`nix-repl` will use this for deciding whether to keep waiting for input or error out right away.
2016-02-23 Pool<T>: Allow a maximum pool sizeEelco Dolstra4-33/+74
2016-02-23 RemoteStore: Make thread-safeEelco Dolstra4-235/+414
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-23 Move ref<t> into a separate headerEelco Dolstra2-59/+69
2016-02-22 DohEelco Dolstra1-1/+1
2016-02-22 Make OpenSSL usage thread-safeEelco Dolstra3-4/+26
OpenSSL can randomly segfault unless we register a callback function to do locking. https://www.openssl.org/docs/manmaster/crypto/threads.html
2016-02-22 curl: Set CURLOPT_NOSIGNALEelco Dolstra1-0/+2
Otherwise using curl is not safe in multi-threaded applications because it installs a SIGALRM handler.
2016-02-19 JSONObject: Support floats and booleansEelco Dolstra1-1/+12
2016-02-17 Fix build without sodiumEelco Dolstra2-5/+11
http://hydra.nixos.org/build/32085949
2016-02-16 Add C++ functions for .narinfo processing / signingEelco Dolstra5-1/+297
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-16 Rename ValidPathInfo::hash -> narHash for consistencyEelco Dolstra7-31/+31
2016-02-16 Fix to-base16 descriptionTristan Hume1-1/+1
2016-02-15 Add xz compression functionEelco Dolstra2-0/+42
This is used by the Hydra queue runner, but since it may also be useful for the C++ rewrite of nix-push, I'm putting it here.
2016-02-15 decompressXZ: Ensure that lzma_end() is calledEelco Dolstra1-12/+21
Otherwise we might leak memory.
2016-02-15 Expose the export magic value and move LocalStore::queryReferences to StoreEelco Dolstra4-22/+19
2016-02-15 Fix broken number parsing in fromJSONEelco Dolstra1-4/+3
The call to tmp_number.append had its arguments mixed up. Also, JSON does not allow a trailing "," after array/object members.
2016-02-15 Add function to extract hash part of a store pathEelco Dolstra3-2/+15
2016-02-12 Merge pull request #762 from ctheune/ctheune-floatsEelco Dolstra16-23/+185
Implement floats
2016-02-11 Move addPermRoot into StoreEelco Dolstra5-16/+15
2016-02-11 ref<T>: Add cast operatorEelco Dolstra2-15/+8
2016-02-09 Add basic "nix build" commandEelco Dolstra3-0/+159
Currently only builds by attribute from <nixpkgs> or the specified file, e.g. "nix build hello".
2016-02-09 Start of new Nix command-line interfaceEelco Dolstra12-70/+361
2016-02-09 New command line parsing infrastructureEelco Dolstra6-79/+470
2016-02-04 More of the sameEelco Dolstra5-13/+13
2016-02-04 StoreAPI -> StoreEelco Dolstra23-48/+48
Calling a class an API is a bit redundant...
2016-02-04 Eliminate the "store" global variableEelco Dolstra35-414/+480
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-31 Add build mode to compute fixed-output derivation hashesEelco Dolstra3-7/+34
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-31 Use the daemon when we don't have write access to the Nix databaseEelco Dolstra4-13/+31
2016-01-28 UntabifyEelco Dolstra1-16/+16
2016-01-28 UntabifyEelco Dolstra1-63/+63
2016-01-28 printMissing(): Propagate store argumentEelco Dolstra3-5/+5