Subject: Re: bug#29814: impossible to pass spaces in GUIX_BUILD_OPTIONS

From: Mark H Weaver <[email-masked]>
Date: Fri, 22 Dec 2017 22:36:45 -0500

[email-masked] (Ludovic Courtès) writes:

> Martin Castillo <[email-masked]> skribis:
>
>> guix/util.scm:(arguments-from-envirenment-variable) uses
>> char-set:graphic to split the string. this makes it impossible to pass
>> spaces in the arguments.
>>
>> This makes it impossible to pass more than one substitute-url via the
>> environment.
>
> Yes, this is annoying.  I think --substitute-urls (plural) was
> misguided.  Instead we should instead have --substitute-url (singular),
> which could be repeated several times.  That would solve the troubles
> with spaces.
>
> During a transition period we could keep accepting --substitute-urls.

I require a way to clear the list of substitute urls, because last I
checked --no-substitutes doesn't fully inhibit use of the substitute
servers.  For example, I found that when grafting, substitute servers
were queried even when --no-substitutes is passed to the daemon.  I
guess that's to determine the set of references found in the build
outputs, to optimize the grafting process.  However, a compromised
substitute server (or a man-in-the-middle in possession of our signing
key) could send me the wrong set of references, and thus cause my system
to perform incomplete grafts, with some dependencies omitted from the
list of rewrites.

My current method to avoid trusting the substitute servers is to pass
both --no-substitutes and --substitute-urls "" to the daemon.  If we
deprecate the use of --substitute-urls, how will I clear the list?

       Mark