Age | Commit message (Collapse) | Author | Files | Lines |
|
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
|
|
|
|
|
|
|
|
|
|
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.
|
|
* Use nix-build in a test.
|
|
* `nix-install-package --help' (NIX-9).
* `nix-install-package --non-interactive': don't prompt or pause.
* Tests for nix-install-package.
* Security fixes: filter the values obtained from the nixpkg.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(de)registration, in particular garbage collection (NIX-23).
|
|
working when PATH is unset.
|
|
|
|
|
|
* Fix GC and substitute bugs related to self-references. Add a
regression test.
|
|
being created after the garbage collector has read the temproots
directory. This blocks the creation of new processes, but the
garbage collector could periodically release the GC lock to allow
them to run.
|
|
temporary root files have been read but creating outputs before the
store directory has been read.
|
|
|
|
roots to a per-process temporary file in /nix/var/nix/temproots
while holding a write lock on that file. The garbage collector
acquires read locks on all those files, thus blocking further
progress in other Nix processes, and reads the sets of temporary
roots.
|
|
running the collector while builds are in progress) works
correctly. The test currently fails.
|
|
* Add a garbage collector test.
|
|
|
|
|
|
|
|
invariant by registering references through the manifest.
* Added a test for nix-pull.
|
|
* Fix the substitutes tests.
|
|
* Tests for the various hashes.
|
|
* Don't use local file names in tests since they will produce
different parse trees depending on the current directory.
|
|
regexp there could be only one such comment per file.
|
|
* Add automated Nix expression language tests.
|
|
* Don't use `seq' - some primitive, obsolete operating systems
(Darwin) don't have it.
|
|
Whenever Nix attempts to realise a derivation for which a closure is
already known, but this closure cannot be realised, fall back on
normalising the derivation.
The most common scenario in which this is useful is when we have
registered substitutes in order to perform binary distribution from,
say, a network repository. If the repository is down, the
realisation of the derivation will fail. When this option is
specified, Nix will build the derivation instead. Thus, binary
installation falls back on a source installation. This option is
not the default since it is generally not desirable for a transient
failure in obtaining the substitutes to lead to a full build from
source (with the related consumption of resources).
|
|
much as possible. (This is similar to GNU Make's `-k' flag.)
* Refactoring to implement this: previously we just bombed out when
a build failed, but now we have to clean up. In particular this
means that goals must be freed quickly --- they shouldn't hang
around until the worker exits. So the worker now maintains weak
pointers in order not to prevent garbage collection.
* Documented the `-k' and `-j' flags.
|
|
expression, we should invalidate it and go back to the derivation
for which it is a successor.
|
|
|
|
|
|
|
|
* A better substitute mechanism.
Instead of generating a store expression for each store path for
which we have a substitute, we can have a single store expression
that builds a generic program that is invoked to build the desired
store path, which is passed as an argument.
This means that operations like `nix-pull' only produce O(1) files
instead of O(N) files in the store when registering N substitutes.
(It consumes O(N) database storage, of course, but that's not a
performance problem).
* Added a test for the substitute mechanism.
* `nix-store --substitute' reads the substitutes from standard input,
instead of from the command line. This prevents us from running
into the kernel's limit on command line length.
|
|
|