commit:     844d5ea2ea3bb6b2a9e04ae7bd59bc112e545fa5
Author:     Felix Janda <felix.janda <AT> posteo <DOT> de>
AuthorDate: Fri Apr  3 16:37:20 2015 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Apr  3 19:46:07 2015 +0000
URL:        https://gitweb.gentoo.org/proj/hardened-dev.git/commit/?id=844d5ea2

app-text/hunspell: Fix for missing error.h

 .../hunspell/files/hunspell-1.3-renameexes.patch   | 135 +++++++++++++++++++++
 .../hunspell/files/hunspell-1.3.2-static-lib.patch |   9 ++
 .../files/hunspell-1.3.3-multibyte-chars.patch     |  59 +++++++++
 .../hunspell/files/hunspell-9999-error_h.patch     |  37 ++++++
 app-text/hunspell/hunspell-1.3.3-r99.ebuild        |  89 ++++++++++++++
 app-text/hunspell/metadata.xml                     |   5 +
 6 files changed, 334 insertions(+)

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 0000000..70c5b74
--- /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.2-static-lib.patch 
b/app-text/hunspell/files/hunspell-1.3.2-static-lib.patch
new file mode 100644
index 0000000..b6cc923
--- /dev/null
+++ b/app-text/hunspell/files/hunspell-1.3.2-static-lib.patch
@@ -0,0 +1,9 @@
+diff -urN hunspell-1.3.2.old/src/parsers/Makefile.am 
hunspell-1.3.2/src/parsers/Makefile.am
+--- hunspell-1.3.2.old/src/parsers/Makefile.am 2011-09-15 11:50:40.251441126 
+0200
++++ hunspell-1.3.2/src/parsers/Makefile.am     2011-09-17 06:06:50.469615528 
+0200
+@@ -1,4 +1,4 @@
+-lib_LIBRARIES=libparsers.a
++noinst_LIBRARIES=libparsers.a
+ libparsers_a_SOURCES=firstparser.cxx htmlparser.cxx \
+                     latexparser.cxx  manparser.cxx \
+                     textparser.cxx 

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 0000000..848bc8f
--- /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/files/hunspell-9999-error_h.patch 
b/app-text/hunspell/files/hunspell-9999-error_h.patch
new file mode 100644
index 0000000..9e1208f
--- /dev/null
+++ b/app-text/hunspell/files/hunspell-9999-error_h.patch
@@ -0,0 +1,37 @@
+http://sourceforge.net/p/hunspell/bugs/264/
+
+diff --git a/src/tools/munch.c b/src/tools/munch.c
+index 52e7c51..dd42fed 100644
+--- a/src/tools/munch.c
++++ b/src/tools/munch.c
+@@ -10,8 +10,10 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <limits.h>
+-#if defined(__linux__) && !defined(__ANDROID__)
++#if HAVE_ERROR_H
+ #include <error.h>
++#endif
++#if defined(__linux__) && !defined(__ANDROID__)
+ #include <errno.h>
+ #include <sys/mman.h>
+ #endif
+diff --git a/src/tools/unmunch.c b/src/tools/unmunch.c
+index c1d07a8..53915f5 100644
+--- a/src/tools/unmunch.c
++++ b/src/tools/unmunch.c
+@@ -11,8 +11,10 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+-#if defined(__linux__) && !defined(__ANDROID__)
++#if HAVE_ERROR_H
+ #include <error.h>
++#endif
++#if defined(__linux__) && !defined(__ANDROID__)
+ #include <errno.h>
+ #include <sys/mman.h>
+ #endif
+-- 
+2.0.5
+

diff --git a/app-text/hunspell/hunspell-1.3.3-r99.ebuild 
b/app-text/hunspell/hunspell-1.3.3-r99.ebuild
new file mode 100644
index 0000000..86989d1
--- /dev/null
+++ b/app-text/hunspell/hunspell-1.3.3-r99.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-text/hunspell/hunspell-1.3.3.ebuild,v 
1.4 2014/12/02 20:49:12 maekke Exp $
+
+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 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
+
+       epatch "${FILESDIR}"/${PN}-9999-error_h.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 0000000..4538a68
--- /dev/null
+++ b/app-text/hunspell/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer><email>[email protected]</email></maintainer>
+</pkgmetadata>

Reply via email to