I just realized that this is fixed by just removing #:local-build? #t from (guix download).
Initially #:local-build? (aka. ‘preferLocalBuild’) meant “avoid offloading this derivation”, but Nix commit 55586527 (June 2013) changed it to “avoid offloading *or substituting* this derivation”, which I somehow overlooked for all this time. I think we to distinguish between whether to offload and whether to substitute. Typically, we don’t want to offload downloads, because that’s inefficient. However, we may want to substitute downloads, because then if the upstream download URL has become invalid, we can still get the substitute from hydra.gnu.org. Until then, I think I’ll just comment out #:local-build? #t in (guix download) and friends. Thoughts? Thanks, Ludo’.
