diff options
author | Justin Lecher <jlec@gentoo.org> | 2016-11-26 13:24:16 +0100 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2016-11-26 13:54:59 +0100 |
commit | 6e17e19c703e2e3e99c0f4c776252197ae3a5e7a (patch) | |
tree | e58a867c51eb1fa1277cdbb107d6071ea57efef1 /dev-vcs/tig | |
parent | app-benchmarks/tiobench: 0.4.2 version bump, fix build w/ GCC-5 (diff) | |
download | gentoo-6e17e19c703e2e3e99c0f4c776252197ae3a5e7a.tar.gz gentoo-6e17e19c703e2e3e99c0f4c776252197ae3a5e7a.tar.bz2 gentoo-6e17e19c703e2e3e99c0f4c776252197ae3a5e7a.zip |
dev-vcs/tig: Add patch for ncurses[tinfo] support
Package-Manager: portage-2.3.2
Signed-off-by: Justin Lecher <jlec@gentoo.org>
Diffstat (limited to 'dev-vcs/tig')
-rw-r--r-- | dev-vcs/tig/files/tig-2.2.1-tinfo.patch | 303 | ||||
-rw-r--r-- | 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 000000000000..1cb30e76ab9d --- /dev/null +++ b/dev-vcs/tig/files/tig-2.2.1-tinfo.patch @@ -0,0 +1,303 @@ +commit 585e5d60fb85eff2e7709d63d80c320049393694 +Author: Justin Lecher <jlec@gentoo.org> +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 <jlec@gentoo.org> + +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 0e75b061b071..e6720423ec0b 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() { |