summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/import/print.scm15
-rw-r--r--tests/print.scm6
2 files changed, 16 insertions, 5 deletions
diff --git a/guix/import/print.scm b/guix/import/print.scm
index 8acf5d52f6..4e65d18bc3 100644
--- a/guix/import/print.scm
+++ b/guix/import/print.scm
@@ -25,6 +25,7 @@
   #:use-module (guix build-system)
   #:use-module (gnu packages)
   #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
   #:use-module (guix import utils)
   #:use-module (ice-9 control)
   #:use-module (ice-9 match)
@@ -72,6 +73,11 @@ when evaluated."
       (file-type (quote ,(search-path-specification-file-type spec)))
       (file-pattern ,(search-path-specification-file-pattern spec))))
 
+  (define (factorized-uri-code uri version)
+    (match (factorize-uri uri version)
+      ((? string? uri) uri)
+      ((factorized ...) `(string-append ,@factorized))))
+
   (define (source->code source version)
     (let ((uri       (origin-uri source))
           (method    (origin-method source))
@@ -90,9 +96,12 @@ when evaluated."
                              (guix svn-download)))
                       (procedure-name method)))
          (uri ,(if version
-                   `(string-append ,@(match (factorize-uri uri version)
-                                       ((? string? uri) (list uri))
-                                       (factorized factorized)))
+                   (match uri
+                     ((? string? uri)
+                      (factorized-uri-code uri version))
+                     ((lst ...)
+                      `(list
+                        ,@(map (cut factorized-uri-code <> version) uri))))
                    uri))
          ,(if (equal? (content-hash-algorithm hash) 'sha256)
               `(sha256 (base32 ,(bytevector->nix-base32-string
diff --git a/tests/print.scm b/tests/print.scm
index ad19f4573a..7f4c8ccdd1 100644
--- a/tests/print.scm
+++ b/tests/print.scm
@@ -73,8 +73,10 @@
     (version "1.2.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "file:///tmp/test-"
-                                  version ".tar.gz"))
+              (uri (list (string-append "file:///tmp/test-"
+                                        version ".tar.gz")
+                         (string-append "http://example.org/test-"
+                                        version ".tar.gz")))
               (sha256
                (base32
                 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))