GNU bug report logs -
#62036
[PATCH] guix: packages: Consider 'patches' by 'package-direct-sources'.
Previous Next
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* guix/packages.scm (package-direct-sources): Return 'origin' from 'patches'.
* tests/packages.scm: Test it.
---
guix/packages.scm | 10 ++++++++--
tests/packages.scm | 17 ++++++++++++++++-
2 files changed, 24 insertions(+), 3 deletions(-)
Hi,
This patch improves some coverage when listing all the origins (fixed outputs)
of some packages. The procedure 'packages-direct-sources' already lists the
'origin' as inputs but is missing the 'origin' as 'patches'. For an instance
of such, see the package 'ntp'.
Note that it is not recursive. If an 'origin' is listed in 'patches' or
'inputs' and that origin also contains 'patches' which is another 'origin'
then it will be missed. For now, it is not covered because it somehow adds
complexity without an instance (yet) of such case.
Cheers,
simon
diff --git a/guix/packages.scm b/guix/packages.scm
index 041a872f9d..0f88564ab4 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2021 Chris Marusich <cmmarusich <at> gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos <at> telenet.be>
;;; Copyright © 2022 jgart <jgart <at> dismail.de>
+;;; Copyright © 2023 Simon Tournier <zimon.toutoune <at> gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1239,8 +1240,13 @@ (define-syntax modify-inputs
(define (package-direct-sources package)
"Return all source origins associated with PACKAGE; including origins in
-PACKAGE's inputs."
- `(,@(or (and=> (package-source package) list) '())
+PACKAGE's inputs and patches."
+ (define (expand source)
+ (append
+ (list source)
+ (filter origin? (origin-patches source))))
+
+ `(,@(or (and=> (package-source package) expand) '())
,@(filter-map (match-lambda
((_ (? origin? orig) _ ...)
orig)
diff --git a/tests/packages.scm b/tests/packages.scm
index f58c47817b..27fb918f90 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke <at> gnu.org>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
;;; Copyright © 2021 Maxime Devos <maximedevos <at> telenet.be>
+;;; Copyright © 2023 Simon Tournier <zimon.toutoune <at> gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -418,12 +419,15 @@ (define read-at
(let* ((o (dummy-origin))
(u (dummy-origin))
(i (dummy-origin))
+ (j (dummy-origin (patches (list o))))
(a (dummy-package "a"))
(b (dummy-package "b" (inputs (list a i))))
(c (package (inherit b) (source o)))
(d (dummy-package "d"
(build-system trivial-build-system)
- (source u) (inputs (list c)))))
+ (source u) (inputs (list c))))
+ (e (dummy-package "e" (source j)))
+ (f (package (inherit e) (inputs (list u)))))
(test-assert "package-direct-sources, no source"
(null? (package-direct-sources a)))
(test-equal "package-direct-sources, #f source"
@@ -437,6 +441,17 @@ (define read-at
(and (= (length (pk 's-sources s)) 2)
(member o s)
(member i s))))
+ (test-assert "package-direct-sources, with patches"
+ (let ((s (package-direct-sources e)))
+ (and (= (length (pk 's-sources s)) 2)
+ (member o s)
+ (member j s))))
+ (test-assert "package-direct-sources, with patches and inputs"
+ (let ((s (package-direct-sources f)))
+ (and (= (length (pk 's-sources s)) 3)
+ (member o s)
+ (member j s)
+ (member u s))))
(test-assert "package-transitive-sources"
(let ((s (package-transitive-sources d)))
(and (= (length (pk 'd-sources s)) 3)
base-commit: 723fc5df3e964fcecb09c7c6fd48f00f97e2e806
--
2.38.1
This bug report was last modified 2 years and 69 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.