diff options
Diffstat (limited to 'guix')
-rw-r--r-- | guix/build/download.scm | 3 | ||||
-rw-r--r-- | guix/build/gnu-build-system.scm | 2 | ||||
-rw-r--r-- | guix/download.scm | 7 |
3 files changed, 10 insertions, 2 deletions
diff --git a/guix/build/download.scm b/guix/build/download.scm index 307258be92..4259f52b7a 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -737,7 +737,8 @@ or #f." (append-map (lambda (make-url) (filter-map (match-lambda ((hash-algo . hash) - (string->uri (make-url file hash-algo hash)))) + (let ((file (strip-store-file-name file))) + (string->uri (make-url file hash-algo hash))))) hashes)) content-addressed-mirrors)) diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 2abaa6efdc..34edff7f40 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -303,7 +303,7 @@ makefiles." (define (list-of-files dir) (map (cut string-append dir "/" <>) (or (scandir dir (lambda (f) - (let ((s (stat (string-append dir "/" f)))) + (let ((s (lstat (string-append dir "/" f)))) (eq? 'regular (stat:type s))))) '()))) diff --git a/guix/download.scm b/guix/download.scm index 8484c31189..f1422bebc0 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -282,8 +282,15 @@ ;; List of content-addressed mirrors. Each mirror is represented as a ;; procedure that takes a file name, an algorithm (symbol) and a hash ;; (bytevector), and returns a URL or #f. + ;; Note: Avoid 'https' to mitigate <http://bugs.gnu.org/22774>. ;; TODO: Add more. '(list (lambda (file algo hash) + ;; Files served by 'guix publish' are accessible under a single + ;; hash algorithm. + (string-append "http://mirror.hydra.gnu.org/file/" + file "/" (symbol->string algo) "/" + (bytevector->nix-base32-string hash))) + (lambda (file algo hash) ;; 'tarballs.nixos.org' supports several algorithms. (string-append "http://tarballs.nixos.org/" (symbol->string algo) "/" |