diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-03-27 17:58:04 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2004-03-27 17:58:04 +0000 |
commit | f8cd904e05b95c5a3ca7cf570c0503a25a2095ca (patch) | |
tree | 4bf7f5ee3405578999b72cbae0729c4c8ed4a011 /src/libexpr/lexer.l | |
parent | f0f7a9f29962c55a6c2082b44c9befbd912c2f53 (diff) |
* Disallow the Nix store or any of its parents from being symlinks.
This is because the contents of these symlinks are not incorporated
into the hashes of derivations, and could therefore cause a mismatch
between the build system and the target system. E.g., if
`/nix/store' is a symlink to `/data/nix/store', then a builder could
expand this path and store the result. If on the target system
`/nix/store' is not a symlink, or is a symlink that points somewhere
else, we have a dangling pointer.
The trigger for this change is that gcc 3.3.3 does exactly that (it
applies realpath() to some files, such as libraries, which causes
our impurity checker to bail out.)
An annoying side-effect of this change is that it makes it harder to
move the Nix store to a different file system. On Linux, bind
mounts can be used instead of symlink for this purpose (e.g., `mount
-o bind /data/nix/store /nix/store').
Diffstat (limited to 'src/libexpr/lexer.l')
0 files changed, 0 insertions, 0 deletions