summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Kępień <github@kempniu.pl>2016-09-07 11:36:12 +0200
committerDavid Seifert <soap@gentoo.org>2016-09-09 23:01:39 +0200
commit354f36b625a86e74d9d42e86cca496e2476c0e3a (patch)
treec37bcfdff221a062d53e77ec5366a557b837059b /app-text/aspell
parentsys-kernel/gentoo-sources: Linux patch 3.14.78 (diff)
downloadgentoo-354f36b625a86e74d9d42e86cca496e2476c0e3a.tar.gz
gentoo-354f36b625a86e74d9d42e86cca496e2476c0e3a.tar.bz2
gentoo-354f36b625a86e74d9d42e86cca496e2476c0e3a.zip
app-text/aspell: Fix building with Unicode support
* EAPI=6 * Use dep on sys-libs/ncurses using newly introduced IUSE="unicode" * Made PATCHES -p1 compliant * Fixed unicode handling by pulling in ncurses/ncursesw using PKG_CHECK_MODULES instead of automagic discovery in configure.ac * Add missing '|| die' statements Closes: https://github.com/gentoo/gentoo/pull/2269 Signed-off-by: David Seifert <soap@gentoo.org>
Diffstat (limited to 'app-text/aspell')
-rw-r--r--app-text/aspell/aspell-0.60.6.1-r4.ebuild90
-rw-r--r--app-text/aspell/files/aspell-0.60.5-solaris.patch4
-rw-r--r--app-text/aspell/files/aspell-0.60.6-darwin-bundles.patch4
-rw-r--r--app-text/aspell/files/aspell-0.60.6.1-clang.patch12
-rw-r--r--app-text/aspell/files/aspell-0.60.6.1-unicode.patch276
5 files changed, 376 insertions, 10 deletions
diff --git a/app-text/aspell/aspell-0.60.6.1-r4.ebuild b/app-text/aspell/aspell-0.60.6.1-r4.ebuild
new file mode 100644
index 000000000000..b040ac6fdbd5
--- /dev/null
+++ b/app-text/aspell/aspell-0.60.6.1-r4.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit autotools flag-o-matic libtool toolchain-funcs
+
+DESCRIPTION="A spell checker replacement for ispell"
+HOMEPAGE="http://aspell.net/"
+SRC_URI="mirror://gnu/aspell/${P}.tar.gz"
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris"
+IUSE="nls unicode"
+
+PDEPEND="app-dicts/aspell-en"
+LANGS="af be bg br ca cs cy da de de-1901 el en eo es et fi fo fr ga gl he hr
+hu hy is it la lt nl no pl pt pt-BR ro ru sk sl sr sv uk vi"
+for lang in ${LANGS}; do
+ IUSE+=" l10n_${lang}"
+ # Need to keep linguas_* for now, since aspell uses gettext
+ IUSE+=" linguas_${lang/-/_}"
+ case ${lang} in
+ de-1901) dict="de-alt" ;;
+ pt-BR) dict="pt-br" ;;
+ *) dict="${lang}" ;;
+ esac
+ PDEPEND+=" l10n_${lang}? ( app-dicts/aspell-${dict} )"
+done
+unset dict lang LANGS
+
+# English dictionary 0.5 is incompatible with aspell-0.6
+RDEPEND="
+ sys-libs/ncurses:0=[unicode?]
+ nls? ( virtual/libintl )
+ !=app-dicts/aspell-en-0.5*
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+"
+
+HTML_DOCS=( manual/aspell{,-dev}.html )
+PATCHES=(
+ "${FILESDIR}/${PN}-0.60.5-nls.patch"
+ "${FILESDIR}/${PN}-0.60.5-solaris.patch"
+ "${FILESDIR}/${PN}-0.60.6-darwin-bundles.patch"
+ "${FILESDIR}/${PN}-0.60.6.1-clang.patch"
+ # includes fix for bug #467602
+ "${FILESDIR}/${PN}-0.60.6.1-unicode.patch"
+)
+
+src_prepare() {
+ default
+
+ rm m4/lt* m4/libtool.m4 || die
+ eautoreconf
+ elibtoolize --reverse-deps
+
+ # Parallel install of libtool libraries doesn't always work.
+ # https://lists.gnu.org/archive/html/libtool/2011-03/msg00003.html
+ # This has to be after automake has run so that we don't clobber
+ # the default target that automake creates for us.
+ echo 'install-filterLTLIBRARIES: install-libLTLIBRARIES' >> Makefile.in || die
+}
+
+src_configure() {
+ econf \
+ $(use_enable nls) \
+ $(use_enable unicode) \
+ --disable-static \
+ --sysconfdir="${EPREFIX}"/etc/aspell
+}
+
+src_install() {
+ default
+
+ docinto examples
+ dodoc "${S}"/examples/*.c
+
+ # install ispell/aspell compatibility scripts
+ newbin scripts/ispell ispell-aspell
+ newbin scripts/spell spell-aspell
+
+ # we explicitly pass '--disable-static' to econf,
+ # hence we can delete .la files unconditionally
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/app-text/aspell/files/aspell-0.60.5-solaris.patch b/app-text/aspell/files/aspell-0.60.5-solaris.patch
index fc1920a4f57a..1cfc5f3e6caa 100644
--- a/app-text/aspell/files/aspell-0.60.5-solaris.patch
+++ b/app-text/aspell/files/aspell-0.60.5-solaris.patch
@@ -1,8 +1,8 @@
* grobian@gentoo.org: on Solaris 10 _XOPEN_SOURCE_EXTENDED may not be
defined when including wchar.h with g++
---- prog/check_funs.cpp
-+++ prog/check_funs.cpp
+--- a/prog/check_funs.cpp
++++ b/prog/check_funs.cpp
@@ -18,10 +18,6 @@
#include "settings.h"
diff --git a/app-text/aspell/files/aspell-0.60.6-darwin-bundles.patch b/app-text/aspell/files/aspell-0.60.6-darwin-bundles.patch
index 39178587f685..84e05833d9d8 100644
--- a/app-text/aspell/files/aspell-0.60.6-darwin-bundles.patch
+++ b/app-text/aspell/files/aspell-0.60.6-darwin-bundles.patch
@@ -5,8 +5,8 @@ Apple suggests using .bundle. libtool on Gentoo generates .bundle files
for modules on Darwin, so we need aspell to actually look for .bundle,
not .so.
---- lib/new_filter.cpp
-+++ lib/new_filter.cpp
+--- a/lib/new_filter.cpp
++++ b/lib/new_filter.cpp
@@ -458,11 +458,23 @@
module->file.assign(option_file.str(), slash + 1 - option_file.str());
//module->file += "lib";
diff --git a/app-text/aspell/files/aspell-0.60.6.1-clang.patch b/app-text/aspell/files/aspell-0.60.6.1-clang.patch
index 76cfaa868e31..8d3e62dcdf0b 100644
--- a/app-text/aspell/files/aspell-0.60.6.1-clang.patch
+++ b/app-text/aspell/files/aspell-0.60.6.1-clang.patch
@@ -1,6 +1,6 @@
From https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=180565
---- interfaces/cc/aspell.h.orig 2011-07-02 17:53:27.000000000 -0400
-+++ interfaces/cc/aspell.h 2015-07-29 11:23:32.000000000 -0400
+--- a/interfaces/cc/aspell.h
++++ b/interfaces/cc/aspell.h
@@ -237,6 +237,7 @@
/******************************** errors ********************************/
@@ -17,8 +17,8 @@ From https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=180565
/******************************* speller *******************************/
---- prog/aspell.cpp.orig 2011-07-04 05:13:58.000000000 -0400
-+++ prog/aspell.cpp 2015-07-29 11:22:57.000000000 -0400
+--- a/prog/aspell.cpp
++++ b/prog/aspell.cpp
@@ -25,6 +25,7 @@
# include <langinfo.h>
#endif
@@ -35,8 +35,8 @@ From https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=180565
#include "file_util.hpp"
#include "fstream.hpp"
#include "info.hpp"
---- prog/checker_string.hpp.orig 2011-07-02 17:09:09.000000000 -0400
-+++ prog/checker_string.hpp 2015-07-29 11:24:50.000000000 -0400
+--- a/prog/checker_string.hpp
++++ b/prog/checker_string.hpp
@@ -6,6 +6,7 @@
#include <stdio.h>
diff --git a/app-text/aspell/files/aspell-0.60.6.1-unicode.patch b/app-text/aspell/files/aspell-0.60.6.1-unicode.patch
new file mode 100644
index 000000000000..8e1957c727a9
--- /dev/null
+++ b/app-text/aspell/files/aspell-0.60.6.1-unicode.patch
@@ -0,0 +1,276 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -2,7 +2,7 @@
+ AC_CONFIG_SRCDIR(prog/aspell.cpp)
+ AC_CANONICAL_SYSTEM
+ AM_INIT_AUTOMAKE
+-AM_CONFIG_HEADER(gen/settings.h)
++AC_CONFIG_HEADERS([gen/settings.h])
+
+ AM_MAINTAINER_MODE
+
+@@ -52,14 +52,11 @@
+ AC_ARG_ENABLE(win32-relocatable,
+ [ --enable-win32-relocatable])
+
+-AC_ARG_ENABLE(curses,
+- AS_HELP_STRING([--enable-curses=LIBFILE],[cursor control library]))
++AC_ARG_ENABLE([curses],
++ AS_HELP_STRING([--enable-curses],[cursor control library]))
+
+-AC_ARG_ENABLE(curses-include,
+- [ --enable-curses-include=DIR])
+-
+-AC_ARG_ENABLE(wide-curses,
+- AS_HELP_STRING([--disable-wide-curses],[disable wide char utf8 cursor control]))
++AC_ARG_ENABLE([unicode],
++ AS_HELP_STRING([--enable-unicode],[enable Unicode support]))
+
+ AC_ARG_ENABLE(regex,
+ [ --disable-regex])
+@@ -312,197 +309,18 @@
+ [AC_MSG_RESULT(no)]
+ )
+
+-AC_SUBST(CURSES_LIB)
+-AC_SUBST(CURSES_INCLUDE)
+-
+-if test "$enable_curses" != "no"
+-then
+- use_curses=t
+- case "$enable_curses" in
+- yes | "" ) ;;
+- /* | *lib* | *.a | -l* | -L* ) CURSES_LIB="$enable_curses" ;;
+- * ) CURSES_LIB=-l$enable_curses ;;
+- esac
+- case "$enable_curses_include" in
+- yes | no | "") ;;
+- -I* ) CURSES_INCLUDE="$enable_curses_include" ;;
+- * ) CURSES_INCLUDE=-I$enable_curses_include ;;
+- esac
+-fi
+-
+-if test "$use_curses"
+-then
+-
+- ORIG_LIBS="$LIBS"
+- ORIG_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="$CURSES_INCLUDE $ORIG_CPPFLAGS"
+-
+- if test -z "$CURSES_LIB"
+- then
+-
+- AC_MSG_CHECKING(for working curses library)
+-
+- if test "$enable_wide_curses" != "no" -a -n "$have_mblen"
+- then
+- LIBS="-lncursesw $ORIG_LIBS"
+- AC_TRY_LINK(
+- [#include <ncursesw/curses.h>], [initscr()],
+- [CURSES_LIB=-lncursesw
+- AC_DEFINE(CURSES_HEADER, <ncursesw/curses.h>, [Defined to curses header file])
+- AC_DEFINE(TERM_HEADER, <ncursesw/term.h>, [Defined to term header file])])
+- fi
+-
+- if test -z "$CURSES_LIB"
+- then
+- LIBS="-lncurses $ORIG_LIBS"
+- AC_TRY_LINK(
+- [#include <ncurses/curses.h>], [initscr()],
+- [CURSES_LIB=-lncurses
+- AC_DEFINE(CURSES_HEADER, <ncurses/curses.h>, [Defined to curses header file])
+- AC_DEFINE(TERM_HEADER, <ncurses/term.h>, [Defined to term header file])],
+- [
+- LIBS="-lncurses $ORIG_LIBS"
+- AC_TRY_LINK(
+- [#include <ncurses.h>], [initscr()],
+- [CURSES_LIB=-lncurses
+- AC_DEFINE(CURSES_HEADER, <ncurses.h>, [Defined to curses header file])
+- AC_DEFINE(TERM_HEADER, <term.h>, [Defined to term header file])],
+- [
+- LIBS="-lcurses $ORIG_LIBS"
+- AC_TRY_LINK(
+- [#include <curses.h>], [initscr()],
+- [CURSES_LIB=-lcurses
+- AC_DEFINE(CURSES_HEADER, <curses.h>, [Defined to curses header file])
+- AC_DEFINE(TERM_HEADER, <term.h>, [Defined to term header file])],
+- [
+- LIBS="-lncurses $ORIG_LIBS"
+- AC_TRY_LINK(
+- [#include <curses.h>], [initscr()],
+- [CURSES_LIB=-lncurses
+- AC_DEFINE(CURSES_HEADER, <curses.h>, [Defined to curses header file])
+- AC_DEFINE(TERM_HEADER, <term.h>, [Defined to term header file])],
+- ) ]) ]) ])
+- fi
+-
+- if test -n "$CURSES_LIB"
+- then
+- AC_MSG_RESULT([found in $CURSES_LIB])
+- else
+- AC_MSG_RESULT([not found])
+- fi
+-
+- else
+-
+- AC_DEFINE(CURSES_HEADER, <curses.h>, [Defined to curses header file])
+- AC_DEFINE(TERM_HEADER, <term.h>, [Defined to term header file])
+-
+- fi
+-
+- if test -n "$CURSES_LIB"
+- then
+- LIBS="$CURSES_LIB $ORIG_LIBS"
+-
+- if test "$enable_wide_curses" != "no"
+- then
+-
+- AC_MSG_CHECKING(for wide character support in curses libraray)
+- if test -n "$have_mblen"
+- then
+- AC_TRY_LINK(
+- [#include <wchar.h>
+- #include CURSES_HEADER
+- ],
+- [wchar_t wch = 0;
+- addnwstr(&wch, 1);],
+- [AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_WIDE_CURSES, 1, [Defined if curses libraray includes wide character support])],
+- [
+-
+- AC_TRY_LINK(
+- [#define _XOPEN_SOURCE_EXTENDED 1
+- #include <wchar.h>
+- #include CURSES_HEADER
+- ],
+- [wchar_t wch = 0;
+- addnwstr(&wch, 1);],
+- [AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_WIDE_CURSES, 1)
+- AC_DEFINE(DEFINE_XOPEN_SOURCE_EXTENDED, 1,
+- [Defined if _XOPEN_SOURCE_EXTENDED needs to be defined.
+- (Can't define globally as that will cause problems with some systems)])
+- ],
+- [AC_MSG_RESULT(no)
+- AC_MSG_WARN([Aspell will not be able to Display UTF-8 characters correctly.])])])
+- else
+- AC_MSG_RESULT([no, because "mblen" is not supported])
+- AC_MSG_WARN([Aspell will not be able to Display UTF-8 characters correctly.])
+- fi
+-
+- fi
+-
+- AC_MSG_CHECKING(if standard curses include sequence will work)
+- AC_TRY_LINK(
+- [#ifdef DEFINE_XOPEN_SOURCE_EXTENDED
+- # define _XOPEN_SOURCE_EXTENDED 1
+- #endif
+- #include <termios.h>
+- #include <unistd.h>
+- #include CURSES_HEADER
+- #include TERM_HEADER
+- ],
+- [tigetstr(const_cast<char *>("cup"));],
+- [AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_LIBCURSES, 1,
+- [Defined if the curses library is available])
+- posix_termios=t
+- AC_DEFINE(CURSES_INCLUDE_STANDARD, 1,
+- [Defined if no special Workarounds are needed for Curses headers])],
+- [AC_MSG_RESULT(no)
+-
+- dnl else if
+- AC_MSG_CHECKING(if curses workaround I will work)
+- AC_TRY_LINK(
+- [#ifdef DEFINE_XOPEN_SOURCE_EXTENDED
+- # define _XOPEN_SOURCE_EXTENDED 1
+- #endif
+- #include <termios.h>
+- #include <unistd.h>
+- #include CURSES_HEADER
+- extern "C" {char * tigetstr(char * capname);}],
+- [tigetstr(const_cast<char *>("cup"));],
+- [AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_LIBCURSES, 1, [])
+- posix_termios=t
+- AC_DEFINE(CURSES_INCLUDE_WORKAROUND_1, 1,
+- [Defined if special Wordaround I is need for Curses headers])],
+- [AC_MSG_RESULT(no)
+-
+- dnl else if
+- AC_MSG_CHECKING(if curses without Unix stuff will work)
+- AC_TRY_LINK(
+- [#include CURSES_HEADER
+- ],
+- [initscr();],
+- [AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_LIBCURSES, 1, [])
+- AC_DEFINE(CURSES_ONLY, 1,
+- [Defined if curses like POSIX Functions should be used])
+- curses_only=t],
+- [AC_MSG_RESULT(no)
+-
+- dnl else
+- use_curses=false
+- CURSES_LIBS=""
+- CURSES_INCLUDE=""
+-
+- ]) ]) ])
+-
+- fi
+-
+- CPPFLAGS="$ORIG_CPPFLAGS"
+- LIBS="$ORIG_LIBS"
+-
+-fi
++AS_IF([test "x$enable_curses" != "xno"],[
++ AS_IF([test "x$enable_unicode" != "xno"],
++ [AC_DEFINE([HAVE_WIDE_CURSES], [1], [Defined if curses library includes wide character support])
++ ncurses_library="ncursesw"],
++ [ncurses_library="ncurses"])
++
++ PKG_CHECK_MODULES([NCURSES], ["$ncurses_library"])
++
++ AC_DEFINE([HAVE_LIBCURSES], [1], [Defined if the curses library is available])
++ AC_DEFINE([CURSES_INCLUDE_STANDARD], [1], [Defined if no special Workarounds are needed for Curses headers])
++ posix_termios=t
++])
+
+ if test -z "$posix_termios" -a -z "$curses_only"
+ then
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -121,7 +121,7 @@
+ # Aspell Program
+ #
+
+-AM_CPPFLAGS += -DLOCALEDIR="$(localedir)"
++AM_CPPFLAGS += -DLOCALEDIR="$(localedir)" $(NCURSES_CFLAGS)
+
+ bin_PROGRAMS = word-list-compress aspell prezip-bin
+
+@@ -129,7 +129,7 @@
+
+ aspell_SOURCES = prog/aspell.cpp prog/check_funs.cpp prog/checker_string.cpp
+
+-aspell_LDADD = libaspell.la $(CURSES_LIB) $(LTLIBINTL)
++aspell_LDADD = libaspell.la $(NCURSES_LIBS) $(LTLIBINTL)
+
+ prezip_bin_SOURCES = prog/prezip.c
+
+--- a/prog/check_funs.cpp
++++ b/prog/check_funs.cpp
+@@ -62,11 +62,11 @@
+
+ #if HAVE_LIBCURSES
+
+-#include CURSES_HEADER
++#include <curses.h>
+
+ #if CURSES_INCLUDE_STANDARD
+
+-#include TERM_HEADER
++#include <term.h>
+
+ #elif CURSES_INCLUDE_WORKAROUND_1
+