Subject: bug#33276: guix still building when substitute is available (or is guix pull not reproducible)

From: [email-masked] (Ludovic Courtès)
Date: Tue, 06 Nov 2018 15:21:29 +0100

Hello,

Pjotr Prins <[email-masked]> skribis:

> I have a guix-publish server and I am building the packages with the
> exact same checkout of 'guix pull'. Even though the client sees the
> substitutes with --dry-run it still builds them.
>
> On build host (check version first)
>
> 	penguin2:~$ ~/.config/guix/current/bin/guix --version
> 	guix (GNU Guix) ff349415b27cc764fd7168ef35ca76c3b8b05889
>
> 	Copyright (C) 2018 the Guix authors
>
> 	penguin2:~$ ~/.config/guix/current/bin/guix package -i perl mosh --substitute-urls="https://berlin.guixsd.org" --fallback
>
> 	building /gnu/store/ih5liw094mkjg1n4qakipfdgmrhvpj68-protobuf-3.5.1.drv...
> 	building /gnu/store/bhrgmk0xax0yl50whb8faankknw4z254-mosh-1.3.2.drv...
> 	The following packages will be installed:
> 		 perl 5.26.1  /gnu/store/7ifc22sh86zblnzamqimgmv06idyx69v-perl-5.26.1
> 		 mosh 1.3.2   /gnu/store/5qanifm23gqxhg2bh587dzah0mf79fp0-mosh-1.3.2
>
> On client (check version first)
>
> 	monza:~$ ~/.config/guix/current/bin/guix --version
> 	guix (GNU Guix) ff349415b27cc764fd7168ef35ca76c3b8b05889
>
> 	Copyright (C) 2018 the Guix authors
>
> 	monza:~$ ~/.config/guix/current/bin/guix package -i perl mosh --substitute-urls="http://guix.genenetwork.org https://berlin.guixsd.org" --dry-run
> 	The following packages would be installed:
> 		 perl 5.26.1  /gnu/store/6zz27h4l21b8f2mifrk9sidvib9cns2i-perl-5.26.1
> 		 mosh 1.3.2   /gnu/store/dkpkd7ajh3kvpzfdfacqg50x49i78x5y-mosh-1.3.2
>
> Strangely the hash values differ but it still wants to fetch them. But when I do an actual install it rebuilds:

When you’re using --dry-run, what gets displayed is the file names of
the ungrafted packages.  That’s why you see different file names in the
first case.

As to why you’re not getting substitutes, it could be missing
authorization, etc.  What does ‘guix publish’ display?

Thanks,
Ludo’.