aboutsummaryrefslogtreecommitdiff
path: root/src/nix-worker
AgeCommit message (Collapse)Author
2010-03-02* When using the included sqlite/aterm libraries, build withEelco Dolstra
--enable-shared. * In libutil/libstore/libexpr etc., link against sqlite and aterm. * Some more header file hygiene.
2010-02-26* Implement RemoteStore::queryValidPaths().Eelco Dolstra
2010-02-25* Implement RemoteStore::queryDerivationOutputs().Eelco Dolstra
2010-02-24* `helpText' is now zero-terminated.Eelco Dolstra
2010-02-24* ADDITIONAL_NETWORK_LIBS -> LIBS.Eelco Dolstra
2010-02-24* Add ${sqlite_lib} everywhere. Just adding it in `libstore' doesn'tEelco Dolstra
work on x86_64 when sqlite is compiled statically.
2009-11-20* Remove the --use-atime / --max-atime garbage collector flags. ManyEelco Dolstra
(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 Dolstra
2009-10-08Added optional parameter which adds -lnsl -lsocket to make the Nix package ↵Sander van der Burg
manager work on OpenSolaris
2009-09-30* Support platforms that don't have O_ASYNC (e.g. OpenSolarisEelco Dolstra
apparently).
2009-03-23* Shut up a GCC warning.Eelco Dolstra
2008-12-16* Pass --use-atime / --max-atime to the daemon.Eelco Dolstra
2008-12-12* We can't use string objects in signal handlers because they mightEelco Dolstra
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 Dolstra
the client to a temporary directory, as that is highly inefficient.
2008-12-03* Backwards compatibility.Eelco Dolstra
2008-12-03* Pass HashType values instead of strings.Eelco Dolstra
2008-12-03* Unify the treatment of sources copied to the store, and recursiveEelco Dolstra
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 Dolstra
2008-11-14* Prevent zombies. Previous the SIGCHLD handler only reaped oneEelco Dolstra
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 Dolstra
build progress.
2008-11-11* Pass the --no-build-output flag to the daemon.Eelco Dolstra
2008-08-04* querySubstitutablePathInfo: work properly when run via the daemon.Eelco Dolstra
* --dry-run: print the paths that we don't know how to build/substitute.
2008-06-18* Some refactoring: put the GC options / results in separate structs.Eelco Dolstra
* The garbage collector now also prints the number of blocks freed.
2008-06-14* nix-worker: clean up the temporary root for the worker processes Eelco Dolstra
in /nix/var/nix/temproots.
2008-06-09* Merged the no-bdb branch (-r10900:HEADEelco Dolstra
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
2008-04-09* sockaddr_un doesn't allow path names of more than 108 characters.Eelco Dolstra
This isn't usually a problem, except that it causes tests to fail when performed in a directory with a very long path name. So chdir to the socket directory and use a relative path name.
2008-03-20* Disable the don't-run-as-root sanity check because it breaks RPMEelco Dolstra
builds (which are done as root...).
2007-11-16* Flag `--no-build-hook' to disable distributed builds.Eelco Dolstra
* queryDeriver in daemon mode: don't barf if the other side returns an empty string (which means there is no deriver).
2007-09-18* Pass various options to the worker so that flags like -K or -j workEelco Dolstra
in multi-user Nix (NIX-72). * Client/worker: exchange a protocol version number for future compatibility.
2007-08-30* Create the Nix daemon socket in a separate directoryEelco Dolstra
(/nix/var/nix/daemon-socket). This allows access to the Nix daemon to be restricted by setting the mode/ownership on that directory as desired, e.g. $ chmod 770 /nix/var/nix/daemon-socket $ chown root.wheel /nix/var/nix/daemon-socket to allow only users in the wheel group to use Nix. Setting the ownership on a socket is much trickier, since the socket must be deleted and recreated every time the daemon is started (which would require additional Nix configuration file directives to specify the mode/ownership, and wouldn't support arbitrary ACLs), some BSD variants appear to ignore permissions on sockets, and it's not clear whether the umask is respected on every platform when creating sockets.
2007-06-12* Support queryDeriver() in multi-user installations.Eelco Dolstra
2007-03-28* Handle ECONNRESET from the client. Also, don't abort() if there areEelco Dolstra
unexpected conditions in the SIGPOLL handler, since that messes up the Berkeley DB environment (which a client must never be able to trigger).
2007-02-22* Handle EINTR in select().Eelco Dolstra
2007-02-21* `nix-store --import' now also works in remote mode. The workerEelco Dolstra
always requires a signature on the archive. This is to ensure that unprivileged users cannot add Trojan horses to the Nix store.
2007-02-21* Support exportPath() in remote mode.Eelco Dolstra
2006-12-12* New primop builtins.filterSource, which can be used to filter filesEelco Dolstra
from a source directory. All files for which a predicate function returns true are copied to the store. Typical example is to leave out the .svn directory: stdenv.mkDerivation { ... src = builtins.filterSource (path: baseNameOf (toString path) != ".svn") ./source-dir; # as opposed to # src = ./source-dir; } This is important because the .svn directory influences the hash in a rather unpredictable and variable way.
2006-12-07* Doh!Eelco Dolstra
2006-12-07* Rename all those main.cc files.Eelco Dolstra
2006-12-06* Fix the safety check.Eelco Dolstra
2006-12-05* Tricky: child processes should not send data to the client sinceEelco Dolstra
that might mess up the protocol. And besides, the socket file descriptor is probably closed.
2006-12-05* Oops! In daemon mode, we can't run as root either if build-users is empty.Eelco Dolstra
2006-12-05* Use an explicit handler for SIGCHLD, since SIG_IGN doesn't do the Eelco Dolstra
right thing on FreeBSD 4 (it leaves zombies).
2006-12-05* Ugly hack to handle spurious SIGPOLLs.Eelco Dolstra
2006-12-05* Some renaming.Eelco Dolstra
2006-12-05* Allow unprivileged users to run the garbage collector and to doEelco Dolstra
`nix-store --delete'. But unprivileged users are not allowed to ignore liveness. * `nix-store --delete --ignore-liveness': ignore the runtime roots as well.
2006-12-05* The determination of the root set should be made by the privilegedEelco Dolstra
process, so forward the operation. * Spam the user about GC misconfigurations (NIX-71). * findRoots: skip all roots that are unreadable - the warnings with which we spam the user should be enough.
2006-12-04* Add indirect root registration to the protocol so that unprivilegedEelco Dolstra
processes can register indirect roots. Of course, there is still the problem that the garbage collector can only read the targets of the indirect roots when it's running as root...
2006-12-04* Not every OS knows about SIGPOLL.Eelco Dolstra
2006-12-04* Handle exceptions and stderr for all protocol functions.Eelco Dolstra
* SIGIO -> SIGPOLL (POSIX calls it that). * Use sigaction instead of signal to register the SIGPOLL handler. Sigaction is better defined, and a handler registered with signal appears not to interrupt fcntl(..., F_SETLKW, ...), which is bad.
2006-12-04* Daemon mode (`nix-worker --daemon'). Clients connect to the serverEelco Dolstra
via the Unix domain socket in /nix/var/nix/daemon.socket. The server forks a worker process per connection. * readString(): use the heap, not the stack. * Some protocol fixes.