commit:     4a64470630d064066a66fb31291796c346616a0f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 12 02:49:06 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Mar 12 02:49:06 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a644706

app-misc/gcal: fix ncurses detection w/ split tinfo

This may fix bug #752126 (not betting on it, but still). If it doesn't, perhaps
using ncursesw would...?

Bug: https://bugs.gentoo.org/752126
Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-misc/gcal/files/gcal-4.1-fix-ncurses.patch | 38 ++++++++++++++++
 app-misc/gcal/gcal-4.1-r3.ebuild               | 63 ++++++++++++++++++++++++++
 2 files changed, 101 insertions(+)

diff --git a/app-misc/gcal/files/gcal-4.1-fix-ncurses.patch 
b/app-misc/gcal/files/gcal-4.1-fix-ncurses.patch
new file mode 100644
index 000000000000..f429a0121d39
--- /dev/null
+++ b/app-misc/gcal/files/gcal-4.1-fix-ncurses.patch
@@ -0,0 +1,38 @@
+Without this, it'd silently (well, with a small warning in configure) fall back
+to no fancy tty stuff.
+--- a/configure.ac
++++ b/configure.ac
+@@ -319,6 +319,13 @@ if test "$gcal_cv_use_term" = yes; then
+   AC_MSG_CHECKING(for working terminal libraries)
+   SAVE_LIBS=$LIBS
+   LIBS="$LIBS $TTYLIBS"
++
++  PKG_CHECK_MODULES([NCURSES], [ncurses], [
++    TTYLIBS=$NCURSES_LIBS
++    CPPFLAGS="$NCURSES_CFLAGS $CPPFLAGS"
++    AC_DEFINE([HAVE_TTYLIBS], [1], [Link -lncurses or -ltermcap or -ltermlib 
to executable.])
++    AC_MSG_RESULT(using $TTYLIBS)
++  ], [
+   AC_TRY_LINK([#include <term.h>],
+     [tgetent(0); tgetflag(0); tgetnum(0); tgetstr(0);],
+     [gcal_ttylibs_ok=yes])
+@@ -385,7 +392,7 @@ if test "$gcal_cv_use_term" = yes; then
+     AC_MSG_WARN(note: $PACKAGE-$VERSION would work more flexible if 
libncurses.a)
+     AC_MSG_WARN(libtermcap.a or libtermlib.a are installed.)
+     AC_MSG_RESULT()
+-  fi
++  fi])
+ fi
+ 
+ dnl
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -22,7 +22,7 @@ MISC_LIBS = @LIBM@ @LIBS@
+ LIBS = $(MISC_LIBS)
+ 
+ AM_CFLAGS = -I$(top_srcdir)/lib -I$(srcdir) -I.. $(CPPFLAGS)
+-LDADD = ../lib/libgnu.a $(LIBINTL)
++LDADD = ../lib/libgnu.a $(LIBINTL) $(TTYLIBS) $(NCURSES_LIBS)
+ 
+ SRCS = \
+   file-io.c \

diff --git a/app-misc/gcal/gcal-4.1-r3.ebuild b/app-misc/gcal/gcal-4.1-r3.ebuild
new file mode 100644
index 000000000000..7af1a01b9d17
--- /dev/null
+++ b/app-misc/gcal/gcal-4.1-r3.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs
+
+DESCRIPTION="The GNU Calendar - a replacement for cal"
+HOMEPAGE="https://www.gnu.org/software/gcal/";
+SRC_URI="mirror://gnu/gcal/${P}.tar.xz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+IUSE="ncurses nls unicode"
+
+RDEPEND="nls? ( virtual/libintl )
+       unicode? ( dev-libs/libunistring:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       app-arch/xz-utils
+       nls? ( >=sys-devel/gettext-0.17 )
+"
+
+DOCS=( BUGS LIMITATIONS NEWS README THANKS TODO )
+
+PATCHES=(
+       "${FILESDIR}/${P}-glibc228.patch"
+       "${FILESDIR}/${PN}-4.1-configure-clang16.patch"
+       "${FILESDIR}/${P}-fortify.patch"
+       "${FILESDIR}/${PN}-4.1-fix-ncurses.patch"
+)
+
+src_prepare() {
+       default
+
+       eautoreconf
+}
+
+src_configure() {
+       tc-export CC
+       append-cppflags -D_GNU_SOURCE
+
+       use unicode && append-libs -lunistring
+
+       econf \
+               --disable-rpath \
+               $(use_enable nls) \
+               $(use_enable ncurses term) \
+               $(use_enable unicode)
+}
+
+src_test() {
+       default
+
+       # Do basic smoke tests to help catch issues like bug #925560
+       # where trivial 'gcal' invocation crashed w/ _F_S=3.
+       local -x PATH="${S}/src:${S}:${PATH}"
+       local bin
+       for bin in gcal2txt tcal txt2gcal gcal ; do
+               src/${bin} || die
+       done
+}

Reply via email to