From 201793fd07f602270b2375491a2f5d1d85d4f2b1 Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Tue, 3 Jan 2023 18:48:39 -0500 Subject: gnu: hunspell: Move hunspell and dictionaries to hunspell module. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Consolidate hunspell and its dictionaries into the (gnu packages hunspell) module instead of having them scattered about. * gnu/packages/aspell.scm (aspell-word-list, define-word-list-dictionary, hunspell-dict-{en, en-au, en-gb, en-gb-ize, en-us}): Remove variables. * gnu/packages/libreoffice.scm (hunspell, dicollecte-french-dictionary, define-french-dictionary, hunspell-dict-fr-{classique, moderne, réforme, toutes-variantes}, hunspell-dict-pl, hunspell-dict-de, hunspell-dict-hu): Remove variables. * gnu/packages/hunspell.scm (hunspell, dicollecte-french-dictionary, define-french-dictionary, hunspell-dict-fr-{classique, moderne, réforme, toutes-variantes}, hunspell-dict-pl, hunspell-dict-de, hunspell-dict-hu, aspell-word-list, define-word-list-dictionary, hunspell-dict-{en, en-au, en-gb, en-gb-ize, en-us}): Add variables. (hunspell-dictionary): Explicitly declare upstream libreoffice version to prevent circular dependency. * gnu/packages/ebook.scm, gnu/packages/enchant.scm, gnu/packages/freedesktop.scm, gnu/packages/gnuzilla.scm, gnu/packages/kde-frameworks.scm, gnu/packages/messaging.scm, gnu/packages/scribus.scm, gnu/packages/task-management.scm, gnu/packages/telegram.scm, gnu/packages/tex.scm, gnu/packages/text-editors.scm, gnu/packages/video.scm: Adjust module imports. --- gnu/packages/aspell.scm | 118 ------------- gnu/packages/ebook.scm | 3 +- gnu/packages/enchant.scm | 2 +- gnu/packages/freedesktop.scm | 2 +- gnu/packages/gnuzilla.scm | 2 +- gnu/packages/hunspell.scm | 362 ++++++++++++++++++++++++++++++++++++++- gnu/packages/kde-frameworks.scm | 2 +- gnu/packages/libreoffice.scm | 233 +------------------------ gnu/packages/messaging.scm | 2 +- gnu/packages/scribus.scm | 1 + gnu/packages/task-management.scm | 2 +- gnu/packages/telegram.scm | 2 +- gnu/packages/tex.scm | 1 + gnu/packages/text-editors.scm | 2 +- gnu/packages/video.scm | 2 +- 15 files changed, 374 insertions(+), 362 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 76deb7cdce..8978b4e087 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -395,124 +395,6 @@ (define-public aspell-dict-ro (base32 "0gb8j9iy1acdl11jq76idgc2lbc1rq3w04favn8cyh55d1v8phsk"))) - -;;; -;;; Hunspell packages made from the Aspell word lists. -;;; - -(define* (aspell-word-list language synopsis - #:optional - (nick (string-map (lambda (chr) - (if (char=? #\_ chr) - #\- - chr)) - (string-downcase language)))) - (package - (name (string-append "hunspell-dict-" nick)) - (version "2018.04.16") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/wordlist/SCOWL/" - version "/scowl-" version ".tar.gz")) - (sha256 - (base32 - "11lkrnhwrf5mvrrq45k4mads3n9aswgac8dc25ba61c75alxb5rs")))) - (native-inputs - (list tar gzip perl aspell)) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-reproducible - (lambda _ - (substitute* "speller/README_en.txt.sh" - (("\\bdate\\b") "")))) - (delete 'configure) - (delete 'check) - (replace 'build - (lambda _ - (substitute* "speller/make-hunspell-dict" - (("zip -9 .*$") - "return\n")) - (mkdir "speller/hunspell") - - ;; XXX: This actually builds all the dictionary variants. - (invoke "make" "-C" "speller" "hunspell"))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref %outputs "out")) - (hunspell (string-append out "/share/hunspell")) - (myspell (string-append out "/share/myspell")) - (doc (string-append out "/share/doc/" - ,name)) - (dot-dic ,(string-append "speller/" language ".dic"))) - (mkdir-p myspell) - - ;; Usually there's only a 'LANGUAGE.dic' file, but for the "en" - ;; dictionary, there no 'en.dic'. Instead, there's a set of - ;; 'en*.dic' files, hence the 'find-files' call below. - (if (file-exists? dot-dic) - (install-file dot-dic hunspell) - (for-each (lambda (dic) - (install-file dic hunspell)) - (find-files "speller" - ,(string-append language ".*\\.dic$")))) - - ;; Install affix files corresponding to installed dictionaries - (for-each (lambda (dic) - (install-file (string-append - "speller/" (basename dic ".dic") ".aff") - hunspell)) - (find-files hunspell ".*\\.dic$")) - (symlink hunspell (string-append myspell "/dicts")) - (for-each (lambda (file) - (install-file file doc)) - (find-files "." - "^(Copyright|.*\\.(txt|org|md))$")) - #t)))))) - (synopsis synopsis) - (description - "This package provides a dictionary for the Hunspell spell-checking -library.") - (home-page "http://wordlist.aspell.net/") - (license (non-copyleft "file://Copyright" - "Word lists come from several sources, all -under permissive licensing terms. See the 'Copyright' file.")))) - -(define-syntax define-word-list-dictionary - (syntax-rules (synopsis) - ((_ name language (synopsis text)) - (define-public name - (aspell-word-list language text))) - ((_ name language nick (synopsis text)) - (define-public name - (aspell-word-list language text nick))))) - -(define-word-list-dictionary hunspell-dict-en - "en" - (synopsis "Hunspell dictionary for English")) - -(define-word-list-dictionary hunspell-dict-en-au - "en_AU" - (synopsis "Hunspell dictionary for Australian English")) - -(define-word-list-dictionary hunspell-dict-en-ca - "en_CA" - (synopsis "Hunspell dictionary for Canadian English")) - -(define-word-list-dictionary hunspell-dict-en-gb - "en_GB-ise" "en-gb" - (synopsis "Hunspell dictionary for British English, with -ise endings")) - -(define-word-list-dictionary hunspell-dict-en-gb-ize - "en_GB-ize" - (synopsis "Hunspell dictionary for British English, with -ize endings")) - -(define-word-list-dictionary hunspell-dict-en-us - "en_US" - (synopsis "Hunspell dictionary for United States English")) - (define-public ispell (package (name "ispell") diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 8dff0f2ec8..b21fcfdc9a 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -56,12 +56,13 @@ (define-module (gnu packages ebook) #:use-module (gnu packages gnome) #:use-module (gnu packages glib) #:use-module (gnu packages gstreamer) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages javascript) #:use-module (gnu packages language) - #:use-module (gnu packages libusb) #:use-module (gnu packages libreoffice) + #:use-module (gnu packages libusb) #:use-module (gnu packages music) #:use-module (gnu packages pantheon) #:use-module (gnu packages pdf) diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm index 1f82b2447e..015af0d096 100644 --- a/gnu/packages/enchant.scm +++ b/gnu/packages/enchant.scm @@ -25,8 +25,8 @@ (define-module (gnu packages enchant) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages glib) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) - #:use-module (gnu packages libreoffice) #:use-module (gnu packages man) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 304d04a711..515d9b9cea 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -94,12 +94,12 @@ (define-module (gnu packages freedesktop) #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) #:use-module (gnu packages ibus) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages language) #:use-module (gnu packages libffi) - #:use-module (gnu packages libreoffice) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index b507ec0406..01b6245f8b 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -70,8 +70,8 @@ (define-module (gnu packages gnuzilla) #:use-module (gnu packages compression) #:use-module (gnu packages fontutils) #:use-module (gnu packages fonts) + #:use-module (gnu packages hunspell) #:use-module (gnu packages libevent) - #:use-module (gnu packages libreoffice) ;for hunspell #:use-module (gnu packages image) #:use-module (gnu packages libffi) #:use-module (gnu packages pulseaudio) diff --git a/gnu/packages/hunspell.scm b/gnu/packages/hunspell.scm index 48df196e17..8bc8c38176 100644 --- a/gnu/packages/hunspell.scm +++ b/gnu/packages/hunspell.scm @@ -17,13 +17,253 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages hunspell) + #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (ice-9 match) - #:use-module (gnu packages libreoffice)) + #:use-module (gnu packages aspell) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages m4) + #:use-module (gnu packages perl) + #:use-module (gnu packages textutils)) + +(define-public hunspell + (package + (name "hunspell") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hunspell/hunspell") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qxlkd012r45ppd21kldbq9k5ac5nmxz290z6m2kch9l56v768k1")))) + (build-system gnu-build-system) + (native-inputs + (list autoconf automake libtool)) + (inputs + (list perl)) + (native-search-paths (list (search-path-specification + (variable "DICPATH") + (files '("share/hunspell"))))) + (home-page "https://hunspell.github.io/") + (synopsis "Spell checker") + (description "Hunspell is a spell checker and morphological analyzer +library and program designed for languages with rich morphology and complex +word compounding or character encoding.") + ;; Triple license, including "mpl1.1 or later". + (license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+)))) + +(define (dicollecte-french-dictionary variant synopsis) + ;; Return a French dictionary package from dicollecte.org, for the given + ;; VARIANT. + (package + (name (match variant + ("classique" "hunspell-dict-fr") + (_ (string-append "hunspell-dict-fr-" variant)))) + (version "6.2") + (source (origin + (uri (string-append + "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v" + version ".zip")) + (method url-fetch) + (sha256 + (base32 + "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9")))) + (build-system trivial-build-system) + (native-inputs (list unzip)) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (srfi srfi-26)) + + (let* ((out (assoc-ref %outputs "out")) + (hunspell (string-append out "/share/hunspell")) + (myspell (string-append out "/share/myspell")) + (doc (string-append out "/share/doc/" + ,name)) + (unzip (assoc-ref %build-inputs "unzip"))) + (invoke (string-append unzip "/bin/unzip") + (assoc-ref %build-inputs "source")) + (for-each (cut install-file <> hunspell) + (find-files "." + ,(string-append variant + "\\.(dic|aff)$"))) + (mkdir-p myspell) + (symlink hunspell (string-append myspell "/dicts")) + (for-each (cut install-file <> doc) + (find-files "." "\\.(txt|org|md)$")) + #t)))) + (synopsis synopsis) + (description + "This package provides a dictionary for the Hunspell spell-checking +library.") + (home-page "https://www.dicollecte.org/home.php?prj=fr") + (license license:mpl2.0))) + +(define-syntax define-french-dictionary + (syntax-rules (synopsis) + ((_ name variant (synopsis text)) + (define-public name + (dicollecte-french-dictionary variant text))))) + +(define-french-dictionary hunspell-dict-fr-classique + "classique" + ;; TRANSLATORS: In French, this is "Français classique". + (synopsis "Hunspell dictionary for ``classic'' French (recommended)")) + +(define-french-dictionary hunspell-dict-fr-moderne + "moderne" + ;; TRANSLATORS: In French, this is "Français moderne". + (synopsis "Hunspell dictionary for ``modern'' French")) + +(define-french-dictionary hunspell-dict-fr-réforme-1990 + "reforme1990" + (synopsis "Hunspell dictionary for the post @dfn{1990 réforme} French")) + +(define-french-dictionary hunspell-dict-fr-toutes-variantes + "toutesvariantes" + (synopsis "Hunspell dictionary for all variants of French")) + +(define-public hunspell-dict-pl + (package + (name "hunspell-dict-pl") + (version "20200327") + (source + (origin + (method url-fetch) + ;; Since creators of dictionary host only the latest daily release, + ;; we're using version mirrored by Arch Linux, which seems good + ;; enough. They're mirroring hunspell-pl releases since 2011. + (uri (string-append "https://sources.archlinux.org/other/community/" + "hunspell-pl/sjp-myspell-pl-" + version ".zip")) + (sha256 (base32 + "14mzf8glxkp2775dcqisb1zv6r8ncm3bvzl46q352rwyl2dg1c59")))) + + (build-system trivial-build-system) + (native-inputs (list unzip)) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (srfi srfi-26)) + + (let* ((out (assoc-ref %outputs "out")) + (hunspell (string-append out "/share/hunspell")) + (myspell (string-append out "/share/myspell")) + (doc (string-append out "/share/doc/" + ,name)) + (unzip (search-input-file %build-inputs + "/bin/unzip"))) + (invoke unzip "-j" "-o" (assoc-ref %build-inputs "source")) + (invoke unzip "-j" "-o" "pl_PL.zip") + (for-each (cut install-file <> hunspell) + (find-files "." + ,(string-append "pl_PL" + "\\.(dic|aff)$"))) + (mkdir-p myspell) + (symlink hunspell (string-append myspell "/dicts")) + (for-each (cut install-file <> doc) + (find-files "." "\\.(txt|org|md)$")) + #t)))) + (synopsis "Hunspell dictionary for Polish") + (description + "This package provides a dictionary for the Hunspell spell-checking +library.") + (home-page "https://sjp.pl/slownik/ort/") + (license + (list license:gpl2 license:mpl1.1 license:cc-by4.0 license:lgpl2.1 license:asl2.0)))) + +(define-public hunspell-dict-de + (package + (name "hunspell-dict-de") + (version "20161207") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.j3e.de/ispell/igerman98/dict/" + "igerman98-" version ".tar.bz2")) + (sha256 + (base32 "1a3055hp2bc4q4nlg3gmg0147p3a1zlfnc65xiv2v9pyql1nya8p")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags '("hunspell/de_DE.dic") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install ;no install target + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/hunspell/"))) + (install-file "hunspell/de_DE.aff" share) + (install-file "hunspell/de_DE.dic" share) + #t)))) + #:tests? #f)) ; no tests + (native-inputs + (list hunspell ispell perl)) + (synopsis "Hunspell dictionary for German (de_DE)") + (description "This package provides a dictionary for the Hunspell +spell-checking library.") + (home-page "https://www.j3e.de/ispell/igerman98/") + (license (list license:gpl2 license:gpl3)))) + +(define-public hunspell-dict-hu + (let ((revision "2") + (major+minor "1.7")) + (package + (name "hunspell-dict-hu") + (version (string-append major+minor "-" revision)) + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/magyarispell/Magyar Ispell/" + major+minor + "/magyarispell-" version ".tar.gz")) + (sha256 + (base32 "0r22rvqrp5bzgr9sqyap82kibi5z9n6xy5b06si28idqijw7c772")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list "myspell" + "--jobs=1" ;the Makefile is not ready for parallelism + (string-append "SH=" + (search-input-file %build-inputs + "/bin/bash")) + (string-append "AWK=" + (search-input-file %build-inputs + "/bin/awk"))) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "config" + (("/usr/bin/awk") + (which "awk"))))) + (replace 'install ;no install target + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/hunspell/"))) + (install-file "hu_HU.aff" share) + (install-file "hu_HU.dic" share))))) + #:tests? #f)) ; no tests + (native-inputs + (list hunspell m4 recode)) + (synopsis "Hunspell dictionary for Hungarian (hu_HU)") + (description "This package provides a dictionary for the Hunspell +spell-checking library.") + (home-page "http://magyarispell.sourceforge.net/") + (license (list license:gpl2 license:gpl3))))) (define* (hunspell-dictionary dict-name full-name #:key synopsis home-page license) (package @@ -35,7 +275,7 @@ (define* (hunspell-dictionary dict-name full-name #:key synopsis home-page licen (#\_ #\-) (chr chr)) (string-downcase dict-name)))) - (version (package-version libreoffice)) + (version "7.4.3.2") (source (origin (method git-fetch) @@ -79,3 +319,121 @@ (define-public hunspell-dict-it-it #:synopsis (synopsis "Hunspell dictionary for Italian") #:home-page "https://www.libreitalia.org/" #:license license:gpl3))) + +;;; +;;; Hunspell packages made from the Aspell word lists. +;;; + +(define* (aspell-word-list language synopsis + #:optional + (nick (string-map (lambda (chr) + (if (char=? #\_ chr) + #\- + chr)) + (string-downcase language)))) + (package + (name (string-append "hunspell-dict-" nick)) + (version "2018.04.16") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/wordlist/SCOWL/" + version "/scowl-" version ".tar.gz")) + (sha256 + (base32 + "11lkrnhwrf5mvrrq45k4mads3n9aswgac8dc25ba61c75alxb5rs")))) + (native-inputs + (list tar gzip perl aspell)) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-reproducible + (lambda _ + (substitute* "speller/README_en.txt.sh" + (("\\bdate\\b") "")))) + (delete 'configure) + (delete 'check) + (replace 'build + (lambda _ + (substitute* "speller/make-hunspell-dict" + (("zip -9 .*$") + "return\n")) + (mkdir "speller/hunspell") + + ;; XXX: This actually builds all the dictionary variants. + (invoke "make" "-C" "speller" "hunspell"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref %outputs "out")) + (hunspell (string-append out "/share/hunspell")) + (myspell (string-append out "/share/myspell")) + (doc (string-append out "/share/doc/" + ,name)) + (dot-dic ,(string-append "speller/" language ".dic"))) + (mkdir-p myspell) + + ;; Usually there's only a 'LANGUAGE.dic' file, but for the "en" + ;; dictionary, there no 'en.dic'. Instead, there's a set of + ;; 'en*.dic' files, hence the 'find-files' call below. + (if (file-exists? dot-dic) + (install-file dot-dic hunspell) + (for-each (lambda (dic) + (install-file dic hunspell)) + (find-files "speller" + ,(string-append language ".*\\.dic$")))) + + ;; Install affix files corresponding to installed dictionaries + (for-each (lambda (dic) + (install-file (string-append + "speller/" (basename dic ".dic") ".aff") + hunspell)) + (find-files hunspell ".*\\.dic$")) + (symlink hunspell (string-append myspell "/dicts")) + (for-each (lambda (file) + (install-file file doc)) + (find-files "." + "^(Copyright|.*\\.(txt|org|md))$")) + #t)))))) + (synopsis synopsis) + (description + "This package provides a dictionary for the Hunspell spell-checking +library.") + (home-page "http://wordlist.aspell.net/") + (license (license:non-copyleft "file://Copyright" + "Word lists come from several sources, all +under permissive licensing terms. See the 'Copyright' file.")))) + +(define-syntax define-word-list-dictionary + (syntax-rules (synopsis) + ((_ name language (synopsis text)) + (define-public name + (aspell-word-list language text))) + ((_ name language nick (synopsis text)) + (define-public name + (aspell-word-list language text nick))))) + +(define-word-list-dictionary hunspell-dict-en + "en" + (synopsis "Hunspell dictionary for English")) + +(define-word-list-dictionary hunspell-dict-en-au + "en_AU" + (synopsis "Hunspell dictionary for Australian English")) + +(define-word-list-dictionary hunspell-dict-en-ca + "en_CA" + (synopsis "Hunspell dictionary for Canadian English")) + +(define-word-list-dictionary hunspell-dict-en-gb + "en_GB-ise" "en-gb" + (synopsis "Hunspell dictionary for British English, with -ise endings")) + +(define-word-list-dictionary hunspell-dict-en-gb-ize + "en_GB-ize" + (synopsis "Hunspell dictionary for British English, with -ize endings")) + +(define-word-list-dictionary hunspell-dict-en-us + "en_US" + (synopsis "Hunspell dictionary for United States English")) + diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index aaa5a82d5f..fb578ee7e1 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -64,13 +64,13 @@ (define-module (gnu packages kde-frameworks) #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) #:use-module (gnu packages image) #:use-module (gnu packages iso-codes) #:use-module (gnu packages kerberos) #:use-module (gnu packages kde) #:use-module (gnu packages kde-plasma) #:use-module (gnu packages libcanberra) - #:use-module (gnu packages libreoffice) #:use-module (gnu packages linux) #:use-module (gnu packages mp3) #:use-module (gnu packages openbox) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 2103aec5a0..b959470d8f 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -70,6 +70,7 @@ (define-module (gnu packages libreoffice) #:use-module (gnu packages graphics) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages java) @@ -792,191 +793,6 @@ (define-public libzmf Zoner Draw version 4 and 5.") (license license:mpl2.0))) -(define-public hunspell - (package - (name "hunspell") - (version "1.7.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hunspell/hunspell") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0qxlkd012r45ppd21kldbq9k5ac5nmxz290z6m2kch9l56v768k1")))) - (build-system gnu-build-system) - (native-inputs - (list autoconf automake libtool)) - (inputs - (list perl)) - (native-search-paths (list (search-path-specification - (variable "DICPATH") - (files '("share/hunspell"))))) - (home-page "https://hunspell.github.io/") - (synopsis "Spell checker") - (description "Hunspell is a spell checker and morphological analyzer -library and program designed for languages with rich morphology and complex -word compounding or character encoding.") - ;; Triple license, including "mpl1.1 or later". - (license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+)))) - -(define (dicollecte-french-dictionary variant synopsis) - ;; Return a French dictionary package from dicollecte.org, for the given - ;; VARIANT. - (package - (name (match variant - ("classique" "hunspell-dict-fr") - (_ (string-append "hunspell-dict-fr-" variant)))) - (version "6.2") - (source (origin - (uri (string-append - "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v" - version ".zip")) - (method url-fetch) - (sha256 - (base32 - "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9")))) - (build-system trivial-build-system) - (native-inputs (list unzip)) - (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils) - (srfi srfi-26)) - - (let* ((out (assoc-ref %outputs "out")) - (hunspell (string-append out "/share/hunspell")) - (myspell (string-append out "/share/myspell")) - (doc (string-append out "/share/doc/" - ,name)) - (unzip (assoc-ref %build-inputs "unzip"))) - (invoke (string-append unzip "/bin/unzip") - (assoc-ref %build-inputs "source")) - (for-each (cut install-file <> hunspell) - (find-files "." - ,(string-append variant - "\\.(dic|aff)$"))) - (mkdir-p myspell) - (symlink hunspell (string-append myspell "/dicts")) - (for-each (cut install-file <> doc) - (find-files "." "\\.(txt|org|md)$")) - #t)))) - (synopsis synopsis) - (description - "This package provides a dictionary for the Hunspell spell-checking -library.") - (home-page "https://www.dicollecte.org/home.php?prj=fr") - (license license:mpl2.0))) - -(define-syntax define-french-dictionary - (syntax-rules (synopsis) - ((_ name variant (synopsis text)) - (define-public name - (dicollecte-french-dictionary variant text))))) - -(define-french-dictionary hunspell-dict-fr-classique - "classique" - ;; TRANSLATORS: In French, this is "Français classique". - (synopsis "Hunspell dictionary for ``classic'' French (recommended)")) - -(define-french-dictionary hunspell-dict-fr-moderne - "moderne" - ;; TRANSLATORS: In French, this is "Français moderne". - (synopsis "Hunspell dictionary for ``modern'' French")) - -(define-french-dictionary hunspell-dict-fr-réforme-1990 - "reforme1990" - (synopsis "Hunspell dictionary for the post @dfn{1990 réforme} French")) - -(define-french-dictionary hunspell-dict-fr-toutes-variantes - "toutesvariantes" - (synopsis "Hunspell dictionary for all variants of French")) - -(define-public hunspell-dict-pl - (package - (name "hunspell-dict-pl") - (version "20200327") - (source - (origin - (method url-fetch) - ;; Since creators of dictionary host only the latest daily release, - ;; we're using version mirrored by Arch Linux, which seems good - ;; enough. They're mirroring hunspell-pl releases since 2011. - (uri (string-append "https://sources.archlinux.org/other/community/" - "hunspell-pl/sjp-myspell-pl-" - version ".zip")) - (sha256 (base32 - "14mzf8glxkp2775dcqisb1zv6r8ncm3bvzl46q352rwyl2dg1c59")))) - - (build-system trivial-build-system) - (native-inputs (list unzip)) - (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils) - (srfi srfi-26)) - - (let* ((out (assoc-ref %outputs "out")) - (hunspell (string-append out "/share/hunspell")) - (myspell (string-append out "/share/myspell")) - (doc (string-append out "/share/doc/" - ,name)) - (unzip (search-input-file %build-inputs - "/bin/unzip"))) - (invoke unzip "-j" "-o" (assoc-ref %build-inputs "source")) - (invoke unzip "-j" "-o" "pl_PL.zip") - (for-each (cut install-file <> hunspell) - (find-files "." - ,(string-append "pl_PL" - "\\.(dic|aff)$"))) - (mkdir-p myspell) - (symlink hunspell (string-append myspell "/dicts")) - (for-each (cut install-file <> doc) - (find-files "." "\\.(txt|org|md)$")) - #t)))) - (synopsis "Hunspell dictionary for Polish") - (description - "This package provides a dictionary for the Hunspell spell-checking -library.") - (home-page "https://sjp.pl/slownik/ort/") - (license - (list license:gpl2 license:mpl1.1 license:cc-by4.0 license:lgpl2.1 license:asl2.0)))) - -(define-public hunspell-dict-de - (package - (name "hunspell-dict-de") - (version "20161207") - (source - (origin - (method url-fetch) - (uri (string-append "https://www.j3e.de/ispell/igerman98/dict/" - "igerman98-" version ".tar.bz2")) - (sha256 - (base32 "1a3055hp2bc4q4nlg3gmg0147p3a1zlfnc65xiv2v9pyql1nya8p")))) - (build-system gnu-build-system) - (arguments - `(#:make-flags '("hunspell/de_DE.dic") - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'install ;no install target - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (share (string-append out "/share/hunspell/"))) - (install-file "hunspell/de_DE.aff" share) - (install-file "hunspell/de_DE.dic" share) - #t)))) - #:tests? #f)) ; no tests - (native-inputs - (list hunspell ispell perl)) - (synopsis "Hunspell dictionary for German (de_DE)") - (description "This package provides a dictionary for the Hunspell -spell-checking library.") - (home-page "https://www.j3e.de/ispell/igerman98/") - (license (list license:gpl2 license:gpl3)))) - (define-public hyphen (package (name "hyphen") @@ -1000,53 +816,6 @@ (define-public hyphen (license (list license:mpl1.1 license:mpl2.0 license:gpl2+ license:lgpl2.1+)))) -(define-public hunspell-dict-hu - (let ((revision "2") - (major+minor "1.7")) - (package - (name "hunspell-dict-hu") - (version (string-append major+minor "-" revision)) - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/magyarispell/Magyar Ispell/" - major+minor - "/magyarispell-" version ".tar.gz")) - (sha256 - (base32 "0r22rvqrp5bzgr9sqyap82kibi5z9n6xy5b06si28idqijw7c772")))) - (build-system gnu-build-system) - (arguments - (list #:make-flags - #~(list "myspell" - "--jobs=1" ;the Makefile is not ready for parallelism - (string-append "SH=" - (search-input-file %build-inputs - "/bin/bash")) - (string-append "AWK=" - (search-input-file %build-inputs - "/bin/awk"))) - #:phases - #~(modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "config" - (("/usr/bin/awk") - (which "awk"))))) - (replace 'install ;no install target - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (share (string-append out "/share/hunspell/"))) - (install-file "hu_HU.aff" share) - (install-file "hu_HU.dic" share))))) - #:tests? #f)) ; no tests - (native-inputs - (list hunspell m4 recode)) - (synopsis "Hunspell dictionary for Hungarian (hu_HU)") - (description "This package provides a dictionary for the Hunspell -spell-checking library.") - (home-page "http://magyarispell.sourceforge.net/") - (license (list license:gpl2 license:gpl3))))) - (define-public mythes (package (name "mythes") diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 7b693a07fa..80a058f12e 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -88,6 +88,7 @@ (define-module (gnu packages messaging) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages kde) @@ -98,7 +99,6 @@ (define-module (gnu packages messaging) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) #:use-module (gnu packages libidn) - #:use-module (gnu packages libreoffice) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages lua) diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index a1d81f5697..de598ac2f4 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -34,6 +34,7 @@ (define-module (gnu packages scribus) #:use-module (gnu packages fontutils) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm index cb5cc6ff0d..c4f7f99049 100644 --- a/gnu/packages/task-management.scm +++ b/gnu/packages/task-management.scm @@ -36,7 +36,7 @@ (define-module (gnu packages task-management) #:use-module (gnu packages gnome) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) - #:use-module (gnu packages libreoffice) ;for hunspell + #:use-module (gnu packages hunspell) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages ncurses) diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 82c9227ba8..14e0602d93 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -38,12 +38,12 @@ (define-module (gnu packages telegram) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages language) #:use-module (gnu packages libevent) - #:use-module (gnu packages libreoffice) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages lxqt) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index a600bcae58..13bc000918 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -69,6 +69,7 @@ (define-module (gnu packages tex) #:use-module (gnu packages ghostscript) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages libreoffice) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 854a424b8a..0094959cbb 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -72,10 +72,10 @@ (define-module (gnu packages text-editors) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages hunspell) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages libbsd) - #:use-module (gnu packages libreoffice) #:use-module (gnu packages llvm) #:use-module (gnu packages lua) #:use-module (gnu packages ncurses) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index c4b0024d06..e934379ff4 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -145,11 +145,11 @@ (define-module (gnu packages video) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages hunspell) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages iso-codes) #:use-module (gnu packages libidn) - #:use-module (gnu packages libreoffice) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) -- cgit v1.2.3