about summary refs log tree commit diff
path: root/src/libmain/shared.cc
AgeCommit message (Collapse)AuthorFilesLines
2012-12-11 On SQLITE_BUSY, wait a random amount of timeEelco Dolstra1-0/+6
If all contending processes wait a fixed amount of time (100 ms), there is a good probability that they'll just collide again.
2012-11-27 Add builtin constants ‘langVersion’ and ‘nixVersion’Eelco Dolstra1-1/+1
The integer constant ‘langVersion’ denotes the current language version. It gets increased every time a language feature is added/changed/removed. It's currently 1. The string constant ‘nixVersion’ contains the current Nix version, e.g. "1.2pre2980_9de6bc5".
2012-11-20 nix-store -r: Add ‘--ignore-unknown’ flagEelco Dolstra1-0/+7
This flag causes paths that do not have a known substitute to be quietly ignored. This is mostly useful for Charon, allowing it to speed up deployment by letting a machine use substitutes for all substitutable paths, instead of uploading them. The latter is frequently faster, e.g. if the target machine has a fast Internet connection while the source machine is on a slow ADSL line.
2012-10-03 Drop support for running nix-worker in "slave" modeEelco Dolstra1-57/+1
AFAIK nobody uses this, setuid binaries are evil, and there is no good reason why people can't just run the daemon.
2012-10-03 When ‘--help’ is given, just run ‘man’ to show the manual pageEelco Dolstra1-0/+9
I.e. do what git does. I'm too lazy to keep the builtin help text up to date :-) Also add ‘--help’ to various commands that lacked it (e.g. nix-collect-garbage).
2012-08-27 Merge branch 'master' into no-manifestsEelco Dolstra1-10/+0
2012-08-24 Include the output name in the GC root linkEelco Dolstra1-10/+0
Output names are now appended to resulting GC symlinks, e.g. by nix-build. For backwards compatibility, if the output is named "out", nothing is appended. E.g. doing "nix-build -A foo" on a derivation that produces outputs "out", "bin" and "dev" will produce symlinks "./result", "./result-bin" and "./result-dev", respectively.
2012-07-31 Add an option ‘build-fallback’ (equivalent to the --fallback flag)Eelco Dolstra1-1/+1
2012-07-30 Refactor settings processingEelco Dolstra1-19/+28
Put all Nix configuration flags in a Settings object.
2012-07-30 WhitespaceEelco Dolstra1-7/+7
2012-03-13 Ensure that Perl processes delete their entry in the temproots directoryEelco Dolstra1-10/+0
By moving the destructor object to libstore.so, it's also run when download-using-manifests and nix-prefetch-url exit. This prevents them from cluttering /nix/var/nix/temproots with stale files.
2012-03-05 nix-worker: put the pid of the caller in argv[1]Eelco Dolstra1-1/+3
This is useful for debugging.
2011-12-14 * Remove the terminate handler, which was only really needed becauseEelco Dolstra1-23/+0
of Berkeley DB (see r8632).
2011-11-29 * Get rid of some superfluous error messages if a substituter fails.Eelco Dolstra1-1/+1
* Say "fetch" instead of "substitute".
2011-11-22 * Move initialisation of variables like nixConfDir from libmain toEelco Dolstra1-24/+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 Dolstra1-6/+6
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 Dolstra1-2/+2
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.
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 Dolstra1-0/+32
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 Dolstra1-0/+20
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 Dolstra1-2/+0
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 Dolstra1-15/+3
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-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 Dolstra1-0/+29
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 Dolstra1-2/+2
2008-06-18 * Garbage collector: option `--max-freed' to stop after at least NEelco Dolstra1-1/+1
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 Dolstra1-9/+6
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.