commit:     354f36b625a86e74d9d42e86cca496e2476c0e3a
Author:     Michał Kępień <github <AT> kempniu <DOT> pl>
AuthorDate: Wed Sep  7 09:36:12 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Fri Sep  9 21:01:39 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=354f36b6

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 <AT> gentoo.org>

 app-text/aspell/aspell-0.60.6.1-r4.ebuild          |  90 +++++++
 app-text/aspell/files/aspell-0.60.5-solaris.patch  |   4 +-
 .../files/aspell-0.60.6-darwin-bundles.patch       |   4 +-
 app-text/aspell/files/aspell-0.60.6.1-clang.patch  |  12 +-
 .../aspell/files/aspell-0.60.6.1-unicode.patch     | 276 +++++++++++++++++++++
 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 00000000..b040ac6
--- /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 fc1920a..1cfc5f3 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 @@
 * [email protected]: 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 3917858..84e0583 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 76cfaa8..8d3e62d 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 00000000..8e1957c
--- /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
+ 

Reply via email to