;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Marek Benc ;;; Copyright © 2018 Marius Bakke ;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; Copyright © 2020 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages enchant) #:use-module (gnu packages) #:use-module (gnu packages aspell) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages glib) #: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) #:use-module (gnu packages version-control) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix download) #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix licenses) #:use-module (srfi srfi-1)) (define-public nuspell (package (name "nuspell") (version "3.1.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/nuspell/nuspell.git") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "18zz3rdzlb3knzsd98vw8cfyb3iq0ilipnlz7rz10zgb5ail73s2")))) (build-system cmake-build-system) (native-inputs `(("catch" ,catch-framework2) ("git" ,git-minimal) ("perl" ,perl) ;;FIX-ME: Building with ronn fails. ;;("ronn" ,ronn) ("pkg-config" ,pkg-config))) (inputs `(("boost" ,boost))) (propagated-inputs `(("icu4c" ,icu4c))) (synopsis "Fast and safe spellchecking C++ library") (description "Nuspell is a fast and safe spelling checker software program. It is designed for languages with rich morphology and complex word compounding. Nuspell is written in modern C++ and it supports Hunspell dictionaries.") (home-page "https://nuspell.github.io/") (license lgpl3+))) (define-public enchant (package (name "enchant") (version "2.2.8") (source (origin (method url-fetch) (uri (string-append "https://github.com/AbiWord/enchant/releases" "/download/v" version "/enchant-" version ".tar.gz")) (sha256 (base32 "0m9m564qqwbssvvf7y3dlz1yxzqsjiqy1yd2zsmb3l0d7y2y5df7")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags (list "--disable-static" ;; Tests require a relocatable build. "--enable-relocatable"))) (native-inputs `(("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config) ("unittest-cpp" ,unittest-cpp))) (inputs `(("aspell" ,aspell) ("hunspell" ,hunspell))) (propagated-inputs `(("glib" ,glib))) (synopsis "Generic spell checking library and program") (description "Enchant is a library and command-line program, that wraps a number of different spelling libraries and programs with a consistent interface. By using Enchant, you can use a wide range of spelling libraries, including some specialised for particular languages, without needing to program to each library's interface.") (home-page "https://abiword.github.io/enchant/") (license lgpl2.1+))) ;; Some packages are not ready for the 2.x API yet, so we keep this version ;; around. The library and executables of Enchant 2 have been designed not to ;; conflict with 1.x, so it's OK if both end up in the same profile. (define-public enchant-1.6 (package (name "enchant") (version "1.6.0") (arguments '(#:configure-flags '("--disable-static"))) (source (origin (method url-fetch) (uri (string-append "http://www.abisource.com/downloads/enchant/" version "/enchant-" version ".tar.gz")) (sha256 (base32 "0zq9yw1xzk8k9s6x83n1f9srzcwdavzazn3haln4nhp9wxxrxb1g")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config) ("unittest-cpp" ,unittest-cpp))) (inputs `(("aspell" ,aspell) ("hunspell" ,hunspell) ("nuspell" ,nuspell))) (propagated-inputs `(("glib" ,glib))) (synopsis "Generic spell checking library and program") (description "Enchant is a library and command-line program, that wraps a number of different spelling libraries and programs with a consistent interface. By using Enchant, you can use a wide range of spelling libraries, including some specialised for particular languages, without needing to program to each library's interface.") (home-page "https://abiword.github.io/enchant/") (license lgpl2.1+))) (define-public python-pyenchant (package (name "python-pyenchant") (version "2.0.0") (source (origin (method url-fetch) (uri (pypi-uri "pyenchant" version)) (sha256 (base32 "1872ckgdip8nj9rnh167m0gsj5754qfg2hjxzsl1s06f5akwscgw")))) (build-system python-build-system) (arguments `(#:tests? #f; FIXME: Dictionary for language 'en_US' could not be found #:phases (modify-phases %standard-phases (add-before 'build 'setlib (lambda* (#:key inputs #:allow-other-keys) (substitute* "enchant/_enchant.py" (("/opt/local/lib/libenchant.dylib\"") (string-append "/opt/local/lib/libenchant.dylib\"\n" " yield \"" (assoc-ref inputs "enchant") "/lib/libenchant-2.so\"")))))))) (inputs `(("enchant" ,enchant))) (home-page "https://github.com/pyenchant/pyenchant") (synopsis "Spellchecking library for Python") (description "PyEnchant is a spellchecking library for Python, based on the Enchant library. PyEnchant combines all the functionality of the underlying Enchant library with the flexibility of Python. It also provides some higher-level functionality than is available in the C API.") (license lgpl2.1+)))