gnu: Add gspell.
authorLudovic Courtès <ludo@gnu.org>
Wed, 17 May 2017 14:16:15 +0000 (16:16 +0200)
committerLudovic Courtès <ludo@gnu.org>
Wed, 17 May 2017 14:20:06 +0000 (16:20 +0200)
* gnu/packages/patches/gspell-dash-test.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gnome.scm (gspell): New variable.

Co-authored-by: humanitiesNerd <catonano@gmail.com>
gnu/local.mk
gnu/packages/gnome.scm
gnu/packages/patches/gspell-dash-test.patch [new file with mode: 0644]

index f02d18e..1be412d 100644 (file)
@@ -646,6 +646,7 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/graphite2-non-linear-classes-even-number.patch \
   %D%/packages/patches/grep-timing-sensitive-test.patch                \
   %D%/packages/patches/gsl-test-i686.patch                     \
+  %D%/packages/patches/gspell-dash-test.patch                  \
   %D%/packages/patches/guile-1.8-cpp-4.5.patch                 \
   %D%/packages/patches/guile-default-utf8.patch                        \
   %D%/packages/patches/guile-linux-syscalls.patch              \
index cec8bae..47dcc91 100644 (file)
@@ -51,6 +51,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages base)
@@ -6136,3 +6137,56 @@ accessibility infrastructure.")
 via speech and refreshable braille.  Orca works with applications and toolkits
 that support the Assistive Technology Service Provider Interface (AT-SPI).")
     (license license:lgpl2.1+)))
+
+(define-public gspell
+  (package
+    (name "gspell")
+    (version "1.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1n4kd5i11l79h8bpvx3cz79ww0b4z89y99h4czvyg80qlarn585w"))
+              (patches (search-patches "gspell-dash-test.patch"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+
+             ;; For the missing /etc/machine-id.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+
+             ;; Allow Enchant and its Aspell backend to find the en_US
+             ;; dictionary.
+             (setenv "ASPELL_DICT_DIR"
+                     (string-append (assoc-ref inputs "aspell-dict-en")
+                                    "/lib/aspell"))
+             #t)))))
+    (inputs
+     `(("enchant" ,enchant)
+       ("iso-codes" ,iso-codes)
+       ("gtk+" ,gtk+)
+       ("glib" ,glib)))
+    (native-inputs
+     `(("glib" ,glib "bin")
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)
+
+       ;; For tests.
+       ("xorg-server" ,xorg-server)
+       ("aspell-dict-en" ,aspell-dict-en)))
+    (home-page "https://wiki.gnome.org/Projects/gspell")
+    (synopsis "GNOME's alternative spell checker")
+    (description
+     "gspell provides a flexible API to add spell-checking to a GTK+
+application.  It provides a GObject API, spell-checking to text entries and
+text views, and buttons to choose the language.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/patches/gspell-dash-test.patch b/gnu/packages/patches/gspell-dash-test.patch
new file mode 100644 (file)
index 0000000..e737921
--- /dev/null
@@ -0,0 +1,16 @@
+Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider
+this a valid spelling.  Skip it.
+
+--- gspell-1.3.2/testsuite/test-checker.c      2017-05-17 16:02:40.832415940 +0200
++++ gspell-1.3.2/testsuite/test-checker.c      2017-05-17 16:02:50.768351895 +0200
+@@ -101,9 +101,6 @@ test_dashes (void)
+       checker = gspell_checker_new (lang);
+-      correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error);
+-      g_assert_no_error (error);
+-      g_assert (correctly_spelled);
+       correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error);
+       g_assert_no_error (error);
+