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

Closes: https://bugs.gentoo.org/900278
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2023-12-16 09:28:27 +00:00
parent c67aea5f5f
commit 337fb51a0f
2 changed files with 220 additions and 0 deletions

View File

@@ -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)

View File

@@ -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
}