* nix-build: use an indirection scheme to make it easier for users to

get rid of GC roots.  Nix-build places a symlink `result' in the
  current directory.  Previously, removing that symlink would not
  remove the store path being linked to as a GC root.  Now, the GC
  root created by nix-build is actually a symlink in
  `/nix/var/nix/gcroots/auto' to `result'.  So if that symlink is
  removed the GC root automatically becomes invalid (since it can no
  longer be resolved).  The root itself is not automatically removed -
  the garbage collector should delete dangling roots.
This commit is contained in:
Eelco Dolstra 2005-02-01 13:48:46 +00:00
parent dcc37c236c
commit 630ae0c9d7
7 changed files with 101 additions and 50 deletions

View file

@ -27,7 +27,8 @@ void addTempRoot(const Path & path);
void removeTempRoots();
/* Register a permanent GC root. */
Path addPermRoot(const Path & storePath, const Path & gcRoot);
Path addPermRoot(const Path & storePath, const Path & gcRoot,
bool indirect);
#endif /* !__GC_H */