[Nix-dev] [PATCH] Allow roots to refer to arbitrary files in the store
Ludovic Courtès
ludo at gnu.org
Mon Apr 14 16:45:25 CEST 2014
(Oops, forgot the Subject line; sorry!)
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.
>> diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
>> index 96e891f..299bf5f 100644
>> --- a/src/libstore/gc.cc
>> +++ b/src/libstore/gc.cc
>> @@ -287,10 +287,7 @@ static void foundRoot(StoreAPI & store,
>> const Path & path, const Path & target, Roots & roots)
>> {
>> Path storePath = toStorePath(target);
>> - if (store.isValidPath(storePath))
>
> Hm, don't we at least want to check that it's in the store at all?
‘toStorePath’ does that:
if (!isInStore(path))
throw Error(format("path `%1%' is not in the Nix store") % path);
Thanks,
Ludo’.
More information about the nix-dev
mailing list