summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViorel Munteanu <ceamac@gentoo.org>2022-11-13 20:12:30 +0200
committerViorel Munteanu <ceamac@gentoo.org>2022-11-15 07:32:39 +0200
commitbc257c9a3f6e30f1d1d1204ef2edb3a9a94a1b26 (patch)
treec6434c9a87697b07dcfd75c6dc2ccf647e105b1d /net-ftp/ncftp
parentmedia-libs/libpgf: Fix installation with USE=doc (diff)
downloadgentoo-bc257c9a3f6e30f1d1d1204ef2edb3a9a94a1b26.tar.gz
gentoo-bc257c9a3f6e30f1d1d1204ef2edb3a9a94a1b26.tar.bz2
gentoo-bc257c9a3f6e30f1d1d1204ef2edb3a9a94a1b26.zip
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@gentoo.org>
Diffstat (limited to 'net-ftp/ncftp')
-rw-r--r--net-ftp/ncftp/files/ncftp-3.2.6-fix-clang.patch437
-rw-r--r--net-ftp/ncftp/ncftp-3.2.6-r5.ebuild58
2 files changed, 495 insertions, 0 deletions
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
+}