summaryrefslogtreecommitdiff
path: root/app-dicts/wordnet
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /app-dicts/wordnet
reinit the tree, so we can have metadata
Diffstat (limited to 'app-dicts/wordnet')
-rw-r--r--app-dicts/wordnet/Manifest13
-rw-r--r--app-dicts/wordnet/files/wordnet-3.0-fix-indexing-bug-314799.patch20
-rw-r--r--app-dicts/wordnet/files/wordnet-3.0-format-security.patch48
-rw-r--r--app-dicts/wordnet/files/wordnet-3.0-src_stubs_c.patch12
-rw-r--r--app-dicts/wordnet/files/wordnet-3.0-tcl8.6.patch133
-rw-r--r--app-dicts/wordnet/metadata.xml12
-rw-r--r--app-dicts/wordnet/wordnet-3.0-r4.ebuild71
-rw-r--r--app-dicts/wordnet/wordnet-3.0-r5.ebuild75
-rw-r--r--app-dicts/wordnet/wordnet-3.1.ebuild94
9 files changed, 478 insertions, 0 deletions
diff --git a/app-dicts/wordnet/Manifest b/app-dicts/wordnet/Manifest
new file mode 100644
index 000000000000..4ab8b0fa36b9
--- /dev/null
+++ b/app-dicts/wordnet/Manifest
@@ -0,0 +1,13 @@
+AUX wordnet-3.0-fix-indexing-bug-314799.patch 732 SHA256 edaffe2e8690fc45bd4595bb62817b839af69e67d5cdd0d91991fc850d154a67 SHA512 697a6279223270dad6a8f3834020560b6cde07edea62e3f4238c0b288b2cb875d294bf0101cf9c79f0e1d086116d90309ca851a926318a48f5cd02058062f149 WHIRLPOOL fec6bb7d4a605fc3ee1d106d47ee2b4c3142529c05790097dcdf312718b9a47d06ec9b2c7f0ad96809501bb022aedc016db1560bcc465c323e0b3411ebbb7cfa
+AUX wordnet-3.0-format-security.patch 1443 SHA256 d5b8f4f338487e0a15a99ba6c193b3cbfa12d428c825b3c47cb30a23df5b5ad8 SHA512 5567b1d5e041ed39a38e40e253dc94e22a3a7c6b690bc452716b26c2932b94eeb065e00354e2c8f1dc77d53713fd2e69e44a498a8664e867de2df07f2f36c170 WHIRLPOOL 638e8b6b82673d01c7a01a6ab922d998f8d0f23bc7bf4a920c41a75fbf85efb1508b52ae15863128341c6766b99d052c114a7c68f723641c94b3fee4a6e2a2fd
+AUX wordnet-3.0-src_stubs_c.patch 438 SHA256 3d6e248b1211aaf48af19aa128b7f7754c379b0b421df9b1d11ac61cb0295426 SHA512 82bf6705b26bd0455a2a556abd9cd01cde7c7f738f3f4f5cbf49eefe5c301c7022e908208cce2617e0b95f78464beeab21c7af4131c3472fe4e2ba4650533359 WHIRLPOOL afc5a400e494cc1f8f38aa9cb79342c3324b9419a4302b4c1608be9685e40868bd2f46a7de2a3b09ed396093ad93684757e284b65b627c01208da383748d11a7
+AUX wordnet-3.0-tcl8.6.patch 4974 SHA256 97d551b2a7766de8c9f113f94e768a52d450e07c974dbac20bf7ea8df04b35d3 SHA512 2dafc6a6cd332d387fa15b63a7c5cad222e611906582232f7bd6f2522773336e7b632775e73fcd1a8587bd95eabaf70ec1c9ea4b8a81a7c147360a836be0a90c WHIRLPOOL 5416b325ec5abac95d5b0802b8994e6e5d2db8b2b28241155402fca21e88f373785d94cd57506485fa6c890d0a0ee99d9cf2ca9f887720be0a7ae1e80e2d6a8b
+DIST WordNet-3.0.tar.gz 11537227 SHA256 b4d8b1feeb22defe686cf1c5062d723bd854997614da9547fa135e5137843531 SHA512 d39c008cec41de8f1b2aeacb4ad818f9997a13b30a992fda100b6dcc9c11c253530b00a1909b55ff7b564bafc33f7763c1ce9b0a6ae3e591695db2083e9ead7a WHIRLPOOL cfba84209b4366b1ab381957f82cc2a32039d073baf8fbd44252c829c9291be76f05b214e014157f3ec03a354aaec68a14e20103dde37d11f13b846056aa90f4
+DIST wn3.1.dict.tar.gz 16358468 SHA256 3f7d8be8ef6ecc7167d39b10d66954ec734280b5bdcd57f7d9eafe429d11c22a SHA512 16dca17a87026d8a0b7b4758219cd21a869c3ef3da23ce7875924546f2eacac4c2f376cb271b798b2c458fe8c078fb43d681356e3d9beef40f4bd88d3579394f WHIRLPOOL 67b1dd7cfc0df9957d2dedf405dea72ef2aeffb0e696778d88550405070aad11ae59d4cf8f1063f9d828edd88f6032e6e07c351be546e672b44df4a063305997
+DIST wordnet-3.0-patchset-1.tar.bz2 8076 SHA256 d8333b107f53e188981e9ec0e1e53890c8bd7155924ae140c777c3f443d8aba7 SHA512 17668d736dd6dfe83e4d5d328729cbcdfb4dbca9a9707651534169bd2ce6fc2238d5c820d63330c51c20ab9b2964b56a609f58242b05dabbcfdfc0da61c048cb WHIRLPOOL 30e3820c2679148206bc14d5acf8eb7a2bde422f13ce2e9b0a90145e510667d70b1c1ef5d3486c85eddf6492c72b2243672683164f917f8ff5910370e30bd0f8
+EBUILD wordnet-3.0-r4.ebuild 2101 SHA256 8a25baea6639bc95f3d0fa161002a859c1dbe11a242e86c4d84cab1b52f3f64a SHA512 0d5adb7a5a8df3d2e80bf3cae087330e6797f53c83fdec09d96f5b45b2b0ca6f4a0aaaafcd09183937819b8ab5e577737914de0b843bef5b412f4f6ae3751714 WHIRLPOOL ec28d211363509c0aabe88e6cf9664b519eac9802c3a33ec5b31702bab0d71c5a0b9a888916ab5622a37834fff144781216f2e7916a2d66b26b4c324e15b7b72
+EBUILD wordnet-3.0-r5.ebuild 2151 SHA256 b425dbd529c793dca1348b71d46f5201cbf23246e8e13b805bc7fa24bf6efaec SHA512 245afae0abe9072c80f501e9cef8897ae5cd3ef9943068841018884bfaf6fe30b6e0ae13b32435f334f21ea98157a24d9f0bcb9b39484c79828dd3eff669cfe3 WHIRLPOOL 36170698997b7ef1b2d9c2abc4d7ffca7198b06a1628942d7b9492c99d4c34acd41630208fafc02a8ec2639588c485847337921ba258c3cc3694bbbc73105a36
+EBUILD wordnet-3.1.ebuild 2802 SHA256 aa431cbb6a843de29c22e0bcecccf39338efb18bb81a5cf6f13258790d8b3bf4 SHA512 2e5ac3a5dcfa84cc03055a149dbc7a28fed43fe611e8a8495b308ef8baef555e7c03c7c77cd7c21dc130555c6c38bb2bcb611c3c5762d45beac2da7d15f7b12d WHIRLPOOL bbb9982f19ff2bf2db5beaa26f689fb29875aa369ff30a411e71dcd9b36d76376804d464a3830bc242ffb30d0e8b15858cdf35a8113d0adb595c4b0c5d015f2f
+MISC ChangeLog 3353 SHA256 50ed39d351fd3362820f22bb66d49f90847617b5fc89e642e3cc6861728e7983 SHA512 1edfe1645ee8003e065e807000c7d95e9f09d18b87ae0faf464084bee4932992e68e36e6f97adc8306bc751ddac9f846e23bb5f83018a4b3264dba92b18cfb53 WHIRLPOOL a7c6f4f52932e745599d5135d5b39e6866774271ff03901c7276b603c5880667ff40397e82a0c3471347145067f35fe69b1809d4734ee34774a5f94f9fede908
+MISC ChangeLog-2015 5705 SHA256 2b481b09d7bfc2d43a2b07e615f6506e70cd2ecce60e43822c0920f874f0ace3 SHA512 2392e3ea669c7a839cfb5d77fbd199bfc8ac52b66946153d11db5afaee3a88d3258fb8c900018cf4467d80a5bb01475731a86c6c9c4f2acfdb5f4db714c8fc9c WHIRLPOOL df4f9c1cf11bfb9d75f9b5aa4418dead42eb52840a5c1968a7a78a506e9fb168dc308ffd46b13e3f8e1ab910333548b9e2bcb08e0af850327a7becaffeef3790
+MISC metadata.xml 358 SHA256 8aaa78667fed80809fcf0a808f526b84a9371babf63bb8490ff48eed919e48cc SHA512 1f57e2d03f71e806f11f7a8e5e667fb2d7255b2af6fd17bf6b095e4f6502cc9f0ff16ef1fb7febd93c98ac52f7a3b6857c0fe1772bb5dd269b455d6db2fa125b WHIRLPOOL 4bbf57677bdc6a69a947114817e53018256ac32ea9ce18750b254dae9296bd6876c3f53149fd8422767eae787a7485fff884e01b918d36227fbd5698697e95a8
diff --git a/app-dicts/wordnet/files/wordnet-3.0-fix-indexing-bug-314799.patch b/app-dicts/wordnet/files/wordnet-3.0-fix-indexing-bug-314799.patch
new file mode 100644
index 000000000000..fafaa2c331d7
--- /dev/null
+++ b/app-dicts/wordnet/files/wordnet-3.0-fix-indexing-bug-314799.patch
@@ -0,0 +1,20 @@
+diff -p -u -r WordNet-3.0/lib/morph.c WordNet-3.0-mine/lib/morph.c
+--- a/lib/morph.c 2010-04-12 13:53:04.000000000 +0200
++++ b/lib/morph.c 2010-04-12 13:54:53.000000000 +0200
+@@ -375,14 +375,14 @@ static char *exc_lookup(char *word, int
+ static char line[WORDBUF], *beglp, *endlp;
+ char *excline;
+
+- if (exc_fps[pos] == NULL)
++ if (exc_fps[pos-1] == NULL)
+ return(NULL);
+
+ /* first time through load line from exception file */
+ if(word != NULL){
+ if (strlen(word) > WORDBUF - 1)
+ return(NULL);
+- if ((excline = bin_search(word, exc_fps[pos])) != NULL) {
++ if ((excline = bin_search(word, exc_fps[pos-1])) != NULL) {
+ strcpy(line, excline);
+ endlp = strchr(line,' ');
+ } else
diff --git a/app-dicts/wordnet/files/wordnet-3.0-format-security.patch b/app-dicts/wordnet/files/wordnet-3.0-format-security.patch
new file mode 100644
index 000000000000..b5d86dbbdd89
--- /dev/null
+++ b/app-dicts/wordnet/files/wordnet-3.0-format-security.patch
@@ -0,0 +1,48 @@
+ lib/binsrch.c | 4 ++--
+ src/wn.c | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/lib/binsrch.c b/lib/binsrch.c
+index 8b71216..9ac51a7 100644
+--- a/lib/binsrch.c
++++ b/lib/binsrch.c
+@@ -193,7 +193,7 @@ char *replace_line(char *new_line, char *searchkey, FILE *fp)
+ copyfile(fp, tfp);
+ if (fseek(fp, offset, 0) == -1)
+ return(NULL); /* could not seek to offset */
+- fprintf(fp, new_line); /* write line */
++ fprintf(fp, "%s", new_line); /* write line */
+ rewind(tfp);
+ copyfile(tfp, fp);
+
+@@ -220,7 +220,7 @@ char *insert_line(char *new_line, char *searchkey, FILE *fp)
+ copyfile(fp, tfp);
+ if (fseek(fp, offset, 0) == -1)
+ return(NULL); /* could not seek to offset */
+- fprintf(fp, new_line); /* write line */
++ fprintf(fp, "%s", new_line); /* write line */
+ rewind(tfp);
+ copyfile(tfp, fp);
+
+diff --git a/src/wn.c b/src/wn.c
+index 004e1e6..398632f 100644
+--- a/src/wn.c
++++ b/src/wn.c
+@@ -284,7 +284,7 @@ static void printsearches(char *word, int dbase, unsigned long search)
+ printf("\t");
+ printf(searchstr[j].template,
+ partchars[dbase], partchars[dbase]);
+- printf(searchstr[j].helpstr);
++ printf("%s", searchstr[j].helpstr);
+ printf("\n");
+ }
+ }
+@@ -345,7 +345,7 @@ static int getoptidx(char *searchtype)
+
+ static int error_message(char *msg)
+ {
+- fprintf(stderr, msg);
++ fprintf(stderr, "%s", msg);
+ return(0);
+ }
+
diff --git a/app-dicts/wordnet/files/wordnet-3.0-src_stubs_c.patch b/app-dicts/wordnet/files/wordnet-3.0-src_stubs_c.patch
new file mode 100644
index 000000000000..29c42dea9c35
--- /dev/null
+++ b/app-dicts/wordnet/files/wordnet-3.0-src_stubs_c.patch
@@ -0,0 +1,12 @@
+diff -urNad wordnet-3.0/src/stubs.c.orig wordnet-3.0/src/stubs.c
+--- wordnet-3.0/src/stubs.c.orig 2007-01-04 18:47:55.000000000 +0100
++++ wordnet-3.0/src/stubs.c 2007-01-20 19:01:19.000000000 +0100
+@@ -14,7 +14,7 @@
+ #include <tk.h>
+ #include <wn.h>
+
+-static char *Id = "$Id: stubs.c,v 1.7 2005/04/29 19:01:57 wn Exp $";
++static const char Id[] = "$Id: stubs.c,v 1.7 2005/04/29 19:01:57 wn Exp $";
+
+ static char resultbuf[SEARCHBUF];
+
diff --git a/app-dicts/wordnet/files/wordnet-3.0-tcl8.6.patch b/app-dicts/wordnet/files/wordnet-3.0-tcl8.6.patch
new file mode 100644
index 000000000000..110ffc2110b8
--- /dev/null
+++ b/app-dicts/wordnet/files/wordnet-3.0-tcl8.6.patch
@@ -0,0 +1,133 @@
+ src/stubs.c | 33 +++++++++++++++++----------------
+ 1 file changed, 17 insertions(+), 16 deletions(-)
+
+diff --git a/src/stubs.c b/src/stubs.c
+index 794485c..cec2c04 100644
+--- a/src/stubs.c
++++ b/src/stubs.c
+@@ -40,8 +40,8 @@ int wn_findvalidsearches (ClientData clientData, Tcl_Interp *interp,
+ char *morph;
+ int pos;
+ if (argc != 3) {
+- interp -> result =
+- "usage: findvalidsearches searchword partofspeechnum";
++ Tcl_SetResult(interp,
++ "usage: findvalidsearches searchword partofspeechnum", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ pos = atoi (argv[2]);
+@@ -52,7 +52,7 @@ int wn_findvalidsearches (ClientData clientData, Tcl_Interp *interp,
+ } while ((morph = morphstr (NULL, pos)) != NULL);
+ }
+ sprintf (bitfieldstr, "%u", bitfield);
+- interp -> result = bitfieldstr;
++ Tcl_SetResult(interp, bitfieldstr, TCL_STATIC);
+ return TCL_OK;
+ }
+
+@@ -69,13 +69,13 @@ int wn_bit (ClientData clientData, Tcl_Interp *interp,
+ static char bitfieldstr[32];
+ int whichbit;
+ if (argc != 2) {
+- interp -> result = "usage: bit bitnum";
++ Tcl_SetResult(interp, "usage: bit bitnum", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ whichbit = atoi (argv[1]);
+ bitfield = bit (whichbit);
+ sprintf (bitfieldstr, "%u", bitfield);
+- interp -> result = bitfieldstr;
++ Tcl_SetResult(interp, bitfieldstr, TCL_STATIC);
+ return TCL_OK;
+ }
+
+@@ -89,8 +89,8 @@ int wn_search (ClientData clientData, Tcl_Interp *interp,
+ int pos, searchtype, sense;
+ char *morph;
+ if (argc != 5) {
+- interp -> result =
+- "usage: search searchword partofspeechnum searchtypenum sensenum";
++ Tcl_SetResult(interp,
++ "usage: search searchword partofspeechnum searchtypenum sensenum", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ pos = atoi (argv[2]);
+@@ -102,7 +102,7 @@ int wn_search (ClientData clientData, Tcl_Interp *interp,
+ strcat (resultbuf, findtheinfo (morph, pos, searchtype, sense));
+ } while ((morph = morphstr (NULL, pos)) != NULL);
+ }
+- interp -> result = resultbuf;
++ Tcl_SetResult(interp, resultbuf, TCL_STATIC);
+ return TCL_OK;
+ }
+
+@@ -114,7 +114,7 @@ int wn_search (ClientData clientData, Tcl_Interp *interp,
+ int wn_glosses (ClientData clientData, Tcl_Interp *interp,
+ int argc, char *argv[]) {
+ if (argc != 2) {
+- interp -> result = "usage: glosses [1 | 0]";
++ Tcl_SetResult(interp, "usage: glosses [1 | 0]", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ dflag = atoi (argv[1]);
+@@ -129,7 +129,7 @@ int wn_glosses (ClientData clientData, Tcl_Interp *interp,
+ int wn_fileinfo (ClientData clientData, Tcl_Interp *interp,
+ int argc, char *argv[]) {
+ if (argc != 2) {
+- interp -> result = "usage: fileinfo [1 | 0]";
++ Tcl_SetResult(interp, "usage: fileinfo [1 | 0]", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ fileinfoflag = atoi (argv[1]);
+@@ -144,7 +144,7 @@ int wn_fileinfo (ClientData clientData, Tcl_Interp *interp,
+ int wn_byteoffset (ClientData clientData, Tcl_Interp *interp,
+ int argc, char *argv[]) {
+ if (argc != 2) {
+- interp -> result = "usage: byteoffset [1 | 0]";
++ Tcl_SetResult(interp, "usage: byteoffset [1 | 0]", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ offsetflag = atoi (argv[1]);
+@@ -159,7 +159,7 @@ int wn_byteoffset (ClientData clientData, Tcl_Interp *interp,
+ int wn_senseflag (ClientData clientData, Tcl_Interp *interp,
+ int argc, char *argv[]) {
+ if (argc != 2) {
+- interp -> result = "usage: senseflag [1 | 0]";
++ Tcl_SetResult(interp, "usage: senseflag [1 | 0]", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ wnsnsflag = atoi (argv[1]);
+@@ -175,12 +175,13 @@ int wn_contextualhelp (ClientData clientData, Tcl_Interp *interp,
+ int argc, char *argv[]) {
+ int pos, searchtype;
+ if (argc != 3) {
+- interp -> result = "usage: contextualhelp partofspeechnum searchtypenum";
++ Tcl_SetResult(interp,
++ "usage: contextualhelp partofspeechnum searchtypenum", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ pos = atoi (argv[1]);
+ searchtype = atoi (argv[2]);
+- interp -> result = helptext[pos][searchtype];
++ Tcl_SetResult(interp, helptext[pos][searchtype], TCL_STATIC);
+ return TCL_OK;
+ }
+
+@@ -190,7 +191,7 @@ int wn_contextualhelp (ClientData clientData, Tcl_Interp *interp,
+ int wn_reopendb (ClientData clientData, Tcl_Interp *interp,
+ int argc, char *argv[]) {
+ if (argc != 1) {
+- interp -> result = "usage: reopendb";
++ Tcl_SetResult(interp, "usage: reopendb", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ re_wninit ();
+@@ -204,7 +205,7 @@ int wn_reopendb (ClientData clientData, Tcl_Interp *interp,
+ int wn_abortsearch (ClientData clientData, Tcl_Interp *interp,
+ int argc, char *argv[]) {
+ if (argc != 1) {
+- interp -> result = "usage: abortsearch";
++ Tcl_SetResult(interp, "usage: abortsearch", TCL_STATIC);
+ return TCL_ERROR;
+ }
+ abortsearch = 1;
diff --git a/app-dicts/wordnet/metadata.xml b/app-dicts/wordnet/metadata.xml
new file mode 100644
index 000000000000..c40afbd5319c
--- /dev/null
+++ b/app-dicts/wordnet/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>chocopuff298@gmail.com</email>
+ <name>Ethan Kiang</name>
+</maintainer>
+<maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+</maintainer>
+</pkgmetadata>
diff --git a/app-dicts/wordnet/wordnet-3.0-r4.ebuild b/app-dicts/wordnet/wordnet-3.0-r4.ebuild
new file mode 100644
index 000000000000..5b1c21d480e5
--- /dev/null
+++ b/app-dicts/wordnet/wordnet-3.0-r4.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit autotools eutils flag-o-matic multilib
+
+DESCRIPTION="A lexical database for the English language"
+HOMEPAGE="http://wordnet.princeton.edu/"
+SRC_URI="
+ ftp://ftp.cogsci.princeton.edu/pub/wordnet/${PV}/WordNet-${PV}.tar.gz
+ mirror://gentoo/${P}-patchset-1.tar.bz2"
+LICENSE="Princeton"
+
+SLOT="0"
+KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+# In contrast to what the configure script seems to imply, Tcl/Tk is NOT optional.
+# cf. bug 163478 for details. (Yes, it's about 2.1 but it's still the same here.)
+DEPEND="
+ dev-lang/tcl:0=
+ dev-lang/tk:0="
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/WordNet-${PV}"
+
+PATCHES=(
+ # Don't install into PREFIX/dict but PREFIX/share/wordnet/dict
+ "${WORKDIR}/${P}-dict-location.patch"
+ # Fixes bug 130024, make an additional shared lib
+ "${WORKDIR}/${P}-shared-lib.patch"
+ # Don't install the docs directly into PREFIX/doc but PREFIX/doc/PN
+ "${WORKDIR}/${P}-docs-path.patch"
+ "${WORKDIR}"/${P}-CVE-2008-3908.patch #211491
+ "${WORKDIR}"/${P}-CVE-2008-2149.patch #211491
+
+ "${FILESDIR}"/${P}-tcl8.6.patch
+ "${FILESDIR}"/${P}-format-security.patch
+ "${FILESDIR}"/${P}-src_stubs_c.patch
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ # Don't install all the extra docs (html, pdf, ps) without doc USE flag.
+ if ! use doc; then
+ sed -i -e "s:SUBDIRS =.*:SUBDIRS = man:" doc/Makefile.am || die
+ fi
+
+ # Drop installation of OLD tk.h headers #255590
+ sed '/^SUBDIRS/d' -i include/Makefile.am || die
+ sed 's: include/tk/Makefile::' -i configure.ac || die
+ rm -rf include/tk/ || die
+
+ rm -f configure || die
+ eautoreconf
+ MAKEOPTS+=" -e"
+}
+
+src_configure() {
+ append-cppflags -DUNIX -I"${T}"/usr/include
+
+ PLATFORM=linux WN_ROOT="${T}/usr" \
+ WN_DICTDIR="${T}/usr/share/wordnet/dict" \
+ WN_MANDIR="${T}/usr/share/man" \
+ WN_DOCDIR="${T}/usr/share/doc/wordnet-${PV}" \
+ WNHOME="${EPREFIX}/usr/share/wordnet" \
+ econf \
+ --with-tcl="${EPREFIX}"/usr/$(get_libdir) \
+ --with-tk="${EPREFIX}"/usr/$(get_libdir)
+}
diff --git a/app-dicts/wordnet/wordnet-3.0-r5.ebuild b/app-dicts/wordnet/wordnet-3.0-r5.ebuild
new file mode 100644
index 000000000000..eba742265ede
--- /dev/null
+++ b/app-dicts/wordnet/wordnet-3.0-r5.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools eutils flag-o-matic
+
+DESCRIPTION="A lexical database for the English language"
+HOMEPAGE="http://wordnet.princeton.edu/"
+SRC_URI="
+ http://wordnetcode.princeton.edu/${PV}/WordNet-${PV}.tar.gz
+ mirror://gentoo/${P}-patchset-1.tar.bz2"
+LICENSE="Princeton"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+# In contrast to what the configure script seems to imply, Tcl/Tk is NOT
+# optional. cf. bug 163478 for details. (Yes, it's about 2.1 but it's
+# still the same here.)
+DEPEND="
+ dev-lang/tcl:0=
+ dev-lang/tk:0="
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/WordNet-${PV}"
+
+PATCHES=(
+ # Don't install into PREFIX/dict but PREFIX/share/wordnet/dict
+ "${WORKDIR}/${P}-dict-location.patch"
+ # Fixes bug 130024, make an additional shared lib
+ "${WORKDIR}/${P}-shared-lib.patch"
+ # Don't install the docs directly into PREFIX/doc but PREFIX/doc/PN
+ "${WORKDIR}/${P}-docs-path.patch"
+ "${WORKDIR}"/${P}-CVE-2008-3908.patch #211491
+ "${WORKDIR}"/${P}-CVE-2008-2149.patch #211491
+
+ "${FILESDIR}"/${P}-tcl8.6.patch
+ "${FILESDIR}"/${P}-format-security.patch
+ "${FILESDIR}"/${P}-src_stubs_c.patch
+ "${FILESDIR}"/${P}-fix-indexing-bug-314799.patch
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+ eapply_user
+
+ # Don't install all the extra docs (html, pdf, ps) without doc USE flag.
+ if ! use doc; then
+ sed -i -e "s:SUBDIRS =.*:SUBDIRS = man:" doc/Makefile.am || die
+ fi
+
+ # Drop installation of OLD tk.h headers #255590
+ sed '/^SUBDIRS/d' -i include/Makefile.am || die
+ sed 's: include/tk/Makefile::' -i configure.ac || die
+ rm -rf include/tk/ || die
+
+ rm -f configure || die
+ eautoreconf
+ MAKEOPTS+=" -e"
+}
+
+src_configure() {
+ append-cppflags -DUNIX -I"${T}"/usr/include
+
+ PLATFORM=linux WN_ROOT="${T}/usr" \
+ WN_DICTDIR="${T}/usr/share/wordnet/dict" \
+ WN_MANDIR="${T}/usr/share/man" \
+ WN_DOCDIR="${T}/usr/share/doc/wordnet-${PV}" \
+ WNHOME="${EPREFIX}/usr/share/wordnet" \
+ econf \
+ --with-tcl="${EPREFIX}"/usr/$(get_libdir) \
+ --with-tk="${EPREFIX}"/usr/$(get_libdir)
+}
diff --git a/app-dicts/wordnet/wordnet-3.1.ebuild b/app-dicts/wordnet/wordnet-3.1.ebuild
new file mode 100644
index 000000000000..48f463038ef0
--- /dev/null
+++ b/app-dicts/wordnet/wordnet-3.1.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools eutils flag-o-matic
+
+DESCRIPTION="A lexical database for the English language"
+HOMEPAGE="http://wordnet.princeton.edu/"
+SRC_URI="
+ http://wordnetcode.princeton.edu/3.0/WordNet-3.0.tar.gz
+ mirror://gentoo/${PN}-3.0-patchset-1.tar.bz2
+ http://wordnetcode.princeton.edu/wn3.1.dict.tar.gz"
+LICENSE="Princeton"
+
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
+IUSE="doc"
+
+# In contrast to what the configure script seems to imply, Tcl/Tk is NOT
+# optional. cf. bug 163478 for details. (Yes, it's about 2.1 but it's
+# still the same here.)
+DEPEND="
+ dev-lang/tcl:0=
+ dev-lang/tk:0="
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/WordNet-3.0"
+
+PATCHES1=(
+ # Don't install into PREFIX/dict but PREFIX/share/wordnet/dict
+ "${WORKDIR}/"${PN}-3.0"-dict-location.patch"
+ # Fixes bug 130024, make an additional shared lib
+ "${WORKDIR}/"${PN}-3.0"-shared-lib.patch"
+ # Don't install the docs directly into PREFIX/doc but PREFIX/doc/PN
+ "${WORKDIR}/"${PN}-3.0"-docs-path.patch"
+ "${WORKDIR}"/"${PN}-3.0"-CVE-2008-3908.patch #211491
+
+ "${FILESDIR}"/"${PN}-3.0"-tcl8.6.patch
+ "${FILESDIR}"/"${PN}-3.0"-format-security.patch
+ "${FILESDIR}"/"${PN}-3.0"-src_stubs_c.patch
+ "${FILESDIR}"/"${PN}-3.0"-fix-indexing-bug-314799.patch
+)
+
+PATCHES0=(
+ "${WORKDIR}"/"${PN}-3.0"-CVE-2008-2149.patch #211491
+)
+
+src_prepare() {
+ eapply -p1 "${PATCHES1[@]}"
+ eapply -p0 "${PATCHES0[@]}"
+ eapply_user
+
+ # Don't install all the extra docs (html, pdf, ps) without doc USE flag.
+ if ! use doc; then
+ sed -i -e "s:SUBDIRS =.*:SUBDIRS = man:" doc/Makefile.am || die
+ fi
+
+ # Drop installation of OLD tk.h headers #255590
+ sed '/^SUBDIRS/d' -i include/Makefile.am || die
+ sed 's: include/tk/Makefile::' -i configure.ac || die
+ eautoreconf
+}
+
+src_configure() {
+ append-cppflags -DUNIX -I"${T}"/usr/include
+
+ PLATFORM=linux WN_ROOT="${T}/usr" \
+ WN_DICTDIR="${T}/usr/share/wordnet/dict" \
+ WN_MANDIR="${T}/usr/share/man" \
+ WN_DOCDIR="${T}/usr/share/doc/wordnet-3.0" \
+ WNHOME="${EPREFIX}/usr/share/wordnet" \
+ econf \
+ --with-tcl="${EPREFIX}"/usr/$(get_libdir) \
+ --with-tk="${EPREFIX}"/usr/$(get_libdir)
+}
+
+src_compile(){
+ emake -e || die "emake failed"
+}
+
+src_install(){
+ # For clarification, WN is still on version 3.0. Only the database files
+ # have been updated to 3.1 as a package for 3.1 does not currently exist.
+ emake -e DESTDIR="${D}" install
+ einstalldocs
+ rm -r "${D}/usr/share/wordnet/dict" || die
+ mv "${WORKDIR}/dict" "${D}/usr/share/wordnet" || die
+}
+
+pkg_postinst(){
+ elog "The WordNet 3.1 ebuild has installed WordNet v3.0 with v3.1 database files instead."
+ elog "See http://wordnet.princeton.edu/wordnet/download/current-version/ for more."
+}