Eelco Dolstra
1042c10fd0
Add NAR / Store accessor abstraction
...
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 17:43:19 +01:00
Eelco Dolstra
152b1d6bf9
deletePath(): Succeed if path doesn't exist
...
Also makes it robust against concurrent deletions.
2016-02-24 17:44:55 +01:00
Eelco Dolstra
28e7e29abd
Eliminate reserveSpace flag
2016-02-24 17:44:55 +01:00
Eelco Dolstra
5a64e66268
LocalStore::addTextToStore(): Don't read the path we just wrote
...
This eliminates some unnecessary (presumably cached) I/O.
2016-02-24 17:11:31 +01:00
Eelco Dolstra
9ccbd55c5b
BinaryCacheStore: Implement addToStore()
...
So now you can do
$ NIX_REMOTE=file:///tmp/binary-cache nix-instantiate '<nixpkgs>' -A hello
and lots of other operations.
2016-02-24 16:52:28 +01:00
Eelco Dolstra
30e9d01516
openStoreAt(): Initialise the binary cache
2016-02-24 16:52:07 +01:00
Eelco Dolstra
ba0a81d14f
Show a proper error message for unimplemented binary cache operations
2016-02-24 14:57:30 +01:00
Eelco Dolstra
45c83e5f9b
Typo
2016-02-24 14:49:28 +01:00
Eelco Dolstra
263187a2ec
Move BinaryCacheStore / LocalBinaryCacheStore from Hydra
...
So you can now do:
$ NIX_REMOTE=file:///tmp/binary-cache nix-store -qR /nix/store/...
2016-02-24 14:48:16 +01:00
Eelco Dolstra
b584a0e7de
Merge pull request #816 from tsion/incomplete-parse
...
Throw a specific error for incomplete parse errors.
2016-02-24 13:34:56 +01:00
Eelco Dolstra
bf2adf72c4
std::condition_variable_any -> std::condition_variable
...
The latter is supposed to be more efficient.
2016-02-24 13:31:46 +01:00
Eelco Dolstra
ccdbf589a4
C++ templates are just a glorified macro facility
2016-02-24 13:07:32 +01:00
Eelco Dolstra
5f862658c3
Remove bad daemon connections from the pool
...
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 11:39:56 +01:00
Scott Olson
6498adb002
Throw a specific error for incomplete parse errors.
...
`nix-repl` will use this for deciding whether to keep waiting for input or
error out right away.
2016-02-24 04:32:21 -06:00
Eelco Dolstra
d5626bf4c1
Pool<T>: Allow a maximum pool size
2016-02-23 16:40:16 +01:00
Eelco Dolstra
e292144d46
RemoteStore: Make thread-safe
...
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 15:00:59 +01:00
Eelco Dolstra
c0b7a8a0b5
Move ref<t> into a separate header
2016-02-23 13:53:31 +01:00
Eelco Dolstra
8f71bc33d5
Doh
2016-02-22 17:33:27 +01:00
Eelco Dolstra
840056af04
Make OpenSSL usage thread-safe
...
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 15:51:14 +01:00
Eelco Dolstra
d361901bfe
curl: Set CURLOPT_NOSIGNAL
...
Otherwise using curl is not safe in multi-threaded applications
because it installs a SIGALRM handler.
2016-02-22 15:51:14 +01:00
Shea Levy
037ff4e70a
Merge branch 'docs' of git://github.com/joelmo/nix
2016-02-22 07:14:16 -05:00
Shea Levy
9dd175294c
Merge branch 'patch-1' of git://github.com/dckc/nix
2016-02-22 07:13:31 -05:00
Shea Levy
4f011bccf8
Merge branch 'master' of git://github.com/stepcut/nix
2016-02-19 18:21:41 -05:00
Eelco Dolstra
7a173a7be1
JSONObject: Support floats and booleans
2016-02-19 14:24:04 +01:00
Dan Connolly
b39ec410ee
context for introducing runtime dependencies
...
The first occurrence of "runtime dependencies" wasn't related to the surrounding narrative.
2016-02-18 23:29:00 -06:00
Joel Moberg
bb36a1a3cf
Document IN_NIX_SHELL variable
2016-02-18 23:32:37 +01:00
Eelco Dolstra
7251a81bde
Drop all distros that are not down with C++11
2016-02-17 13:36:56 +01:00
Eelco Dolstra
b49d323ce2
Fix build without sodium
...
http://hydra.nixos.org/build/32085949
2016-02-17 12:42:14 +01:00
Eelco Dolstra
c4d22997f3
Add C++ functions for .narinfo processing / signing
...
This is currently only used by the Hydra queue runner rework, but like
eff5021eaa
it presumably will be useful
for the C++ rewrite of nix-push and
download-from-binary-cache. (@shlevy)
2016-02-16 16:38:44 +01:00
Eelco Dolstra
5ac27053e9
Rename ValidPathInfo::hash -> narHash for consistency
2016-02-16 11:49:12 +01:00
Peter Simons
92063851b1
nix-profile.sh.in: find ca-bundle.pem on openSUSE Tumbleweed machines
2016-02-16 10:15:05 +01:00
Eelco Dolstra
eff5021eaa
Add xz compression function
...
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 21:45:56 +01:00
Eelco Dolstra
bfdacb712c
decompressXZ: Ensure that lzma_end() is called
...
Otherwise we might leak memory.
2016-02-15 21:26:28 +01:00
Eelco Dolstra
03109e9580
Fix nix-copy-closure
...
http://hydra.nixos.org/build/32005971
2016-02-15 20:09:30 +01:00
Eelco Dolstra
c8f4d89a34
Expose the export magic value and move LocalStore::queryReferences to Store
2016-02-15 15:01:26 +01:00
Eelco Dolstra
e03d6e0998
Fix broken number parsing in fromJSON
...
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 15:01:26 +01:00
Eelco Dolstra
eb62e23f14
Fix test broken by #762
2016-02-15 15:01:26 +01:00
Eelco Dolstra
d089372565
Add function to extract hash part of a store path
2016-02-15 15:01:26 +01:00
Shea Levy
74f954ee62
Merge branch 'patch-1' of https://github.com/tsion/nix
...
Typo fix
2016-02-13 14:44:52 -05:00
Scott Olson
37b8e59f6f
Fix typo in nix-shell command reference.
2016-02-13 01:03:32 -07:00
Peter Simons
bd42510e49
nix-profile.sh.in: quote use of $HOME in shell arguments
...
All other places in the script do this already, so let's be consistent.
2016-02-12 13:24:25 +01:00
Eelco Dolstra
b3e8d72770
Merge pull request #762 from ctheune/ctheune-floats
...
Implement floats
2016-02-12 12:49:59 +01:00
Eelco Dolstra
ae4a3cfa03
Move addPermRoot into Store
2016-02-11 16:14:42 +01:00
Eelco Dolstra
fd205fb6f8
ref<T>: Add cast operator
2016-02-11 15:32:48 +01:00
Alex Cruice
ad0dc41899
Check shell profile is writeable before modifying
...
The `set -e` at the top of the script causes the installation to fail to
complete if the shell profile is not writeable. Checking file existence
only is not enough.
2016-02-10 11:57:50 +01:00
Eelco Dolstra
c780c1124e
More of the same
2016-02-04 15:10:47 +01:00
Eelco Dolstra
fa7cd5369b
StoreAPI -> Store
...
Calling a class an API is a bit redundant...
2016-02-04 14:48:42 +01:00
Eelco Dolstra
c10c61449f
Eliminate the "store" global variable
...
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-02-04 14:28:26 +01:00
Eelco Dolstra
4f7824c58e
Remove tests/lexer.sh
...
"tests/lang.sh" can handle this.
2016-02-01 18:27:37 +01:00
Eelco Dolstra
d367b8e787
Add build mode to compute fixed-output derivation hashes
...
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 9e7c1a4bbd
...
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 12:18:09 +01:00