about summary refs log tree commit diff
path: root/src/libstore
AgeCommit message (Collapse)AuthorFilesLines
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 Dolstra2-1/+4
2010-08-12 * Make --cores work when building through the Nix daemon.Eelco Dolstra2-1/+4
2010-08-04 * Sync with the trunk.Eelco Dolstra4-0/+13
2010-08-04 * Use SQLite 3.7.0's write-ahead logging (WAL mode). This is a lotEelco Dolstra1-2/+12
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 * Allow derivations to hint that they should not be built remotelyEelco Dolstra1-23/+39
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-06-24 Include <cstring> to ensure that strcpy(), strlen(), and memset() are declared.Peter Simons2-0/+4
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 Added support for passing an (impure) NIX_BUILD_CORES variable to build ↵Peter Simons3-0/+9
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-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 Dolstra4-4/+20
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-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-01 * Turn build errors during evaluation into EvalErrors.Eelco Dolstra2-3/+1
2010-06-01 * Hack to allow derivations to disable chroot builds by setting theEelco Dolstra1-0/+3
attribute "__noChroot = true" (requested by Rob).
2010-05-12 * Sync with the trunk.Eelco Dolstra6-146/+123
2010-05-04 * Allow unprivileged users to do `nix-store --clear-failed-paths' andEelco Dolstra5-3/+32
`nix-store --query-failed-paths'.
2010-04-26 * Added a command `nix-store --clear-failed-paths <PATHS>' to clearEelco Dolstra2-0/+22
the "failed" status of the given store paths. The special value `*' clears all failed paths.
2010-04-26 * Add an command `nix-store --query-failed-paths' to list the cachedEelco Dolstra2-0/+25
failed paths (when using the `build-cache-failure' option).
2010-04-21 * Don't use an ostringstream in unparseDerivation(), because it'sEelco Dolstra1-38/+39
slow. A `nix-env -qa --drv-path \*' on Nixpkgs was spending 40% of its time in unparseDerivation() because of this (now 11%).
2010-04-19 * Drop the dependency on the ATerm library.Eelco Dolstra1-1/+1
2010-04-19 * Don't use the ATerm library for parsing/printing .drv files.Eelco Dolstra6-142/+117
2010-03-11 * Sync with the trunk.Eelco Dolstra1-1/+7
2010-03-11 Show the build user's group in /etc/group in chroots.Ludovic Courtès1-0/+6
* src/libstore/build.cc (nix::DerivationGoal::startBuilder): Create /etc/group showing the build user's group.
2010-03-11 * Sync with the trunk.Eelco Dolstra1-5/+6
2010-03-11 Fix thinko in r20547.Ludovic Courtès1-4/+4
* src/libstore/build.cc (nix::DerivationGoal::startBuilder): Fix the GID of the build user in /etc/passwd.
2010-03-11 Clear supplementary groups of `nixbld' in /etc/passwd in chroots.Ludovic Courtès1-4/+5
* src/libstore/build.cc (nix::DerivationGoal::startBuilder): Don't display any supplementary groups for `nixbld' in /etc/passwd.
2010-03-10 * Remove a debug statement.Eelco Dolstra1-1/+0
2010-03-09 * In `nix-store --export', abort if the contents of a path hasEelco Dolstra1-6/+17
changed. This prevents corrupt paths from spreading to other machines. Note that checking the hash is cheap because we're hashing anyway (because of the --sign feature).
2010-03-08 * Set `gc-keep-outputs' or `gc-keep-derivations' to false withEelco Dolstra1-0/+9
`--delete --ignore-liveness'.
2010-03-08 * Increase the sqlite timeout.Eelco Dolstra1-1/+1
2010-03-04 * Remove some unused functions.Eelco Dolstra1-18/+0
2010-03-02 * checkInterrupt() shouldn't be called from a destructor.Eelco Dolstra1-1/+1
2010-03-02 * When using the included sqlite/aterm libraries, build withEelco Dolstra2-3/+3
--enable-shared. * In libutil/libstore/libexpr etc., link against sqlite and aterm. * Some more header file hygiene.
2010-02-26 * Implement RemoteStore::queryValidPaths().Eelco Dolstra2-1/+4
2010-02-25 * Implement RemoteStore::queryDerivationOutputs().Eelco Dolstra2-1/+6
2010-02-24 * Support read-only access to the database.Eelco Dolstra1-1/+5
2010-02-24 * Refactor the upgrade / database initialisation logic a bit.Eelco Dolstra2-59/+62
2010-02-24 * Don't use fdatasync since it doesn't work on Snow Leopard.Eelco Dolstra1-2/+2
* Don't refer to config.h in util.hh, because config.h is not installed (http://hydra.nixos.org/build/303053).
2010-02-24 * A function to query just the database id of a valid path.Eelco Dolstra2-16/+22
2010-02-24 (no commit message)Eelco Dolstra1-1/+1
2010-02-24 * Use `truncate' journal mode, which should be a bit faster.Eelco Dolstra1-0/+4
2010-02-24 * Disable fsync() in SQLite if the fsync-metadata option is set toEelco Dolstra2-8/+7
false. * Change the default for `fsync-metadata' to true. * Disable `fsync-metadata' in `make check'.
2010-02-24 * Do registerValidPaths() in one transaction, which is much faster.Eelco Dolstra1-29/+9
E.g. it cuts the runtime of the referrers test from 50s to 23s.
2010-02-24 * ADDITIONAL_NETWORK_LIBS -> LIBS.Eelco Dolstra1-2/+1
2010-02-24 * Add ${sqlite_lib} everywhere. Just adding it in `libstore' doesn'tEelco Dolstra1-1/+1
work on x86_64 when sqlite is compiled statically.
2010-02-24 * Use normal (rather than full) synchronous mode, which I gather fromEelco Dolstra1-0/+4
the description at http://www.sqlite.org/atomiccommit.html should be safe enough.
2010-02-23 (no commit message)Eelco Dolstra1-1/+1
2010-02-23 * configure: flag --with-sqlite.Eelco Dolstra1-2/+3
2010-02-22 (no commit message)Eelco Dolstra1-4/+0