me
/
guix
Archived
1
0
Fork 0

download: Disarchive mirrors can be URL-returning procedures.

As discussed at <https://issues.guix.gnu.org/47336#16>.

* guix/build/download.scm (url-fetch)[disarchive-uris]: Accept MIRROR as
a procedure.
* guix/download.scm (%disarchive-mirrors): Add comment.  This change can
only be made once a 'guix perform-download' that understands procedures
is widely deployed.
master
Ludovic Courtès 2021-09-14 10:11:42 +02:00
parent 67da646087
commit 3cb5ae8577
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 16 additions and 9 deletions

View File

@ -747,14 +747,19 @@ otherwise simply ignore them."
content-addressed-mirrors))
(define disarchive-uris
(append-map (match-lambda
((? string? mirror)
(append-map (lambda (mirror)
(let ((make-url (match mirror
((? string?)
(lambda (hash-algo hash)
(string-append
mirror
(symbol->string hash-algo) "/"
(bytevector->base16-string hash))))
((? procedure?)
mirror))))
(map (match-lambda
((hash-algo . hash)
(string->uri
(string-append mirror
(symbol->string hash-algo) "/"
(bytevector->base16-string hash)))))
(string->uri (make-url hash-algo hash))))
hashes)))
disarchive-mirrors))

View File

@ -400,6 +400,8 @@
(object->string %content-addressed-mirrors)))
(define %disarchive-mirrors
;; TODO: Eventually turn into a procedure that takes a hash algorithm
;; (symbol) and hash (bytevector).
'("https://disarchive.ngyro.com/"))
(define %disarchive-mirror-file