Subject: Allow users to use the daemon's default settings
From: [email-masked] (Ludovic Courtès)
To: [email-masked]
Date: Sat, 28 Mar 2015 15:36:19 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

The message below from guix-devel says it all.

Ludo’.

Subject: Using the daemon’s default settings
From: [email-masked] (Ludovic Courtès)
To: Mark H Weaver <[email-masked]>
Cc: [email-masked]
Date: Mon, 23 Mar 2015 22:11:17 +0100
List-Id: "Development of GNU Guix and the GNU System distribution." <guix-devel.gnu.org>

Mark H Weaver <[email-masked]> skribis:

> Ludovic Courtès <[email-masked]> writes:
>
>> commit 4d58122071bbd7bb56c9658a9bbe7621bf3e423d
>> Author: Ludovic Courtès <[email-masked]>
>> Date:   Sun Mar 22 23:43:25 2015 +0100
>>
>>     store: Default to a non-empty list of substituters.
>>     
>>     Fixes <http://bugs.gnu.org/20163>.
>>     Reported by Mark H Weaver <[email-masked]>.
>>     
>>     * guix/store.scm (%default-substitute-urls): New variable.
>>       (set-build-options): Change default value of #:substitute-urls to
>>       %DEFAULT-SUBSTITUTE-URLS.

[...]

> Does this mean that even if I've configured my daemon to use a different
> set of substitute-urls, when I run 'guix' as root those settings will be
> overridden?

Yes.

> That seems suboptimal.

Right.

> We have a similar problem with the values of --cores and --max-jobs
> passed to guix-daemon being ignored because they are always overridden
> by our client.

Indeed.

> How can we fix these so that the daemon's settings are used unless the
> user specifically asks to override them in the client?

If you look at nix-daemon.cc:543, there’s currently no way for a client
to say “default value.”  The only way for a client to get the daemon’s
default values is to not call the ‘set-build-options’ RPC at all; it’s
all or nothing.

I think the way forward would be to add a new RPC, say
‘set-build-options2’, that would take a list of key/value pairs, where
keys are option names.  Options not mentioned in a ‘set-build-options2’
call would keep their default value.

How does that sound?

Thanks,
Ludo’.