guix/gnu/packages/dictionaries.scm
Nicolas Goaziou 8f3448f637
gnu: grammalecte: Fix build.
* gnu/packages/dictionaries.scm (grammalecte)[arguments]: Add phase to fix
  build script.
2018-04-08 16:18:18 +02:00

300 lines
12 KiB
Scheme

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; 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 <http://www.gnu.org/licenses/>.
(define-module (gnu packages dictionaries)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages curl)
#:use-module (gnu packages emacs)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages linux)
#:use-module (gnu packages readline)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages compression)
#:use-module (gnu packages tcl))
(define-public vera
(package
(name "vera")
(version "1.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/vera/vera-" version
".tar.gz"))
(sha256
(base32
"1az0v563jja8xb4896jyr8yv7jd9zacqyfkjd7psb73v7clg1mzz"))))
(build-system trivial-build-system)
(arguments
`(#:builder (begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
(info (string-append out "/share/info"))
(html (string-append out "/share/html"))
(source (assoc-ref %build-inputs "source"))
(tar (assoc-ref %build-inputs "tar"))
(gz (assoc-ref %build-inputs "gzip"))
(texi (assoc-ref %build-inputs "texinfo")))
(setenv "PATH" (string-append gz "/bin"))
(system* (string-append tar "/bin/tar") "xvf" source)
(chdir (string-append "vera-" ,version))
(mkdir-p info)
(mkdir-p html)
;; XXX: Use '--force' because the document is unhappy
;; with Texinfo 5 (yes, documents can be unhappy.)
(and (zero?
(system* (string-append texi "/bin/makeinfo")
"vera.texi" "--force" "-o"
(string-append info "/vera.info")))
(zero?
(system* (string-append texi "/bin/makeinfo")
"vera.texi" "--force" "--html" "-o"
(string-append html "/vera.html"))))))
#:modules ((guix build utils))))
(native-inputs `(("texinfo" ,texinfo)
("tar" ,tar)
("gzip" ,gzip)))
(home-page "https://savannah.gnu.org/projects/vera/")
(synopsis "List of acronyms")
(description
"V.E.R.A. (Virtual Entity of Relevant Acronyms) is a list of computing
acronyms distributed as an info document.")
(license fdl1.3+)))
(define-public gcide
(package
(name "gcide")
(version "0.52")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://gnu/gcide/gcide-" version ".tar.xz"))
(sha256
(base32
"1n3bp91sik66z3ca7mjqbr9nck3hg5ck0c8g84xc0qnfpx5vznh2"))))
(build-system trivial-build-system)
(arguments
'(#:builder (begin
(use-modules (guix build utils))
(let* ((src (assoc-ref %build-inputs "source"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(out (assoc-ref %outputs "out"))
(datadir (string-append out "/share/gcide")))
(set-path-environment-variable "PATH" '("bin")
(list tar xz))
(mkdir-p datadir)
(zero? (system* "tar" "-C" datadir
"--strip-components=1"
"-xvf" src))))
#:modules ((guix build utils))))
(native-inputs
`(("tar" ,tar)
("xz" ,xz)))
(synopsis "GNU Collaborative International Dictionary of English")
(description
"GCIDE is a free dictionary based on a combination of sources. It can
be used via the GNU Dico program or accessed online at
http://gcide.gnu.org.ua/")
(home-page "http://gcide.gnu.org.ua/")
(license gpl3+)))
(define-public diction
;; Not quite a dictionary, not quite a spell checker either…
(package
(name "diction")
(version "1.11")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/diction/diction-"
version ".tar.gz"))
(sha256
(base32
"1xi4l1x1vvzmzmbhpx0ghmfnwwrhabjwizrpyylmy3fzinzz3him"))))
(build-system gnu-build-system)
(synopsis "Identifies wordy and commonly misused phrases")
(description
"A package providing two classic Unix commands, style and diction.
Diction is used to identify wordy and commonly misused phrases in a
body of text. Style instead analyzes surface aspects of a written
work, such as sentence length and other readability measures.")
(home-page "https://www.gnu.org/software/diction/")
(license gpl3+)))
(define-public ding
(package
(name "ding")
(version "1.8.1")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.tu-chemnitz.de/pub/Local/urz/" name
"/" name "-" version ".tar.gz"))
(sha256
(base32
"0chjqs3z9zs1w3l7b5lsaj682rgnkf9kibcbzhggqqcn1pbvl5sq"))))
(build-system gnu-build-system)
(inputs `(("tk" ,tk)))
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(delete 'check)
(replace
'install
(lambda _
(let ((bindir (string-append
(assoc-ref %outputs "out") "/bin"))
(wish (string-append
(assoc-ref %build-inputs "tk")
"/bin/wish8.6"))
(sharedir (string-append
(assoc-ref %outputs "out")
"/share/applications"))
(libdir (string-append
(assoc-ref %outputs "out") "/lib")))
(mkdir-p bindir)
(mkdir-p libdir)
(mkdir-p sharedir)
(substitute* "ding.desktop"
(("Exec=/usr/bin/ding")
(string-append "Exec=" bindir "/ding")))
(with-fluids ((%default-port-encoding "ISO-8859-1"))
(substitute* "ding" (("exec wish") (string-append "exec " wish))))
(substitute* "install.sh"
(("/bin/cp") "cp")
(("/bin/mv") "mv")
(("NEEDPROG=\"wish\"")
(string-append "NEEDPROG=\"" wish "\""))
(("DEFBINDIR=\"/usr/local/bin\"")
(string-append "DEFBINDIR=\"" bindir "\""))
(("DEFLIBDIR=\"/usr/local/lib\"")
(string-append "DEFLIBDIR=\"" libdir "\"")))
(install-file "ding.desktop" sharedir)
(install-file "ding.png" sharedir)
(zero?
(system* "./install.sh"))))))))
(synopsis "Dictionary lookup program with a German-English dictionary")
(description "Ding is a dictionary lookup program for the X window system.
It comes with a German-English dictionary with approximately 270,000 entries.")
(home-page "http://www-user.tu-chemnitz.de/~fri/ding/")
(license gpl2+)))
(define-public grammalecte
(package
(name "grammalecte")
(version "0.6.3.1")
(source
(origin
(method url-fetch/zipbomb)
(uri (string-append "https://www.dicollecte.org/grammalecte/zip/"
"Grammalecte-fr-v" version ".zip"))
(sha256
(base32
"0jlzrhpx9qvjdq679w188p86x09yfjf3l0h4scjl9w26yyp53gr8"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-setup
;; Fix typos in "setup.py". In particular, add the new
;; "graphspell" module introduced in 0.6.2. Reported upstream:
;; <https://www.dicollecte.org/thread.php?prj=fr&t=709>
(lambda _
(substitute* "setup.py"
(("packages=\\['grammalecte', 'grammalecte.fr'\\],")
"packages=['grammalecte', 'grammalecte.fr', 'grammalecte.graphspell'],")
(("_dictionaries/French.bdic") "graphspell/_dictionaries/fr.bdic"))
#t)))))
(home-page "https://www.dicollecte.org")
(synopsis "French spelling and grammar checker")
(description "Grammalecte is a grammar checker dedicated to the French
language, derived from Lightproof.
Grammalecte aims at helping to write a proper French without distracting users
with false positives. This grammar checker follows the principle: the less
false positives, the better; if it cannot know with a good chance if
a dubious expression is wrong, it will keep silent.
The package provides the command line interface, along with a server
and a Python library.")
(license gpl3+)))
(define-public translate-shell
(package
(name "translate-shell")
(version "0.9.6.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/soimort/" name "/archive/v"
version ".tar.gz"))
(sha256
(base32
"0inv6r3qbihn2ff1sgcly89r04k4vgcbvvyl50ln0mxlapbhpy95"))
(patches (search-patches "translate-shell-fix-curl-tests.patch"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure phase
(add-after 'install 'emacs-install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dest (string-append out "/share/emacs/site-lisp"))
(emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs")))
(install-file "google-translate-mode.el" dest)
(emacs-generate-autoloads ,name dest)))))
#:make-flags (list (string-append "PREFIX=" %output)
"NETWORK_ACCESS=no test")
#:imported-modules (,@%gnu-build-system-modules (guix build emacs-utils))
#:modules ((guix build gnu-build-system)
(guix build emacs-utils)
(guix build utils))
#:test-target "test"))
(propagated-inputs
`(("curl" ,curl)
("fribidi" ,fribidi)
("rlwrap" ,rlwrap)))
(native-inputs
`(("emacs" ,emacs-minimal)
("util-linux" ,util-linux))) ; hexdump, for the test
(home-page "https://www.soimort.org/translate-shell/")
(synopsis "Translations from the command line")
(description
"Translate Shell (formerly Google Translate CLI) is a command-line
translator powered by Google Translate (default), Bing Translator,
Yandex.Translate and Apertium. It gives you easy access to one of these
translation engines from your terminal.")
(license public-domain)))