Package: guix-patches;
Reported by: Brian Cully <bjc <at> spork.org>
Date: Tue, 3 Jan 2023 23:50:02 UTC
Severity: normal
Tags: patch
Done: Ricardo Wurmus <rekado <at> elephly.net>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 60532 in the body.
You can then email your comments to 60532 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#60532
; Package guix-patches
.
(Tue, 03 Jan 2023 23:50:02 GMT) Full text and rfc822 format available.Brian Cully <bjc <at> spork.org>
:guix-patches <at> gnu.org
.
(Tue, 03 Jan 2023 23:50:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Brian Cully <bjc <at> spork.org> To: guix-patches <at> gnu.org Cc: Brian Cully <bjc <at> spork.org> Subject: [PATCH] gnu: hunspell: migrate hunspell and dictionaries to hunspell module. Date: Tue, 3 Jan 2023 18:48:39 -0500
Consolidate hunspell and its dictionaries into 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/aspell.scm | 118 ------------ gnu/packages/hunspell.scm | 362 ++++++++++++++++++++++++++++++++++- gnu/packages/libreoffice.scm | 233 +--------------------- 3 files changed, 361 insertions(+), 352 deletions(-) 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/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 <http://www.gnu.org/licenses/>. (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/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") -- 2.38.1
Ricardo Wurmus <rekado <at> elephly.net>
:Brian Cully <bjc <at> spork.org>
:Message #10 received at 60532-done <at> debbugs.gnu.org (full text, mbox):
From: Ricardo Wurmus <rekado <at> elephly.net> To: 60532-done <at> debbugs.gnu.org Subject: [PATCH] gnu: hunspell: migrate hunspell and dictionaries to hunspell module. Date: Wed, 04 Jan 2023 13:30:19 +0100
Thanks for the patch! There were a couple more modules using (gnu packages libreoffice) and I changed them to either add a reference to (gnu packages hunspell) or replace the import entirely. -- Ricardo
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Thu, 02 Feb 2023 12:24:05 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.