[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#51493] [PATCH 5/5] import: print: Handle patches that are origins.
From: |
Ludovic Courtès |
Subject: |
[bug#51493] [PATCH 5/5] import: print: Handle patches that are origins. |
Date: |
Fri, 29 Oct 2021 23:35:39 +0200 |
* guix/import/print.scm (package->code)[source->code]: Handle patches
that are origins.
* tests/print.scm (pkg-with-origin-input): Add 'patches' field.
(pkg-with-origin-patch, pkg-with-origin-patch-source): New variables.
("package with origin patch"): New test.
---
guix/import/print.scm | 13 +++++++++++--
tests/print.scm | 33 ++++++++++++++++++++++++++++++++-
2 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/guix/import/print.scm b/guix/import/print.scm
index 4e65d18bc3..e04a6647b4 100644
--- a/guix/import/print.scm
+++ b/guix/import/print.scm
@@ -112,8 +112,17 @@ (define (source->code source version)
;; FIXME: in order to be able to throw away the directory prefix,
;; we just assume that the patch files can be found with
;; "search-patches".
- ,@(if (null? patches) '()
- `((patches (search-patches ,@(map basename patches))))))))
+ ,@(cond ((null? patches)
+ '())
+ ((every string? patches)
+ `((patches (search-patches ,@(map basename patches)))))
+ (else
+ `((patches (list ,@(map (match-lambda
+ ((? string? file)
+ `(search-patch ,file))
+ ((? origin? origin)
+ (source->code origin #f)))
+ patches)))))))))
(define (package-lists->code lsts)
(list 'quasiquote
diff --git a/tests/print.scm b/tests/print.scm
index 7f4c8ccdd1..ff0db469ab 100644
--- a/tests/print.scm
+++ b/tests/print.scm
@@ -22,6 +22,7 @@ (define-module (test-print)
#:use-module (guix download)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module ((gnu packages) #:select (search-patches))
#:use-module (srfi srfi-64))
(define-syntax-rule (define-with-source object source expr)
@@ -79,7 +80,9 @@ (define-with-source pkg-with-origin-input
pkg-with-origin-input-source
version ".tar.gz")))
(sha256
(base32
- "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
+ "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))
+ (patches (search-patches "guile-linux-syscalls.patch"
+ "guile-relocatable.patch"))))
(build-system (@ (guix build-system gnu) gnu-build-system))
(inputs
`(("o" ,(origin
@@ -93,6 +96,30 @@ (define-with-source pkg-with-origin-input
pkg-with-origin-input-source
(description "This is a dummy package.")
(license license:gpl3+)))
+(define-with-source pkg-with-origin-patch pkg-with-origin-patch-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"))
+ (patches
+ (list (origin
+ (method url-fetch)
+ (uri "http://example.org/x.patch")
+ (sha256
+ (base32
+
"0000000000000000000000000000000000000000000000000000")))))))
+ (build-system (@ (guix build-system gnu) gnu-build-system))
+ (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))
@@ -105,4 +132,8 @@ (define-with-source pkg-with-origin-input
pkg-with-origin-input-source
`(define-public test ,pkg-with-origin-input-source)
(package->code pkg-with-origin-input))
+(test-equal "package with origin patch"
+ `(define-public test ,pkg-with-origin-patch-source)
+ (package->code pkg-with-origin-patch))
+
(test-end "print")
--
2.33.0