gnu: deutex: Update to 5.2.1.
[jackhill/guix/guix.git] / gnu / packages / dictionaries.scm
CommitLineData
a869565b 1;;; GNU Guix --- Functional package management for GNU
af456909 2;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
8276a6f4 3;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
68e9ee72 4;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
08c06cd8 5;;; Copyright © 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
7f221c0e 6;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
000b5407 7;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
5790d163 8;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
ece22ac8 9;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
a869565b
LC
10;;;
11;;; This file is part of GNU Guix.
12;;;
13;;; GNU Guix is free software; you can redistribute it and/or modify it
14;;; under the terms of the GNU General Public License as published by
15;;; the Free Software Foundation; either version 3 of the License, or (at
16;;; your option) any later version.
17;;;
18;;; GNU Guix is distributed in the hope that it will be useful, but
19;;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;;; GNU General Public License for more details.
22;;;
23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25
26(define-module (gnu packages dictionaries)
5790d163 27 #:use-module ((guix licenses) #:prefix license:)
a869565b
LC
28 #:use-module (guix packages)
29 #:use-module (guix download)
30a1f6e2 30 #:use-module (guix git-download)
af456909 31 #:use-module (guix build-system gnu)
ad564a06 32 #:use-module (guix build-system python)
a869565b 33 #:use-module (guix build-system trivial)
196c8b37 34 #:use-module (gnu packages)
d2e1d022 35 #:use-module (gnu packages autotools)
a869565b 36 #:use-module (gnu packages base)
0f3847bf
EF
37 #:use-module (gnu packages curl)
38 #:use-module (gnu packages emacs)
30a1f6e2 39 #:use-module (gnu packages flex)
0f3847bf
EF
40 #:use-module (gnu packages fribidi)
41 #:use-module (gnu packages linux)
30a1f6e2 42 #:use-module (gnu packages pcre)
d2e1d022 43 #:use-module (gnu packages pkg-config)
30a1f6e2 44 #:use-module (gnu packages python)
0f3847bf 45 #:use-module (gnu packages readline)
a9a8f063 46 #:use-module (gnu packages texinfo)
274563e1 47 #:use-module (gnu packages compression)
d2e1d022
AI
48 #:use-module (gnu packages tcl)
49 #:use-module (gnu packages xml))
274563e1 50
a869565b
LC
51
52(define-public vera
53 (package
54 (name "vera")
fdc1b2fd 55 (version "1.23")
a869565b
LC
56 (source (origin
57 (method url-fetch)
58 (uri (string-append "mirror://gnu/vera/vera-" version
59 ".tar.gz"))
60 (sha256
61 (base32
fdc1b2fd 62 "1az0v563jja8xb4896jyr8yv7jd9zacqyfkjd7psb73v7clg1mzz"))))
a869565b
LC
63 (build-system trivial-build-system)
64 (arguments
65 `(#:builder (begin
66 (use-modules (guix build utils))
67
68 (let* ((out (assoc-ref %outputs "out"))
69 (info (string-append out "/share/info"))
70 (html (string-append out "/share/html"))
71 (source (assoc-ref %build-inputs "source"))
72 (tar (assoc-ref %build-inputs "tar"))
73 (gz (assoc-ref %build-inputs "gzip"))
74 (texi (assoc-ref %build-inputs "texinfo")))
75 (setenv "PATH" (string-append gz "/bin"))
22fc1b90 76 (invoke (string-append tar "/bin/tar") "xvf" source)
a869565b
LC
77
78 (chdir (string-append "vera-" ,version))
79 (mkdir-p info)
80 (mkdir-p html)
81
82 ;; XXX: Use '--force' because the document is unhappy
83 ;; with Texinfo 5 (yes, documents can be unhappy.)
22fc1b90
MW
84 (invoke (string-append texi "/bin/makeinfo")
85 "vera.texi" "--force" "-o"
86 (string-append info "/vera.info"))
87 (invoke (string-append texi "/bin/makeinfo")
88 "vera.texi" "--force" "--html" "-o"
89 (string-append html "/vera.html"))))
a869565b
LC
90 #:modules ((guix build utils))))
91 (native-inputs `(("texinfo" ,texinfo)
92 ("tar" ,tar)
93 ("gzip" ,gzip)))
6fd52309 94 (home-page "https://savannah.gnu.org/projects/vera/")
a869565b
LC
95 (synopsis "List of acronyms")
96 (description
97 "V.E.R.A. (Virtual Entity of Relevant Acronyms) is a list of computing
98acronyms distributed as an info document.")
5790d163 99 (license license:fdl1.3+)))
68e9ee72
SB
100
101(define-public gcide
102 (package
103 (name "gcide")
8276a6f4 104 (version "0.52")
68e9ee72
SB
105 (source (origin
106 (method url-fetch)
107 (uri (string-append
108 "mirror://gnu/gcide/gcide-" version ".tar.xz"))
109 (sha256
110 (base32
8276a6f4 111 "1n3bp91sik66z3ca7mjqbr9nck3hg5ck0c8g84xc0qnfpx5vznh2"))))
68e9ee72
SB
112 (build-system trivial-build-system)
113 (arguments
114 '(#:builder (begin
115 (use-modules (guix build utils))
116 (let* ((src (assoc-ref %build-inputs "source"))
117 (tar (assoc-ref %build-inputs "tar"))
118 (xz (assoc-ref %build-inputs "xz"))
119 (out (assoc-ref %outputs "out"))
120 (datadir (string-append out "/share/gcide")))
121 (set-path-environment-variable "PATH" '("bin")
122 (list tar xz))
123 (mkdir-p datadir)
e3cfef22
MW
124 (invoke "tar" "-C" datadir
125 "--strip-components=1"
126 "-xvf" src)))
68e9ee72
SB
127 #:modules ((guix build utils))))
128 (native-inputs
129 `(("tar" ,tar)
130 ("xz" ,xz)))
131 (synopsis "GNU Collaborative International Dictionary of English")
132 (description
133 "GCIDE is a free dictionary based on a combination of sources. It can
134be used via the GNU Dico program or accessed online at
135http://gcide.gnu.org.ua/")
136 (home-page "http://gcide.gnu.org.ua/")
5790d163 137 (license license:gpl3+)))
af456909
LC
138
139(define-public diction
140 ;; Not quite a dictionary, not quite a spell checker either…
141 (package
142 (name "diction")
143 (version "1.11")
144 (source (origin
145 (method url-fetch)
146 (uri (string-append "mirror://gnu/diction/diction-"
147 version ".tar.gz"))
148 (sha256
149 (base32
150 "1xi4l1x1vvzmzmbhpx0ghmfnwwrhabjwizrpyylmy3fzinzz3him"))))
151 (build-system gnu-build-system)
152 (synopsis "Identifies wordy and commonly misused phrases")
153 (description
154 "A package providing two classic Unix commands, style and diction.
155Diction is used to identify wordy and commonly misused phrases in a
156body of text. Style instead analyzes surface aspects of a written
157work, such as sentence length and other readability measures.")
158 (home-page "https://www.gnu.org/software/diction/")
5790d163 159 (license license:gpl3+)))
274563e1
JD
160
161(define-public ding
162 (package
163 (name "ding")
6872680c 164 (version "1.8.1")
274563e1
JD
165 (source (origin
166 (method url-fetch)
167 (uri (string-append "http://ftp.tu-chemnitz.de/pub/Local/urz/" name
168 "/" name "-" version ".tar.gz"))
169 (sha256
170 (base32
6872680c 171 "0chjqs3z9zs1w3l7b5lsaj682rgnkf9kibcbzhggqqcn1pbvl5sq"))))
274563e1
JD
172 (build-system gnu-build-system)
173 (inputs `(("tk" ,tk)))
174 (arguments
175 `(#:phases
176 (modify-phases %standard-phases
177 (delete 'configure)
178 (delete 'build)
179 (delete 'check)
7f46dcc4 180 (replace 'install
274563e1
JD
181 (lambda _
182 (let ((bindir (string-append
183 (assoc-ref %outputs "out") "/bin"))
184 (wish (string-append
185 (assoc-ref %build-inputs "tk")
186 "/bin/wish8.6"))
187 (sharedir (string-append
188 (assoc-ref %outputs "out")
189 "/share/applications"))
190 (libdir (string-append
191 (assoc-ref %outputs "out") "/lib")))
192 (mkdir-p bindir)
193 (mkdir-p libdir)
194 (mkdir-p sharedir)
195
196 (substitute* "ding.desktop"
197 (("Exec=/usr/bin/ding")
198 (string-append "Exec=" bindir "/ding")))
199 (with-fluids ((%default-port-encoding "ISO-8859-1"))
200 (substitute* "ding" (("exec wish") (string-append "exec " wish))))
201 (substitute* "install.sh"
202 (("/bin/cp") "cp")
203 (("/bin/mv") "mv")
204 (("NEEDPROG=\"wish\"")
205 (string-append "NEEDPROG=\"" wish "\""))
206 (("DEFBINDIR=\"/usr/local/bin\"")
207 (string-append "DEFBINDIR=\"" bindir "\""))
208 (("DEFLIBDIR=\"/usr/local/lib\"")
209 (string-append "DEFLIBDIR=\"" libdir "\"")))
210 (install-file "ding.desktop" sharedir)
211 (install-file "ding.png" sharedir)
7f46dcc4 212 (invoke "./install.sh")))))))
274563e1
JD
213 (synopsis "Dictionary lookup program with a German-English dictionary")
214 (description "Ding is a dictionary lookup program for the X window system.
215It comes with a German-English dictionary with approximately 270,000 entries.")
216 (home-page "http://www-user.tu-chemnitz.de/~fri/ding/")
5790d163 217 (license license:gpl2+)))
0f3847bf 218
ad564a06
NG
219(define-public grammalecte
220 (package
221 (name "grammalecte")
363359f8 222 (version "1.6.0")
ad564a06
NG
223 (source
224 (origin
225 (method url-fetch/zipbomb)
2613bab6 226 (uri (string-append "https://grammalecte.net/grammalecte/zip/"
ad564a06
NG
227 "Grammalecte-fr-v" version ".zip"))
228 (sha256
229 (base32
363359f8 230 "0kz13gx2hd23xd6bfr4z73lh18slj3vbvs2xcb7qvhramxjqzqcn"))))
ad564a06 231 (build-system python-build-system)
f0ac761f 232 (home-page "https://grammalecte.net")
695ee52e 233 (synopsis "French spelling and grammar checker")
ad564a06
NG
234 (description "Grammalecte is a grammar checker dedicated to the French
235language, derived from Lightproof.
236
237Grammalecte aims at helping to write a proper French without distracting users
238with false positives. This grammar checker follows the principle: the less
239false positives, the better; if it cannot know with a good chance if
240a dubious expression is wrong, it will keep silent.
241
242The package provides the command line interface, along with a server
243and a Python library.")
5790d163 244 (license license:gpl3+)))
ad564a06 245
0f3847bf
EF
246(define-public translate-shell
247 (package
248 (name "translate-shell")
ece22ac8 249 (version "0.9.6.11")
0f3847bf
EF
250 (source
251 (origin
cfa3b718
EF
252 (method git-fetch)
253 (uri (git-reference
254 (url"https://github.com/soimort/translate-shell.git")
255 (commit (string-append "v" version))))
256 (file-name (git-file-name name version))
0f3847bf 257 (sha256
ece22ac8 258 (base32 "137fz3ahzf65hfqcs4k7hhrmfjlhlw7wr3gfsvk88bnyqkyw44sm"))))
0f3847bf
EF
259 (build-system gnu-build-system)
260 (arguments
261 `(#:phases
262 (modify-phases %standard-phases
7f221c0e 263 (delete 'configure) ; no configure script
cfa3b718
EF
264 (add-after 'unpack 'remove-unnecessary-file
265 ;; This file gets generated during the build phase.
266 (lambda _
267 (delete-file "translate")
268 #t))
cf51b828
EF
269 (add-after 'install 'wrap-binary
270 (lambda* (#:key inputs outputs #:allow-other-keys)
271 (let* ((out (assoc-ref outputs "out"))
272 (bin (string-append out "/bin/trans"))
273 (curl (assoc-ref inputs "curl"))
274 (fribidi (assoc-ref inputs "fribidi"))
275 (rlwrap (assoc-ref inputs "rlwrap")))
276 (wrap-program bin
277 `("PATH" ":" prefix
278 (,(string-append out "/bin:"
279 curl "/bin:"
280 fribidi "/bin:"
281 rlwrap "/bin")))))
282 #t))
0f3847bf
EF
283 (add-after 'install 'emacs-install
284 (lambda* (#:key inputs outputs #:allow-other-keys)
285 (let* ((out (assoc-ref outputs "out"))
714b49f6
EF
286 (dest (string-append out "/share/emacs/site-lisp/guix.d/"
287 ,name "-" ,version))
0f3847bf
EF
288 (emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs")))
289 (install-file "google-translate-mode.el" dest)
290 (emacs-generate-autoloads ,name dest)))))
196c8b37
OP
291 #:make-flags (list (string-append "PREFIX=" %output)
292 "NETWORK_ACCESS=no test")
0f3847bf
EF
293 #:imported-modules (,@%gnu-build-system-modules (guix build emacs-utils))
294 #:modules ((guix build gnu-build-system)
295 (guix build emacs-utils)
296 (guix build utils))
297 #:test-target "test"))
cf51b828 298 (inputs
0f3847bf
EF
299 `(("curl" ,curl)
300 ("fribidi" ,fribidi)
301 ("rlwrap" ,rlwrap)))
302 (native-inputs
303 `(("emacs" ,emacs-minimal)
b92302fd 304 ("util-linux" ,util-linux))) ; hexdump, for the test
196c8b37 305 (home-page "https://www.soimort.org/translate-shell/")
0f3847bf
EF
306 (synopsis "Translations from the command line")
307 (description
308 "Translate Shell (formerly Google Translate CLI) is a command-line
309translator powered by Google Translate (default), Bing Translator,
310Yandex.Translate and Apertium. It gives you easy access to one of these
311translation engines from your terminal.")
5790d163
AI
312 (license license:public-domain)))
313
d2e1d022
AI
314(define-public lttoolbox
315 (package
316 (name "lttoolbox")
317 (version "3.5.0")
318 (source
319 (origin
320 (method url-fetch)
321 (uri (string-append
322 "https://github.com/apertium/lttoolbox/releases/download/v"
323 version "/lttoolbox-" version ".tar.gz"))
324 (sha256
325 (base32
326 "08y6pf1hl7prwygy1g8h6ndqww18pmb9f3r5988q0pcrp8w6xz6b"))
327 (file-name (string-append name "-" version ".tar.gz"))))
328 (build-system gnu-build-system)
329 (inputs
330 `(("libxml2" ,libxml2)))
331 (native-inputs
332 `(("pkg-config" ,pkg-config)))
333 (home-page "http://wiki.apertium.org/wiki/Lttoolbox")
334 (synopsis "Lexical processing toolbox")
335 (description "Lttoolbox is a toolbox for lexical processing, morphological
336analysis and generation of words. Analysis is the process of splitting a
337word (e.g. cats) into its lemma \"cat\" and the grammatical information
338@code{<n><pl>}. Generation is the opposite process.")
339 (license (list license:gpl2 ; main license
340 license:expat)))) ; utf8/*
30a1f6e2
AI
341
342(define-public apertium
343 (package
344 (name "apertium")
345 (version "3.5.2")
346 (source
347 (origin
348 (method url-fetch)
349 (uri (string-append
350 "https://github.com/apertium/apertium/releases/download/v"
351 version "/apertium-" version ".tar.gz"))
352 (sha256
353 (base32
354 "0lrx58ipx2kzh1pd3xm1viz05dqyrq38jbnj9dnk92c9ckkwkp4h"))
355 (file-name (string-append name "-" version ".tar.gz"))))
356 (build-system gnu-build-system)
357 (inputs
358 `(("libxml2" ,libxml2)
359 ("libxslt" ,libxslt)
360 ("lttoolbox" ,lttoolbox)
361 ("pcre" ,pcre)))
362 (native-inputs
363 `(("apertium-get"
364 ,(origin
365 (method git-fetch)
366 (uri (git-reference
367 (url "https://github.com/apertium/apertium-get")
368 (commit "692d030e68008fc123089cf2446070fe8c6e3a3b")))
369 (sha256
370 (base32
371 "0kgp68azvds7yjwfz57z8sa5094fyk5yr0qxzblrw7bisrrihnav"))))
372 ("flex" ,flex)
373 ("pkg-config" ,pkg-config)
374 ;; python is only required for running the test suite
61506fe5 375 ("python" ,python)))
30a1f6e2
AI
376 (arguments
377 `(#:phases
378 (modify-phases %standard-phases
379 ;; If apertium-get does not exist in the source tree, the build tries
380 ;; to download it using an svn checkout. To avoid this, copy
381 ;; apertium-get into the source tree.
382 (add-after 'unpack 'unpack-apertium-get
383 (lambda* (#:key inputs #:allow-other-keys)
384 (copy-recursively (assoc-ref inputs "apertium-get")
385 "apertium/apertium-get")
386 #t)))))
387 (home-page "https://www.apertium.org/")
388 (synopsis "Rule based machine translation system")
389 (description "Apertium is a rule based machine translation system
390featuring a shallow-transfer machine translation engine. The design of the
391system makes translations fast (translating tens of thousands of words per
392second on ordinary desktop computers) and, in spite of the errors, reasonably
393intelligible and easily correctable.")
394 (license (list license:gpl2 ; main license
395 license:expat)))) ; utf8/*