gnu: python-file: Don't create a compressed egg.
[jackhill/guix/guix.git] / gnu / packages / wordnet.scm
CommitLineData
7f4e4b77 1;;; GNU Guix --- Functional package management for GNU
939f8743 2;;; Copyright © 2013, 2016 Ludovic Courtès <ludo@gnu.org>
c1dbd3a8 3;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
7f4e4b77
LC
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages wordnet)
21 #:use-module (guix packages)
22 #:use-module (guix build-system gnu)
23 #:use-module (guix licenses)
24 #:use-module (guix download)
c1dbd3a8 25 #:use-module (gnu packages)
7f4e4b77
LC
26 #:use-module (gnu packages tcl))
27
28(define-public wordnet
29 (package
30 (name "wordnet")
31 (version "3.0")
32 (source (origin
33 (method url-fetch)
34 (uri (string-append "http://wordnetcode.princeton.edu/"
c1dbd3a8 35 version "/WordNet-" version ".tar.bz2"))
7f4e4b77
LC
36 (sha256
37 (base32
c1dbd3a8
EF
38 "08pgjvd2vvmqk3h641x63nxp7wqimb9r30889mkyfh2agc62sjbc"))
39 (patches (search-patches
40 "wordnet-CVE-2008-2149.patch"
41 "wordnet-CVE-2008-3908-pt1.patch"
42 "wordnet-CVE-2008-3908-pt2.patch"))))
7f4e4b77
LC
43 (build-system gnu-build-system)
44 (arguments
45 `(#:configure-flags (list (string-append "--with-tcl="
46 (assoc-ref %build-inputs "tcl")
47 "/lib")
48 (string-append "--with-tk="
49 (assoc-ref %build-inputs "tk")
50 "/lib")
51
52 ;; Provide the `result' field in `Tcl_Interp'.
53 ;; See <https://bugs.gentoo.org/show_bug.cgi?id=452034>.
9d50da70
LC
54 ;;
55 ;; The 'DEFAULTPATH' string literal, which
56 ;; contains the output path, only appears as
57 ;; the operand of one 'strcpy' call. As a
58 ;; consequence, GCC does not store the string
59 ;; literal as is but instead introduces "gaps"
60 ;; for alignment reasons presumably---like
61 ;; "/gnu/sto?????re/8jp8b??????ky105…". This
62 ;; makes this string invisible to the GC, which
63 ;; in turns causes problems when running a
64 ;; grafted WordNet because that grafted WordNet
65 ;; keeps referring to the ungrafted variant,
66 ;; which is not protected from GC. Thus,
67 ;; disable use of '__builtin_strcpy' to avoid
68 ;; that.
69 "CFLAGS=-DUSE_INTERP_RESULT -O2 -fno-builtin-strcpy")
983911d6
EF
70 #:phases
71 (modify-phases %standard-phases
72 (add-after 'install 'post-install
73 (lambda* (#:key inputs outputs #:allow-other-keys)
74 (let ((out (assoc-ref outputs "out"))
75 (bin (assoc-ref outputs "tk"))
76 (tk (assoc-ref inputs "tk"))
77 (tkv ,(let ((v (package-version tk)))
78 (string-take v (string-index-right v #\.)))))
79 ;; Move `wishwn' and `wnb' to BIN.
80 (for-each (lambda (prog)
81 (let ((orig (string-append out "/bin/" prog))
82 (dst (string-append bin "/bin/" prog))
83 (dir (string-append tk "/lib/tk" tkv)))
84 (mkdir-p (dirname dst))
85 (copy-file orig dst)
86 (delete-file orig)
87 (wrap-program dst
88 `("TK_LIBRARY" "" = (,dir))
89 `("PATH" ":" prefix
90 (,(string-append out
91 "/bin"))))))
92 '("wishwn" "wnb"))
93 #t))))))
7f4e4b77
LC
94 (outputs '("out"
95 "tk")) ; for the Tcl/Tk GUI
96 (inputs `(("tk" ,tk)
97 ("tcl" ,tcl)))
98 (home-page "http://wordnet.princeton.edu/")
35b9e423 99 (synopsis "Lexical database for the English language")
7f4e4b77 100 (description
c598e35c 101 "WordNet is a large lexical database of English. Nouns, verbs,
7c125ce0
AK
102adjectives and adverbs are grouped into sets of cognitive synonyms (synsets),
103each expressing a distinct concept. Synsets are interlinked by means of
104conceptual-semantic and lexical relations. The resulting network of
7f4e4b77
LC
105meaningfully related words and concepts can be navigated with the browser.
106WordNet is also freely and publicly available for download. WordNet's
107structure makes it a useful tool for computational linguistics and natural
108language processing.")
109 (license x11)))