mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
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:
parent
d998902214
commit
c0a4db6697
2 changed files with 38 additions and 23 deletions
|
@ -94,12 +94,13 @@ (define (package-lists->code lsts)
|
|||
(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))
|
||||
|
|
|
@ -24,9 +24,14 @@ (define-module (test-print)
|
|||
#: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")
|
||||
|
@ -43,22 +48,31 @@ (define pkg
|
|||
(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")
|
||||
(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"
|
||||
(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")
|
||||
|
|
Loading…
Reference in a new issue