From 337fb51a0fa6a491ef4f808887f1ffab82c17612 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sat, 16 Dec 2023 09:28:27 +0000 Subject: net-nntp/tin: fix modern C issue(s) Closes: https://bugs.gentoo.org/900278 Signed-off-by: Sam James --- net-nntp/tin/files/tin-2.6.2-c99.patch | 93 ++++++++++++++++++++++++ net-nntp/tin/tin-2.6.2-r2.ebuild | 127 +++++++++++++++++++++++++++++++++ 2 files changed, 220 insertions(+) create mode 100644 net-nntp/tin/files/tin-2.6.2-c99.patch create mode 100644 net-nntp/tin/tin-2.6.2-r2.ebuild (limited to 'net-nntp') diff --git a/net-nntp/tin/files/tin-2.6.2-c99.patch b/net-nntp/tin/files/tin-2.6.2-c99.patch new file mode 100644 index 000000000000..f9c9cff697f1 --- /dev/null +++ b/net-nntp/tin/files/tin-2.6.2-c99.patch @@ -0,0 +1,93 @@ +https://src.fedoraproject.org/rpms/tin/c/1f724cd60f641c3599f65e819dd2a878efa6b1a2?branch=rawhide + +diff --git a/aclocal.m4 b/aclocal.m4 +index 2891764c68c773c4..5620aad356b67762 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -3517,7 +3517,7 @@ RETSIGTYPE signal_handler (int sig) + int system_status; + wait (&wait_status); + system_status = WEXITSTATUS(wait_status); /* should be nonzero */ +- ${cf_cv_main_return:-return}(system_status != 23); ++ exit(system_status != 23); + } + + int main(void) +@@ -5173,7 +5173,7 @@ AC_CACHE_CHECK([for passwd.pw_gecos], cf_cv_pw_gecos,[ + #include + ],[ + struct passwd foo; +- char bar = foo.pw_gecos], ++ char *bar = foo.pw_gecos], + [cf_cv_pw_gecos=yes], + [cf_cv_pw_gecos=no])]) + test $cf_cv_pw_gecos = no && AC_DEFINE(DONT_HAVE_PW_GECOS,1,[Define this to 1 if passwd struct has .pw_gecos]) +diff --git a/configure b/configure +index 9e2d9ab4b6c46581..a85eaf929db2c820 100755 +--- a/configure ++++ b/configure +@@ -24209,7 +24209,8 @@ int + main (void) + { + +- int32_t needed, ustr = NULL; ++ int32_t needed; ++ const UChar *ustr = NULL; + UErrorCode status; + needed = unorm_normalize(ustr, -1, UNORM_DEFAULT, 0, NULL, 0, &status); + ; +@@ -26820,8 +26821,8 @@ cat >"conftest.$ac_ext" <<_ACEOF + int + main (void) + { +-struct timeval *tv; +-struct timezone *tz; ++struct timeval tv; ++struct timezone tz; + gettimeofday(&tv, &tz); + ; + return 0; +@@ -27669,7 +27670,7 @@ main (void) + { + + struct passwd foo; +- char bar = foo.pw_gecos ++ char *bar = foo.pw_gecos + ; + return 0; + } +@@ -28106,7 +28107,7 @@ RETSIGTYPE signal_handler (int sig) + int system_status; + wait (&wait_status); + system_status = WEXITSTATUS(wait_status); /* should be nonzero */ +- ${cf_cv_main_return:-return}(system_status != 23); ++ exit(system_status != 23); + } + + int main(void) +diff --git a/configure.in b/configure.in +index 7d24b24176f7c3a6..810eaf6158dc9b48 100644 +--- a/configure.in ++++ b/configure.in +@@ -1013,7 +1013,8 @@ AC_CHECK_HEADER(unicode/unorm.h,[ + cf_try_icuuc="no" + LIBS="$LIBS -licuuc" + AC_TRY_LINK([#include ], [ +- int32_t needed, ustr = NULL; ++ int32_t needed; ++ const UChar *ustr = NULL; + UErrorCode status; + needed = unorm_normalize(ustr, -1, UNORM_DEFAULT, 0, NULL, 0, &status);], [ + AC_DEFINE(HAVE_LIBICUUC,1,[Define this to 1 if we have libicuuc]) +@@ -1280,8 +1281,8 @@ AC_TRY_COMPILE([ + #if HAVE_SYS_TIME_H + #include + #endif], +-[struct timeval *tv; +-struct timezone *tz; ++[struct timeval tv; ++struct timezone tz; + gettimeofday(&tv, &tz);], + ac_cv_func_gettimeofday_2args=yes, ac_cv_func_gettimeofday_2args=no) + AC_MSG_RESULT($ac_cv_func_gettimeofday_2args) + diff --git a/net-nntp/tin/tin-2.6.2-r2.ebuild b/net-nntp/tin/tin-2.6.2-r2.ebuild new file mode 100644 index 000000000000..9eb463615776 --- /dev/null +++ b/net-nntp/tin/tin-2.6.2-r2.ebuild @@ -0,0 +1,127 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit optfeature toolchain-funcs + +DESCRIPTION="A threaded NNTP and spool based UseNet newsreader" +HOMEPAGE="http://www.tin.org/" +SRC_URI="ftp://ftp.tin.org/pub/news/clients/tin/stable/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="cancel-locks debug gnutls gpg libtls nls sasl socks5 ssl" + +RDEPEND=" + dev-libs/icu:= + dev-libs/libpcre2:= + dev-libs/uulib + sys-libs/ncurses:= + virtual/libiconv + cancel-locks? ( >=net-libs/canlock-3.0:= ) + gpg? ( app-crypt/gnupg ) + nls? ( virtual/libintl ) + sasl? ( net-misc/gsasl[client] ) + socks5? ( net-proxy/dante ) + ssl? ( + gnutls? ( net-libs/gnutls:= ) + !gnutls? ( + libtls? ( dev-libs/libretls:= ) + !libtls? ( dev-libs/openssl:= ) + ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-alternatives/yacc + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +QA_CONFIG_IMPL_DECL_SKIP=( + # Windows only (bug #900278) + memset_s +) + +PATCHES=( + "${FILESDIR}"/${P}-gnutls.patch + "${FILESDIR}"/${PN}-2.6.2-c99.patch +) + +DOCS=( + README{,.MAC,.WIN} + doc/{CHANGES{,.old},CREDITS,TODO,WHATSNEW,filtering} +) + +src_configure() { + tc-export AR CC RANLIB + tc-export_build_env + + # The build incorrectly discards its local -I if $CPPFLAGS is set. + if [[ -n ${BUILD_CPPFLAGS} ]]; then + BUILD_CPPFLAGS+=' -I$(INCDIR)' + fi + + local myeconfargs=( + $(use_enable cancel-locks) + $(use_with cancel-locks canlock) + + $(use_enable debug) + $(use_enable gpg pgp-gpg) + $(use_enable nls) + $(use_with socks5 socks) + --disable-mime-strict-charset + --enable-nntp + --enable-prototypes + --without-pcre + --with-pcre2-config + --with-coffee # easter egg :) + --with-nntp-default-server="${TIN_DEFAULT_SERVER:-${NNTPSERVER:-news.gmane.io}}" + --with-screen=ncursesw + ) + + if use ssl; then + if use gnutls; then + myeconfargs+=( --with-nntps=gnutls ) + elif use libtls; then + myeconfargs+=( --with-nntps=libtls ) + else + myeconfargs+=( --with-nntps=openssl ) + fi + fi + + myeconfargs+=( + # set default paths for utilities + --with-editor="${EPREFIX}"/usr/libexec/editor + --with-gpg="${EPREFIX}"/usr/bin/gpg + --with-ispell="${EPREFIX}"/usr/bin/aspell + --with-mailer="${EPREFIX}"/bin/mail + --with-sum="${EPREFIX}"/usr/bin/sum + + # set default paths for directories + --with-libdir="${EPREFIX}"/var/lib/news + --with-spooldir="${EPREFIX}"/var/spool/news + ) + + econf "${myeconfargs[@]}" +} + +src_compile() { + # To build from the root dir you have to call `make build`, not just `make`. + emake build +} + +src_install() { + default + + emake DESTDIR="${D}" install_sysdefs + emake -C src DESTDIR="${D}" install_nls_man + + dodoc doc/{*.sample,*.txt} +} + +pkg_postinst() { + optfeature "spell checker support" app-text/aspell +} -- cgit v1.2.3-65-gdbad