mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
transformations: 'with-patch' works on non-origin sources.
Fixes <https://issues.guix.gnu.org/49697>. Reported by Philippe Swartvagher <philippe.swartvagher@inria.fr>. * guix/transformations.scm (patched-source): New procedure. (transform-package-patches)[package-with-extra-patches]: Use it when (package-source p) is not an origin. * tests/transformations.scm ("options->transformation, with-commit + with-patch"): New test.
This commit is contained in:
parent
168d107abf
commit
373e7ac4f9
2 changed files with 65 additions and 10 deletions
|
@ -29,7 +29,10 @@
|
|||
#:use-module (guix build-system)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix transformations)
|
||||
#:use-module ((guix gexp) #:select (local-file? local-file-file))
|
||||
#:use-module ((guix gexp)
|
||||
#:select (local-file? local-file-file
|
||||
computed-file? computed-file-gexp
|
||||
gexp-input-thing))
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix git)
|
||||
|
@ -400,6 +403,31 @@
|
|||
(map local-file-file
|
||||
(origin-patches (package-source dep)))))))))
|
||||
|
||||
(test-equal "options->transformation, with-commit + with-patch"
|
||||
'(#t #t)
|
||||
(let* ((patch (search-patch "glibc-locales.patch"))
|
||||
(commit "f8934ec94df5868ee8baf1fb0f8ed0f24e7e91eb")
|
||||
(t (options->transformation
|
||||
;; Note: options are applied in reverse order, so
|
||||
;; 'with-patch' comes on top.
|
||||
`((with-patch . ,(string-append "guile-gcrypt=" patch))
|
||||
(with-commit
|
||||
. ,(string-append "guile-gcrypt=" commit))))))
|
||||
(let ((new (t (@ (gnu packages gnupg) guile-gcrypt))))
|
||||
(match (package-source new)
|
||||
((? computed-file? source)
|
||||
(let* ((gexp (computed-file-gexp source))
|
||||
(inputs (map gexp-input-thing
|
||||
((@@ (guix gexp) gexp-inputs) gexp))))
|
||||
(list (any (lambda (input)
|
||||
(and (git-checkout? input)
|
||||
(string=? commit (git-checkout-commit input))))
|
||||
inputs)
|
||||
(any (lambda (input)
|
||||
(and (local-file? input)
|
||||
(string=? (local-file-file input) patch)))
|
||||
inputs))))))))
|
||||
|
||||
(test-equal "options->transformation, with-latest"
|
||||
"42.0"
|
||||
(mock ((guix upstream) %updaters
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue