summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-09-12 17:36:24 +0100
committerSam James <sam@gentoo.org>2022-09-12 17:36:24 +0100
commit4ca5410ef9f7e96556900cc9e2240d856f913e7a (patch)
treea97d5af6e80ffe2bbc7dca3d96c896c71082b01f /net-analyzer
parentsys-apps/portage: drop 3.0.34, 3.0.35 (diff)
downloadgentoo-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.patch57
-rw-r--r--net-analyzer/tcpdump/tcpdump-4.99.1-r1.ebuild107
-rw-r--r--net-analyzer/tcpdump/tcpdump-9999.ebuild2
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