Hi! Until now, if hydra.gnu.org had a source file in its store (the result of an ‘origin’), you could get it via substitutes. However, with substitutes disabled, hydra.gnu.org was of no help, even though it did have the source file.
Commit ff6638d112d794c9c433731643711932452fd2ff helps address that: it augments ‘guix publish’ such that it can be used as a content-addressed mirror for source files¹. If you run ‘guix publish -p 9999’ on your machine, and if hello-2.10.tar.gz is in the store, then this URL: http://localhost:9999/file/hello-2.10.tar.gz/sha256/0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i … gives you hello-2.10.tar.gz. This works by constructing the corresponding store file name, assuming the file being requested results from a fixed-output derivation using the same hash algorithm (SHA256 here) or was added with ‘add-to-store’. That the hash algorithm must match is a limitation, but it’s probably “good enough” for our purposes. Eventually I think we’ll run it on our build farm and add the URL to ‘%content-addressed-mirrors’ in (guix download). Feedback welcome. :-) Ludo’. ¹ https://lists.gnu.org/archive/html/guix-devel/2016-05/msg00450.html