From ce7ef2269c36d8f07ae4f578b84dda2454dee5e4 Mon Sep 17 00:00:00 2001 From: Jeroen Roovers Date: Thu, 9 Jan 2020 13:53:45 +0100 Subject: net-libs/libpcap: USE=remote, EAPI=7, strip pcap-config -L/usr/lib Package-Manager: Portage-2.3.84, Repoman-2.3.20 Signed-off-by: Jeroen Roovers --- .../libpcap/files/libpcap-1.9.1-pcap-config.patch | 43 ++++++++++++ net-libs/libpcap/libpcap-1.9.1-r1.ebuild | 78 ++++++++++++++++++++++ net-libs/libpcap/libpcap-9999.ebuild | 12 ++-- net-libs/libpcap/metadata.xml | 1 + 4 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 net-libs/libpcap/files/libpcap-1.9.1-pcap-config.patch create mode 100644 net-libs/libpcap/libpcap-1.9.1-r1.ebuild diff --git a/net-libs/libpcap/files/libpcap-1.9.1-pcap-config.patch b/net-libs/libpcap/files/libpcap-1.9.1-pcap-config.patch new file mode 100644 index 000000000000..937273c43ff0 --- /dev/null +++ b/net-libs/libpcap/files/libpcap-1.9.1-pcap-config.patch @@ -0,0 +1,43 @@ +--- a/pcap-config.in ++++ b/pcap-config.in +@@ -59,16 +59,16 @@ + # + if [ "$show_cflags" = 1 -a "$show_libs" = 1 ] + then +- echo "-I$includedir -L$libdir -lpcap $LIBS" ++ echo "-lpcap $LIBS" + elif [ "$show_cflags" = 1 -a "$show_additional_libs" = 1 ] + then +- echo "-I$includedir -L$libdir $LIBS" ++ echo "$LIBS" + elif [ "$show_cflags" = 1 ] + then +- echo "-I$includedir" ++ echo "" + elif [ "$show_libs" = 1 ] + then +- echo "-L$libdir -lpcap $LIBS" ++ echo "-lpcap $LIBS" + elif [ "$show_additional_libs" = 1 ] + then + echo "$LIBS" +@@ -80,15 +80,15 @@ + # + if [ "$show_cflags" = 1 -a "$show_libs" = 1 ] + then +- echo "-I$includedir -L$libdir $RPATH -l$PACKAGE_NAME" ++ echo " $RPATH -l$PACKAGE_NAME" + elif [ "$show_cflags" = 1 -a "$show_additional_libs" = 1 ] + then +- echo "-I$includedir" ++ echo "" + elif [ "$show_cflags" = 1 ] + then +- echo "-I$includedir" ++ echo "" + elif [ "$show_libs" = 1 ] + then +- echo "-L$libdir $RPATH -l$PACKAGE_NAME" ++ echo "$RPATH -l$PACKAGE_NAME" + fi + fi diff --git a/net-libs/libpcap/libpcap-1.9.1-r1.ebuild b/net-libs/libpcap/libpcap-1.9.1-r1.ebuild new file mode 100644 index 000000000000..bf2ab94c1396 --- /dev/null +++ b/net-libs/libpcap/libpcap-1.9.1-r1.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools multilib-minimal + +DESCRIPTION="A system-independent library for user-level network packet capture" +HOMEPAGE=" + https://www.tcpdump.org/ + https://github.com/the-tcpdump-group/libpcap +" +SRC_URI=" + https://github.com/the-tcpdump-group/${PN}/archive/${P/_}.tar.gz +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris" +IUSE="bluetooth dbus netlink -remote static-libs usb" + +RDEPEND=" + bluetooth? ( net-wireless/bluez:=[${MULTILIB_USEDEP}] ) + dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + netlink? ( dev-libs/libnl:3[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + sys-devel/flex + virtual/yacc + dbus? ( virtual/pkgconfig[${MULTILIB_USEDEP}] ) +" + +S=${WORKDIR}/${PN}-${P/_} + +PATCHES=( + "${FILESDIR}"/${PN}-1.8.1-usbmon.patch + "${FILESDIR}"/${PN}-1.9.1-pcap-config.patch +) + +src_prepare() { + default + + echo ${PV} > VERSION || die + + eautoreconf +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" \ + econf \ + $(use_enable bluetooth) \ + $(use_enable dbus) \ + $(use_enable remote) \ + $(use_enable usb) \ + $(use_with netlink libnl) \ + --enable-ipv6 +} + +multilib_src_compile() { + emake all shared +} + +multilib_src_install_all() { + dodoc CREDITS CHANGES VERSION TODO README.* doc/README.* + + # remove static libraries (--disable-static does not work) + if ! use static-libs; then + find "${ED}" -name '*.a' -exec rm {} + || die + fi + + find "${ED}" -name '*.la' -delete || die + + # We need this to build pppd on G/FBSD systems + if [[ "${USERLAND}" == "BSD" ]]; then + insinto /usr/include + doins pcap-int.h portability.h + fi +} diff --git a/net-libs/libpcap/libpcap-9999.ebuild b/net-libs/libpcap/libpcap-9999.ebuild index f240ac606d96..1a75013c5b77 100644 --- a/net-libs/libpcap/libpcap-9999.ebuild +++ b/net-libs/libpcap/libpcap-9999.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 -inherit autotools git-r3 multilib-minimal ltprune +EAPI=7 +inherit autotools git-r3 multilib-minimal DESCRIPTION="A system-independent library for user-level network packet capture" EGIT_REPO_URI="https://github.com/the-tcpdump-group/libpcap" @@ -13,7 +13,7 @@ HOMEPAGE=" LICENSE="BSD" SLOT="0" -IUSE="bluetooth dbus netlink static-libs usb" +IUSE="bluetooth dbus netlink -remote static-libs usb" KEYWORDS="" RDEPEND=" @@ -45,6 +45,7 @@ multilib_src_configure() { econf \ $(use_enable bluetooth) \ $(use_enable dbus) \ + $(use_enable remote) \ $(use_enable usb) \ $(use_with netlink libnl) } @@ -60,7 +61,8 @@ multilib_src_install_all() { if ! use static-libs; then find "${ED}" -name '*.a' -exec rm {} + || die fi - prune_libtool_files + + find "${ED}" -name '*.la' -delete || die # We need this to build pppd on G/FBSD systems if [[ "${USERLAND}" == "BSD" ]]; then diff --git a/net-libs/libpcap/metadata.xml b/net-libs/libpcap/metadata.xml index 241fb6113b5f..54d027060e7b 100644 --- a/net-libs/libpcap/metadata.xml +++ b/net-libs/libpcap/metadata.xml @@ -7,6 +7,7 @@ Use dev-libs/libnl to put wireless interfaces in monitor mode. +Enable remote packet capture which may expose libpcap-based applications to attacks by malicious remote capture servers! cpe:/a:tcpdump:libpcap -- cgit v1.2.3-65-gdbad