about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2010-08-27 * Experimental feature: allow a derivation to tell the build hook thatEelco Dolstra4-12/+43
it requires a certain feature on the build machine, e.g. requiredSystemFeatures = [ "kvm" ]; We need this in Hydra to make sure that builds that require KVM support are forwarded to machines that have KVM support. Probably this should also be enforced for local builds.
2010-08-27 (no commit message)Eelco Dolstra1-1/+1
2010-08-25 * Made the build hook mechanism more efficient. Rather than startingEelco Dolstra3-341/+327
the hook every time we want to ask whether we can run a remote build (which can be very often), we now reuse a hook process for answering those queries until it accepts a build. So if there are N derivations to be built, at most N hooks will be started.
2010-08-25 * Don't call "cat".Eelco Dolstra1-7/+4
2010-08-25 * In the build hook, temporarily register the derivation and itsEelco Dolstra1-5/+23
output as GC roots. This prevents a race if the garbage collector is running during the build.
2010-08-24 * Correctly handle SSH failing to establish a connection. BecauseEelco Dolstra1-4/+7
this didn't work right, the build hook wouldn't fall back to using other machines of the desired type.
2010-08-24 * Don't complain if the stored hash of a path is zero (unknown).Eelco Dolstra1-2/+3
2010-08-24 * Handle the unlikely case where a derivation has no dependencies atEelco Dolstra1-1/+4
all.
2010-08-24 * Sync with the trunk.Eelco Dolstra12-13/+114
2010-08-24 * nix-build: pass --cores.Eelco Dolstra1-1/+1
2010-08-17 * Bump the version number.Eelco Dolstra1-1/+1
2010-08-17 * rpmBuild already includes the disk image in the output name.Eelco Dolstra1-1/+1
2010-08-17 * Update date.Eelco Dolstra1-1/+2
2010-08-17 * Document --cores in the manual.Eelco Dolstra5-5/+46
2010-08-16 * Typo.Eelco Dolstra1-1/+1
2010-08-16 * Remove the "tarball" jobset argument.Eelco Dolstra1-53/+20
2010-08-16 * Nix 0.16 release notes.Eelco Dolstra1-0/+53
2010-08-12 * Urgh, this was supposed to go in the trunk...Eelco Dolstra1-3/+0
2010-08-12 * Don't link against pthreads. This was added way back in r211Eelco Dolstra1-3/+0
because Berkeley DB needed it on some platforms, but we don't use BDB anymore. On FreeBSD, if you link against pthreads, then the main thread gets a 2 MB stack which cannot be overriden (it ignores "ulimit -s"): http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg62445.html This is not enough for Nix. For instance, the garbage collector can fail if there is a pathologically deep chain of references (http://hydra.nixos.org/build/556199). 2 MB is also not enough for many Nix expressions. Arguably the garbage collector shouldn't use recursion, because in NixOS unprivileged users can DOS the garbage collector by creating a sufficiently deeply nested chain of references. But getting rid of recursion is a bit harder.
2010-08-12 * Make --cores work when building through the Nix daemon.Eelco Dolstra3-1/+7
2010-08-11 * nix-build: recognise --cores.Eelco Dolstra1-1/+1
2010-08-06 * Use SQLite 3.7.0.1.Eelco Dolstra1-1/+1
2010-08-04 * Sync with the trunk.Eelco Dolstra16-42/+106
2010-08-04 * Use SQLite 3.7.0's write-ahead logging (WAL mode). This is a lotEelco Dolstra3-3/+14
faster than the old mode when fsyncs are enabled, because it only performs an fsync() when doing a checkpoint, rather than at every commit. Some timings for doing a "nix-instantiate /etc/nixos/nixos -A system" after modifying the stdenv setup script: 42.5s - SQLite 3.6.23 with truncate mode and fsync 3.4s - SQLite 3.6.23 with truncate mode and no fsync 32.1s - SQLite 3.7.0 with truncate mode and fsync 16.8s - SQLite 3.7.0 with WAL mode and fsync, auto-checkpoint every 1000 pages 8.3s - SQLite 3.7.0 with WAL mode and fsync, auto-checkpoint every 8192 pages 1.7s - SQLite 3.7.0 with WAL mode and no fsync The default is now to use WAL mode with fsyncs. Because WAL doesn't work on remote filesystems such as NFS (as it uses shared memory), truncate mode can be re-enabled by setting the "use-sqlite-wal" option to false.
2010-08-04 * Remove "auto" and "guess" as synonyms for 0 in the handling ofEelco Dolstra2-20/+8
build-cores and --cores. They're superfluous and just complicate the parsing.
2010-08-04 * Allow derivations to hint that they should not be built remotelyEelco Dolstra2-23/+43
using the build hook mechanism, by setting the derivation attribute "preferLocalBuild" to true. This has a few use cases: - The user environment builder. Since it just creates a bunch of symlinks without much computation, there is no reason to do it remotely. In fact, doing it remotely requires the entire closure of the user environment to be copied to the remote machine, which is extremely wasteful. - `fetchurl'. Performing the download on a remote machine and then copying it to the local machine involves twice as much network traffic as performing the download locally, and doesn't save any CPU cycles on the local machine.
2010-08-04 * Set the default system filter to "*". This ensures that (forEelco Dolstra1-7/+13
instance) "nix-env -i wine" works on x86_64-linux, even though Wine is built on i686-linux. In the event that there are multiple matching derivations, prefer those built for the current system.
2010-08-02 * Optimisation in the // operator: if one of the sets is empty, returnEelco Dolstra1-6/+8
the other set.
2010-08-02 * intersectAttrs: optimise for the case where the second set is largerEelco Dolstra1-7/+7
than the first set. (That's usually the case with callPackage.)
2010-07-21 * Don't barf if the source NAR for a patch has disappeared.Eelco Dolstra1-1/+6
2010-07-15 src/bsdiff-4.3/Makefile.am: include the 'compat-include' directory in ↵Peter Simons1-0/+2
distribution tarballs
2010-06-25 tests/build-hook.hook.sh: prefer more portable `...` syntax over $(...) for ↵Peter Simons1-2/+2
running sub-shells The /bin/sh interpreter on Solaris doesn't understand $(...) syntax for running sub-shells. Consequently, this test fails on Solaris. To remedy the situation, the script either needs to be run by /bin/bash -- which is non-standard --, or it needs to use the ancient but portable `...` syntax.
2010-06-24 Revert "configure.ac: make flex and bison required programs"Peter Simons1-2/+2
This reverts commit 22405. Apparently, these programs aren't necessarily required when building from a release archive.
2010-06-24 Fix build of bsdiff-4.3 on machines that don't have <err.h>, such as Solaris.Peter Simons3-1/+17
2010-06-24 configure.ac: Incredibly enough, tr(1) on Solaris doesn't understand A-Z ↵Peter Simons1-3/+3
syntax for ranges.
2010-06-24 configure.ac: make flex and bison required programsPeter Simons1-2/+2
The build fails if these tools aren't available.
2010-06-24 src/libutil/util.cc: include <limit.h> to ensure that PATH_MAX is definedPeter Simons1-0/+1
2010-06-24 Include <cstring> to ensure that strcpy(), strlen(), and memset() are declared.Peter Simons3-0/+6
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-06-23 * Ignore packages that don't have a version.Eelco Dolstra1-15/+18
* Work on a manifest instead of a channel directory.
2010-06-23 Added support for passing an (impure) NIX_BUILD_CORES variable to build ↵Peter Simons5-0/+35
expressions. This patch adds the configuration file variable "build-cores" and the command line argument "--cores". These settings specify the number of CPU cores to utilize for parallel building within a job, i.e. by passing an appropriate "-j" flag to GNU Make. The default value is 1, which means that parallel building is *disabled*. If the number of build cores is specified as 0 (synonymously: "guess" or "auto"), then the actual value is supposed to be auto-detected by builders at run-time, i.e by calling the nproc(1) utility from coreutils. The environment variable $NIX_BUILD_CORES is available to builders, but the contents of that variable does *not* influence the hash that goes into the $out store path, i.e. the number of build cores to be utilized can be changed at will without requiring any re-builds.
2010-06-22 * Sync.Eelco Dolstra1-2/+2
2010-06-22 * Pass `--fallback' to the remote build to ignore failingEelco Dolstra1-2/+2
substituters.
2010-06-21 * Okay, putting a lock on the temporary directory used by importPath()Eelco Dolstra2-6/+20
doesn't work because the garbage collector doesn't actually look at locks. So r22253 was stupid. Use addTempRoot() instead. Also, locking the temporary directory in exportPath() was silly because it isn't even in the store.
2010-06-21 * Sync with the trunk.Eelco Dolstra16-16/+140
2010-06-14 * In importPath() and exportPath(), lock the temporary directory toEelco Dolstra1-0/+4
prevent it from being deleted by the garbage collector.
2010-06-10 * builtins.toXML: propagate the string context. This is a regressionEelco Dolstra3-5/+12
from the old ATerm-based evaluator.
2010-06-08 * Replacing ValidPath rows doesn't work because it causes a constraintEelco Dolstra1-2/+5
violation of the Refs table. So don't do that.
2010-06-04 * Applied a patch from David Brown to prevent `nix-store --optimise'Eelco Dolstra1-1/+15
from failing on rename() on BtrFS.
2010-06-02 (no commit message)Eelco Dolstra1-0/+1
2010-06-01 * Turn build errors during evaluation into EvalErrors.Eelco Dolstra4-4/+7