lix/src/libstore
Eelco Dolstra 1c208f2b7e Allow regular files as GC roots
If a root is a regular file, then its name must denote a store
path. For instance, the existence of the file

  /nix/var/nix/gcroots/per-user/eelco/hydra-roots/wzc3cy1wwwd6d0dgxpa77ijr1yp50s6v-libxml2-2.7.7

would cause

  /nix/store/wzc3cy1wwwd6d0dgxpa77ijr1yp50s6v-libxml2-2.7.7

to be a root.

This is useful because it involves less I/O (no need for a readlink()
call) and takes up less disk space (the symlink target typically takes
up a full disk block, while directory entries are packed more
efficiently). This is particularly important for hydra.nixos.org,
which has hundreds of thousands of roots, and where reading the roots
can take 25 minutes.
2014-08-01 17:14:28 +02:00
..
build.cc Restore default SIGPIPE handler before invoking ‘man’ 2014-07-31 10:31:17 +02:00
derivations.cc If a .drv cannot be parsed, show its path 2014-04-08 19:24:29 +02:00
derivations.hh If a .drv cannot be parsed, show its path 2014-04-08 19:24:29 +02:00
gc.cc Allow regular files as GC roots 2014-08-01 17:14:28 +02:00
globals.cc nix-daemon: Pass on the user's $SSH_AUTH_SOCK to the SSH substituter 2014-07-25 18:02:48 +02:00
globals.hh nix-daemon: Pass on the user's $SSH_AUTH_SOCK to the SSH substituter 2014-07-25 18:02:48 +02:00
local-store.cc Replace message "importing path <...>" with "exporting path <...>" 2014-07-10 21:30:22 +02:00
local-store.hh Use std::unordered_set 2014-05-26 17:53:17 +02:00
local.mk Use std::unordered_set 2014-05-26 17:53:17 +02:00
misc.cc If a .drv cannot be parsed, show its path 2014-04-08 19:24:29 +02:00
misc.hh Don't set $preferLocalBuild and $requiredSystemFeatures in builders 2013-06-20 18:07:27 +00:00
optimise-store.cc lvlInfo -> lvlTalkative 2014-05-15 11:37:44 +02:00
pathlocks.cc Set the close-on-exec flag on file descriptors 2012-03-05 20:29:00 +01:00
pathlocks.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
references.cc Use data() instead of c_str() where appropriate 2012-02-09 18:27:45 +01:00
references.hh Use "#pragma once" to prevent repeated header file inclusion 2012-07-18 14:59:03 -04:00
remote-store.cc nix-daemon: Pass on the user's $SSH_AUTH_SOCK to the SSH substituter 2014-07-25 18:02:48 +02:00
remote-store.hh Remove dead code 2014-07-23 14:46:28 +02:00
schema.sql * Store the size of a store path in the database (to be precise, the 2010-11-16 17:11:46 +00:00
store-api.cc boost::shared_ptr -> std::shared_ptr 2014-03-30 00:49:23 +01:00
store-api.hh boost::shared_ptr -> std::shared_ptr 2014-03-30 00:49:23 +01:00
worker-protocol.hh Remove some dead code 2014-07-24 00:00:53 +02:00