Subject: [PATCH v6] gnu: Add wiggle.

From: jgart <[email-masked]>
Date: Fri, 9 Sep 2022 20:17:29 -0500

* gnu/packages/patchutils.scm (wiggle): New variable.
---
 gnu/packages/patchutils.scm | 44 +++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index fdbcb8e1e1..83fe6ac762 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2019 Christopher Baines <[email-masked]>
 ;;; Copyright © 2021 Xinglu Chen <[email-masked]>
+;;; Copyright © 2022 jgart <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +22,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages patchutils)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix licenses)
@@ -40,6 +42,7 @@ (define-module (gnu packages patchutils)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages less)
   #:use-module (gnu packages mail)
@@ -441,6 +444,47 @@ (define pythonpath
     (home-page "http://jk.ozlabs.org/projects/patchwork/")
     (license gpl2+)))
 
+(define-public wiggle
+  (package
+    (name "wiggle")
+    (version "1.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/neilbrown/wiggle")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "18ilzr9sbal1j8p1d94ilm1j5blac5cngvcvjpdmgmpw6diy2ldf"))))
+    (build-system gnu-build-system)
+    (native-inputs (list groff))
+    (inputs (list ncurses))
+    (arguments
+     (list #:make-flags #~(list "-I. -O3"
+                                (string-append "CC="
+                                               #$(cc-for-target))
+                                "INSTALL=\"install\""
+                                "STRIP=-s"
+                                (string-append "BINDIR="
+                                               #$output "/bin")
+                                (string-append "MANDIR="
+                                               #$output "/share/man")
+                                (string-append "PREFIX="
+                                               #$output))
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure)
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "./dotest")))))))
+    (home-page "http://neil.brown.name/wiggle/")
+    (synopsis "Tool for applying patches with conflicts")
+    (description
+     "@code{wiggle} attempts to apply patches to a target file even if the
+patches do not match perfectly.")
+    (license gpl2+)))
+
 (define-public pwclient
   (package
     (name "pwclient")
-- 
2.37.3