diff --git a/guix/build/download.scm b/guix/build/download.scm index 54627eefa2..c8ddadfdd4 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -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 diff --git a/guix/download.scm b/guix/download.scm index a66cf0cea1..85b97a4766 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -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