Subject: bug#17122: More problems with --no-substitutes

From: [email-masked] (Ludovic Courtès)
Date: Fri, 28 Mar 2014 10:17:12 +0100

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

> What disturbs me the most is that 'substitute-binary' is being called at
> all.  I'm 100% certain that I passed '--no-substitutes' to guix-daemon.
> I use a script to start guix-daemon with the options I prefer, to avoid
> mistakes.  I also just checked with 'ps', and indeed '--no-substitutes'
> is there on the command line.

Can you check with current master?  (See in particular commits 968e84a
and c9e2b0b.)  Does tests/guix-daemon.sh pass?

Make sure to use the “right” daemon code, but updating the nix-upstream
module and running nix/sync-with-upstream.

> I'm surprised and concerned that we seem to be having so much trouble
> making '--no-substitutes' work reliably.  How hard can it be?

The issue is that guix-daemon.cc glues into Nix’s code, and Nix changed
the way it handles substituter settings in the last update.

Specifically, in Nix commit dcaea042, the Settings::update method is
made to re-read $NIX_SUBSTITUTERS:
<https://github.com/NixOS/nix/commit/dcaea042fc895667bf6f529471ff9f449629774c>;
then in Guix commit 89faa5c I adjusted guix-daemon.cc accordingly, but
inadvertently removed the ‘if’ branch that clears the substituter list.

Commit c9e2b0b augments tests/guix-daemon.sh to test guix-daemon
--no-substitutes.

Ludo’.