mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-23 16:49:10 -07:00
net-analyzer/tcpdump: fix configure tests with Clang 15
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -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>
|
||||
|
||||
107
net-analyzer/tcpdump/tcpdump-4.99.1-r1.ebuild
Normal file
107
net-analyzer/tcpdump/tcpdump-4.99.1-r1.ebuild
Normal file
@@ -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."
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user