guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

‘guix publish’ as a content-addressed file server


From: Ludovic Courtès
Subject: ‘guix publish’ as a content-addressed file server
Date: Wed, 20 Jul 2016 17:25:30 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]