guix-commits
[Top][All Lists]
Advanced

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

03/15: substitutes: Build correct narinfo URLs for cache URLs without tr


From: guix-commits
Subject: 03/15: substitutes: Build correct narinfo URLs for cache URLs without trailing slash.
Date: Sat, 11 Dec 2021 18:29:27 -0500 (EST)

civodul pushed a commit to branch master
in repository guix.

commit e68466de122d94ac3fa75aae234cd5fd89482a5a
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Sat Dec 11 23:22:47 2021 +0100

    substitutes: Build correct narinfo URLs for cache URLs without trailing 
slash.
    
    Fixes <https://issues.guix.gnu.org/51441>.
    Reported by Z572 <873216071@qq.com> and Peng Mei Yu <pengmeiyu@riseup.net>.
    
    Previously, passing '--substitute-urls=https://mirror.sjtu.edu.cn/guix',
    without a trailing slash, would fail due to incorrectly constructed
    narinfo URLs.  Users would have to explicitly add a trailing slash.
    
    * guix/substitutes.scm (narinfo-request): Ensure BASE has a trailing
    slash.
---
 guix/substitutes.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/guix/substitutes.scm b/guix/substitutes.scm
index a5c554a..9014cf6 100644
--- a/guix/substitutes.scm
+++ b/guix/substitutes.scm
@@ -156,7 +156,11 @@ indicates that PATH is unavailable at CACHE-URL."
 
 (define (narinfo-request cache-url path)
   "Return an HTTP request for the narinfo of PATH at CACHE-URL."
-  (let* ((base (string->uri cache-url))
+  ;; Ensure BASE has a trailing slash so that REF is correct regardless of
+  ;; whether the user-provided CACHE-URL has a trailing slash.
+  (let* ((base (string->uri (if (string-suffix? "/" cache-url)
+                                cache-url
+                                (string-append cache-url "/"))))
          (ref (build-relative-ref
                #:path (string-append (store-path-hash-part path) ".narinfo")))
          (url (resolve-uri-reference ref base))



reply via email to

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