summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-06-07 22:49:47 +0200
committerLudovic Courtès <ludo@gnu.org>2019-06-07 22:49:47 +0200
commitc0a4db66976dc63decbd612aafb934f44629e321 (patch)
treeca31854b3a100c47ab50f9a9f0035ad651439038
parentd998902214df0a177591541db60e8f9f406a239b (diff)
downloadguix-c0a4db66976dc63decbd612aafb934f44629e321.tar.gz
import: print: Honor the outputs of inputs (!).
Fixes <http://bugs.gnu.org/35893>.
Reported by Jesse Gibbons <jgibbons2357@gmail.com>.

* guix/import/print.scm (package->code)[package-lists->code]: Preserve
OUT in the result.
* tests/print.scm (define-with-source): New macro.
(pkg): Use it.
(pkg-source): New variable.
(pkg-with-inputs, pkg-with-inputs-source): New variables.
("simple package"): Refer to 'pkg-source'.
("package with inputs"): New test.
-rw-r--r--guix/import/print.scm13
-rw-r--r--tests/print.scm48
2 files changed, 38 insertions, 23 deletions
diff --git a/guix/import/print.scm b/guix/import/print.scm
index 0bec32c8dc..4c2a91fa4f 100644
--- a/guix/import/print.scm
+++ b/guix/import/print.scm
@@ -94,12 +94,13 @@ when evaluated."
           (map (match-lambda
                  ((label pkg . out)
                   (let ((mod (package-module-name pkg)))
-                    (list label
-                          ;; FIXME: using '@ certainly isn't pretty, but it
-                          ;; avoids having to import the individual package
-                          ;; modules.
-                          (list 'unquote
-                                (list '@ mod (variable-name pkg mod)))))))
+                    (cons* label
+                           ;; FIXME: using '@ certainly isn't pretty, but it
+                           ;; avoids having to import the individual package
+                           ;; modules.
+                           (list 'unquote
+                                 (list '@ mod (variable-name pkg mod)))
+                           out))))
                lsts)))
 
   (let ((name                (package-name package))
diff --git a/tests/print.scm b/tests/print.scm
index 305807c1d1..d4b2cca93f 100644
--- a/tests/print.scm
+++ b/tests/print.scm
@@ -24,9 +24,31 @@
   #:use-module (guix licenses)
   #:use-module (srfi srfi-64))
 
+(define-syntax-rule (define-with-source object source expr)
+  (begin
+    (define object expr)
+    (define source 'expr)))
+
 (test-begin "print")
 
-(define pkg
+(define-with-source pkg pkg-source
+  (package
+    (name "test")
+    (version "1.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "file:///tmp/test-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
+    (build-system gnu-build-system)
+    (home-page "http://gnu.org")
+    (synopsis "Dummy")
+    (description "This is a dummy package.")
+    (license gpl3+)))
+
+(define-with-source pkg-with-inputs pkg-with-inputs-source
   (package
     (name "test")
     (version "1.2.3")
@@ -38,27 +60,19 @@
                (base32
                 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
     (build-system gnu-build-system)
+    (inputs `(("coreutils" ,(@ (gnu packages base) coreutils))
+              ("glibc" ,(@ (gnu packages base) glibc) "debug")))
     (home-page "http://gnu.org")
     (synopsis "Dummy")
     (description "This is a dummy package.")
     (license gpl3+)))
 
 (test-equal "simple package"
-  (package->code pkg)
-  '(package
-     (name "test")
-     (version "1.2.3")
-     (source (origin
-               (method url-fetch)
-               (uri (string-append "file:///tmp/test-"
-                                   version ".tar.gz"))
-               (sha256
-                (base32
-                 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
-     (build-system gnu-build-system)
-     (home-page "http://gnu.org")
-     (synopsis "Dummy")
-     (description "This is a dummy package.")
-     (license gpl3+)))
+  pkg-source
+  (package->code pkg))
+
+(test-equal "package with inputs"
+  pkg-with-inputs-source
+  (package->code pkg-with-inputs))
 
 (test-end "print")