aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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-03-20* Override the setuid helper using NIX_SETUID_HELPER.Eelco Dolstra
2007-03-19* Terminate build hooks and substitutes with a TERM signal, not a KILLEelco Dolstra
signal. This is necessary because those processes may have joined the BDB environment, so they have to be given a chance to clean up. (NIX-85)
2007-03-19* Undocumented option `gc-check-reachability' to allow reachabilityEelco Dolstra
checking to be turned off on machines with way too many roots.
2007-03-07* Delete the output paths before invoking the build hook.Eelco Dolstra
2007-03-01* Look for the openssl program at compile time. If not found, callEelco Dolstra
openssl through $PATH at runtime.
2007-03-01* Don't check the signature unless we have to.Eelco Dolstra
2007-02-27* Doh! The deriver can be empty.Eelco Dolstra
2007-02-27* Greatly reduced the amount of stack space used by the Nix expressionEelco Dolstra
evaluator. This was important because the NixOS expressions started to hit 2 MB default stack size on Linux. GCC is really dumb about stack space: it just adds up all the local variables and temporaries of every scope into one huge stack frame. This is really bad for deeply recursive functions. For instance, every `throw Error(format("error message"))' causes a format object of a few hundred bytes to be allocated on the stack. As a result, every recursive call to evalExpr2() consumed 4680 bytes. By splitting evalExpr2() and by moving the exception-throwing code out of the main functions, evalExpr2() now only consumes 40 bytes. Similar for evalExpr().
2007-02-27* When NIX_SHOW_STATS=1, show the amount of stack space consumed byEelco Dolstra
the Nix expression evaluator.
2007-02-22* Handle EINTR in select().Eelco Dolstra
2007-02-21* Flush cout to show progress.Eelco Dolstra
2007-02-21* Export/import many paths in one go.Eelco Dolstra
2007-02-21* `nix-store -qR' and friends: print the paths sorted topologicallyEelco Dolstra
under the references relation. This is useful for commands that want to copy paths to another Nix store in the right order.
2007-02-21* Flag `--print-invalid' in `nix-store --check-validity' to print outEelco Dolstra
which paths specified on the command line are invalid (i.e., don't barf when encountering an invalid path, just print it). This is useful for build-remote.pl to figure out which paths need to be copied to a remote machine. (Currently we use rsync, but that's rather inefficient.)
2007-02-21* Check that the file containing the secret key is secret.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
2007-02-21* importPath(): set the deriver.Eelco Dolstra
* exportPath(): lock the path, use a transaction.
2007-02-21* `nix-store --import': import an archive created by `nix-storeEelco Dolstra
--export' into the Nix store, and optionally check the cryptographic signatures against /nix/etc/nix/signing-key.pub. (TODO: verify against a set of public keys.)
2007-02-21* `nix-store --export --sign': sign the Nix archive using the RSA keyEelco Dolstra
in /nix/etc/nix/signing-key.sec
2007-02-20* Start of `nix-store --export' operation for serialising a storeEelco Dolstra
path. This is like `nix-store --dump', only it also dumps the meta-information of the store path (references, deriver). Will add a `--sign' flag later to add a cryptographic signature, which we will use for exchanging store paths between build farm machines in a secure manner.
2007-02-06* Fix 64-bit compiler warnings.Eelco Dolstra
2007-02-02* nix-env now maintains meta info (from the `meta' derivationEelco Dolstra
attribute) about installed packages in user environments. Thus, an operation like `nix-env -q --description' shows useful information not only on available packages but also on installed packages. * nix-env now passes the entire manifest as an argument to the Nix expression of the user environment builder (not just a list of paths), so that in particular the user environment builder has access to the meta attributes. * New operation `--set-flag' in nix-env to change meta info of installed packages. This will be useful to pass per-package policies to the user environment builder (e.g., how to resolve collision or whether to disable a package (NIX-80)) or upgrade policies in nix-env (e.g., that a package should be "masked", that is, left untouched by upgrade actions). Example: $ nix-env --set-flag enabled false ghc-6.4
2007-01-29* Doh!Eelco Dolstra
2007-01-29* computeStorePathForText: take the references into account whenEelco Dolstra
computing the store path (NIX-77). This is an important security property in multi-user Nix stores. Note that this changes the store paths of derivations (since the derivation aterms are added using addTextToStore), but not most outputs (unless they use builtins.toFile).
2007-01-29* Don't capitalise the primop functions.Eelco Dolstra
2007-01-29* Organise primops.cc a bit better.Eelco Dolstra
2007-01-29New primitives:Eelco Dolstra
* `sub' to subtract two numbers. * `stringLength' to get the length of a string. * `substring' to get a substring of a string. These should be enough to allow most string operations to be expressed.
2007-01-29* filterSource: pass strings to the predicate function instead ofEelco Dolstra
paths. Paths can have unexpected semantics.
2007-01-24* Nasty: Glibc clears the TMPDIR environment variable in setuidEelco Dolstra
programs, so if a builder uses TMPDIR, then it will fail when executed through nix-setuid-helper. In fact Glibc clears a whole bunch of variables (see sysdeps/generic/unsecvars.h in the Glibc sources), but only TMPDIR should matter in practice. As a workaround, we reinitialise TMPDIR from NIX_BUILD_TOP.
2007-01-23* exportReferencesGraph: work on paths within store paths as well.Eelco Dolstra
2007-01-15* Handle multiple indirect symlinks when loading a Nix expression.Eelco Dolstra
2007-01-15* builtins.filterSource: pass the type of the file ("regular",Eelco Dolstra
"directory", "symlink") as the second argument to the filter predicate.
2007-01-14* `nix-store --verify': revive checking the referrers table. This isEelco Dolstra
important to get garbage collection to work if there is any inconsistency in the database (because the referrer table is used to determine whether it is safe to delete a path). * `nix-store --verify': show some progress.
2007-01-14* Make the garbage collector more resilient to certain consistencyEelco Dolstra
errors: in-use paths now cause a warning, not a fatal error.
2007-01-14* Option --argstr for passing string arguments easily. (NIX-75)Eelco Dolstra
2007-01-13* nix-pack-closure: store the top-level store paths in the closure.Eelco Dolstra
* nix-unpack-closure: extract the top-level paths from the closure and print them on stdout. This allows them to be installed, e.g., "nix-env -i $(nix-unpack-closure)". (NIX-64)
2007-01-13* Allow multiple --attr / -A arguments in nix-build / nix-instantiateEelco Dolstra
(NIX-74).
2007-01-13* Removed chroot support.Eelco Dolstra
2007-01-13* Canonicalise ASTs in `nix-instantiate --eval': remove positionEelco Dolstra
info, sort attribute sets.
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.