Subject: [bug#42474] [PATCH v3 1/2] gnu: Add ispell.

From: Jakub Kądziołka <[email-masked]>
Date: Tue, 28 Jul 2020 13:36:09 +0200

* gnu/packages/aspell.scm (ispell): New variable.

Co-authored-by: Jonathan Brielmaier <[email-masked]>
---

Hi,

DESTDIR is a variable that should always be / on Guix. Its meaning is
that the package should be installed to $DESTDIR/$prefix/bin/foo, but
will be ran at $prefix/bin/foo - useful when you're managing the
creation of a binary tarball manually, but useless and misleading for
Guix.

Also, we already have an implementation of Yacc - I've replaced the
input with Bison.

Moreover, instead of patching the defaults, a configuration file is now
created.

I haven't tried spellchecking anything with ispell or using the German
dictionary, but both packages now build.

Regards,
Jakub Kądziołka

 gnu/packages/aspell.scm | 51 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index 22256f750b..a9c7e0d615 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -9,6 +9,8 @@
 ;;; Copyright © 2019 Jens Mølgaard <[email-masked]>
 ;;; Copyright © 2020 Timotej Lazar <[email-masked]>
 ;;; Copyright © 2020 Marcin Karpezo <[email-masked]>
+;;; Copyright © 2020 Jonathan Brielmaier <[email-masked]>
+;;; Copyright © 2020 Jakub Kądziołka <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -33,7 +35,9 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (ice-9 match))
 
@@ -453,3 +457,50 @@ under permissive licensing terms.  See the 'Copyright' file."))))
 (define-word-list-dictionary hunspell-dict-en-us
   "en_US"
   (synopsis "Hunspell dictionary for United States English"))
+
+(define-public ispell
+  (package
+    (name "ispell")
+    (version "3.4.00")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.cs.hmc.edu/~geoff/tars/ispell-"
+                           version ".tar.gz"))
+       (sha256
+        (base32
+         "1hmfnz55qzfpz7lz0r3m4kkv31smir92ks9s5l1iiwimhr2jxi2x"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:parallel-build? #f
+       #:tests? #f ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; Based on local.h.linux
+             (let* ((grep (assoc-ref inputs "grep"))
+                    (out (assoc-ref outputs "out")))
+               (call-with-output-file "local.h"
+                 (lambda (port)
+                   (format port "#define MINIMENU~%")
+                   (format port "#define USG~%")
+                   (format port "#define HAS_RENAME~%")
+                   (format port "#define CC \"gcc\"~%")
+                   (format port "#define POUNDBANG \"#!~a\"~%" (which "sh"))
+                   (format port "#define EGREPCMD \"~a/bin/grep -Ei\"~%" grep)
+                   (format port "#define BINDIR \"~a/bin\"~%" out)
+                   (format port "#define LIBDIR \"~a/lib/ispell\"~%" out)
+                   (format port "#define MAN1DIR \"~a/share/man/man1\"~%" out)
+                   (format port "#define MAN45DIR \"~a/share/man/man5\"~%" out))))
+             #t)))))
+    (inputs
+     `(("grep" ,grep)
+       ("ncurses" ,ncurses)))
+    (native-inputs
+     `(("bison" ,bison)))
+    (synopsis "Interactive spell-checking tool for Unix")
+    (description "Ispell is an interactive spell-checking tool supporting many
+European languages.")
+    (home-page "https://www.cs.hmc.edu/~geoff/ispell.html")
+    (license bsd-3)))
-- 
2.27.0