diff mbox series

package/netsniff-ng: fix static build of mausezahn

Message ID eb6c1c71663811f27493ec0b7f32f9bdb88a8820.1630643968.git.baruch@tkos.co.il
State Accepted
Headers show
Series package/netsniff-ng: fix static build of mausezahn | expand

Commit Message

Baruch Siach Sept. 3, 2021, 4:39 a.m. UTC
The configure script fails to detect libpcap in static build because it
does not take into account the libnl dependency on link. As a result the
configure script silently disables mausezahn build even when
BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN is enabled. Add upstream patch to use
pkg-config for libpcap link flags.

Cc: Joris Lijssens <joris.lijssens@gmail.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 ...ibpcap-dependencies-using-pkg-config.patch | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 package/netsniff-ng/0001-Detect-libpcap-dependencies-using-pkg-config.patch

Comments

Peter Korsgaard Sept. 3, 2021, 4:11 p.m. UTC | #1
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > The configure script fails to detect libpcap in static build because it
 > does not take into account the libnl dependency on link. As a result the
 > configure script silently disables mausezahn build even when
 > BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN is enabled. Add upstream patch to use
 > pkg-config for libpcap link flags.

 > Cc: Joris Lijssens <joris.lijssens@gmail.com>
 > Signed-off-by: Baruch Siach <baruch@tkos.co.il>

Committed, thanks.
Peter Korsgaard Sept. 3, 2021, 4:16 p.m. UTC | #2
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > The configure script fails to detect libpcap in static build because it
 > does not take into account the libnl dependency on link. As a result the
 > configure script silently disables mausezahn build even when
 > BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN is enabled. Add upstream patch to use
 > pkg-config for libpcap link flags.

 > Cc: Joris Lijssens <joris.lijssens@gmail.com>
 > Signed-off-by: Baruch Siach <baruch@tkos.co.il>

Hmm, we currently don't have host-pkgconf as a dependency of
netsniff-ng, so I've amended the commit to do that.
Peter Korsgaard Sept. 10, 2021, 10 a.m. UTC | #3
>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> writes:

>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
 >> The configure script fails to detect libpcap in static build because it
 >> does not take into account the libnl dependency on link. As a result the
 >> configure script silently disables mausezahn build even when
 >> BR2_PACKAGE_NETSNIFF_NG_MAUSEZAHN is enabled. Add upstream patch to use
 >> pkg-config for libpcap link flags.

 >> Cc: Joris Lijssens <joris.lijssens@gmail.com>
 >> Signed-off-by: Baruch Siach <baruch@tkos.co.il>

 > Hmm, we currently don't have host-pkgconf as a dependency of
 > netsniff-ng, so I've amended the commit to do that.

Committed to 2021.02.x and 2021.05.x, thanks.
diff mbox series

Patch

diff --git a/package/netsniff-ng/0001-Detect-libpcap-dependencies-using-pkg-config.patch b/package/netsniff-ng/0001-Detect-libpcap-dependencies-using-pkg-config.patch
new file mode 100644
index 000000000000..bbcbd2bfc391
--- /dev/null
+++ b/package/netsniff-ng/0001-Detect-libpcap-dependencies-using-pkg-config.patch
@@ -0,0 +1,51 @@ 
+From 194ec61843b9598ce90873c812b817c4b96e2e0d Mon Sep 17 00:00:00 2001
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Thu, 2 Sep 2021 12:56:00 +0300
+Subject: [PATCH] Detect libpcap dependencies using pkg-config
+
+When building statically the link command line must include all
+dependencies of all libraries. libpcap can optionally depend on libnl.
+mausezahn can't build statically in this case.
+
+Use pkg-config in configure and in the link command to construct the
+library flags we need to link with libpcap.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
+---
+Upstream status: commit 194ec61843b9598ce90873c812b817c4b96e2e0d
+
+ configure          | 4 +++-
+ mausezahn/Makefile | 2 +-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 510826a798f5..598ae2433a7a 100755
+--- a/configure
++++ b/configure
+@@ -588,7 +588,9 @@ int main(void)
+ }
+ EOF
+ 
+-	$CC -o $TMPDIR/pcaptest $TMPDIR/pcaptest.c -lpcap >> config.log 2>&1
++	$CC -o $TMPDIR/pcaptest $TMPDIR/pcaptest.c \
++		$($PKG_CONFIG --libs libpcap 2>> config.log) \
++		>> config.log 2>&1
+ 	if [ ! -x $TMPDIR/pcaptest ] ; then
+ 		echo "[NO]"
+ 		echo "CONFIG_LIBPCAP=0" >> Config
+diff --git a/mausezahn/Makefile b/mausezahn/Makefile
+index ca16b6579583..9544565355cc 100644
+--- a/mausezahn/Makefile
++++ b/mausezahn/Makefile
+@@ -1,6 +1,6 @@
+ mausezahn-libs =	-lcli \
+ 			-lnet \
+-			-lpcap \
++			$(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --libs libpcap 2> /dev/null ) \
+ 			-lrt \
+ 			-lpthread \
+ 			-lm
+-- 
+2.33.0
+