diff options
author | Sam James <sam@gentoo.org> | 2022-09-12 17:36:24 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-09-12 17:36:24 +0100 |
commit | 4ca5410ef9f7e96556900cc9e2240d856f913e7a (patch) | |
tree | a97d5af6e80ffe2bbc7dca3d96c896c71082b01f /net-analyzer | |
parent | sys-apps/portage: drop 3.0.34, 3.0.35 (diff) | |
download | gentoo-4ca5410ef9f7e96556900cc9e2240d856f913e7a.tar.gz gentoo-4ca5410ef9f7e96556900cc9e2240d856f913e7a.tar.bz2 gentoo-4ca5410ef9f7e96556900cc9e2240d856f913e7a.zip |
net-analyzer/tcpdump: fix configure tests with Clang 15
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-analyzer')
-rw-r--r-- | net-analyzer/tcpdump/files/tcpdump-4.99.1-clang15-configure.patch | 57 | ||||
-rw-r--r-- | net-analyzer/tcpdump/tcpdump-4.99.1-r1.ebuild | 107 | ||||
-rw-r--r-- | net-analyzer/tcpdump/tcpdump-9999.ebuild | 2 |
3 files changed, 165 insertions, 1 deletions
diff --git a/net-analyzer/tcpdump/files/tcpdump-4.99.1-clang15-configure.patch b/net-analyzer/tcpdump/files/tcpdump-4.99.1-clang15-configure.patch new file mode 100644 index 000000000000..ed8a353d8c98 --- /dev/null +++ b/net-analyzer/tcpdump/files/tcpdump-4.99.1-clang15-configure.patch @@ -0,0 +1,57 @@ +https://github.com/the-tcpdump-group/tcpdump/pull/1007 + +From 4fa4e8db882b6298f5504d866665441ba7594df3 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Mon, 12 Sep 2022 17:28:58 +0100 +Subject: [PATCH] configure.ac: fix configure tests broken with Clang 15 + (implicit function declarations) + +Clang 15 makes implicit function declarations fatal by default which +leads to some of tcpdump's configure tests silently failing/returning +the wrong result. + +This adds the needed #includes to various tests for the functions used, +resolving the following errors: +``` +net-analyzer/tcpdump-4.99.1/clang15.log:47:error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] +net-analyzer/tcpdump-4.99.1/clang15.log:51:error: call to undeclared library function 'strcmp' with type 'int (const char *, const char *)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] +net-analyzer/tcpdump-4.99.1/clang15.log:55:error: call to undeclared library function 'sscanf' with type 'int (const char *restrict, const char *restrict, ...)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] +net-analyzer/tcpdump-4.99.1/clang15.log:68:error: call to undeclared library function 'memset' with type 'void *(void *, int, unsigned long)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] +net-analyzer/tcpdump-4.99.1/clang15.log:112:error: call to undeclared function 'ether_ntohost'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] +net-analyzer/tcpdump-4.99.1/clang15.log:115:error: call to undeclared library function 'exit' with type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] +``` + +Signed-off-by: Sam James <sam@gentoo.org> +--- a/configure.ac ++++ b/configure.ac +@@ -87,8 +87,11 @@ if test "x$with_smi" != "xno" ; then + AC_TRY_RUN( + [ + /* libsmi available check */ ++#include <stdio.h> ++#include <stdlib.h> ++#include <string.h> + #include <smi.h> +-main() ++int main() + { + int current, revision, age, n; + const int required = 2; +@@ -264,6 +267,7 @@ AC_COMPILE_IFELSE( + [ + AC_LANG_SOURCE( + [[ ++#include <string.h> + /* AF_INET6 available check */ + #include <sys/types.h> + #ifdef _WIN32 +@@ -473,6 +477,8 @@ AC_CHECK_FUNCS(ether_ntohost, [ + AC_CACHE_CHECK(for buggy ether_ntohost, ac_cv_buggy_ether_ntohost, [ + AC_TRY_RUN([ + #include <netdb.h> ++ #include <netinet/ether.h> ++ #include <stdlib.h> + #include <sys/types.h> + #include <sys/param.h> + #include <sys/socket.h> + diff --git a/net-analyzer/tcpdump/tcpdump-4.99.1-r1.ebuild b/net-analyzer/tcpdump/tcpdump-4.99.1-r1.ebuild new file mode 100644 index 000000000000..9f6735a93cdc --- /dev/null +++ b/net-analyzer/tcpdump/tcpdump-4.99.1-r1.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="A tool for network monitoring and data acquisition" +HOMEPAGE="https://www.tcpdump.org/ https://github.com/the-tcpdump-group/tcpdump" + +if [[ ${PV} == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/the-tcpdump-group/tcpdump" +else + VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/tcpdump.asc + inherit verify-sig + + # Note: drop -upstream on bump, this is just because we switched to the official + # distfiles for verify-sig + SRC_URI="https://www.tcpdump.org/release/${P}.tar.gz -> ${P}-upstream.tar.gz" + SRC_URI+=" verify-sig? ( https://www.tcpdump.org/release/${P}.tar.gz.sig -> ${P}-upstream.tar.gz.sig )" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +fi + +LICENSE="BSD" +SLOT="0" +IUSE="+drop-root +smi +ssl +samba suid test" +REQUIRED_USE="test? ( samba )" + +RESTRICT="!test? ( test )" +# Assorted failures: bug #768498 +#RESTRICT="test" + +RDEPEND=" + >=net-libs/libpcap-1.10.1 + drop-root? ( + acct-group/pcap + acct-user/pcap + sys-libs/libcap-ng + ) + smi? ( net-libs/libsmi ) + ssl? ( + >=dev-libs/openssl-0.9.6m:0= + ) + suid? ( + acct-group/pcap + acct-user/pcap + ) +" +DEPEND=" + ${RDEPEND} + test? ( + dev-lang/perl + ) +" +BDEPEND="drop-root? ( virtual/pkgconfig )" + +if [[ ${PV} != *9999* ]] ; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-tcpdump )" +fi + +PATCHES=( + "${FILESDIR}"/${PN}-9999-libdir.patch + "${FILESDIR}"/${PN}-4.99.1-clang15-configure.patch +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + econf \ + $(use_enable samba smb) \ + $(use_with drop-root cap-ng) \ + $(use_with drop-root chroot '') \ + $(use_with smi) \ + $(use_with ssl crypto "${ESYSROOT}/usr") \ + $(usex drop-root "--with-user=pcap" "") +} + +src_test() { + if [[ ${EUID} -ne 0 ]] || ! use drop-root ; then + emake check + else + ewarn "If you want to run the test suite, make sure you either" + ewarn "set FEATURES=userpriv or set USE=-drop-root" + fi +} + +src_install() { + dosbin tcpdump + doman tcpdump.1 + dodoc *.awk + dodoc CHANGES CREDITS README.md + + if use suid ; then + fowners root:pcap /usr/sbin/tcpdump + fperms 4110 /usr/sbin/tcpdump + fi +} + +pkg_postinst() { + use suid && elog "To let normal users run tcpdump, add them to the pcap group." +} diff --git a/net-analyzer/tcpdump/tcpdump-9999.ebuild b/net-analyzer/tcpdump/tcpdump-9999.ebuild index ac9b01e80aa8..63bf6ed96b92 100644 --- a/net-analyzer/tcpdump/tcpdump-9999.ebuild +++ b/net-analyzer/tcpdump/tcpdump-9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit autotools |