aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2007-01-13* Memoize strict evaluation.Eelco Dolstra
2007-01-13* printTermAsXML: treat derivations specially; emit an elementEelco Dolstra
<derivation outPath=... drvPath=...> attrs </derivation>. Only emit the attributes of any specific derivation only. This prevents exponententially large XML output due to the absense of sharing.
2007-01-13* Make printing an expression as XML interruptible.Eelco Dolstra
2007-01-13* Cleanup.Eelco Dolstra
2006-12-13* Remove debug message.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-12* In dumpPath(): pass a function object that allows files to beEelco Dolstra
selectively in/excluded from the dump.
2006-12-12* New operation `nix-env --set' which sets a user environment to aEelco Dolstra
single derivation specified by the argument. This is useful when we want to have a profile for a single derivation, such as a server configuration. Then we can just say (e.g.) $ nix-env -p /.../server-profile -f server.nix --set -A server We can't do queries or upgrades on such a profile, but we can do rollbacks. The advantage over -i is that we don't have to worry about other packages having been installed in the profile previously; --set gets rid of them.
2006-12-12* New built-in function `builtins.attrNames' that returns theEelco Dolstra
names of the attributes in an attribute set.
2006-12-09* Use lchown() instead of chown() in canonicalisePathMetaData(). ThisEelco Dolstra
matters when running as root, since then we don't use the setuid helper (which already used lchown()). * Also check for an obscure security problem on platforms that don't have lchown. Then we can't change the ownership of symlinks, which doesn't matter *except* when the containing directory is writable by the owner (which is the case with the top-level Nix store directory).
2006-12-09* Use deletePathWrapped() in more places.Eelco Dolstra
2006-12-08* Goal cancellation inside the waitForInput() loop needs to be handledEelco Dolstra
very carefully, since it can invalidate iterators into the `children' map.
2006-12-08* Some refactoring.Eelco Dolstra
* Throw more exceptions as BuildErrors instead of Errors. This matters when --keep-going is turned on. (A BuildError is caught and terminates the goal in question, an Error terminates the program.)
2006-12-08* Kill a build if it has gone for more than a certain number ofEelco Dolstra
seconds without producing output on stdout or stderr (NIX-65). This timeout can be specified using the `--max-silent-time' option or the `build-max-silent-time' configuration setting. The default is infinity (0). * Fix a tricky race condition: if we kill the build user before the child has done its setuid() to the build user uid, then it won't be killed, and we'll potentially lock up in pid.wait(). So also send a conventional kill to the child.
2006-12-08* Also for convenience, change the ownership of the build output evenEelco Dolstra
in case of failure.
2006-12-07* Remove ancient terminology.Eelco Dolstra
2006-12-07* When keeping the temporary build directory (-K), change the ownerEelco Dolstra
back to the Nix account.
2006-12-07* Doh!Eelco Dolstra
2006-12-07* Be less verbose.Eelco Dolstra
2006-12-07* Rename all those main.cc files.Eelco Dolstra
2006-12-07* Check for lchown.Eelco Dolstra
2006-12-07* Don't count on the Pid deconstructor to kill the child process,Eelco Dolstra
since if we're running a build user in non-root mode, we can't. Let the setuid helper do it.
2006-12-07* Move setuidCleanup() to libutil.Eelco Dolstra
2006-12-07* If not running as root, let the setuid helper kill the build user'sEelco Dolstra
processes before and after the build.
2006-12-07* In the garbage collector, if deleting a path fails, try to fix itsEelco Dolstra
ownership, then try again.
2006-12-07* When not running as root, call the setuid helper to change theEelco Dolstra
ownership of the build result after the build.
2006-12-07* Change the ownership of store paths to the Nix account beforeEelco Dolstra
deleting them using the setuid helper.
2006-12-07* Pass the actual build user to the setuid helper.Eelco Dolstra
2006-12-07* If Nix is not running as root, call the setuid helper to start theEelco Dolstra
builder under the desired build user.
2006-12-07* Sanity check.Eelco Dolstra
2006-12-07* Move killUser() to libutil so that the setuid helper can use it.Eelco Dolstra
2006-12-06* Change the ownership of the current directory to the build user.Eelco Dolstra
2006-12-06* Verify that the desired target user is in the build users group (asEelco Dolstra
specified in the setuid config file).
2006-12-06* Check that the caller is allowed to call the setuid helper. TheEelco Dolstra
allowed uid is specified in a configuration file in /etc/nix-setuid.conf.
2006-12-06* Fix the safety check.Eelco Dolstra
2006-12-06* Get rid of `build-users'. We'll just take all the members ofEelco Dolstra
`build-users-group'. This makes configuration easier: you can just add users in /etc/group.
2006-12-06* nix-setuid-helper: allow running programs under a different uid.Eelco Dolstra
2006-12-06* Start of the setuid helper (the program that performs the operationsEelco Dolstra
that have to be done as root: running builders under different uids, changing ownership of build results, and deleting paths in the store with the wrong ownership).
2006-12-05* Be less chatty.Eelco Dolstra
2006-12-05* Urgh. Do setgid() before setuid(), because the semantics of setgid() Eelco Dolstra
changes completely depending on whether you're root...
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* FreeBSD returns ESRCH when there are no processes to kill.Eelco Dolstra
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* Better message.Eelco Dolstra
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-05* findRoots: return a map from the symlink (outside of the store) toEelco Dolstra
the store path (inside the store).