From 96b03e9e2115af0468c8487cd488e2eb54f33397 Mon Sep 17 00:00:00 2001 From: David Seifert Date: Sun, 1 Aug 2021 21:28:54 +0200 Subject: net-analyzer/tracebox: Fix build with GCC 11 Closes: https://bugs.gentoo.org/786687 Signed-off-by: David Seifert --- .../tracebox/files/tracebox-0.4.4-autotools.patch | 214 +++++++++++++++++++++ .../tracebox/files/tracebox-0.4.4-deps.patch | 157 --------------- .../files/tracebox-0.4.4-include-crafter.patch | 44 +++++ net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild | 50 ++--- 4 files changed, 276 insertions(+), 189 deletions(-) create mode 100644 net-analyzer/tracebox/files/tracebox-0.4.4-autotools.patch delete mode 100644 net-analyzer/tracebox/files/tracebox-0.4.4-deps.patch create mode 100644 net-analyzer/tracebox/files/tracebox-0.4.4-include-crafter.patch (limited to 'net-analyzer') diff --git a/net-analyzer/tracebox/files/tracebox-0.4.4-autotools.patch b/net-analyzer/tracebox/files/tracebox-0.4.4-autotools.patch new file mode 100644 index 000000000000..612132d157f4 --- /dev/null +++ b/net-analyzer/tracebox/files/tracebox-0.4.4-autotools.patch @@ -0,0 +1,214 @@ +- do not link to bundled + * dev-libs/json-c + * net-libs/libcrafter +- allow different lua versions + +--- a/configure.ac ++++ b/configure.ac +@@ -14,6 +14,8 @@ + AC_HEADER_STDC + AC_HEADER_ASSERT + ++PKG_PROG_PKG_CONFIG ++ + AX_CXX_COMPILE_STDCXX_11 + + # Checks for header files. +@@ -32,40 +34,14 @@ + AC_FUNC_FORK + AC_CHECK_FUNCS([gettimeofday memset select socket strtol]) + +-AC_ARG_WITH(lua, +-[ --with-lua=DIR use lua in DIR], +-[ case "$withval" in +- yes|no) +- AC_MSG_RESULT(no) +- ;; +- *) +- AC_MSG_RESULT($withval) +- if test -f $withval/lua.h -a -f $withval/liblua.a; then +- owd=`pwd` +- if cd $withval; then withval=`pwd`; cd $owd; fi +- LUA_INCLUDE="-I$withval" +- LUA_LIB="-L$withval -llua" +- LIBS="$LIBS -lm" +- elif test -f $withval/include/lua.h -a -f $withval/lib/liblua.a; then +- owd=`pwd` +- if cd $withval; then withval=`pwd`; cd $owd; fi +- LUA_INCLUDE="-I$withval/include" +- LUA_LIB="-L$withval/lib -llua" +- LIBS="$LIBS -lm" +- else +- AC_ERROR("lua.h or liblua.a not found in $withval") +- fi +- ;; +- esac ], +- [ +- AX_PROG_LUA +- AX_LUA_HEADERS +- AX_LUA_LIBS +- if test x"$LUA_LIB" = x; then +- AC_MSG_ERROR([Lua library not found. You may try option --with-lua-suffix.]) +- fi +- ] +-) ++PKG_CHECK_MODULES([LUA53], [lua-5.3], [LUA_FOUND=5.3; LUA_INCLUDE="${LUA53_CFLAGS}"; LUA_LIB="${LUA53_LIBS}"],AC_MSG_WARN([lua 5.3 not found])) ++PKG_CHECK_MODULES([LUA52], [lua-5.2], [LUA_FOUND=5.2; LUA_INCLUDE="${LUA52_CFLAGS}"; LUA_LIB="${LUA52_LIBS}"],AC_MSG_WARN([lua 5.2 not found])) ++PKG_CHECK_MODULES([LUA51], [lua5.1], [LUA_FOUND=5.1; LUA_INCLUDE="${LUA51_CFLAGS}"; LUA_LIB="${LUA51_LIBS}"],AC_MSG_WARN([lua 5.1 not found])) ++PKG_CHECK_MODULES([LUA], [lua], [LUA_FOUND=5.1-noSLOT; LUA_INCLUDE="${LUA_CFLAGS}"; LUA_LIB="${LUA_LIBS}"],AC_MSG_WARN([lua 5.1 not found])) ++ ++if test -z "$LUA_FOUND"; then ++ AC_MSG_ERROR([lua 5.3, 5.2 or 5.1 is required]) ++fi + AC_SUBST(LUA_INCLUDE) + AC_SUBST(LUA_LIB) + +@@ -121,24 +97,12 @@ + AC_ARG_WITH(json, + [ --with-json=DIR use json-c in DIR], + [ case "$withval" in +- yes|no) ++ no) + AC_MSG_RESULT(no) + ;; + *) + AC_MSG_RESULT($withval) +- if test -f $withval/json.h -a -f $withval/libjson-c.a; then +- owd=`pwd` +- if cd $withval; then withval=`pwd`; cd $owd; fi +- JSON_INCLUDE="-I$withval" +- JSON_LIB="-L$withval -ljson-c" +- elif test -f $withval/include/json-c/json.h -a -f $withval/lib/libjson-c.a; then +- owd=`pwd` +- if cd $withval; then withval=`pwd`; cd $owd; fi +- JSON_INCLUDE="-I$withval/include" +- JSON_LIB="-L$withval/lib -ljson-c" +- else +- AC_ERROR("json.h or libjson-c.a not found in $withval") +- fi ++ PKG_CHECK_MODULES([JSON], [json-c], [JSON_INCLUDE="${JSON_CFLAGS}"; JSON_LIB="${JSON_LIBS}"],AC_MSG_ERROR([json-c was requested but not found])) + AC_SUBST(JSON_INCLUDE) + AC_SUBST(JSON_LIB) + AC_DEFINE([HAVE_JSONC], [1], [Using json-c]) +@@ -153,41 +117,7 @@ + ] + ) + +-AC_MSG_CHECKING(for libpcap) +-AC_ARG_WITH(libpcap, +-[ --with-libpcap=DIR use libpcap in DIR], +-[ case "$withval" in +- yes|no) +- AC_MSG_RESULT(no) +- ;; +- *) +- AC_MSG_RESULT($withval) +- if test -f $withval/pcap.h -a \ +- -f $withval/libpcap.a -a \ +- -d $withval/pcap; then +- owd=`pwd` +- if cd $withval; then withval=`pwd`; cd $owd; fi +- PCAPINC="-I$withval -I$withval/bpf" +- PCAPLIB="-L$withval -lpcap" +- else +- AC_ERROR(pcap.h, net/bpf.h, or libpcap.a not found in $withval) +- fi +- ;; +- esac ], +-[ if test -f ${prefix}/include/pcap.h; then +- PCAPINC="-I${prefix}/include" +- PCAPLIB="-L${prefix}/lib -lpcap" +- elif test -f /usr/include/pcap/pcap.h; then +- PCAPINC="-I/usr/include/pcap" +- PCAPLIB="-lpcap" +- elif test -f /usr/include/pcap.h; then +- PCAPLIB="-lpcap" +- else +- AC_MSG_RESULT(no) +- AC_ERROR(libpcap not found) +- fi +- AC_MSG_RESULT(yes) ] +-) ++PKG_CHECK_MODULES([PCAP], [libpcap], [PCAPINC="${PCAP_CFLAGS}"; PCAPLIB="${PCAP_LIBS}"],AC_MSG_ERROR([libpcap is required])) + AC_SUBST(PCAPINC) + AC_SUBST(PCAPLIB) + +@@ -234,17 +164,7 @@ + AC_CHECK_LIB([pthread], [pthread_create]) + ]) + +-# Make sure libcrafter build a static library by adding the --disable-shared +-# argument to the configure script. +-ac_configure_args_pre="$ac_configure_args" +-ac_configure_args_post="$ac_configure_args --disable-shared" +-ac_configure_args="$ac_configure_args_post" +- +-AC_CONFIG_COMMANDS_PRE([ac_configure_args="$ac_configure_args_pre"]) +-AC_CONFIG_COMMANDS_POST([ac_configure_args="$ac_configure_args_post"]) +-AC_CONFIG_SUBDIRS(noinst/libcrafter/libcrafter) +- +-ac_configure_args="$ac_configure_args_pre" ++PKG_CHECK_MODULES([crafter], [crafter], [LIBS="$LIBS $crafter_LIBS"],AC_MSG_ERROR([libcrafter is required])) + + # Enable click submodule + AS_IF([test "x$enable_tests" = "xyes"], [ +@@ -254,7 +174,6 @@ + + AC_CONFIG_COMMANDS_PRE([ac_configure_args="$ac_configure_args_pre"]) + AC_CONFIG_COMMANDS_POST([ac_configure_args="$ac_configure_args_post"]) +- AC_CONFIG_SUBDIRS(tests/tools/click) + + ac_configure_args="$ac_configure_args_pre" + ]) +@@ -271,7 +190,6 @@ + + AC_CONFIG_FILES([ + Makefile +- noinst/Makefile + src/Makefile + src/tracebox/Makefile + tests/Makefile +--- a/Makefile.am ++++ b/Makefile.am +@@ -8,8 +8,8 @@ + MAYBE_DOC = doc + endif + +-SUBDIRS = noinst src $(MAYBE_OPT) $(MAYBE_DOC) +-DIST_SUBDIRS = noinst src tests doc ++SUBDIRS = src $(MAYBE_OPT) $(MAYBE_DOC) ++DIST_SUBDIRS = src tests doc + + debian-package: + dpkg-buildpackage -rfakeroot -tc -us -uc +--- a/noinst/Makefile.am ++++ b/noinst/Makefile.am +@@ -1,4 +1,3 @@ +-DIST_SUBDIRS = libcrafter/libcrafter + + all-local: + cd libcrafter/libcrafter && $(MAKE) $(AM_MAKEFLAGS) all +--- a/src/tracebox/Makefile.am ++++ b/src/tracebox/Makefile.am +@@ -4,7 +4,6 @@ + + dist_man_MANS = tracebox.1 + +-dist_bin_SCRIPTS = luatracebox + + SUBDIRS = examples + +@@ -78,13 +77,11 @@ + + tracebox_LDADD = \ + $(EXTRALIBS) \ +- $(abs_top_builddir)/noinst/libcrafter/libcrafter/libcrafter.la \ + $(LUA_LIB) \ + $(PCAPLIB) \ + $(JSON_LIB) + + tracebox_CPPFLAGS = \ +- -I$(top_srcdir)/noinst/libcrafter/libcrafter \ + $(LUA_INCLUDE) \ + $(PCAPINC) \ + $(JSON_INCLUDE) \ diff --git a/net-analyzer/tracebox/files/tracebox-0.4.4-deps.patch b/net-analyzer/tracebox/files/tracebox-0.4.4-deps.patch deleted file mode 100644 index 43c0132a49a7..000000000000 --- a/net-analyzer/tracebox/files/tracebox-0.4.4-deps.patch +++ /dev/null @@ -1,157 +0,0 @@ ---- a/configure.ac -+++ b/configure.ac -@@ -14,6 +14,8 @@ - AC_HEADER_STDC - AC_HEADER_ASSERT - -+PKG_PROG_PKG_CONFIG -+ - AX_CXX_COMPILE_STDCXX_11 - - # Checks for header files. -@@ -32,40 +34,14 @@ - AC_FUNC_FORK - AC_CHECK_FUNCS([gettimeofday memset select socket strtol]) - --AC_ARG_WITH(lua, --[ --with-lua=DIR use lua in DIR], --[ case "$withval" in -- yes|no) -- AC_MSG_RESULT(no) -- ;; -- *) -- AC_MSG_RESULT($withval) -- if test -f $withval/lua.h -a -f $withval/liblua.a; then -- owd=`pwd` -- if cd $withval; then withval=`pwd`; cd $owd; fi -- LUA_INCLUDE="-I$withval" -- LUA_LIB="-L$withval -llua" -- LIBS="$LIBS -lm" -- elif test -f $withval/include/lua.h -a -f $withval/lib/liblua.a; then -- owd=`pwd` -- if cd $withval; then withval=`pwd`; cd $owd; fi -- LUA_INCLUDE="-I$withval/include" -- LUA_LIB="-L$withval/lib -llua" -- LIBS="$LIBS -lm" -- else -- AC_ERROR("lua.h or liblua.a not found in $withval") -- fi -- ;; -- esac ], -- [ -- AX_PROG_LUA -- AX_LUA_HEADERS -- AX_LUA_LIBS -- if test x"$LUA_LIB" = x; then -- AC_MSG_ERROR([Lua library not found. You may try option --with-lua-suffix.]) -- fi -- ] --) -+PKG_CHECK_MODULES([LUA53], [lua-5.3], [LUA_FOUND=5.3; LUA_INCLUDE="${LUA53_CFLAGS}"; LUA_LIB="${LUA53_LIBS}"],AC_MSG_WARN([lua 5.3 not found])) -+PKG_CHECK_MODULES([LUA52], [lua-5.2], [LUA_FOUND=5.2; LUA_INCLUDE="${LUA52_CFLAGS}"; LUA_LIB="${LUA52_LIBS}"],AC_MSG_WARN([lua 5.2 not found])) -+PKG_CHECK_MODULES([LUA51], [lua5.1], [LUA_FOUND=5.1; LUA_INCLUDE="${LUA51_CFLAGS}"; LUA_LIB="${LUA51_LIBS}"],AC_MSG_WARN([lua 5.1 not found])) -+PKG_CHECK_MODULES([LUA], [lua], [LUA_FOUND=5.1-noSLOT; LUA_INCLUDE="${LUA_CFLAGS}"; LUA_LIB="${LUA_LIBS}"],AC_MSG_WARN([lua 5.1 not found])) -+ -+if test -z "$LUA_FOUND"; then -+ AC_MSG_ERROR([lua 5.3, 5.2 or 5.1 is required]) -+fi - AC_SUBST(LUA_INCLUDE) - AC_SUBST(LUA_LIB) - -@@ -121,24 +97,12 @@ - AC_ARG_WITH(json, - [ --with-json=DIR use json-c in DIR], - [ case "$withval" in -- yes|no) -+ no) - AC_MSG_RESULT(no) - ;; - *) - AC_MSG_RESULT($withval) -- if test -f $withval/json.h -a -f $withval/libjson-c.a; then -- owd=`pwd` -- if cd $withval; then withval=`pwd`; cd $owd; fi -- JSON_INCLUDE="-I$withval" -- JSON_LIB="-L$withval -ljson-c" -- elif test -f $withval/include/json-c/json.h -a -f $withval/lib/libjson-c.a; then -- owd=`pwd` -- if cd $withval; then withval=`pwd`; cd $owd; fi -- JSON_INCLUDE="-I$withval/include" -- JSON_LIB="-L$withval/lib -ljson-c" -- else -- AC_ERROR("json.h or libjson-c.a not found in $withval") -- fi -+ PKG_CHECK_MODULES([JSON], [json-c], [JSON_INCLUDE="${JSON_CFLAGS}"; JSON_LIB="${JSON_LIBS}"],AC_MSG_ERROR([json-c was requested but not found])) - AC_SUBST(JSON_INCLUDE) - AC_SUBST(JSON_LIB) - AC_DEFINE([HAVE_JSONC], [1], [Using json-c]) -@@ -153,41 +117,7 @@ - ] - ) - --AC_MSG_CHECKING(for libpcap) --AC_ARG_WITH(libpcap, --[ --with-libpcap=DIR use libpcap in DIR], --[ case "$withval" in -- yes|no) -- AC_MSG_RESULT(no) -- ;; -- *) -- AC_MSG_RESULT($withval) -- if test -f $withval/pcap.h -a \ -- -f $withval/libpcap.a -a \ -- -d $withval/pcap; then -- owd=`pwd` -- if cd $withval; then withval=`pwd`; cd $owd; fi -- PCAPINC="-I$withval -I$withval/bpf" -- PCAPLIB="-L$withval -lpcap" -- else -- AC_ERROR(pcap.h, net/bpf.h, or libpcap.a not found in $withval) -- fi -- ;; -- esac ], --[ if test -f ${prefix}/include/pcap.h; then -- PCAPINC="-I${prefix}/include" -- PCAPLIB="-L${prefix}/lib -lpcap" -- elif test -f /usr/include/pcap/pcap.h; then -- PCAPINC="-I/usr/include/pcap" -- PCAPLIB="-lpcap" -- elif test -f /usr/include/pcap.h; then -- PCAPLIB="-lpcap" -- else -- AC_MSG_RESULT(no) -- AC_ERROR(libpcap not found) -- fi -- AC_MSG_RESULT(yes) ] --) -+PKG_CHECK_MODULES([PCAP], [libpcap], [PCAPINC="${PCAP_CFLAGS}"; PCAPLIB="${PCAP_LIBS}"],AC_MSG_ERROR([libpcap is required])) - AC_SUBST(PCAPINC) - AC_SUBST(PCAPLIB) - -@@ -234,17 +164,7 @@ - AC_CHECK_LIB([pthread], [pthread_create]) - ]) - --# Make sure libcrafter build a static library by adding the --disable-shared --# argument to the configure script. --ac_configure_args_pre="$ac_configure_args" --ac_configure_args_post="$ac_configure_args --disable-shared" --ac_configure_args="$ac_configure_args_post" -- --AC_CONFIG_COMMANDS_PRE([ac_configure_args="$ac_configure_args_pre"]) --AC_CONFIG_COMMANDS_POST([ac_configure_args="$ac_configure_args_post"]) --AC_CONFIG_SUBDIRS(noinst/libcrafter/libcrafter) -- --ac_configure_args="$ac_configure_args_pre" -+PKG_CHECK_MODULES([crafter], [crafter], [LIBS="$LIBS $crafter_LIBS"],AC_MSG_ERROR([libcrafter is required])) - - # Enable click submodule - AS_IF([test "x$enable_tests" = "xyes"], [ -@@ -254,7 +174,6 @@ - - AC_CONFIG_COMMANDS_PRE([ac_configure_args="$ac_configure_args_pre"]) - AC_CONFIG_COMMANDS_POST([ac_configure_args="$ac_configure_args_post"]) -- AC_CONFIG_SUBDIRS(tests/tools/click) - - ac_configure_args="$ac_configure_args_pre" - ]) diff --git a/net-analyzer/tracebox/files/tracebox-0.4.4-include-crafter.patch b/net-analyzer/tracebox/files/tracebox-0.4.4-include-crafter.patch new file mode 100644 index 000000000000..bedd0208303a --- /dev/null +++ b/net-analyzer/tracebox/files/tracebox-0.4.4-include-crafter.patch @@ -0,0 +1,44 @@ +--- a/src/tracebox/PacketModification.h ++++ b/src/tracebox/PacketModification.h +@@ -8,7 +8,7 @@ + #ifndef __PACKETMODIFICATION_H__ + #define __PACKETMODIFICATION_H__ + +-#include "crafter.h" ++#include + #ifdef HAVE_LIBJSON + #include + #endif +--- a/src/tracebox/PartialHeader.h ++++ b/src/tracebox/PartialHeader.h +@@ -8,7 +8,7 @@ + #ifndef __PARTIALHEADER_H__ + #define __PARTIALHEADER_H__ + +-#include "crafter.h" ++#include + + /* ICMP message can contains partial header information */ + +--- a/src/tracebox/script.h ++++ b/src/tracebox/script.h +@@ -9,7 +9,7 @@ + #ifndef __TRACEBOX_SCRIPT_H__ + #define __TRACEBOX_SCRIPT_H__ + +-#include "crafter.h" ++#include + + Crafter::Packet *script_packet(std::string& cmd); + int script_exec(const char*, int, char**); +--- a/src/tracebox/tracebox.h ++++ b/src/tracebox/tracebox.h +@@ -11,7 +11,7 @@ + + #include + +-#include "crafter.h" ++#include + #include "config.h" + #include "PacketModification.h" + diff --git a/net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild b/net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild index 63a8ba122cbd..7278ad0ab731 100644 --- a/net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild +++ b/net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 LUA_COMPAT=( lua5-{1..4} luajit ) -inherit autotools lua-single +inherit autotools flag-o-matic lua-single DESCRIPTION="A Middlebox Detection Tool" HOMEPAGE="http://www.tracebox.org/" @@ -15,51 +15,37 @@ LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="curl sniffer" - REQUIRED_USE="${LUA_REQUIRED_USE}" +RESTRICT="test" RDEPEND="${LUA_DEPS} >=net-libs/libcrafter-0.3_p20171019 dev-libs/json-c net-libs/libpcap curl? ( net-misc/curl ) - sniffer? ( net-libs/libnetfilter_queue ) -" -DEPEND=" - ${RDEPEND} -" -BDEPEND=" - virtual/pkgconfig -" -RESTRICT="test" + sniffer? ( net-libs/libnetfilter_queue )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + PATCHES=( - "${FILESDIR}"/${PN}-0.4.4-deps.patch + "${FILESDIR}"/${P}-autotools.patch + "${FILESDIR}"/${P}-include-crafter.patch ) src_prepare() { default - - sed -i -e '/SUBDIRS/s|noinst||g' Makefile.am || die - sed -i -e '/DIST_SUBDIRS.*libcrafter/d' noinst/Makefile.am || die - - sed -i \ - -e '/[[:graph:]]*libcrafter[[:graph:]]*/d' \ - -e '/dist_bin_SCRIPTS/d' \ - src/${PN}/Makefile.am \ - || die - - sed -i \ - -e 's|"crafter.h"||g' \ - src/${PN}/PacketModification.h \ - src/${PN}/PartialHeader.h \ - src/${PN}/script.h \ - src/${PN}/${PN}.h \ - || die - + # remove bundled + # - dev-libs/json-c + # - net-libs/libcrafter + rm -r noinst || die eautoreconf } src_configure() { + # https://bugs.gentoo.org/786687 + # std::byte clashes with crafter/Types.h typedef + append-cxxflags -std=c++14 + econf \ $(use_enable curl) \ $(use_enable sniffer) -- cgit v1.2.3-65-gdbad