commit:     337fb51a0fa6a491ef4f808887f1ffab82c17612
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 16 09:28:27 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec 16 09:30:54 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=337fb51a

net-nntp/tin: fix modern C issue(s)

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

 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(+)

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 <pwd.h>
+ ],[
+       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 <unicode/unorm.h>], [
+-                      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 <sys/time.h>
+ #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
+}

Reply via email to