Eelco Dolstra
92f7dfa5b7
* Don't assume that paths returned by the runtime root finder are
...
valid.
2006-08-11 20:15:20 +00:00
Eelco Dolstra
6ac237e242
* Show some progress.
2006-08-01 09:43:41 +00:00
Eelco Dolstra
a4273156c4
* Use $(libexecdir) to find find-runtime-roots.pl.
2006-07-20 13:21:37 +00:00
Eelco Dolstra
ee2cf45d76
* Use debug().
2006-07-20 12:19:55 +00:00
Eelco Dolstra
c15f544356
* Call find-runtime-roots.pl from the garbage collector to prevent
...
running applications etc. from being garbage collected.
2006-07-20 12:17:25 +00:00
Eelco Dolstra
d51aede4af
* Allow the canonical system name to be specified at runtime in the
...
Nix config file.
2006-07-06 15:30:37 +00:00
Eelco Dolstra
dbf6d7e783
* Concurrent GC on Cygwin.
2006-06-20 17:48:10 +00:00
Eelco Dolstra
cc51f9c539
* Oops.
2006-06-19 16:35:35 +00:00
Eelco Dolstra
5bb3444032
* _exit() doesn't seem to work right on Cygwin.
2006-06-19 16:24:15 +00:00
Eelco Dolstra
b35735d8b2
* On Windows we cannot delete open (lock) files, so we delete lock
...
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-19 14:43:13 +00:00
Eelco Dolstra
c937b73622
* Show when we're blocked waiting for a lock.
2006-06-16 10:13:03 +00:00
Eelco Dolstra
588cb0eade
* In `nix-env -i|-u|-e', lock the profile to prevent races between
...
concurrent nix-env operations on the same profile. Fixes NIX-7.
2006-06-15 11:56:49 +00:00
Eelco Dolstra
23960e92df
* Minor cleanup.
2006-06-01 18:13:33 +00:00
Eelco Dolstra
50fe85f016
* For fixed-output derivations, pass the environment variables listed
...
in the attribute variable `impureEnvVars' from the caller to the
builder.
2006-05-31 09:51:45 +00:00
Eelco Dolstra
1390ce4142
* Not all platforms have sys/select.h.
2006-05-30 11:37:21 +00:00
Eelco Dolstra
58b4198ed8
* Disable the concurrent garbage collector on Cygwin for now.
2006-05-29 20:46:51 +00:00
Eelco Dolstra
d764409d97
* Some Cygwin fixes.
2006-05-24 13:23:20 +00:00
Eelco Dolstra
b5988004d6
* Support for srcdir != builddir (NIX-41).
2006-05-12 11:47:45 +00:00
Eelco Dolstra
9d72bf8835
* 64-bit compatibility fixes (for problems revealed by building on an Athlon
...
64 running 64-bit SUSE). A patched ATerm library is required to run Nix
succesfully.
2006-05-11 02:19:43 +00:00
Eelco Dolstra
c791e94aee
* Removed a bunch of ATreverses.
2006-05-02 17:51:50 +00:00
Eelco Dolstra
fdea084c36
* Allow `make check' to work in directories that have symlink
...
components.
2006-03-10 22:27:26 +00:00
Eelco Dolstra
c8bfb11b34
* `nix-env (-i|-u) --dry-run' now shows exactly which missing paths
...
will be built or substituted.
2006-03-06 11:21:15 +00:00
Eelco Dolstra
74166f2f44
* db.hh shouldn't depend on the Berkeley DB headers.
2006-03-01 17:44:28 +00:00
Eelco Dolstra
d822bf32e4
* Close the database before the destructor runs.
2006-03-01 16:36:35 +00:00
Eelco Dolstra
b602d2dfdf
* Wrong delete. Thanks valgrind.
2006-03-01 14:39:10 +00:00
Eelco Dolstra
6b8bb8d74a
* Remove dead code.
2006-03-01 12:51:39 +00:00
Eelco Dolstra
345a95afe9
* Allow the size of the GC reserved file to be specified in nix.conf
...
through the new `gc-reserved-space' option.
2006-02-16 13:58:10 +00:00
Eelco Dolstra
651ab439cf
* A simple hack to fix NIX-18: the garbage collector cannot run when
...
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-16 13:19:15 +00:00
Eelco Dolstra
81de538e46
* Use setsid instead of setpgrp in child processes. This not only
...
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-03 14:20:59 +00:00
Eelco Dolstra
b90daaaf6c
* When killing a build hook, kill the entire process group (as
...
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.)
2006-02-02 16:27:31 +00:00
Eelco Dolstra
0f8d3c871b
* More GCC 2.95 compatibility.
2005-12-25 11:29:12 +00:00
Eelco Dolstra
52d20ef124
* Hack around a GCC 2.95 bug.
2005-12-25 02:02:29 +00:00
Eelco Dolstra
1440419b45
* GCC 2.95 compatibility.
2005-12-24 23:32:59 +00:00
Eelco Dolstra
f96d2dea26
* Added a flag --ignore-liveness' to
nix-store --delete'. It
...
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 21:36:44 +00:00
Eelco Dolstra
4b9e7f59ca
* Revived the old "nix-store --delete" operation that deletes the
...
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-23 21:08:42 +00:00
Eelco Dolstra
530b27df1e
* `nix-store --gc' prints out the number of bytes freed on stdout
...
(even when it is interrupted by a signal).
2005-12-15 21:11:39 +00:00
Eelco Dolstra
b1eed6b586
* Split the database upgrade into multiple transactions to prevent
...
Berkeley DB from running out of locks.
2005-12-15 16:53:21 +00:00
Eelco Dolstra
ab5c6bb3a3
* Change referer' to
referrer' throughout. In particular, the
...
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-13 21:04:48 +00:00
Eelco Dolstra
d87549c1c7
* Automatically delete the old referers table.
2005-12-12 19:14:38 +00:00
Eelco Dolstra
8463f27d8c
* Fix NIX-23: quadratic complexity in maintaining the referers
...
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-12 18:24:42 +00:00
Eelco Dolstra
a33b561a6b
* Use Berkeley DB 4.4's process registry feature to recover from
...
crashed Nix instances, and toss out our own recovery code.
2005-12-09 22:55:07 +00:00
Eelco Dolstra
760264bffe
* Require Berkeley DB 4.4.
...
* Checkpoint after an upgrade.
2005-12-06 15:00:04 +00:00
Eelco Dolstra
b7f008fc35
* Did something useful while waiting at IAD: reference scanning is now
...
much faster.
2005-11-16 08:27:06 +00:00
Rob Vermaas
f0856fd905
* Repair the referers table from the references table.
2005-10-29 15:44:02 +00:00
Eelco Dolstra
92d599c6a7
* Prevent uids from being used for more than one build
...
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-20 16:58:34 +00:00
Eelco Dolstra
e932c40f8e
* Oops. Fixed-output derivations were broken.
2005-10-19 14:27:44 +00:00
Eelco Dolstra
13b089c890
* Also kill all processes of the build user after the build. This is
...
critical to prevent certain kinds of 0wnage.
2005-10-17 17:43:21 +00:00
Eelco Dolstra
f1b3a418fa
* Before starting a build under some uid, kill all current processes
...
running under that uid.
2005-10-17 17:35:37 +00:00
Eelco Dolstra
439823ae80
* Check that the build result is owned by the build user, and that
...
nobody else has write permission to the build result. This catches
most hack attempts.
2005-10-17 16:59:25 +00:00
Eelco Dolstra
7ef574e5d0
* Don't use FIFOs to make Nix create the output path on behalf of the
...
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 16:52:29 +00:00