about summary refs log tree commit diff
path: root/src/nix-worker
AgeCommit message (Collapse)AuthorFilesLines
2012-07-17 Add function queryPathFromHashPart()Eelco Dolstra1-0/+9
To implement binary caches efficiently, Hydra needs to be able to map the hash part of a store path (e.g. "gbg...zr7") to the full store path (e.g. "/nix/store/gbg...kzr7-subversion-1.7.5"). (The binary cache mechanism uses hash parts as a key for looking up store paths to ensure privacy.) However, doing a search in the Nix store for /nix/store/<hash>* is expensive since it requires reading the entire directory. queryPathFromHashPart() prevents this by doing a cheap database lookup.
2012-06-27 nix-store -r: do substitutions in parallelEelco Dolstra1-2/+2
I.e. when multiple non-derivation arguments are passed to ‘nix-store -r’ to be substituted, do them in parallel.
2012-06-18 Support socket-based, on-demand activation of the Nix daemon with systemdEelco Dolstra1-30/+46
Systemd can start the Nix daemon on demand when the Nix daemon socket is first accessed. This is signalled through the LISTEN_FDS environment variable, so all we need to do is check for that and then use file descriptor 3 as the listen socket instead of creating one ourselves.
2012-05-29 Reserve some disk space for the garbage collectorEelco Dolstra1-1/+5
We can't open a SQLite database if the disk is full. Since this prevents the garbage collector from running when it's most needed, we reserve some dummy space that we can free just before doing a garbage collection. This actually revives some old code from the Berkeley DB days. Fixes #27.
2012-04-30 * Add an option ‘build-use-substitutes’, which can be set to ‘false’Eelco Dolstra1-1/+6
to disable use of substitutes; i.e., force building from source. Fixes Nix/221.
2012-04-15 Set a few more close-on-exec flagsEelco Dolstra1-0/+4
2012-03-26 Remove the --max-links GC optionEelco Dolstra1-1/+1
We don't need this anymore now that current filesystems support more than 32,000 files in a directory.
2012-03-13 Ensure that Perl processes delete their entry in the temproots directoryEelco Dolstra1-2/+0
By moving the destructor object to libstore.so, it's also run when download-using-manifests and nix-prefetch-url exit. This prevents them from cluttering /nix/var/nix/temproots with stale files.
2012-03-05 nix-worker: put the pid of the caller in argv[1]Eelco Dolstra1-1/+20
This is useful for debugging.
2012-02-09 Use data() instead of c_str() where appropriateEelco Dolstra1-1/+1
2011-12-20 * Fix the build.Eelco Dolstra1-1/+1
2011-12-16 * Sync with the trunk.Eelco Dolstra1-37/+49
2011-12-16 * importPath() -> importPaths(). Because of buffering of the inputEelco Dolstra1-15/+13
stream it's now necessary for the daemon to process the entire sequence of exported paths, rather than letting the client do it.
2011-12-16 * Avoid expensive conversions from char arrays to STL strings.Eelco Dolstra1-10/+5
2011-12-16 * Make the import operation through the daemon much more efficientEelco Dolstra1-8/+16
(way fewer roundtrips) by allowing the client to send data in bigger chunks. * Some refactoring.
2011-12-15 * Refactoring: move sink/source buffering into separate classes.Eelco Dolstra1-5/+3
* Buffer the HashSink. This speeds up hashing a bit because it prevents lots of calls to the hash update functions (e.g. nix-hash went from 9.3s to 8.7s of user time on the closure of my /var/run/current-system).
2011-12-14 * Buffer writes in FdSink. This significantly reduces the number ofEelco Dolstra1-7/+9
system calls / context switches when dumping a NAR and in the worker protocol.
2011-12-01 * Slight improvement.Eelco Dolstra1-3/+2
2011-12-01 * When doing "nix-store --add-fixed" without "--recursive" via the NixEelco Dolstra1-2/+14
daemon (which is an error), print a nicer error message than "Connection reset by peer" or "broken pipe". * In the daemon, log errors that occur during request parameter processing.
2011-11-06 Include all outputs of derivations in the closure of explicitly-passed ↵Shea Levy1-0/+10
derivation paths This required adding a queryOutputDerivationNames function in the store API
2010-12-17 * Propagate the "100" exit status for failed builds through the NixEelco Dolstra1-2/+3
daemon.
2010-12-13 * Update some comments.Eelco Dolstra1-3/+2
2010-11-17 * Before a build, show the disk space that the downloaded store pathsEelco Dolstra1-0/+2
will approximately require.
2010-11-17 * Implement RemoteStore::queryPathInfo().Eelco Dolstra1-0/+13
2010-08-24 * Sync with the trunk.Eelco Dolstra1-0/+3
2010-08-12 * Make --cores work when building through the Nix daemon.Eelco Dolstra1-0/+3
2010-08-04 * Sync with the trunk.Eelco Dolstra1-0/+2
2010-06-24 Include <cstring> to ensure that strcpy(), strlen(), and memset() are declared.Peter Simons1-0/+2
An "using namespace std" was added locally in those functions that refer to names from <cstring>. That is not pretty, but it's a very portable solution, because strcpy() and friends will be found in both the 'std' and in the global namespace.
2010-05-04 * Allow unprivileged users to do `nix-store --clear-failed-paths' andEelco Dolstra1-0/+17
`nix-store --query-failed-paths'.
2010-04-19 * Drop the dependency on the ATerm library.Eelco Dolstra1-2/+2
2010-03-02 * When using the included sqlite/aterm libraries, build withEelco Dolstra1-2/+2
--enable-shared. * In libutil/libstore/libexpr etc., link against sqlite and aterm. * Some more header file hygiene.
2010-02-26 * Implement RemoteStore::queryValidPaths().Eelco Dolstra1-0/+8
2010-02-25 * Implement RemoteStore::queryDerivationOutputs().Eelco Dolstra1-2/+4
2010-02-24 * `helpText' is now zero-terminated.Eelco Dolstra1-1/+1
2010-02-24 * ADDITIONAL_NETWORK_LIBS -> LIBS.Eelco Dolstra1-1/+1
2010-02-24 * Add ${sqlite_lib} everywhere. Just adding it in `libstore' doesn'tEelco Dolstra1-1/+1
work on x86_64 when sqlite is compiled statically.
2009-11-20 * Remove the --use-atime / --max-atime garbage collector flags. ManyEelco Dolstra1-2/+3
(Linux) machines no longer maintain the atime because it's too expensive, and on the machines where --use-atime is useful (like the buildfarm), reading the atimes on the entire Nix store takes way too much time to make it practical.
2009-11-06 * Remove support for old (before Nix 0.12pre12020) databases.Eelco Dolstra1-2/+2
2009-10-08 Added optional parameter which adds -lnsl -lsocket to make the Nix package ↵Sander van der Burg1-1/+1
manager work on OpenSolaris
2009-09-30 * Support platforms that don't have O_ASYNC (e.g. OpenSolarisEelco Dolstra1-3/+17
apparently).
2009-03-23 * Shut up a GCC warning.Eelco Dolstra1-2/+2
2008-12-16 * Pass --use-atime / --max-atime to the daemon.Eelco Dolstra1-0/+4
2008-12-12 * We can't use string objects in signal handlers because they mightEelco Dolstra1-4/+4
allocate memory, which is verboten in signal handlers. This caused random failures in the test suite on Mac OS X (triggered by the spurious SIGPOLL signals on Mac OS X, which should also be fixed).
2008-12-03 * addToStore() in nix-worker: don't write the NAR dump received fromEelco Dolstra1-6/+52
the client to a temporary directory, as that is highly inefficient.
2008-12-03 * Backwards compatibility.Eelco Dolstra1-4/+9
2008-12-03 * Pass HashType values instead of strings.Eelco Dolstra1-1/+1
2008-12-03 * Unify the treatment of sources copied to the store, and recursiveEelco Dolstra1-2/+2
SHA-256 outputs of fixed-output derivations. I.e. they now produce the same store path: $ nix-store --add x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x $ nix-store --add-fixed --recursive sha256 x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x the latter being the same as the path that a derivation derivation { name = "x"; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "..."; ... }; produces. This does change the output path for such fixed-output derivations. Fortunately they are quite rare. The most common use is fetchsvn calls with SHA-256 hashes. (There are a handful of those is Nixpkgs, mostly unstable development packages.) * Documented the computation of store paths (in store-api.cc).
2008-11-20 * Nix daemon: reload the configuration file after forking (NIX-100).Eelco Dolstra1-1/+5
2008-11-14 * Prevent zombies. Previous the SIGCHLD handler only reaped oneEelco Dolstra1-1/+1
zombie at a time, so if multiple children died before the handler got to run, some of them would not be cleaned up.
2008-11-12 * Some somewhat ad hoc mechanism to allow the build farm to monitorEelco Dolstra1-1/+4
build progress.