mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-15 08:56:58 +02:00
net-libs/libpcap: Sync with Gentoo
It's from Gentoo commit 02b17c9bb64e147affc4acecaa0ff4151b2329bf.
This commit is contained in:
parent
dd8444f6b6
commit
56977d879b
@ -0,0 +1,100 @@
|
||||
https://github.com/the-tcpdump-group/libpcap/commit/84cb8cfdbf99a5fbc8127e3f092dc4d36ab513e9
|
||||
|
||||
From 84cb8cfdbf99a5fbc8127e3f092dc4d36ab513e9 Mon Sep 17 00:00:00 2001
|
||||
From: Guy Harris <gharris@sonic.net>
|
||||
Date: Mon, 2 Aug 2021 01:04:53 -0700
|
||||
Subject: [PATCH] pcap-config: don't provide -L/usr/lib for pkg-config --libs.
|
||||
|
||||
It shouldn't be necessary, as C compilers generally look there by
|
||||
default and...
|
||||
|
||||
...it can cause problems if the libpcap you want *isn't* in /usr/lib.
|
||||
For example, on some systems that support both 32-bit and 64-bit
|
||||
executables, this might cause the 32-bit library to be found, even on
|
||||
64-bit platforms, with hilarity ensuing afterwards.
|
||||
|
||||
In particular, on Solaris 11, where /usr/lib has the 32-bit libraries
|
||||
and /usr/lib/{something} has the 64-bit libraries ({something} depends
|
||||
on whether it's SPARC or x86), that's what happens if you try to do a
|
||||
CMake build of tcpdump against the system libpcap:
|
||||
|
||||
The CMake file for finding pcap converts the -lpcap provided by
|
||||
pcap-config into the absolute path of libpcap, and that's the path of
|
||||
the 32-bit library, as it looks in /usr/lib. (CMake really wants "find
|
||||
library" scripts to supply a list of libraries giving their absolute
|
||||
paths.)
|
||||
|
||||
Thus, if you're using GCC, the tests done to find out what pcap APIs are
|
||||
available will fail, as the test programs get build 64-bit but are
|
||||
linked with the 32-bit libpcap; the link fails as you're mixing 32-bit
|
||||
and 64-bit code, and the CMake script treats that as meaning "the
|
||||
function isn't available".
|
||||
|
||||
(Sun C apparently somehow manages either to build 32-bit code by
|
||||
default, so that linking with /usr/lib/libpcap.so succeeds, or realizes
|
||||
that linking 64-bit code with /usr/lib/{library}.so is bogus and links
|
||||
with /usr/lib/{something}/libpcap.so instead.)
|
||||
|
||||
Debian removed the -L in pcap-config for similar reasons; to quote the
|
||||
comment at the beginning of the patch file:
|
||||
|
||||
Remove -L<libdir> from default pcap-config --libs output, as
|
||||
libdir is already in the default toolchain search path on
|
||||
Debian, and we want the generated script to be arch-independent.
|
||||
|
||||
(We don't remove it from the .pc file; we assume that 1) pkg-config and
|
||||
2) the packager of libpcap does what is necessary to make this work.)
|
||||
--- a/pcap-config.in
|
||||
+++ b/pcap-config.in
|
||||
@@ -41,6 +41,13 @@ do
|
||||
esac
|
||||
shift
|
||||
done
|
||||
+#
|
||||
+# If libdir isn't /usr/lib, add it to the link-time linker path.
|
||||
+#
|
||||
+if [ "$libdir" != "/usr/lib" ]
|
||||
+then
|
||||
+ LPATH=-L$libdir
|
||||
+fi
|
||||
if [ "$V_RPATH_OPT" != "" ]
|
||||
then
|
||||
#
|
||||
@@ -59,16 +66,16 @@ then
|
||||
#
|
||||
if [ "$show_cflags" = 1 -a "$show_libs" = 1 ]
|
||||
then
|
||||
- echo "-I$includedir -L$libdir -lpcap $LIBS"
|
||||
+ echo "-I$includedir $LPATH -lpcap $LIBS"
|
||||
elif [ "$show_cflags" = 1 -a "$show_additional_libs" = 1 ]
|
||||
then
|
||||
- echo "-I$includedir -L$libdir $LIBS"
|
||||
+ echo "-I$includedir $LPATH $LIBS"
|
||||
elif [ "$show_cflags" = 1 ]
|
||||
then
|
||||
echo "-I$includedir"
|
||||
elif [ "$show_libs" = 1 ]
|
||||
then
|
||||
- echo "-L$libdir -lpcap $LIBS"
|
||||
+ echo "$LPATH -lpcap $LIBS"
|
||||
elif [ "$show_additional_libs" = 1 ]
|
||||
then
|
||||
echo "$LIBS"
|
||||
@@ -80,7 +87,7 @@ else
|
||||
#
|
||||
if [ "$show_cflags" = 1 -a "$show_libs" = 1 ]
|
||||
then
|
||||
- echo "-I$includedir -L$libdir $RPATH -l$PACKAGE_NAME"
|
||||
+ echo "-I$includedir $LPATH $RPATH -l$PACKAGE_NAME"
|
||||
elif [ "$show_cflags" = 1 -a "$show_additional_libs" = 1 ]
|
||||
then
|
||||
echo "-I$includedir"
|
||||
@@ -89,6 +96,6 @@ else
|
||||
echo "-I$includedir"
|
||||
elif [ "$show_libs" = 1 ]
|
||||
then
|
||||
- echo "-L$libdir $RPATH -l$PACKAGE_NAME"
|
||||
+ echo "$LPATH $RPATH -l$PACKAGE_NAME"
|
||||
fi
|
||||
fi
|
||||
|
@ -1,14 +1,14 @@
|
||||
--- a/pcap-config.in
|
||||
+++ b/pcap-config.in
|
||||
@@ -59,16 +59,16 @@
|
||||
@@ -66,16 +66,16 @@ then
|
||||
#
|
||||
if [ "$show_cflags" = 1 -a "$show_libs" = 1 ]
|
||||
then
|
||||
- echo "-I$includedir -L$libdir -lpcap $LIBS"
|
||||
- echo "-I$includedir $LPATH -lpcap $LIBS"
|
||||
+ echo "-lpcap $LIBS"
|
||||
elif [ "$show_cflags" = 1 -a "$show_additional_libs" = 1 ]
|
||||
then
|
||||
- echo "-I$includedir -L$libdir $LIBS"
|
||||
- echo "-I$includedir $LPATH $LIBS"
|
||||
+ echo "$LIBS"
|
||||
elif [ "$show_cflags" = 1 ]
|
||||
then
|
||||
@ -16,16 +16,16 @@
|
||||
+ echo ""
|
||||
elif [ "$show_libs" = 1 ]
|
||||
then
|
||||
- echo "-L$libdir -lpcap $LIBS"
|
||||
- echo "$LPATH -lpcap $LIBS"
|
||||
+ echo "-lpcap $LIBS"
|
||||
elif [ "$show_additional_libs" = 1 ]
|
||||
then
|
||||
echo "$LIBS"
|
||||
@@ -80,15 +80,15 @@
|
||||
@@ -87,15 +87,15 @@ else
|
||||
#
|
||||
if [ "$show_cflags" = 1 -a "$show_libs" = 1 ]
|
||||
then
|
||||
- echo "-I$includedir -L$libdir $RPATH -l$PACKAGE_NAME"
|
||||
- echo "-I$includedir $LPATH $RPATH -l$PACKAGE_NAME"
|
||||
+ echo " $RPATH -l$PACKAGE_NAME"
|
||||
elif [ "$show_cflags" = 1 -a "$show_additional_libs" = 1 ]
|
||||
then
|
||||
@ -37,7 +37,7 @@
|
||||
+ echo ""
|
||||
elif [ "$show_libs" = 1 ]
|
||||
then
|
||||
- echo "-L$libdir $RPATH -l$PACKAGE_NAME"
|
||||
- echo "$LPATH $RPATH -l$PACKAGE_NAME"
|
||||
+ echo "$RPATH -l$PACKAGE_NAME"
|
||||
fi
|
||||
fi
|
@ -1,13 +0,0 @@
|
||||
Prefix' Darwin systems are single arch, hijack Darwin7 case which assumes this setup
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1860,7 +1860,7 @@
|
||||
if test "$enable_universal" != "no"; then
|
||||
case "$host_os" in
|
||||
|
||||
- darwin[[0-7]].*)
|
||||
+ darwin**)
|
||||
#
|
||||
# Pre-Tiger. Build only for 32-bit PowerPC; no
|
||||
# need for any special compiler or linker flags.
|
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
@ -20,12 +20,13 @@ else
|
||||
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 ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x86-solaris"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x86-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
IUSE="bluetooth dbus netlink rdma remote static-libs usb yydebug"
|
||||
IUSE="bluetooth dbus netlink rdma remote static-libs test usb yydebug"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
bluetooth? ( net-wireless/bluez:=[${MULTILIB_USEDEP}] )
|
||||
@ -38,7 +39,7 @@ RDEPEND="
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
sys-devel/flex
|
||||
virtual/yacc
|
||||
app-alternatives/yacc
|
||||
dbus? ( virtual/pkgconfig )
|
||||
"
|
||||
|
||||
@ -47,8 +48,15 @@ if [[ ${PV} != *9999* ]] ; then
|
||||
fi
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.9.1-pcap-config.patch
|
||||
"${FILESDIR}"/${PN}-1.10.0-usbmon.patch
|
||||
|
||||
# Drop ${P}-pcap-config-no-hardcoded-lib.patch on next release
|
||||
"${FILESDIR}"/${P}-pcap-config-no-hardcoded-lib.patch
|
||||
|
||||
# We need to keep this, it's just rebased on top of the above
|
||||
# ${P}-pcap-config-no-hardcoded-lib.patch. Drop this comment then too,
|
||||
# but keep this patch.
|
||||
"${FILESDIR}"/${PN}-1.10.1-pcap-config.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
@ -76,6 +84,11 @@ multilib_src_configure() {
|
||||
|
||||
multilib_src_compile() {
|
||||
emake all shared
|
||||
use test && emake testprogs
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
testprogs/findalldevstest || die
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
@ -15,10 +15,12 @@ else
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/tcpdump.asc
|
||||
inherit verify-sig
|
||||
|
||||
SRC_URI="https://www.tcpdump.org/release/${P}.tar.gz"
|
||||
SRC_URI+=" verify-sig? ( https://www.tcpdump.org/release/${P}.tar.gz.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 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x86-solaris"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x86-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="BSD"
|
||||
@ -36,7 +38,7 @@ RDEPEND="
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
sys-devel/flex
|
||||
virtual/yacc
|
||||
app-alternatives/yacc
|
||||
dbus? ( virtual/pkgconfig )
|
||||
"
|
||||
|
||||
@ -45,9 +47,8 @@ if [[ ${PV} != *9999* ]] ; then
|
||||
fi
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.9.1-pcap-config.patch
|
||||
"${FILESDIR}"/${PN}-1.10.0-usbmon.patch
|
||||
"${FILESDIR}"/${PN}-9999-prefix-darwin.patch
|
||||
"${FILESDIR}"/${PN}-1.10.1-pcap-config.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
|
Loading…
Reference in New Issue
Block a user