Skip to content

Commit

Permalink
net-analyzer/sslsplit: use pkgconfig to detect libnet
Browse files Browse the repository at this point in the history
SSLsplit uses custom localization of libnet library which does not work
correctly in multilib environment. This commit fixes the issue by
restoring pkgconfig detection from upstream commit 46a55de8040a
("Refactor location of packages, improve libnet detection"). Similar
patch is also needed for tests, where libcrypto is also searched with
pkgconfig.

Closes: https://bugs.gentoo.org/731190
Closes: https://bugs.gentoo.org/874075
Signed-off-by: Petr Vaněk <arkamar@atlas.cz>
  • Loading branch information
arkamar committed Oct 5, 2022
1 parent 548f10a commit 17ca09e
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 1 deletion.
@@ -0,0 +1,23 @@
Use pkgconfig for localization of libcrypto. This is needed for tests in
multilib systems.

diff --git a/extra/engine/GNUmakefile b/extra/engine/GNUmakefile
index b50717b..3712ad6 100644
--- a/extra/engine/GNUmakefile
+++ b/extra/engine/GNUmakefile
@@ -16,9 +16,9 @@ else
SUFFIX:= so
endif

-CFLAGS+= -fPIC -I$(OPENSSL_BASE)/include
-LDFLAGS+= -L$(OPENSSL_BASE)/lib
-LIBS+= -lcrypto
+CFLAGS+= -fPIC $(shell pkg-config --cflags libcrypto)
+LDFLAGS+= $(shell pkg-config --libs-only-L libcrypto)
+LIBS+= $(shell pkg-config --libs-only-l libcrypto)

TARGET= dummy-engine

--
2.35.1

40 changes: 40 additions & 0 deletions net-analyzer/sslsplit/files/sslsplit-0.5.5-libnet-pkgconfig.patch
@@ -0,0 +1,40 @@
Subject: [PATCH] locate libnet with pkgconfig

This is partially reverted from upstream commit 46a55de8040a ("Refactor
location of packages, improve libnet detection")

diff --git a/GNUmakefile b/GNUmakefile
index cc7197e..2343272 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -277,6 +277,10 @@ PKGS+= $(shell $(PKGCONFIG) $(PCFLAGS) --exists libevent_openssl \
PKGS+= $(shell $(PKGCONFIG) $(PCFLAGS) --exists libevent_pthreads \
&& echo libevent_pthreads)
endif
+ifndef LIBNET_BASE
+PKGS+= $(shell $(PKGCONFIG) $(PCFLAGS) --exists libnet \
+ && echo libnet)
+endif
ifneq ($(filter -DWITHOUT_MIRROR,$(FEATURES)),-DWITHOUT_MIRROR)
ifndef LIBPCAP_BASE
PKGS+= $(shell $(PKGCONFIG) $(PCFLAGS) --exists libpcap \
@@ -333,7 +337,7 @@ CHECK_MISSING:= 1
endif
endif

-# Always search filesystem for libnet because libnet-config is unreliable
+ifeq (,$(filter libnet,$(PKGS)))
ifneq ($(filter -DWITHOUT_MIRROR,$(FEATURES)),-DWITHOUT_MIRROR)
LIBNET_FOUND:= $(call locate,libnet,include/libnet-1.1/libnet.h,$(LIBNET_BASE))
ifdef LIBNET_FOUND
@@ -347,6 +351,7 @@ $(error dependency 'libnet' not found; \
install it or point LIBNET_BASE to base path)
endif
endif
+endif

ifdef OPENSSL_FOUND
PKG_CPPFLAGS+= -I$(OPENSSL_FOUND)/include
--
2.35.1

6 changes: 5 additions & 1 deletion net-analyzer/sslsplit/sslsplit-0.5.5.ebuild
Expand Up @@ -35,7 +35,11 @@ DEPEND="${RDEPEND}
test? ( dev-libs/check )"
BDEPEND="virtual/pkgconfig"

PATCHES=( "${FILESDIR}/${P}-openssl3.patch" )
PATCHES=(
"${FILESDIR}/${P}-openssl3.patch"
"${FILESDIR}/${P}-libnet-pkgconfig.patch"
"${FILESDIR}/${P}-libcrypto-pkgconfig.patch"
)

src_prepare() {
default
Expand Down

0 comments on commit 17ca09e

Please sign in to comment.