about summary refs log tree commit diff
path: root/src/libstore
AgeCommit message (Collapse)AuthorFilesLines
2008-11-12 * Some somewhat ad hoc mechanism to allow the build farm to monitorEelco Dolstra4-6/+65
build progress.
2008-11-11 * Pass the --no-build-output flag to the daemon.Eelco Dolstra2-1/+3
2008-11-11 * Add /dev/pts to the default nix.conf.Eelco Dolstra1-5/+4
2008-10-29 * Put the chroots under /nix/var/nix/chroots to reduce the risk ofEelco Dolstra3-10/+14
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-10-16 libstore: Always mount `/dev/pts' individually.Ludovic Courtès1-0/+5
This fixes problems such as Tcl's PTY handling: ERROR: The system has no more ptys. Ask your system administrator to create more.
2008-10-16 * Bug fix for building on some old installations (contributed by Pjotr).Eelco Dolstra1-0/+6
2008-09-17 * GC option `--max-atime' that specifies an upper limit to the lastEelco Dolstra3-6/+17
accessed time of paths that may be deleted. Anything more recently used won't be deleted. The time is specified in time_t, e.g. seconds since 1970-01-01 00:00:00 UTC; use `date +%s' to convert to time_t from the command line. Example: to delete everything that hasn't been used in the last two months: $ nix-store --gc -v --max-atime $(date +%s -d "2 months ago")
2008-09-17 * Typo.Eelco Dolstra1-1/+1
2008-09-17 * Some refactoring. Better output with `-v' for --use-atime.Eelco Dolstra2-35/+40
2008-09-17 * Garbage collector: added an option `--use-atime' to delete paths inEelco Dolstra4-39/+189
order of ascending last access time. This is useful in conjunction with --max-freed or --max-links to prefer deleting non-recently used garbage, which is good (especially in the build farm) since garbage may become live again. The code could easily be modified to accept other criteria for ordering garbage by changing the comparison operator used by the priority queue in collectGarbage().
2008-08-27 * Explicitly set PWD to prevent problems with chroot builds. InEelco Dolstra1-0/+6
particular, dietlibc cannot figure out the cwd because the inode of the current directory doesn't appear in .. (because getdents returns the inode of the mount point).
2008-08-27 * Create a /tmp with 1777 permission in the chroot. Some buildersEelco Dolstra1-12/+32
need a writable /tmp (they don't respect $TMPDIR).
2008-08-25 * Disable chroot builds for fixed-output derivations so that we don'tEelco Dolstra1-1/+8
need /etc in the chroot (in particular, /etc/resolv.conf for fetchurl). Not having /etc/resolv.conf in the chroot is a good thing, since we don't want normal derivations to download files.
2008-08-25 * Strip off the `.nix' suffix from the attribute name for files inEelco Dolstra1-3/+2
~/.nix-defexpr, otherwise the attribute cannot be selected with the `-A' option. Useful if you want to stick a Nix expression directly in ~/.nix-defexpr.
2008-08-14 * Backward compatibility check to prevent nixos-rebuild from barfingEelco Dolstra2-1/+2
when upgrading Nix.
2008-08-14 * Increase the sleep periods a bit to make the test less likely toEelco Dolstra1-4/+0
fail on slow machines. Of course it would be better if this test wasn't timing dependent...
2008-08-05 * Better error checking of the data from the substituters.Eelco Dolstra1-21/+16
2008-08-04 * build.cc: only use a substituter if it returns info for a path.Eelco Dolstra3-51/+57
2008-08-04 * nix-env --dry-run: show the total size of the substituterEelco Dolstra3-3/+11
downloads.
2008-08-04 * querySubstitutablePathInfo: work properly when run via the daemon.Eelco Dolstra4-8/+20
* --dry-run: print the paths that we don't know how to build/substitute.
2008-08-02 * Make nix-env --dry-run print the paths to be substituted correctlyEelco Dolstra8-178/+187
again. (After the previous substituter mechanism refactoring I didn't update the code that obtains the references of substitutable paths.) This required some refactoring: the substituter programs are now kept running and receive/respond to info requests via stdin/stdout.
2008-07-18 * Allow read-only access to the store (e.g., non-root users on NixOSEelco Dolstra1-5/+9
can do operations like "nix-store -qR <path>" even without the Nix daemon).
2008-06-18 (no commit message)Eelco Dolstra1-1/+1
2008-06-18 * Garbage collector: option `--max-freed' to stop after at least NEelco Dolstra3-10/+36
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-18 * `nix-store --optimise': handle files with >= 32000 hard links.Eelco Dolstra1-6/+31
(There can easily be more than 32000 occurrences of the empty file.)
2008-06-18 * Some refactoring: put the GC options / results in separate structs.Eelco Dolstra9-111/+149
* The garbage collector now also prints the number of blocks freed.
2008-06-14 * Note.Eelco Dolstra1-1/+5
2008-06-13 * Garbage collector: don't do a complete topological sort of the NixEelco Dolstra2-74/+87
store under the reference relation, since that means that the garbage collector will need a long time to start deleting paths. Instead just delete the referrers of a path first.
2008-06-13 * Print some progress info during the early GC stages.Eelco Dolstra2-1/+9
2008-06-09 * Merged the no-bdb branch (-r10900:HEADEelco Dolstra11-674/+766
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
2008-05-21 * GCC 4.3.0 (Fedora 9) compatibility fixes. Reported by Gour andEelco Dolstra3-1/+4
Armijn Hemel.
2008-04-09 * sockaddr_un doesn't allow path names of more than 108 characters.Eelco Dolstra1-3/+15
This isn't usually a problem, except that it causes tests to fail when performed in a directory with a very long path name. So chdir to the socket directory and use a relative path name.
2008-03-27 * Use /tmp/nix-build-<drvpath>-<counter> instead ofEelco Dolstra1-1/+1
/tmp/nix-<pid>-<counter> for temporary build directories. This increases purity a bit: many packages store the temporary build path in their output, causing (generally unimportant) binary differences.
2008-03-01 * A transaction is unnecessary since the path cannot beEelco Dolstra1-8/+3
garbage-collected (it's a temporary root).
2008-01-29 * nix-store --dump-db / --load-db to dump/load the Nix DB.Eelco Dolstra7-126/+71
* nix-store --register-validity: option to supply the content hash of each path. * Removed compatibility with Nix <= 0.7 stores.
2008-01-15 Fixed exportBuildReferenceGraphMichael Raskin1-12/+59
2007-12-30 Added a way to include derivation with its outputs and dependencies - ↵Michael Raskin1-0/+38
exportBuildReferenceGraph
2007-11-29 * nix-env -e: support uninstalling by path, so that one can sayEelco Dolstra3-5/+34
$ nix-env -e $(which firefox) or $ nix-env -e /nix/store/nywzlygrkfcgz7dfmhm5xixlx1l0m60v-pan-0.132 * nix-env -i: if an argument contains a slash anywhere, treat it as a path and follow it through symlinks into the Nix store. This allows things like $ nix-build -A firefox $ nix-env -i ./result * nix-env -q/-i/-e: don't complain when the `*' selector doesn't match anything. In particular, `nix-env -q \*' doesn't fail anymore on an empty profile.
2007-11-16 * Flag `--no-build-hook' to disable distributed builds.Eelco Dolstra6-3/+15
* queryDeriver in daemon mode: don't barf if the other side returns an empty string (which means there is no deriver).
2007-11-15 * Don't need gc.hh.Eelco Dolstra2-7/+2
2007-11-15 Added possibility to specify garbage collection levels for store paths; so ↵Michael Raskin2-4/+21
packages can share intermediate results of compilation and GC will collect it automatically while never touching tarballs, for example.
2007-10-29 * On FreeBSD, sys/mount.h needs sys/param.h.Eelco Dolstra1-1/+5
2007-10-27 * Detect whether chroot / bind-mount support is available.Eelco Dolstra1-4/+21
2007-10-27 * Delete the chroot directory automatically.Eelco Dolstra1-14/+34
* Removed some debug messages.
2007-10-27 * Support for doing builds in a chroot under Linux. The builder isEelco Dolstra1-4/+134
executed in a chroot that contains just the Nix store, the temporary build directory, and a configurable set of additional directories (/dev and /proc by default). This allows a bit more purity enforcement: hidden build-time dependencies on directories such as /usr or /nix/var/nix/profiles are no longer possible. As an added benefit, accidental network downloads (cf. NIXPKGS-52) are prevented as well (because files such as /etc/resolv.conf are not available in the chroot). However the usefulness of chroots is diminished by the fact that many builders depend on /bin/sh, so you need /bin in the list of additional directories. (And then on non-NixOS you need /lib as well...)
2007-10-10 * Doh! Don't change the permissions on /nix/store.Eelco Dolstra1-9/+8
2007-10-10 * nix-store --optimise: flag "--dry-run" to just query what the diskEelco Dolstra1-16/+21
savings would be.
2007-10-09 * New command `nix-store --optimise' to reduce Nix store disk spaceEelco Dolstra2-5/+138
usage by finding identical files in the store and hard-linking them to each other. It typically reduces the size of the store by something like 25-35%. This is what the optimise-store.pl script did, but the new command is faster and more correct (it's safe wrt garbage collection and concurrent builds).
2007-09-18 * Pass various options to the worker so that flags like -K or -j workEelco Dolstra3-4/+29
in multi-user Nix (NIX-72). * Client/worker: exchange a protocol version number for future compatibility.
2007-08-30 * Create the Nix daemon socket in a separate directoryEelco Dolstra1-3/+6
(/nix/var/nix/daemon-socket). This allows access to the Nix daemon to be restricted by setting the mode/ownership on that directory as desired, e.g. $ chmod 770 /nix/var/nix/daemon-socket $ chown root.wheel /nix/var/nix/daemon-socket to allow only users in the wheel group to use Nix. Setting the ownership on a socket is much trickier, since the socket must be deleted and recreated every time the daemon is started (which would require additional Nix configuration file directives to specify the mode/ownership, and wouldn't support arbitrary ACLs), some BSD variants appear to ignore permissions on sockets, and it's not clear whether the umask is respected on every platform when creating sockets.