Package: guix-patches;
Reported by: Morgan Smith <Morgan.J.Smith <at> outlook.com>
Date: Wed, 26 Feb 2025 17:24:02 UTC
Severity: normal
Tags: patch
Message #78 received at 76594 <at> debbugs.gnu.org (full text, mbox):
From: Morgan Smith <Morgan.J.Smith <at> outlook.com> To: 76594 <at> debbugs.gnu.org Cc: Morgan Smith <Morgan.J.Smith <at> outlook.com>, liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com Subject: [PATCH v3 1/4] gnu: quilt: Use gexps. Date: Sun, 13 Apr 2025 13:39:41 -0400
* gnu/packages/patchutils.scm (quilt): Use gexps. Change-Id: I81373365d0729b90b3e31e122eaede2daa7ae5cb --- gnu/packages/patchutils.scm | 111 ++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 54 deletions(-) diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm index 3cd3507b07..b929ed9a5a 100644 --- a/gnu/packages/patchutils.scm +++ b/gnu/packages/patchutils.scm @@ -52,6 +52,7 @@ (define-module (gnu packages patchutils) #:use-module (gnu packages gnome) #:use-module (gnu packages groff) #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages less) #:use-module (gnu packages mail) #:use-module (gnu packages text-editors) @@ -182,61 +183,63 @@ (define-public quilt (list gettext-minimal)) (inputs (list bash-minimal perl less file gzip ed - diffutils diffstat findutils tar)) + diffutils diffstat findutils tar + ;; for wrap-script + guile-3.0)) (arguments - '(#:parallel-tests? #f - #:phases - (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'wrap-program - ;; quilt's configure checks for the absolute path to the utilities it - ;; needs, but uses only the name when invoking them, so we need to - ;; make sure the quilt script can find those utilities when run. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((cmd-path (lambda (cmd) (dirname (which cmd)))) - (out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/quilt") - `("PATH" ":" prefix - ,(map cmd-path - (list "bash" "diff" "diffstat" "ed" "file" "find" "grep" - "gzip" "less" "patch" "perl" "rm" "sed" "tar")))) - (wrap-program (string-append out "/share/quilt/scripts/backup-files") - `("PATH" ":" prefix - ,(map cmd-path - (list "find" "grep" "mkdir"))))))) - (add-after 'compress-documentation 'check - (lambda _ - (substitute* '("test/run" "test/edit.test") - (("/bin/sh") (which "sh")) - (("rm -rf") (string-append (which "rm") " -rf"))) - (substitute* "Makefile" - (("^(PATH|QUILT_DIR).*" &) - (string-append "#" &)) ; Test the installed 'quilt' - (("export QUILT_DIR") "export") - (("\\| sort") (string-append "| " (which "sort"))) - (("\\| sed") (string-append "| " (which "sed"))) - (("(chmod|touch)" &) (which &))) - ;; Tests are scripts interpreted by `test/run` and may specify - ;; the execution of several tools. But PATH will be empty, so - ;; rewrite with the full file name: - (setenv "PATH" (string-append %output "/bin" ":" (getenv "PATH"))) - (substitute* (find-files "test" "\\.test$") - (("([\\$\\|] )([[:graph:]]+)([[:blank:]\n]+)" - & > cmd <) - (if (string=? cmd "zcat") - ;; The `zcat` program is a script, and it will not be able - ;; to invoke its `gzip` with PATH unset. It's a simple - ;; script though, so just translate here: - (string-append > (which "gzip") " -cd " <) - (or (and=> (which cmd) - (lambda (p) (string-append > p <))) - &)))) - (let ((make (which "make"))) - ;; Assert the installed 'quilt' can find utilities it needs. - (unsetenv "PATH") - ;; Used by some tests for access to internal "scripts" - (setenv "QUILT_DIR" (string-append %output "/share/quilt")) - (invoke make "check"))))))) + (list + #:parallel-tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'check) + (add-after 'install 'wrap-script + ;; quilt's configure checks for the absolute path to the utilities it + ;; needs, but uses only the name when invoking them, so we need to + ;; make sure the quilt script can find those utilities when run. + (lambda* (#:key inputs #:allow-other-keys) + (let ((cmd-path (lambda (cmd) (dirname (which cmd))))) + (wrap-script (string-append #$output "/bin/quilt") + `("PATH" ":" prefix + ,(map cmd-path + (list "bash" "diff" "diffstat" "ed" "file" "find" "grep" + "gzip" "less" "patch" "perl" "rm" "sed" "tar")))) + (wrap-script (string-append #$output "/share/quilt/scripts/backup-files") + `("PATH" ":" prefix + ,(map cmd-path + (list "find" "grep" "mkdir"))))))) + (add-after 'compress-documentation 'check + (lambda _ + (substitute* '("test/run" "test/edit.test") + (("/bin/sh") (which "sh")) + (("rm -rf") (string-append (which "rm") " -rf"))) + (substitute* "Makefile" + (("^(PATH|QUILT_DIR).*" &) + (string-append "#" &)) ; Test the installed 'quilt' + (("export QUILT_DIR") "export") + (("\\| sort") (string-append "| " (which "sort"))) + (("\\| sed") (string-append "| " (which "sed"))) + (("(chmod|touch)" &) (which &))) + ;; Tests are scripts interpreted by `test/run` and may specify + ;; the execution of several tools. But PATH will be empty, so + ;; rewrite with the full file name: + (setenv "PATH" (string-append #$output "/bin" ":" (getenv "PATH"))) + (substitute* (find-files "test" "\\.test$") + (("([\\$\\|] )([[:graph:]]+)([[:blank:]\n]+)" + & > cmd <) + (if (string=? cmd "zcat") + ;; The `zcat` program is a script, and it will not be able + ;; to invoke its `gzip` with PATH unset. It's a simple + ;; script though, so just translate here: + (string-append > (which "gzip") " -cd " <) + (or (and=> (which cmd) + (lambda (p) (string-append > p <))) + &)))) + (let ((make (which "make"))) + ;; Assert the installed 'quilt' can find utilities it needs. + (unsetenv "PATH") + ;; Used by some tests for access to internal "scripts" + (setenv "QUILT_DIR" (string-append #$output "/share/quilt")) + (invoke make "check"))))))) (home-page "https://savannah.nongnu.org/projects/quilt/") (synopsis "Script for managing patches to software") (description base-commit: 03edfea126a88110b520469e96eae73ce86d4b7d -- 2.49.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.