mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 07:26:13 -05:00
import: print: Properly render packages with origins as inputs.
* guix/import/print.scm (package->code)[source->code]: Check whether VERSION is true before calling 'factorize-uri'. [package-lists->code]: Add clause for inputs that are origins. * tests/print.scm (pkg-with-origin-input, pkg-with-origin-input-source): New variables. ("package with origin input"): New test.
This commit is contained in:
parent
450e1dd52e
commit
04d929570a
2 changed files with 37 additions and 5 deletions
|
@ -89,9 +89,11 @@ (define (source->code source version)
|
|||
(guix hg-download)
|
||||
(guix svn-download)))
|
||||
(procedure-name method)))
|
||||
(uri (string-append ,@(match (factorize-uri uri version)
|
||||
((? string? uri) (list uri))
|
||||
(factorized factorized))))
|
||||
(uri ,(if version
|
||||
`(string-append ,@(match (factorize-uri uri version)
|
||||
((? string? uri) (list uri))
|
||||
(factorized factorized)))
|
||||
uri))
|
||||
,(if (equal? (content-hash-algorithm hash) 'sha256)
|
||||
`(sha256 (base32 ,(bytevector->nix-base32-string
|
||||
(content-hash-value hash))))
|
||||
|
@ -109,7 +111,7 @@ (define (package-lists->code lsts)
|
|||
(map (match-lambda
|
||||
((? symbol? s)
|
||||
(list (symbol->string s) (list 'unquote s)))
|
||||
((label pkg . out)
|
||||
((label (? package? pkg) . out)
|
||||
(let ((mod (package-module-name pkg)))
|
||||
(cons* label
|
||||
;; FIXME: using '@ certainly isn't pretty, but it
|
||||
|
@ -117,7 +119,9 @@ (define (package-lists->code lsts)
|
|||
;; modules.
|
||||
(list 'unquote
|
||||
(list '@ mod (variable-name pkg mod)))
|
||||
out))))
|
||||
out)))
|
||||
((label (? origin? origin))
|
||||
(list label (list 'unquote (source->code origin #f)))))
|
||||
lsts)))
|
||||
|
||||
(let ((name (package-name package))
|
||||
|
|
|
@ -67,6 +67,30 @@ (define-with-source pkg-with-inputs pkg-with-inputs-source
|
|||
(description "This is a dummy package.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-with-source pkg-with-origin-input pkg-with-origin-input-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 (@ (guix build-system gnu) gnu-build-system))
|
||||
(inputs
|
||||
`(("o" ,(origin
|
||||
(method url-fetch)
|
||||
(uri "http://example.org/somefile.txt")
|
||||
(sha256
|
||||
(base32
|
||||
"0000000000000000000000000000000000000000000000000000"))))))
|
||||
(home-page "http://gnu.org")
|
||||
(synopsis "Dummy")
|
||||
(description "This is a dummy package.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(test-equal "simple package"
|
||||
`(define-public test ,pkg-source)
|
||||
(package->code pkg))
|
||||
|
@ -75,4 +99,8 @@ (define-with-source pkg-with-inputs pkg-with-inputs-source
|
|||
`(define-public test ,pkg-with-inputs-source)
|
||||
(package->code pkg-with-inputs))
|
||||
|
||||
(test-equal "package with origin input"
|
||||
`(define-public test ,pkg-with-origin-input-source)
|
||||
(package->code pkg-with-origin-input))
|
||||
|
||||
(test-end "print")
|
||||
|
|
Loading…
Reference in a new issue