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.
This commit is contained in:
Ludovic Courtès 2019-06-07 22:49:47 +02:00
parent d998902214
commit c0a4db6697
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 38 additions and 23 deletions

View File

@ -94,12 +94,13 @@ when evaluated."
(map (match-lambda (map (match-lambda
((label pkg . out) ((label pkg . out)
(let ((mod (package-module-name pkg))) (let ((mod (package-module-name pkg)))
(list label (cons* label
;; FIXME: using '@ certainly isn't pretty, but it ;; FIXME: using '@ certainly isn't pretty, but it
;; avoids having to import the individual package ;; avoids having to import the individual package
;; modules. ;; modules.
(list 'unquote (list 'unquote
(list '@ mod (variable-name pkg mod))))))) (list '@ mod (variable-name pkg mod)))
out))))
lsts))) lsts)))
(let ((name (package-name package)) (let ((name (package-name package))

View File

@ -24,9 +24,14 @@
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (srfi srfi-64)) #:use-module (srfi srfi-64))
(define-syntax-rule (define-with-source object source expr)
(begin
(define object expr)
(define source 'expr)))
(test-begin "print") (test-begin "print")
(define pkg (define-with-source pkg pkg-source
(package (package
(name "test") (name "test")
(version "1.2.3") (version "1.2.3")
@ -43,22 +48,31 @@
(description "This is a dummy package.") (description "This is a dummy package.")
(license gpl3+))) (license gpl3+)))
(define-with-source pkg-with-inputs pkg-with-inputs-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)
(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" (test-equal "simple package"
(package->code pkg) pkg-source
'(package (package->code pkg))
(name "test")
(version "1.2.3") (test-equal "package with inputs"
(source (origin pkg-with-inputs-source
(method url-fetch) (package->code pkg-with-inputs))
(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+)))
(test-end "print") (test-end "print")