about summary refs log tree commit diff
path: root/src/libutil
AgeCommit message (Collapse)AuthorFilesLines
2016-02-25 Merge branch 'master' into new-cliEelco Dolstra1-0/+1
2016-02-25 Add NAR / Store accessor abstractionEelco Dolstra1-0/+1
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 Merge branch 'master' into new-cliEelco Dolstra13-97/+515
2016-02-24 deletePath(): Succeed if path doesn't existEelco Dolstra2-6/+10
Also makes it robust against concurrent deletions.
2016-02-24 BinaryCacheStore: Implement addToStore()Eelco Dolstra2-4/+16
So now you can do $ NIX_REMOTE=file:///tmp/binary-cache nix-instantiate '<nixpkgs>' -A hello and lots of other operations.
2016-02-24 TypoEelco Dolstra1-2/+2
2016-02-24 Move BinaryCacheStore / LocalBinaryCacheStore from HydraEelco Dolstra1-0/+84
So you can now do: $ NIX_REMOTE=file:///tmp/binary-cache nix-store -qR /nix/store/...
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 Dolstra3-13/+50
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-23 Pool<T>: Allow a maximum pool sizeEelco Dolstra1-15/+54
2016-02-23 RemoteStore: Make thread-safeEelco Dolstra2-0/+180
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-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-12 Merge pull request #762 from ctheune/ctheune-floatsEelco Dolstra1-0/+8
Implement floats
2016-02-11 ref<T>: Add cast operatorEelco Dolstra1-13/+6
2016-02-09 Start of new Nix command-line interfaceEelco Dolstra1-0/+2
2016-02-09 New command line parsing infrastructureEelco Dolstra2-0/+339
2016-02-04 Eliminate the "store" global variableEelco Dolstra2-0/+77
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-27 Define HashType's size to allow it to be forward-declaredEelco Dolstra1-1/+1
2016-01-27 TriviaEelco Dolstra1-1/+2
2016-01-27 Make hashLength32() a method of HashEelco Dolstra2-12/+15
2016-01-20 string2Int: Barf on negative numbers for unsigned typesEelco Dolstra1-1/+3
2016-01-05 Fix compilationEelco Dolstra1-1/+7
2016-01-05 Merge pull request #685 from vizanto/masterEelco Dolstra2-1/+7
POSIX compliant directory access (fixes build on Solaris)
2016-01-05 Fixed unresolved 'BUFSIZ'FrankHB1-0/+1
`BUFSIZ` is defined in header `<cstdio>`.
2016-01-05 First hit at providing support for floats in the language.Christian Theune1-0/+8
2015-12-10 Build sandbox support etc. unconditionally on LinuxEelco Dolstra1-5/+5
Also, use "#if __APPLE__" instead of "#if SANDBOX_ENABLED" to prevent ambiguity.
2015-11-25 Use DT_UNKNOWN when dirent d_type extension is not supported.Danny Wilson1-5/+1
edolstra: “…since callers of readDirectory have to handle the possibility of DT_UNKNOWN anyway, and we don't want to do a stat call for every directory entry unless it's really needed.”
2015-11-16 Default arguments belong at declaration, not definitionShea Levy1-1/+1
2015-11-16 Fix copy-paste errorShea Levy1-1/+1
2015-11-16 AutoDelete: Add default constructor with deletion disabledShea Levy2-0/+10
2015-11-09 Fix namespace issueEelco Dolstra1-2/+2
2015-11-07 Fix build on SolarisDanny Wilson2-0/+10
d_type is not part of the POSIX spec unfortunately.
2015-11-04 Support SHA-512 hashesEelco Dolstra2-2/+10
Fixes #679. Note: on x86_64, SHA-512 is considerably faster than SHA-256 (198 MB/s versus 131 MB/s).
2015-11-04 Require OpenSSLEelco Dolstra9-1752/+1
2015-10-30 <nix/fetchurl.nix>: Support xz-compressed NARsEelco Dolstra3-1/+58
2015-10-29 int2String() -> std::to_string()Eelco Dolstra3-9/+2
2015-10-21 revert libutil changeJude Taylor1-5/+4
2015-10-21 make sandbox builds more permissiveJude Taylor1-4/+5
2015-10-01 nix-prefetch-url: Rewrite in C++Eelco Dolstra1-0/+1
2015-09-18 Shut up clang warningsEelco Dolstra1-1/+0
2015-09-03 Implement buildDerivation() via the daemonEelco Dolstra2-0/+8
2015-08-07 baseNameOf: Enhance `basename` compatibilityKirill Elagin1-3/+12
* If the path ends with a slash, drop it. * If the remaining path doesn’t contain slashes, just return it. Fixes #574.
2015-07-20 Support systemd log severity prefixesEelco Dolstra2-1/+14
This is mostly useful for hydra-queue-runner.
2015-07-20 More cleanupEelco Dolstra3-97/+54
2015-07-17 OCD: foreach -> C++11 ranged forEelco Dolstra4-17/+10
2015-07-17 Allow remote builds without sending the derivation closureEelco Dolstra2-1/+39
Previously, to build a derivation remotely, we had to copy the entire closure of the .drv file to the remote machine, even though we only need the top-level derivation. This is very wasteful: the closure can contain thousands of store paths, and in some Hydra use cases, include source paths that are very large (e.g. Git/Mercurial checkouts). So now there is a new operation, StoreAPI::buildDerivation(), that performs a build from an in-memory representation of a derivation (BasicDerivation) rather than from a on-disk .drv file. The only files that need to be in the Nix store are the sources of the derivation (drv.inputSrcs), and the needed output paths of the dependencies (as described by drv.inputDrvs). "nix-store --serve" exposes this interface. Note that this is a privileged operation, because you can construct a derivation that builds any store path whatsoever. Fixing this will require changing the hashing scheme (i.e., the output paths should be computed from the other fields in BasicDerivation, allowing them to be verified without access to other derivations). However, this would be quite nice because it would allow .drv-free building (e.g. "nix-env -i" wouldn't have to write any .drv files to disk). Fixes #173.