about summary refs log tree commit diff
path: root/src/libstore
AgeCommit message (Collapse)AuthorFilesLines
2006-07-20 * Use $(libexecdir) to find find-runtime-roots.pl.Eelco Dolstra3-1/+6
2006-07-20 * Use debug().Eelco Dolstra1-1/+1
2006-07-20 * Call find-runtime-roots.pl from the garbage collector to preventEelco Dolstra2-16/+36
running applications etc. from being garbage collected.
2006-07-06 * Allow the canonical system name to be specified at runtime in theEelco Dolstra2-1/+5
Nix config file.
2006-06-20 * Concurrent GC on Cygwin.Eelco Dolstra3-73/+146
2006-06-19 * Oops.Eelco Dolstra1-1/+2
2006-06-19 * _exit() doesn't seem to work right on Cygwin.Eelco Dolstra1-0/+11
2006-06-19 * On Windows we cannot delete open (lock) files, so we delete lockEelco Dolstra1-4/+47
files after we've closed them. Since this only succeeds if the lock is no longer opened by any process, the token trick used on Unix is not necessary.
2006-06-16 * Show when we're blocked waiting for a lock.Eelco Dolstra1-4/+4
2006-06-15 * In `nix-env -i|-u|-e', lock the profile to prevent races betweenEelco Dolstra2-6/+11
concurrent nix-env operations on the same profile. Fixes NIX-7.
2006-06-01 * Minor cleanup.Eelco Dolstra1-7/+3
2006-05-31 * For fixed-output derivations, pass the environment variables listedEelco Dolstra1-3/+20
in the attribute variable `impureEnvVars' from the caller to the builder.
2006-05-30 * Not all platforms have sys/select.h.Eelco Dolstra1-1/+1
2006-05-29 * Disable the concurrent garbage collector on Cygwin for now.Eelco Dolstra1-0/+8
2006-05-24 * Some Cygwin fixes.Eelco Dolstra1-0/+1
2006-05-12 * Support for srcdir != builddir (NIX-41).Eelco Dolstra1-5/+5
2006-05-11 * 64-bit compatibility fixes (for problems revealed by building on an AthlonEelco Dolstra4-5/+5
64 running 64-bit SUSE). A patched ATerm library is required to run Nix succesfully.
2006-05-02 * Removed a bunch of ATreverses.Eelco Dolstra1-16/+19
2006-03-10 * Allow `make check' to work in directories that have symlinkEelco Dolstra1-0/+20
components.
2006-03-06 * `nix-env (-i|-u) --dry-run' now shows exactly which missing pathsEelco Dolstra6-20/+82
will be built or substituted.
2006-03-01 * db.hh shouldn't depend on the Berkeley DB headers.Eelco Dolstra3-3/+10
2006-03-01 * Close the database before the destructor runs.Eelco Dolstra3-0/+12
2006-03-01 * Wrong delete. Thanks valgrind.Eelco Dolstra1-1/+1
2006-03-01 * Remove dead code.Eelco Dolstra1-30/+0
2006-02-16 * Allow the size of the GC reserved file to be specified in nix.confEelco Dolstra3-9/+18
through the new `gc-reserved-space' option.
2006-02-16 * A simple hack to fix NIX-18: the garbage collector cannot run whenEelco Dolstra2-3/+23
the disk is full (because to delete something from the Nix store, we need a Berkeley DB transaction, which takes up disk space). Under normal operation, we make sure that there exists a file /nix/var/nix/db/reserved of 1 MB. When running the garbage collector, we delete that file before we open the Berkeley DB environment.
2006-02-03 * Use setsid instead of setpgrp in child processes. This not onlyEelco Dolstra1-6/+8
creates a new process group but also a new session. New sessions have no controlling tty, so child processes like ssh cannot open /dev/tty (which is bad).
2006-02-02 * When killing a build hook, kill the entire process group (asEelco Dolstra1-0/+1
intended). This ensures that any ssh child processes to remote machines are also killed, and thus the Nix process on the remote machine also exits. Without this, the remote Nix process will continue until it exists or until its stdout buffer gets full and it locks up. (Partially fixes NIX-35.)
2005-12-25 * More GCC 2.95 compatibility.Eelco Dolstra1-1/+1
2005-12-25 * Hack around a GCC 2.95 bug.Eelco Dolstra1-2/+2
2005-12-24 * GCC 2.95 compatibility.Eelco Dolstra1-1/+1
2005-12-23 * Added a flag `--ignore-liveness' to `nix-store --delete'. ItEelco Dolstra2-3/+4
deletes a path even if it is reachable from a root. However, it won't delete a path that still has referrers (since that would violate store invariants). Don't try this at home. It's a useful hack for recovering from certain situations in a somewhat clean way (e.g., holes in closures due to disk corruption).
2005-12-23 * Revived the old "nix-store --delete" operation that deletes theEelco Dolstra2-10/+22
specified paths from the Nix store. However, this operation is safe: it refuses to delete anything that the garbage collector wouldn't delete.
2005-12-15 * `nix-store --gc' prints out the number of bytes freed on stdoutEelco Dolstra4-6/+12
(even when it is interrupted by a signal).
2005-12-15 * Split the database upgrade into multiple transactions to preventEelco Dolstra1-2/+11
Berkeley DB from running out of locks.
2005-12-13 * Change `referer' to `referrer' throughout. In particular, theEelco Dolstra5-39/+40
nix-store query options `--referer' and `--referer-closure' have been changed to `--referrer' and `--referrer-closure' (but the old ones are still accepted for compatibility).
2005-12-12 * Automatically delete the old referers table.Eelco Dolstra3-5/+31
2005-12-12 * Fix NIX-23: quadratic complexity in maintaining the referersEelco Dolstra4-40/+107
mapping. The referer table is replaced by a referrer table (note spelling fix) that stores each referrer separately. That is, instead of having referer[P] = {Q_1, Q_2, Q_3, ...} we store referer[(P, Q_1)] = "" referer[(P, Q_2)] = "" referer[(P, Q_3)] = "" ... To find the referrers of P, we enumerate over the keys with a value lexicographically greater than P. This requires the referrer table to be stored as a B-Tree rather than a hash table. (The tuples (P, Q) are stored as P + null-byte + Q.) Old Nix databases are upgraded automatically to the new schema.
2005-12-09 * Use Berkeley DB 4.4's process registry feature to recover fromEelco Dolstra2-102/+56
crashed Nix instances, and toss out our own recovery code.
2005-12-06 * Require Berkeley DB 4.4.Eelco Dolstra1-1/+3
* Checkpoint after an upgrade.
2005-11-16 * Did something useful while waiting at IAD: reference scanning is nowEelco Dolstra3-30/+45
much faster.
2005-10-29 * Repair the referers table from the references table.Rob Vermaas1-0/+3
2005-10-20 * Prevent uids from being used for more than one buildEelco Dolstra1-36/+120
simultaneously. We do this using exclusive locks on uid files in /nix/var/nix/userpool, e.g., /nix/var/nix/userpool/123 for uid 123.
2005-10-19 * Oops. Fixed-output derivations were broken.Eelco Dolstra1-1/+0
2005-10-17 * Also kill all processes of the build user after the build. This isEelco Dolstra1-0/+8
critical to prevent certain kinds of 0wnage.
2005-10-17 * Before starting a build under some uid, kill all current processesEelco Dolstra1-0/+48
running under that uid.
2005-10-17 * Check that the build result is owned by the build user, and thatEelco Dolstra1-2/+13
nobody else has write permission to the build result. This catches most hack attempts.
2005-10-17 * Don't use FIFOs to make Nix create the output path on behalf of theEelco Dolstra1-68/+17
builder. Instead, require that the Nix store has sticky permission (S_ISVTX); everyone can created files in the Nix store, but they cannot delete, rename or modify files created by others.
2005-10-17 * Beginning of secure multi-user Nix stores. If Nix is started asEelco Dolstra3-58/+214
root (or setuid root), then builds will be performed under one of the users listed in the `build-users' configuration variables. This is to make it impossible to influence build results externally, allowing locally built derivations to be shared safely between users (see ASE-2005 paper). To do: only one builder should be active per build user.
2005-09-22 * Lets not go wild with templates.Eelco Dolstra1-4/+6