forked from lix-project/lix
bd013b6f98
I was bitten one time too many by Python modifying the Nix store by creating *.pyc files when run as root. On Linux, we can prevent this by setting the immutable bit on files and directories (as in ‘chattr +i’). This isn't supported by all filesystems, so it's not an error if setting the bit fails. The immutable bit is cleared by the garbage collector before deleting a path. The only tricky aspect is in optimiseStore(), since it's forbidden to create hard links to an immutable file. Thus optimiseStore() temporarily clears the immutable bit before creating the link. |
||
---|---|---|
.. | ||
build.cc | ||
derivations.cc | ||
derivations.hh | ||
gc.cc | ||
globals.cc | ||
globals.hh | ||
local-store.cc | ||
local-store.hh | ||
Makefile.am | ||
misc.cc | ||
misc.hh | ||
optimise-store.cc | ||
pathlocks.cc | ||
pathlocks.hh | ||
references.cc | ||
references.hh | ||
remote-store.cc | ||
remote-store.hh | ||
schema.sql | ||
store-api.cc | ||
store-api.hh | ||
worker-protocol.hh |