[email protected] (Ludovic Courtès) writes: > Mark H Weaver <[email protected]> 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?
Yes, it does. I also hacked 'guix-substitute-binary' to unconditionally raise an error as soon as it is called (a local patch I intend to keep indefinitely). Before your recent commits, 'guix-substitute-binary' was always being called by 'guix build' (unless --no-substitutes was passed to it), but that seems to be fixed now. Thanks. >> 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. Ah, okay. I wish this wasn't so fragile, but the new test case you added helps, as does my hack to raise an error if the substituter is called, which will immediately alert me to any similar problems in the future. > 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. Thanks very much! I'm closing this bug now. Mark
