commit:     6e17e19c703e2e3e99c0f4c776252197ae3a5e7a
Author:     Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 26 12:24:16 2016 +0000
Commit:     Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Sat Nov 26 12:54:59 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6e17e19c

dev-vcs/tig: Add patch for ncurses[tinfo] support

Package-Manager: portage-2.3.2
Signed-off-by: Justin Lecher <jlec <AT> gentoo.org>

 dev-vcs/tig/files/tig-2.2.1-tinfo.patch | 303 ++++++++++++++++++++++++++++++++
 dev-vcs/tig/tig-2.2.1.ebuild            |   6 +-
 2 files changed, 307 insertions(+), 2 deletions(-)

diff --git a/dev-vcs/tig/files/tig-2.2.1-tinfo.patch 
b/dev-vcs/tig/files/tig-2.2.1-tinfo.patch
new file mode 100644
index 00000000..1cb30e7
--- /dev/null
+++ b/dev-vcs/tig/files/tig-2.2.1-tinfo.patch
@@ -0,0 +1,303 @@
+commit 585e5d60fb85eff2e7709d63d80c320049393694
+Author: Justin Lecher <[email protected]>
+Date:   Sat Nov 26 12:55:42 2016 +0100
+
+    Update ax_with_curses.m4 to support pkg-config
+    
+    Latest version of ax_with_curses.m4 supports pkg-config. This is important
+    as libcurses is split into libcurses.so and libtinfo.so on many distros
+    and linking against libcurses.so is not sufficiant. Pkg-config allows
+    proper detection of necessary libs.
+    
+    Signed-off-by: Justin Lecher <[email protected]>
+
+diff --git a/config.make.in b/config.make.in
+index bf41d85..a7c9ce3 100644
+--- a/config.make.in
++++ b/config.make.in
+@@ -12,7 +12,7 @@ CC = @CC@
+ CFLAGS = @CFLAGS@ @COVERAGE_CFLAGS@
+ CPPFLAGS = @CPPFLAGS@ -DHAVE_CONFIG_H
+ LDFLAGS = @LDFLAGS@
+-LDLIBS = @LIBS@ @CURSES_LIB@
++LDLIBS = @LIBS@ @CURSES_LIBS@
+ 
+ ASCIIDOC = @ASCIIDOC@
+ XMLTO = @XMLTO@
+diff --git a/configure.ac b/configure.ac
+index 0bcfb3f..d58e2f2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,15 +21,23 @@ AC_CHECK_FUNCS([mkstemps], [AC_SUBST([NO_MKSTEMPS], 
["#"])])
+ AC_CHECK_FUNCS([setenv], [AC_SUBST([NO_SETENV], ["#"])])
+ AC_CHECK_FUNCS([strndup], [AC_SUBST([NO_STRNDUP], ["#"])])
+ 
+-AX_WITH_CURSES
+-case "$ax_cv_ncurses" in "no")
+-      AC_MSG_ERROR([ncurses not found])
+-esac
+-case "$ax_cv_ncursesw" in "no")
+-      AC_MSG_WARN([The found ncurses library does not support wide-char.])
+-      AC_MSG_WARN([This means that tig will not correctly render UTF-8.])
+-esac
+-AC_SUBST(CURSES_LIB)
++PKG_CHECK_MODULES([CURSES], [ncursesw],
++      [AC_SUBST(CURSES_LIBS)], [
++      PKG_CHECK_MODULES([CURSES], [ncurses],
++              [AC_SUBST(CURSES_LIBS)
++              AC_MSG_WARN([The found ncurses library does not support 
wide-char.])
++              AC_MSG_WARN([This means that tig will not correctly render 
UTF-8.])],[
++                      AX_WITH_CURSES
++                      case "$ax_cv_ncurses" in "no")
++                              AC_MSG_ERROR([ncurses not found])
++                      esac
++                      case "$ax_cv_ncursesw" in "no")
++                              AC_MSG_WARN([The found ncurses library does not 
support wide-char.])
++                              AC_MSG_WARN([This means that tig will not 
correctly render UTF-8.])
++                      esac
++                      AC_SUBST(CURSES_LIBS)
++              ])
++      ])
+ 
+ AX_LIB_READLINE(6.2)
+ 
+diff --git a/tools/ax_with_curses.m4 b/tools/ax_with_curses.m4
+index 33a37ac..9461eef 100644
+--- a/tools/ax_with_curses.m4
++++ b/tools/ax_with_curses.m4
+@@ -12,7 +12,9 @@
+ #   present, along with the associated header file.  The NcursesW
+ #   (wide-character) library is searched for first, followed by Ncurses,
+ #   then the system-default plain Curses.  The first library found is the
+-#   one returned.
++#   one returned. Finding libraries will first be attempted by using
++#   pkg-config, and should the pkg-config files not be available, will
++#   fallback to combinations of known flags itself.
+ #
+ #   The following options are understood: --with-ncursesw, --with-ncurses,
+ #   --without-ncursesw, --without-ncurses.  The "--with" options force the
+@@ -52,23 +54,29 @@
+ #
+ #   (These preprocessor symbols are discussed later in this document.)
+ #
+-#   The following output variable is defined by this macro; it is precious
+-#   and may be overridden on the ./configure command line:
++#   The following output variables are defined by this macro; they are
++#   precious and may be overridden on the ./configure command line:
+ #
+-#     CURSES_LIB  - library to add to xxx_LDADD
++#     CURSES_LIBS  - library to add to xxx_LDADD
++#     CURSES_CFLAGS  - include paths to add to xxx_CPPFLAGS
+ #
+-#   The library listed in CURSES_LIB is NOT added to LIBS by default. You
+-#   need to add CURSES_LIB to the appropriate xxx_LDADD line in your
+-#   Makefile.am.  For example:
++#   In previous versions of this macro, the flags CURSES_LIB and
++#   CURSES_CPPFLAGS were defined. These have been renamed, in keeping with
++#   AX_WITH_CURSES's close bigger brother, PKG_CHECK_MODULES, which should
++#   eventually supersede the use of AX_WITH_CURSES. Neither the library
++#   listed in CURSES_LIBS, nor the flags in CURSES_CFLAGS are added to LIBS,
++#   respectively CPPFLAGS, by default. You need to add both to the
++#   appropriate xxx_LDADD/xxx_CPPFLAGS line in your Makefile.am. For
++#   example:
+ #
+-#     prog_LDADD = @CURSES_LIB@
++#     prog_LDADD = @CURSES_LIBS@
++#     prog_CPPFLAGS = @CURSES_CFLAGS@
+ #
+-#   If CURSES_LIB is set on the configure command line (such as by running
+-#   "./configure CURSES_LIB=-lmycurses"), then the only header searched for
+-#   is <curses.h>.  The user may use the CPPFLAGS precious variable to
+-#   override the standard #include search path.  If the user needs to
+-#   specify an alternative path for a library (such as for a non-standard
+-#   NcurseW), the user should use the LDFLAGS variable.
++#   If CURSES_LIBS is set on the configure command line (such as by running
++#   "./configure CURSES_LIBS=-lmycurses"), then the only header searched for
++#   is <curses.h>. If the user needs to specify an alternative path for a
++#   library (such as for a non-standard NcurseW), the user should use the
++#   LDFLAGS variable.
+ #
+ #   The following shell variables may be defined by this macro:
+ #
+@@ -88,7 +96,7 @@
+ #
+ #     AX_WITH_CURSES
+ #     if test "x$ax_cv_ncursesw" != xyes && test "x$ax_cv_ncurses" != xyes; 
then
+-#         AX_MSG_ERROR([requires either NcursesW or Ncurses library])
++#         AC_MSG_ERROR([requires either NcursesW or Ncurses library])
+ #     fi
+ #
+ #   If any Curses library will do (but one must be present and must support
+@@ -182,11 +190,66 @@
+ #   modified version of the Autoconf Macro, you may extend this special
+ #   exception to the GPL to apply to your modified version as well.
+ 
+-#serial 13
++#serial 17
++
++# internal function to factorize common code that is used by both ncurses
++# and ncursesw
++AC_DEFUN([_FIND_CURSES_FLAGS], [
++    AC_MSG_CHECKING([for $1 via pkg-config])
++
++    AX_REQUIRE_DEFINED([PKG_CHECK_EXISTS])
++    _PKG_CONFIG([_ax_cv_$1_libs], [libs], [$1])
++    _PKG_CONFIG([_ax_cv_$1_cppflags], [cflags], [$1])
++
++    AS_IF([test "x$pkg_failed" = "xyes" || test "x$pkg_failed" = "xuntried"],[
++        AC_MSG_RESULT([no])
++        # No suitable .pc file found, have to find flags via fallback
++        AC_CACHE_CHECK([for $1 via fallback], [ax_cv_$1], [
++            AS_ECHO()
++            pkg_cv__ax_cv_$1_libs="-l$1"
++            pkg_cv__ax_cv_$1_cppflags="-D_GNU_SOURCE $CURSES_CFLAGS"
++            LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs"
++            CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_$1_cppflags"
++
++            AC_MSG_CHECKING([for initscr() with $pkg_cv__ax_cv_$1_libs])
++            AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])],
++                [
++                    AC_MSG_RESULT([yes])
++                    AC_MSG_CHECKING([for nodelay() with 
$pkg_cv__ax_cv_$1_libs])
++                    AC_LINK_IFELSE([AC_LANG_CALL([], [nodelay])],[
++                        ax_cv_$1=yes
++                        ],[
++                        AC_MSG_RESULT([no])
++                        m4_if(
++                            
[$1],[ncursesw],[pkg_cv__ax_cv_$1_libs="$pkg_cv__ax_cv_$1_libs -ltinfow"],
++                            
[$1],[ncurses],[pkg_cv__ax_cv_$1_libs="$pkg_cv__ax_cv_$1_libs -ltinfo"]
++                        )
++                        LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs"
++
++                        AC_MSG_CHECKING([for nodelay() with 
$pkg_cv__ax_cv_$1_libs])
++                        AC_LINK_IFELSE([AC_LANG_CALL([], [nodelay])],[
++                            ax_cv_$1=yes
++                            ],[
++                            ax_cv_$1=no
++                        ])
++                    ])
++                ],[
++                    ax_cv_$1=no
++            ])
++        ])
++        ],[
++        AC_MSG_RESULT([yes])
++        # Found .pc file, using its information
++        LIBS="$ax_saved_LIBS $pkg_cv__ax_cv_$1_libs"
++        CPPFLAGS="$ax_saved_CPPFLAGS $pkg_cv__ax_cv_$1_cppflags"
++        ax_cv_$1=yes
++    ])
++])
+ 
+ AU_ALIAS([MP_WITH_CURSES], [AX_WITH_CURSES])
+ AC_DEFUN([AX_WITH_CURSES], [
+-    AC_ARG_VAR([CURSES_LIB], [linker library for Curses, e.g. -lcurses])
++    AC_ARG_VAR([CURSES_LIBS], [linker library for Curses, e.g. -lcurses])
++    AC_ARG_VAR([CURSES_CFLAGS], [preprocessor flags for Curses, e.g. 
-I/usr/include/ncursesw])
+     AC_ARG_WITH([ncurses], [AS_HELP_STRING([--with-ncurses],
+         [force the use of Ncurses or NcursesW])],
+         [], [with_ncurses=check])
+@@ -195,20 +258,17 @@ AC_DEFUN([AX_WITH_CURSES], [
+         [], [with_ncursesw=check])
+ 
+     ax_saved_LIBS=$LIBS
++    ax_saved_CPPFLAGS=$CPPFLAGS
++
+     AS_IF([test "x$with_ncurses" = xyes || test "x$with_ncursesw" = xyes],
+         [ax_with_plaincurses=no], [ax_with_plaincurses=check])
+ 
+     ax_cv_curses_which=no
+ 
+     # Test for NcursesW
++    AS_IF([test "x$CURSES_LIBS" = x && test "x$with_ncursesw" != xno], [
++        _FIND_CURSES_FLAGS([ncursesw])
+ 
+-    AS_IF([test "x$CURSES_LIB" = x && test "x$with_ncursesw" != xno], [
+-        LIBS="$ax_saved_LIBS -lncursesw"
+-
+-        AC_CACHE_CHECK([for NcursesW wide-character library], 
[ax_cv_ncursesw], [
+-            AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])],
+-                [ax_cv_ncursesw=yes], [ax_cv_ncursesw=no])
+-        ])
+         AS_IF([test "x$ax_cv_ncursesw" = xno && test "x$with_ncursesw" = 
xyes], [
+             AC_MSG_ERROR([--with-ncursesw specified but could not find 
NcursesW library])
+         ])
+@@ -216,7 +276,8 @@ AC_DEFUN([AX_WITH_CURSES], [
+         AS_IF([test "x$ax_cv_ncursesw" = xyes], [
+             ax_cv_curses=yes
+             ax_cv_curses_which=ncursesw
+-            CURSES_LIB="-lncursesw"
++            CURSES_LIBS="$pkg_cv__ax_cv_ncursesw_libs"
++            CURSES_CFLAGS="$pkg_cv__ax_cv_ncursesw_cppflags"
+             AC_DEFINE([HAVE_NCURSESW], [1], [Define to 1 if the NcursesW 
library is present])
+             AC_DEFINE([HAVE_CURSES],   [1], [Define to 1 if a SysV or X/Open 
compatible Curses library is present])
+ 
+@@ -318,16 +379,13 @@ AC_DEFUN([AX_WITH_CURSES], [
+             ])
+         ])
+     ])
++    unset pkg_cv__ax_cv_ncursesw_libs
++    unset pkg_cv__ax_cv_ncursesw_cppflags
+ 
+     # Test for Ncurses
++    AS_IF([test "x$CURSES_LIBS" = x && test "x$with_ncurses" != xno && test 
"x$ax_cv_curses_which" = xno], [
++        _FIND_CURSES_FLAGS([ncurses])
+ 
+-    AS_IF([test "x$CURSES_LIB" = x && test "x$with_ncurses" != xno && test 
"x$ax_cv_curses_which" = xno], [
+-        LIBS="$ax_saved_LIBS -lncurses"
+-
+-        AC_CACHE_CHECK([for Ncurses library], [ax_cv_ncurses], [
+-            AC_LINK_IFELSE([AC_LANG_CALL([], [initscr])],
+-                [ax_cv_ncurses=yes], [ax_cv_ncurses=no])
+-        ])
+         AS_IF([test "x$ax_cv_ncurses" = xno && test "x$with_ncurses" = xyes], 
[
+             AC_MSG_ERROR([--with-ncurses specified but could not find Ncurses 
library])
+         ])
+@@ -335,7 +393,8 @@ AC_DEFUN([AX_WITH_CURSES], [
+         AS_IF([test "x$ax_cv_ncurses" = xyes], [
+             ax_cv_curses=yes
+             ax_cv_curses_which=ncurses
+-            CURSES_LIB="-lncurses"
++            CURSES_LIBS="$pkg_cv__ax_cv_ncurses_libs"
++            CURSES_CFLAGS="$pkg_cv__ax_cv_ncurses_cppflags"
+             AC_DEFINE([HAVE_NCURSES], [1], [Define to 1 if the Ncurses 
library is present])
+             AC_DEFINE([HAVE_CURSES],  [1], [Define to 1 if a SysV or X/Open 
compatible Curses library is present])
+ 
+@@ -390,12 +449,13 @@ AC_DEFUN([AX_WITH_CURSES], [
+             ])
+         ])
+     ])
++    unset pkg_cv__ax_cv_ncurses_libs
++    unset pkg_cv__ax_cv_ncurses_cppflags
+ 
+-    # Test for plain Curses (or if CURSES_LIB was set by user)
+-
++    # Test for plain Curses (or if CURSES_LIBS was set by user)
+     AS_IF([test "x$with_plaincurses" != xno && test "x$ax_cv_curses_which" = 
xno], [
+-        AS_IF([test "x$CURSES_LIB" != x], [
+-            LIBS="$ax_saved_LIBS $CURSES_LIB"
++        AS_IF([test "x$CURSES_LIBS" != x], [
++            LIBS="$ax_saved_LIBS $CURSES_LIBS"
+         ], [
+             LIBS="$ax_saved_LIBS -lcurses"
+         ])
+@@ -408,8 +468,8 @@ AC_DEFUN([AX_WITH_CURSES], [
+         AS_IF([test "x$ax_cv_plaincurses" = xyes], [
+             ax_cv_curses=yes
+             ax_cv_curses_which=plaincurses
+-            AS_IF([test "x$CURSES_LIB" = x], [
+-                CURSES_LIB="-lcurses"
++            AS_IF([test "x$CURSES_LIBS" = x], [
++                CURSES_LIBS="-lcurses"
+             ])
+             AC_DEFINE([HAVE_CURSES], [1], [Define to 1 if a SysV or X/Open 
compatible Curses library is present])
+ 
+@@ -515,4 +575,8 @@ AC_DEFUN([AX_WITH_CURSES], [
+     AS_IF([test "x$ax_cv_curses_obsolete" != xyes], 
[ax_cv_curses_obsolete=no])
+ 
+     LIBS=$ax_saved_LIBS
++    CPPFLAGS=$ax_saved_CPPFLAGS
++
++    unset ax_saved_LIBS
++    unset ax_saved_CPPFLAGS
+ ])dnl

diff --git a/dev-vcs/tig/tig-2.2.1.ebuild b/dev-vcs/tig/tig-2.2.1.ebuild
index 0e75b06..e672042 100644
--- a/dev-vcs/tig/tig-2.2.1.ebuild
+++ b/dev-vcs/tig/tig-2.2.1.ebuild
@@ -4,7 +4,7 @@
 
 EAPI=6
 
-inherit bash-completion-r1
+inherit autotools bash-completion-r1
 
 if [[ ${PV} == "9999" ]] ; then
        EGIT_REPO_URI="https://github.com/jonas/tig.git";
@@ -28,9 +28,11 @@ RDEPEND="${DEPEND}
        dev-vcs/git"
 [[ ${PV} == "9999" ]] && DEPEND+=" app-text/asciidoc"
 
+PATCHES=( "${FILESDIR}"/${P}-tinfo.patch )
+
 src_prepare() {
        default
-       [[ ${PV} == "9999" ]] && eautoreconf
+       eautoreconf
 }
 
 src_configure() {

Reply via email to