diff options
Diffstat (limited to 'app-text/hunspell')
-rw-r--r-- | app-text/hunspell/Manifest | 1 | ||||
-rw-r--r-- | app-text/hunspell/files/hunspell-1.3-renameexes.patch | 135 | ||||
-rw-r--r-- | app-text/hunspell/files/hunspell-1.3.3-multibyte-chars.patch | 59 | ||||
-rw-r--r-- | app-text/hunspell/hunspell-1.3.3.ebuild | 86 | ||||
-rw-r--r-- | app-text/hunspell/metadata.xml | 10 |
5 files changed, 291 insertions, 0 deletions
diff --git a/app-text/hunspell/Manifest b/app-text/hunspell/Manifest new file mode 100644 index 000000000000..6086c5a90c39 --- /dev/null +++ b/app-text/hunspell/Manifest @@ -0,0 +1 @@ +DIST hunspell-1.3.3.tar.gz 986081 SHA256 a7b2c0de0e2ce17426821dc1ac8eb115029959b3ada9d80a81739fa19373246c SHA512 7599981d002a4a032c41c83f6287243a4942b0e25c408049a3ba86c16f63ce964800a3ac325ace0402b0d7256690c4a4151a66f19a8f58cc455af0498bb1af04 WHIRLPOOL c10f7f7b326ce886bd031da29e9e04a1f4a5914f24cbe75061ed539958e7a8efaa4d4ea16f2b17437c63d97d6f558a27c092bc43c9f56c75078667d5344402f8 diff --git a/app-text/hunspell/files/hunspell-1.3-renameexes.patch b/app-text/hunspell/files/hunspell-1.3-renameexes.patch new file mode 100644 index 000000000000..70c5b748edba --- /dev/null +++ b/app-text/hunspell/files/hunspell-1.3-renameexes.patch @@ -0,0 +1,135 @@ +=== modified file 'src/tools/Makefile.am' +--- src/tools/Makefile.am 2011-05-24 15:55:29 +0000 ++++ src/tools/Makefile.am 2011-05-24 15:58:36 +0000 +@@ -1,4 +1,4 @@ +-bin_PROGRAMS=analyze chmorph hunspell munch unmunch hzip hunzip ++bin_PROGRAMS=hunspell-analyze hunspell-chmorph hunspell hunspell-munch hunspell-unmunch hzip hunzip + + INCLUDES=-I${top_srcdir}/src/hunspell -I${top_srcdir}/src/parsers + +@@ -6,8 +6,8 @@ + hunzip_SOURCES=hunzip.cxx + hunzip_LDADD = ../hunspell/libhunspell-1.3.la + +-munch_SOURCES=munch.c munch.h +-unmunch_SOURCES=unmunch.c unmunch.h ++hunspell_munch_SOURCES=munch.c munch.h ++hunspell_unmunch_SOURCES=unmunch.c unmunch.h + + example_SOURCES=example.cxx + example_LDADD = ../hunspell/libhunspell-1.3.la +@@ -16,11 +16,11 @@ + hunspell_LDADD = @LIBINTL@ @LIBICONV@ ../parsers/libparsers.a \ + ../hunspell/libhunspell-1.3.la @CURSESLIB@ @READLINELIB@ + +-analyze_SOURCES=analyze.cxx +-analyze_LDADD = ../hunspell/libhunspell-1.3.la ++hunspell_analyze_SOURCES=analyze.cxx ++hunspell_analyze_LDADD = ../hunspell/libhunspell-1.3.la + +-chmorph_SOURCES=chmorph.cxx +-chmorph_LDADD = ../parsers/libparsers.a ../hunspell/libhunspell-1.3.la ++hunspell_chmorph_SOURCES=chmorph.cxx ++hunspell_chmorph_LDADD = ../parsers/libparsers.a ../hunspell/libhunspell-1.3.la + + noinst_PROGRAMS=example + + +=== modified file 'src/tools/chmorph.cxx' +--- src/tools/chmorph.cxx 2011-05-24 15:55:29 +0000 ++++ src/tools/chmorph.cxx 2011-05-24 16:00:54 +0000 +@@ -19,11 +19,11 @@ + for (int i = 1; i < 6; i++) + if (!argv[i]) { + fprintf(stderr, +- "chmorph - change affixes by morphological analysis and generation\n" +- "correct syntax is:\nchmorph affix_file " ++ "hunspell-chmorph - change affixes by morphological analysis and generation\n" ++ "correct syntax is:\nhunspell-chmorph affix_file " + "dictionary_file file_to_convert STRING1 STRING2\n" + "STRINGS may be arbitrary parts of the morphological descriptions\n" +- "example: chmorph hu.aff hu.dic hu.txt SG_2 SG_3 " ++ "example: hunspell-chmorph hu.aff hu.dic hu.txt SG_2 SG_3 " + " (convert informal Hungarian second person texts to formal third person texts)\n"); + exit(1); + } + +=== modified file 'src/tools/example.cxx' +--- src/tools/example.cxx 2011-05-24 15:55:29 +0000 ++++ src/tools/example.cxx 2011-05-24 15:55:37 +0000 +@@ -17,8 +17,8 @@ + /* first parse the command line options */ + + if (argc < 4) { +- fprintf(stderr,"example (now it works with more dictionary files):\n"); +- fprintf(stderr,"example affix_file dictionary_file(s) file_of_words_to_check\n"); ++ fprintf(stderr,"hunspell-example (now it works with more dictionary files):\n"); ++ fprintf(stderr,"hunspell-example affix_file dictionary_file(s) file_of_words_to_check\n"); + exit(1); + } + + +=== modified file 'src/tools/munch.c' +--- src/tools/munch.c 2011-05-24 15:55:29 +0000 ++++ src/tools/munch.c 2011-05-24 15:55:37 +0000 +@@ -42,14 +42,14 @@ + wf = mystrdup(argv[1]); + } else { + fprintf(stderr,"correct syntax is:\n"); +- fprintf(stderr,"munch word_list_file affix_file\n"); ++ fprintf(stderr,"hunspell-munch word_list_file affix_file\n"); + exit(1); + } + if (argv[2]) { + af = mystrdup(argv[2]); + } else { + fprintf(stderr,"correct syntax is:\n"); +- fprintf(stderr,"munch word_list_file affix_file\n"); ++ fprintf(stderr,"hunspell-munch word_list_file affix_file\n"); + exit(1); + } + + +=== modified file 'src/tools/unmunch.c' +--- src/tools/unmunch.c 2011-05-24 15:55:29 +0000 ++++ src/tools/unmunch.c 2011-05-24 15:55:37 +0000 +@@ -39,14 +39,14 @@ + wf = mystrdup(argv[1]); + } else { + fprintf(stderr,"correct syntax is:\n"); +- fprintf(stderr,"unmunch dic_file affix_file\n"); ++ fprintf(stderr,"hunspell-unmunch dic_file affix_file\n"); + exit(1); + } + if (argv[2]) { + af = mystrdup(argv[2]); + } else { + fprintf(stderr,"correct syntax is:\n"); +- fprintf(stderr,"unmunch dic_file affix_file\n"); ++ fprintf(stderr,"hunspell-unmunch dic_file affix_file\n"); + exit(1); + } + + +=== modified file 'tests/test.sh' +--- tests/test.sh 2011-05-24 15:55:29 +0000 ++++ tests/test.sh 2011-05-24 15:55:37 +0000 +@@ -34,7 +34,7 @@ + shopt -s expand_aliases + + alias hunspell='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la ../src/tools/hunspell' +-alias analyze='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la ../src/tools/analyze' ++alias analyze='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la ../src/tools/hunspell-analyze' + + if [ "$VALGRIND" != "" ]; then + rm -f $TEMPDIR/test.pid* +@@ -43,7 +43,7 @@ + fi + + alias hunspell='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la valgrind --tool=$VALGRIND --leak-check=yes --show-reachable=yes --log-file=$TEMPDIR/test.pid ../src/tools/hunspell' +- alias analyze='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la valgrind --tool=$VALGRIND --leak-check=yes --show-reachable=yes --log-file=$TEMPDIR/test.pid ../src/tools/analyze' ++ alias analyze='../libtool --mode=execute -dlopen ../src/hunspell/.libs/libhunspell*.la valgrind --tool=$VALGRIND --leak-check=yes --show-reachable=yes --log-file=$TEMPDIR/test.pid ../src/tools/hunspell-analyze' + fi + + # Tests good words + diff --git a/app-text/hunspell/files/hunspell-1.3.3-multibyte-chars.patch b/app-text/hunspell/files/hunspell-1.3.3-multibyte-chars.patch new file mode 100644 index 000000000000..848bc8fe8950 --- /dev/null +++ b/app-text/hunspell/files/hunspell-1.3.3-multibyte-chars.patch @@ -0,0 +1,59 @@ +http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7781#31 +https://bugs.gentoo.org/518740 + +--- src/tools/hunspell.cxx ++++ src/tools/hunspell.cxx +@@ -710,13 +748,22 @@ if (pos >= 0) { + fflush(stdout); + } else { + char ** wlst = NULL; +- int ns = pMS[d]->suggest(&wlst, token); ++ int byte_offset = parser->get_tokenpos() + pos; ++ int char_offset = 0; ++ if (strcmp(io_enc, "UTF-8") == 0) { ++ for (int i = 0; i < byte_offset; i++) { ++ if ((buf[i] & 0xc0) != 0x80) ++ char_offset++; ++ } ++ } else { ++ char_offset = byte_offset; ++ } ++ int ns = pMS[d]->suggest(&wlst, chenc(token, io_enc, dic_enc[d])); + if (ns == 0) { +- fprintf(stdout,"# %s %d", token, +- parser->get_tokenpos() + pos); ++ fprintf(stdout,"# %s %d", token, char_offset); + } else { + fprintf(stdout,"& %s %d %d: ", token, ns, +- parser->get_tokenpos() + pos); ++ char_offset); + fprintf(stdout,"%s", chenc(wlst[0], dic_enc[d], io_enc)); + } + for (int j = 1; j < ns; j++) { +@@ -745,13 +792,23 @@ if (pos >= 0) { + if (root) free(root); + } else { + char ** wlst = NULL; ++ int byte_offset = parser->get_tokenpos() + pos; ++ int char_offset = 0; ++ if (strcmp(io_enc, "UTF-8") == 0) { ++ for (int i = 0; i < byte_offset; i++) { ++ if ((buf[i] & 0xc0) != 0x80) ++ char_offset++; ++ } ++ } else { ++ char_offset = byte_offset; ++ } + int ns = pMS[d]->suggest(&wlst, chenc(token, io_enc, dic_enc[d])); + if (ns == 0) { + fprintf(stdout,"# %s %d", chenc(token, io_enc, ui_enc), +- parser->get_tokenpos() + pos); ++ char_offset); + } else { + fprintf(stdout,"& %s %d %d: ", chenc(token, io_enc, ui_enc), ns, +- parser->get_tokenpos() + pos); ++ char_offset); + fprintf(stdout,"%s", chenc(wlst[0], dic_enc[d], ui_enc)); + } + for (int j = 1; j < ns; j++) { + diff --git a/app-text/hunspell/hunspell-1.3.3.ebuild b/app-text/hunspell/hunspell-1.3.3.ebuild new file mode 100644 index 000000000000..a83d9e4e0f36 --- /dev/null +++ b/app-text/hunspell/hunspell-1.3.3.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit eutils multilib autotools flag-o-matic versionator + +MY_P=${PN}-${PV/_beta/b} + +DESCRIPTION="Hunspell spell checker - an improved replacement for myspell in OOo" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" +HOMEPAGE="http://hunspell.sourceforge.net/" + +SLOT="0" +LICENSE="MPL-1.1 GPL-2 LGPL-2.1" +IUSE="ncurses nls readline static-libs" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" + +RDEPEND=" + ncurses? ( sys-libs/ncurses ) + readline? ( sys-libs/readline )" +DEPEND="${RDEPEND} + sys-devel/gettext" + +# describe properly mi +LANGS="af bg ca cs cy da de el en eo es et fo fr ga gl he hr hu ia id is it km +ku lt lv mk ms nb nl nn pl pt pt_BR ro ru sk sl sq sv sw tn uk zu" + +DICT_DEP="app-dicts/myspell-en" +for lang in ${LANGS}; do + if [[ ${lang} == de ]] ; then + DICT_DEP+=" linguas_de? ( + || ( + app-dicts/myspell-de + app-dicts/myspell-de-alt + ) + )" + else + DICT_DEP+=" linguas_${lang}? ( app-dicts/myspell-${lang/pt_BR/pt-br} )" + fi + IUSE+=" linguas_${lang}" +done +PDEPEND="${DICT_DEP}" + +unset lang LANGS DICT_DEP + +S=${WORKDIR}/${MY_P} + +DOCS=( + AUTHORS ChangeLog NEWS README THANKS TODO license.hunspell + AUTHORS.myspell README.myspell license.myspell +) + +src_prepare() { + # Upstream package creates some executables which names are too generic + # to be placed in /usr/bin - this patch prefixes them with 'hunspell-'. + # It modifies a Makefile.am file, hence eautoreconf. + epatch "${FILESDIR}"/${PN}-1.3-renameexes.patch \ + "${FILESDIR}"/${PN}-1.3.3-multibyte-chars.patch + eautoreconf +} + +src_configure() { + # missing somehow, and I am too lazy to fix it properly + [[ ${CHOST} == *-darwin* ]] && append-libs -liconv + + # I wanted to put the include files in /usr/include/hunspell. + # You can do that, libreoffice can find them anywhere, just + # ping me when you do so ; -- scarabeus + econf \ + $(use_enable nls) \ + $(use_with ncurses ui) \ + $(use_with readline readline) \ + $(use_enable static-libs static) +} + +src_install() { + default + + prune_libtool_files --all + + #342449 + pushd "${ED}"/usr/$(get_libdir)/ >/dev/null + ln -s lib${PN}{-$(get_major_version).$(get_version_component_range 2).so.0.0.0,.so} + popd >/dev/null +} diff --git a/app-text/hunspell/metadata.xml b/app-text/hunspell/metadata.xml new file mode 100644 index 000000000000..69445b065e66 --- /dev/null +++ b/app-text/hunspell/metadata.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>maintainer-needed@gentoo.org</email> + </maintainer> + <upstream> + <remote-id type="sourceforge">hunspell</remote-id> + </upstream> +</pkgmetadata> |