[Nix-dev] [PATCH] Allow roots to refer to arbitrary files in the store
Ludovic Courtès
ludo at gnu.org
Tue Apr 15 21:34:01 CEST 2014
Shea Levy <shea at shealevy.com> skribis:
> On Mon, Apr 14, 2014 at 04:59:15PM +0200, Ludovic Courtès wrote:
>> ludo at gnu.org (Ludovic Courtès) skribis:
>>
>> > Shea Levy <shea at shealevy.com> skribis:
>> >
>> >> On Mon, Apr 14, 2014 at 03:38:01PM +0200, Ludovic Courtès wrote:
>> >>> The patch below allows files such as /nix/store/foo to be protected from
>> >>> GC if a root refers to them. This makes it easy for a build hook to use
>> >>> such files for its temporary working files.
>> >>>
>> >>> WDYT?
>> >>>
>> >>
>> >> It seems a bit odd to me to be using the store as a temporary file
>> >> location. What's wrong with $TMPDIR?
>> >
>> > Well, this is useful for build hooks, because it guarantees that any
>> > garbage they leave there will eventually be reclaimed.
>>
>> It also guarantees that this thing lives on the same file system as the
>> store, which means that rename(2) can be used to move it to its final
>> location in the store.
>>
>
> Hmm using the store as an auto-collected $TMPDIR seems wrong, but this
> is a decent argument. Do you have a specific use case already planned?
Yup, the build hook, as I wrote (specifically, for the temporary it uses
when restoring from a Nar.)
The other option is to use the temporary root file (that’s what
build-remote.pl does.) That’s nice, but it requires exposing a lot of
implementation details (GC lock, GC roots directory, etc.)
Ludo’.
More information about the nix-dev
mailing list