summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Harder <radhermit@gentoo.org>2017-04-12 03:46:59 -0400
committerTim Harder <radhermit@gentoo.org>2017-04-12 03:50:28 -0400
commitfb4d262b7f065a1304b7adac35ae19d4c4f4f888 (patch)
treef044ce265d8fae1a8b82336963658637e01305ec /dev-vcs/tig
parentsys-apps/ripgrep: version bump to 0.5.1 (diff)
downloadgentoo-fb4d262b7f065a1304b7adac35ae19d4c4f4f888.tar.gz
gentoo-fb4d262b7f065a1304b7adac35ae19d4c4f4f888.tar.bz2
gentoo-fb4d262b7f065a1304b7adac35ae19d4c4f4f888.zip
dev-vcs/tig: fix segfault with split tinfo lib (bug #614590)
Diffstat (limited to 'dev-vcs/tig')
-rw-r--r--dev-vcs/tig/files/tig-2.2.1-termcap-tinfo.patch56
-rw-r--r--dev-vcs/tig/tig-2.2.1-r1.ebuild61
2 files changed, 117 insertions, 0 deletions
diff --git a/dev-vcs/tig/files/tig-2.2.1-termcap-tinfo.patch b/dev-vcs/tig/files/tig-2.2.1-termcap-tinfo.patch
new file mode 100644
index 000000000000..4b3df2ee35b7
--- /dev/null
+++ b/dev-vcs/tig/files/tig-2.2.1-termcap-tinfo.patch
@@ -0,0 +1,56 @@
+From c4aded6c8f63471b30fe171072e11407929301ac Mon Sep 17 00:00:00 2001
+From: Tim Harder <radhermit@gmail.com>
+Date: Tue, 11 Apr 2017 05:17:52 -0400
+Subject: [PATCH] Check for termcap support in split tinfo libs
+
+Previously only the main ncurses libs were checked leading to users with
+enabled unicode support (ncursesw) and split tinfo libs running into
+segfaults since the checks would fallback to setting TERMCAP_LIB=-lcurses.
+
+Fixes #568.
+---
+ tools/ax_lib_readline.m4 | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/tools/ax_lib_readline.m4 b/tools/ax_lib_readline.m4
+index 1be9125..24ca194 100644
+--- a/tools/ax_lib_readline.m4
++++ b/tools/ax_lib_readline.m4
+@@ -34,16 +34,19 @@ fi
+ AC_CACHE_VAL(bash_cv_termcap_lib,
+ [AC_CHECK_FUNC(tgetent, bash_cv_termcap_lib=libc,
+ if test "$ax_cv_curses_which" = "ncursesw"; then
+- [AC_CHECK_LIB(ncursesw, tgetent, bash_cv_termcap_lib=libncursesw)]
++ [AC_CHECK_LIB(ncursesw, tgetent, bash_cv_termcap_lib=libncursesw,
++ [AC_CHECK_LIB(tinfow, tgetent, bash_cv_termcap_lib=libtinfow)]
++ )]
+ elif test "$ax_cv_curses_which" = "ncurses"; then
+- [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses)]
++ [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
++ [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo)]
++ )]
+ elif test "$ax_cv_curses_which" = "plaincurses"; then
+ [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses)]
+ else
+ [AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
+- [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
+- bash_cv_termcap_lib=gnutermcap
+- )])]
++ bash_cv_termcap_lib=gnutermcap
++ )]
+ fi
+ )])
+ if test "X$_bash_needmsg" = "Xyes"; then
+@@ -57,6 +60,9 @@ TERMCAP_DEP="./lib/termcap/libtermcap.a"
+ elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
+ TERMCAP_LIB=-ltermcap
+ TERMCAP_DEP=
++elif test $bash_cv_termcap_lib = libtinfow; then
++TERMCAP_LIB=-ltinfow
++TERMCAP_DEP=
+ elif test $bash_cv_termcap_lib = libtinfo; then
+ TERMCAP_LIB=-ltinfo
+ TERMCAP_DEP=
+--
+2.12.0
+
diff --git a/dev-vcs/tig/tig-2.2.1-r1.ebuild b/dev-vcs/tig/tig-2.2.1-r1.ebuild
new file mode 100644
index 000000000000..0947cba842e1
--- /dev/null
+++ b/dev-vcs/tig/tig-2.2.1-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools bash-completion-r1
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/jonas/tig.git"
+ inherit git-r3 autotools
+else
+ SRC_URI="https://github.com/jonas/tig/releases/download/${P}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+fi
+
+DESCRIPTION="text mode interface for git"
+HOMEPAGE="https://jonas.github.io/tig/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="unicode"
+
+DEPEND="
+ sys-libs/ncurses:0=[unicode?]
+ sys-libs/readline:0="
+RDEPEND="${DEPEND}
+ dev-vcs/git"
+[[ ${PV} == "9999" ]] && DEPEND+=" app-text/asciidoc"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.1-tinfo.patch
+ "${FILESDIR}"/${PN}-2.2.1-termcap-tinfo.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_with unicode ncursesw)
+}
+
+src_compile() {
+ emake V=1
+ [[ ${PV} == "9999" ]] && emake V=1 doc-man doc-html
+}
+
+src_test() {
+ # workaround parallel test failures
+ emake -j1 test
+}
+
+src_install() {
+ emake DESTDIR="${D}" install install-doc-man
+ dodoc doc/manual.html README.html NEWS.html
+ newbashcomp contrib/tig-completion.bash ${PN}
+
+ docinto examples
+ dodoc contrib/*.tigrc
+}