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
parent
67da646087
commit
3cb5ae8577
|
@ -747,15 +747,20 @@ otherwise simply ignore them."
|
|||
content-addressed-mirrors))
|
||||
|
||||
(define disarchive-uris
|
||||
(append-map (match-lambda
|
||||
((? string? mirror)
|
||||
(map (match-lambda
|
||||
((hash-algo . hash)
|
||||
(string->uri
|
||||
(string-append mirror
|
||||
(symbol->string hash-algo) "/"
|
||||
(bytevector->base16-string hash)))))
|
||||
hashes)))
|
||||
(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 (make-url hash-algo hash))))
|
||||
hashes)))
|
||||
disarchive-mirrors))
|
||||
|
||||
;; Make this unbuffered so 'progress-report/file' works as expected. 'line
|
||||
|
|
|
@ -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
|
||||
|
|
Reference in New Issue