commit:     bc257c9a3f6e30f1d1d1204ef2edb3a9a94a1b26
Author:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 13 18:12:30 2022 +0000
Commit:     Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
CommitDate: Tue Nov 15 05:32:39 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc257c9a

net-ftp/ncftp: fix compilation with clang

Closes: https://bugs.gentoo.org/875458
Closes: https://github.com/gentoo/gentoo/pull/28258
Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>

 net-ftp/ncftp/files/ncftp-3.2.6-fix-clang.patch | 437 ++++++++++++++++++++++++
 net-ftp/ncftp/ncftp-3.2.6-r5.ebuild             |  58 ++++
 2 files changed, 495 insertions(+)

diff --git a/net-ftp/ncftp/files/ncftp-3.2.6-fix-clang.patch 
b/net-ftp/ncftp/files/ncftp-3.2.6-fix-clang.patch
new file mode 100644
index 000000000000..21b4a5601d36
--- /dev/null
+++ b/net-ftp/ncftp/files/ncftp-3.2.6-fix-clang.patch
@@ -0,0 +1,437 @@
+Fix compilation with clang-16
+
+aclocal.m4 contains code that no longer compiles: missing headers and missing
+return types.
+
+--- a/autoconf_local/aclocal.m4
++++ b/autoconf_local/aclocal.m4
+@@ -192,6 +192,7 @@
+ #include "pchtest.h"
+ #pragma hdrstop
+ #include <stdarg.h>
++#include <stdlib.h>
+ 
+ int main(int argc, char **argv)
+ {
+@@ -1242,7 +1243,9 @@
+ AC_MSG_CHECKING([if -D__STDC_EXT__ is needed with GCC on HP-UX])
+ AC_TRY_RUN([
+ #include <stdio.h>
++#include <stdlib.h>
+  
++int
+ main()
+ {
+ #ifdef __STDC_EXT__
+@@ -1674,7 +1677,9 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <stdio.h>
++#include <stdlib.h>
+  
++int
+ main()
+ {
+       int result;
+@@ -1816,6 +1821,7 @@
+ #     include <snprintf.h>
+ #endif
+  
++int
+ main()
+ {
+       char s[16];
+@@ -1876,6 +1882,7 @@
+ #     include <snprintf.h>
+ #endif
+  
++int
+ main()
+ {
+       int result;
+@@ -2004,7 +2011,9 @@
+ #ifdef HAVE_SYS_UN_H
+ #include <sys/un.h>
+ #endif
++#include <stdlib.h>
+  
++int
+ main()
+ {
+       int sfd;
+@@ -2088,7 +2097,9 @@
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+ #include <netdb.h>
++#include <stdlib.h>
+  
++int
+ main()
+ {
+       struct hostent *hp1, *hp2;
+@@ -2134,6 +2145,7 @@
+ #endif
+ #include <sys/types.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ 
+ /* These are needed if libwrap.a was compiled with
+  * PROCESS_OPTIONS defined.
+@@ -2238,6 +2250,7 @@
+ #include <stdio.h>
+ #include <signal.h>
+ #include <setjmp.h>
++#include <stdlib.h>
+ ],[
+       /* function-body */
+       sigjmp_buf sjb;
+@@ -2265,6 +2278,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmp.h>
++#include <stdlib.h>
+ ],[
+ struct utmp u;
+ 
+@@ -2288,6 +2302,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmp.h>
++#include <stdlib.h>
+ ],[
+ struct utmp u;
+ 
+@@ -2311,6 +2326,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmpx.h>
++#include <stdlib.h>
+ ],[
+ struct utmpx u;
+ 
+@@ -2334,6 +2350,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmpx.h>
++#include <stdlib.h>
+ ],[
+ struct utmpx u;
+ 
+@@ -2357,6 +2374,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmpx.h>
++#include <stdlib.h>
+ ],[
+ struct utmpx u;
+ 
+@@ -2380,6 +2398,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmp.h>
++#include <stdlib.h>
+ ],[
+ struct utmp u;
+ 
+@@ -2403,6 +2422,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmp.h>
++#include <stdlib.h>
+ ],[
+ struct utmp u;
+ 
+@@ -2427,6 +2447,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmp.h>
++#include <stdlib.h>
+ ],[
+ struct utmp u;
+ 
+@@ -2450,6 +2471,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <utmp.h>
++#include <stdlib.h>
+ ],[
+ struct utmp u;
+ 
+@@ -2482,6 +2504,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+  
++int
+ main()
+ {
+       size_t x = 0;
+@@ -2545,6 +2568,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+  
++int
+ main()
+ {
+       off_t x = 0;
+@@ -2608,6 +2632,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+  
++int
+ main()
+ {
+       struct stat x;
+@@ -2671,6 +2696,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+  
++int
+ main()
+ {
+       off64_t x = 0;
+@@ -2732,6 +2758,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+  
++int
+ main()
+ {
+       struct stat64 x;
+@@ -2789,6 +2816,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <stdlib.h>
+ ],[
+ struct stat64 st;
+ 
+@@ -2815,6 +2843,7 @@
+ #include <sys/uio.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <stdlib.h>
+ ],[
+ struct cmsghdr cm;
+ 
+@@ -2844,6 +2873,7 @@
+ #include <sys/uio.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <stdlib.h>
+ ],[
+ struct msghdr m;
+ 
+@@ -2872,6 +2902,7 @@
+ #include <sys/uio.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <stdlib.h>
+ ],[
+ struct msghdr m;
+ 
+@@ -2975,6 +3006,8 @@
+ #include <sys/uio.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
++#include <stdlib.h>
++#include <string.h>
+ ],[
+ struct sockaddr_un uaddr;
+ 
+@@ -3004,6 +3037,7 @@
+ #elif defined(HAVE_SYS_VFS_H)
+ #     include <sys/vfs.h>
+ #endif
++#include <stdlib.h>
+ ],[
+ struct statfs st;
+ 
+@@ -3027,6 +3061,7 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/statvfs.h>
++#include <stdlib.h>
+ ],[
+ struct statvfs st;
+ 
+@@ -3049,7 +3084,9 @@
+       /* program */
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+  
++int
+ main()
+ {
+       int result;
+@@ -3108,9 +3145,11 @@
+ #endif
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+ 
+ extern char *crypt(const char *key, const char *salt);
+ 
++int
+ main()
+ {
+       char cleartext[256];
+@@ -3182,6 +3221,7 @@
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
+ #include <netinet/in.h>
++#include <string.h>
+ #ifdef HAVE_ARPA_NAMESER_H
+ #     include <arpa/nameser.h>
+ #endif
+@@ -3327,9 +3367,11 @@
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ 
+ extern char *rl_library_version;
+ 
++int
+ main()
+ {
+       FILE *fp;
+@@ -3446,9 +3488,11 @@
+ #endif
+ #include <sys/types.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ 
+ long long hugeNumvar = 1;
+ 
++int
+ main()
+ {
+       long long hugeNumtoo = 2;
+@@ -3495,6 +3539,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
++int
+ main()
+ {
+       char s[80];
+@@ -3536,6 +3581,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
++int
+ main()
+ {
+       char s[80];
+@@ -3585,6 +3631,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
++int
+ main()
+ {
+       long long hugeNum, justAsHugeNum;
+@@ -3629,6 +3676,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
++int
+ main()
+ {
+       long long hugeNum, justAsHugeNum;
+@@ -4076,7 +4124,7 @@
+ #include <sys/select.h>
+ #endif
+ #include <sys/socket.h>       /* MG: always incl */
+-extern select 
($ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5);],,dnl
++extern int select 
($ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5);],,dnl
+         [ac_not_found=no ; break 3],ac_not_found=yes)
+       done
+      done
+@@ -4226,7 +4274,9 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>
++#include <stdlib.h>
+ 
++int
+ main()
+ {
+       exit(0);
+@@ -5023,6 +5073,7 @@
+               /* includes */
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ 
+ #ifdef HAVE_NCURSES_H
+ #     define NCURSES_OPAQUE 0
+@@ -5054,6 +5105,7 @@
+ #endif
+ 
+  
++int
+ main(int argc, char **argv)
+ {
+       /* Note:  don't actually call curses, since it may block;
+@@ -5142,6 +5194,7 @@
+ #     include <curses.h>
+ #endif
+ 
++int
+ main()
+ {
+       exit(0);
+@@ -5809,7 +5862,9 @@
+               cat <<EOF > "$vertest.c"
+ #include <stdio.h>
+ #include <gnu/libc-version.h>
++#include <stdlib.h>
+ 
++int
+ main()
+ {
+       const char *ver = gnu_get_libc_version();
+@@ -5957,6 +6012,7 @@
+ #include <stdlib.h>
+ #include <ctype.h>
+ 
++int
+ main()
+ {
+       char line[256], *cp, *cp2; 
+@@ -6109,6 +6165,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+  
++int
+ main()
+ {
+       FILE *fp;
+@@ -6166,6 +6223,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+  
++int
+ main()
+ {
+       struct stat x;
+@@ -6224,6 +6282,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+  
++int
+ main()
+ {
+       struct stat64 x;
+@@ -6457,7 +6516,8 @@
+         ac_cv_func_setvbuf_reversed,
+       [AC_TRY_RUN([#include <stdio.h>
+       /* If setvbuf has the reversed format, exit 0. */
+-      main () {
++      #include <stdlib.h>
++      int main () {
+         /* This call has the arguments reversed.
+            A reversed system may check and see that the address of main
+            is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */

diff --git a/net-ftp/ncftp/ncftp-3.2.6-r5.ebuild 
b/net-ftp/ncftp/ncftp-3.2.6-r5.ebuild
new file mode 100644
index 000000000000..c0eb310662c3
--- /dev/null
+++ b/net-ftp/ncftp/ncftp-3.2.6-r5.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit autotools toolchain-funcs
+
+DESCRIPTION="An extremely configurable ftp client"
+HOMEPAGE="https://www.ncftp.com/";
+SRC_URI="
+       https://ftp.mirrorservice.org/sites/ftp.${PN}.com/${PN}/${P}-src.tar.xz
+"
+
+LICENSE="Clarified-Artistic"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc 
~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x86-solaris"
+IUSE="pch"
+
+DEPEND="
+       sys-libs/ncurses:=
+"
+RDEPEND="
+       ${DEPEND}
+"
+BDEPEND="
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-3.2.6-fno-common.patch
+       "${FILESDIR}"/${PN}-3.2.6-fix-clang.patch # 875458
+)
+
+src_prepare() {
+       default
+
+       sed -i -e '/^AR=/d' autoconf_local/aclocal.m4 || die
+       # 727774
+       sed -i -e 's/STRIP=".*"/STRIP=":"/' autoconf_local/aclocal.m4 || die
+
+       AT_M4DIR=autoconf_local/ eautoreconf
+}
+
+src_configure() {
+       tc-export AR CC
+       LC_ALL="C" \
+       LIBS="$( $(tc-getPKG_CONFIG) --libs ncurses)" \
+               econf \
+               $(use_enable pch precomp) \
+               --disable-ccdv \
+               --disable-universal
+}
+
+src_install() {
+       default
+       dodoc README.txt doc/*.txt
+       docinto html
+       dodoc doc/html/*.html
+}

Reply via email to