about summary refs log tree commit diff
path: root/src/libmain
AgeCommit message (Collapse)AuthorFilesLines
2011-11-22 * Move initialisation of variables like nixConfDir from libmain toEelco Dolstra2-31/+2
libstore so that the Perl bindings can use it as well. It's vital that the Perl bindings use the configuration file, because otherwise nix-copy-closure will fail with a ‘database locked’ message if the value of ‘use-sqlite-wal’ is changed from the default.
2011-09-06 * Added a command ‘nix-store --verify-paths PATHS’ to check whetherEelco Dolstra2-6/+9
the contents of any of the given store paths have been modified. E.g. $ nix-store --verify-path $(nix-store -qR /var/run/current-system) path `/nix/store/m2smyiwbxidlprfxfz4rjlvz2c3mg58y-etc' was modified! expected hash `fc87e271c5fdf179b47939b08ad13440493805584b35e3014109d04d8436e7b8', got `20f1a47281b3c0cbe299ce47ad5ca7340b20ab34246426915fce0ee9116483aa' All paths are checked; the exit code is 1 if any path has been modified, 0 otherwise.
2011-08-31 * Eliminate all uses of the global variable ‘store’ from libstore.Eelco Dolstra2-3/+5
This should also fix: nix-instantiate: ./../boost/shared_ptr.hpp:254: T* boost::shared_ptr<T>::operator->() const [with T = nix::StoreAPI]: Assertion `px != 0' failed. which was caused by hashDerivationModulo() calling the ‘store’ object (during store upgrades) before openStore() assigned it.
2011-06-30 Add support for the `build-timeout' and `--timeout' options.Ludovic Courtès1-0/+3
2011-02-09 * Don't call GC_expand_hp unless we're actually using the garbageEelco Dolstra1-12/+0
collector.
2011-02-09 Use $BDW_GC_LIBS instead of a custom variable.Ludovic Courtès1-1/+1
2011-02-05 * Clang compatibility fix. Clang actually checks template definitionsEelco Dolstra1-1/+1
when they are defined
2010-12-13 * nix-instantiate: return exit status 100 to denote a permanent buildEelco Dolstra1-1/+1
failure. The build hook can use this to distinguish between transient and permanent failures on the remote side.
2010-11-17 * Before a build, show the disk space that the downloaded store pathsEelco Dolstra1-6/+7
will approximately require.
2010-11-16 * Sync with the trunk.Eelco Dolstra2-1/+33
2010-10-29 * Document Boehm GC support.Eelco Dolstra1-1/+1
2010-10-29 * Set libgc's initial heap size to 384 MiB to prevent garbageEelco Dolstra1-0/+12
collection in most cases (and therefore its performance overhead).
2010-10-28 * Handle out of memory condition.Eelco Dolstra2-1/+21
2010-08-30 * When using the build hook, distinguish between the stderr of theEelco Dolstra1-4/+6
hook script proper, and the stdout/stderr of the builder. Only the latter should be saved in /nix/var/log/nix/drvs. * Allow the verbosity to be set through an option. * Added a flag --quiet to lower the verbosity level.
2010-08-04 * Remove "auto" and "guess" as synonyms for 0 in the handling ofEelco Dolstra1-14/+3
build-cores and --cores. They're superfluous and just complicate the parsing.
2010-06-23 Added support for passing an (impure) NIX_BUILD_CORES variable to build ↵Peter Simons1-0/+14
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-04-19 * Drop the dependency on the ATerm library.Eelco Dolstra2-3/+1
2010-04-19 * Don't use the ATerm library for parsing/printing .drv files.Eelco Dolstra1-10/+0
2010-04-12 * Finished the ATerm-less parser.Eelco Dolstra1-2/+2
2010-04-12 * Don't use ATerms for the abstract syntax trees anymore. NotEelco Dolstra1-2/+2
finished yet.
2010-02-03 * Revert r19797, and use a simpler solution: just don't monitor buildEelco Dolstra1-13/+0
hooks for silence. It's unnecessary because the remote nix-store command is already monitoring the real build.
2010-02-03 * While waiting for a lock, print a sign of life every 5 minutes.Eelco Dolstra1-0/+13
This prevents remote builders from being killed by the `max-silent-time' inactivity monitor while they are waiting for a long garbage collection to finish. This happens fairly often in the Hydra build farm.
2010-01-12 * On startup, set the default SIGCHLD handler. This is so that NixEelco Dolstra1-5/+11
works correctly in weird environments where the SIGCHLD handler is set to "ignore".
2009-11-24 * Templatise getIntArg / string2Int.Eelco Dolstra2-19/+15
2009-06-30 * Don't show trace information by default (`--show-trace' to enable).Eelco Dolstra1-1/+8
NixOS evaluation errors in particular look intimidating and generally aren't very useful. Ideally the builtins.throw messages should be self-contained.
2009-03-05 * Install some headers in the right location.Eelco Dolstra1-1/+5
2009-02-27 * Allow options from the Nix config file to be overriden from theEelco Dolstra1-0/+7
command line (e.g. "--option build-use-chroot true").
2008-12-11 * Revert r13150: now that we use private namespaces for the chroot, weEelco Dolstra1-1/+0
don't have to put the chroot in /nix/var/nix/chroots anymore. They're back in /tmp now.
2008-11-12 * Some somewhat ad hoc mechanism to allow the build farm to monitorEelco Dolstra1-0/+2
build progress.
2008-10-29 * Put the chroots under /nix/var/nix/chroots to reduce the risk ofEelco Dolstra1-0/+1
disasters involving `rm -rf' on bind mounts. Will try the definitive fix (per-process mounts, apparently possible via the CLONE_NEWNS flag in clone()) some other time.
2008-08-04 * `nix-store --realise': print what paths will be built/downloaded,Eelco Dolstra2-0/+31
just like nix-env. * `nix-store --realise': --dry-run option.
2008-08-04 * querySubstitutablePathInfo: work properly when run via the daemon.Eelco Dolstra1-1/+1
* --dry-run: print the paths that we don't know how to build/substitute.
2008-07-18 * Use the copy-from-other-stores substituter by default. Of course,Eelco Dolstra1-3/+4
it only does something if $NIX_OTHER_STORES (not really a good name...) is set. * Do globbing on the elements of $NIX_OTHER_STORES. E.g. you could set it to /mnts/*/nix or something. * Install substituters in libexec/nix/substituters.
2008-06-18 * --max-freed: support values >= 4 GB.Eelco Dolstra2-3/+3
2008-06-18 * Garbage collector: option `--max-freed' to stop after at least NEelco Dolstra2-1/+4
bytes have been freed, `--max-links' to stop when the Nix store directory has fewer than N hard links (the latter being important for very large Nix stores on filesystems with a 32000 subdirectories limit).
2008-06-14 * nix-worker: clean up the temporary root for the worker processes Eelco Dolstra2-9/+11
in /nix/var/nix/temproots.
2007-11-16 * Flag `--no-build-hook' to disable distributed builds.Eelco Dolstra1-0/+2
* queryDeriver in daemon mode: don't barf if the other side returns an empty string (which means there is no deriver).
2007-08-12 * Get rid of the substitutes database table (NIX-47). Instead, if weEelco Dolstra1-1/+7
need any info on substitutable paths, we just call the substituters (such as download-using-manifests.pl) directly. This means that it's no longer necessary for nix-pull to register substitutes or for nix-channel to clear them, which makes those operations much faster (NIX-95). Also, we don't have to worry about keeping nix-pull manifests (in /nix/var/nix/manifests) and the database in sync with each other. The downside is that there is some overhead in calling an external program to get the substitutes info. For instance, "nix-env -qas" takes a bit longer. Abolishing the substitutes table also makes the logic in local-store.cc simpler, as we don't need to store info for invalid paths. On the downside, you cannot do things like "nix-store -qR" on a substitutable but invalid path (but nobody did that anyway). * Never catch interrupts (the Interrupted exception).
2007-05-01 * Set a terminate() handler to ensure that we leave the BDBEelco Dolstra1-0/+24
environment cleanly even when an exception is thrown from a destructor. We still crash, but we don't take all other Nix processes with us.
2007-03-30 * Work around a bug in Apple's GCC preprocessor.Eelco Dolstra1-2/+2
2007-01-14 * Option --argstr for passing string arguments easily. (NIX-75)Eelco Dolstra1-1/+1
2007-01-13 * Removed chroot support.Eelco Dolstra1-6/+0
2006-12-08 * Kill a build if it has gone for more than a certain number ofEelco Dolstra1-14/+18
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-07 * Move setuidCleanup() to libutil.Eelco Dolstra2-25/+0
2006-12-06 * nix-setuid-helper: allow running programs under a different uid.Eelco Dolstra2-11/+24
2006-12-05 * Allow unprivileged users to run the garbage collector and to doEelco Dolstra1-1/+0
`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 * In addPermRoot, check that the root that we just registered can beEelco Dolstra1-1/+1
found by the garbage collector. This addresses NIX-71 and is a particular concern in multi-user stores.
2006-12-04 * Daemon mode (`nix-worker --daemon'). Clients connect to the serverEelco Dolstra1-0/+6
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.
2006-12-04 * Install the worker in bindir, not libexecdir.Eelco Dolstra2-0/+2
* Allow the worker path to be overriden through the NIX_WORKER environment variable.
2006-12-03 * Doh.Eelco Dolstra2-1/+4