From: "Ludovic Courtès" <ludo@gnu.org>
To: 51493@debbugs.gnu.org
Cc: "Ludovic Courtès" <ludo@gnu.org>
Subject: [bug#51493] [PATCH 3/5] import: print: Properly render packages with origins as inputs.
Date: Fri, 29 Oct 2021 23:35:37 +0200 [thread overview]
Message-ID: <20211029213539.30291-3-ludo@gnu.org> (raw)
In-Reply-To: <20211029213539.30291-1-ludo@gnu.org>
* 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.
---
guix/import/print.scm | 14 +++++++++-----
tests/print.scm | 28 ++++++++++++++++++++++++++++
2 files changed, 37 insertions(+), 5 deletions(-)
diff --git a/guix/import/print.scm b/guix/import/print.scm
index 0310739b3a..8acf5d52f6 100644
--- a/guix/import/print.scm
+++ b/guix/import/print.scm
@@ -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))
diff --git a/tests/print.scm b/tests/print.scm
index 3386590d3a..ad19f4573a 100644
--- a/tests/print.scm
+++ b/tests/print.scm
@@ -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")
--
2.33.0
next prev parent reply other threads:[~2021-10-29 21:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-29 21:29 [bug#51493] [PATCH 0/5] Improvements to the pypi, cran, and "print" importers Ludovic Courtès
2021-10-29 21:35 ` [bug#51493] [PATCH 1/5] import: pypi: Allow imports of a specific version Ludovic Courtès
2021-10-29 21:35 ` [bug#51493] [PATCH 2/5] import: cran: " Ludovic Courtès
2021-10-29 21:35 ` Ludovic Courtès [this message]
2021-10-29 21:35 ` [bug#51493] [PATCH 4/5] import: print: Correctly handle URI lists Ludovic Courtès
2021-10-29 21:35 ` [bug#51493] [PATCH 5/5] import: print: Handle patches that are origins Ludovic Courtès
2021-11-12 10:18 ` [bug#51493] [PATCH 1/5] import: pypi: Allow imports of a specific version zimoun
2021-11-12 10:49 ` Tobias Geerinckx-Rice via Guix-patches via
2021-11-12 11:10 ` zimoun
2021-11-10 23:26 ` bug#51493: [PATCH 0/5] Improvements to the pypi, cran, and "print" importers Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211029213539.30291-3-ludo@gnu.org \
--to=ludo@gnu.org \
--cc=51493@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).