commit:     dcd2a5a59bca9b11abdb5a7b56d8efe966ff3928
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sat May 20 02:14:37 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sat May 20 02:17:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dcd2a5a5

net-vpn/openconnect: fix build failure

Closes: https://bugs.gentoo.org/906662
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 .../files/openconnect-9.11-json-cflags.patch       | 57 ++++++++++++++++++++++
 net-vpn/openconnect/openconnect-9.11.ebuild        | 11 +++--
 2 files changed, 63 insertions(+), 5 deletions(-)

diff --git a/net-vpn/openconnect/files/openconnect-9.11-json-cflags.patch 
b/net-vpn/openconnect/files/openconnect-9.11-json-cflags.patch
new file mode 100644
index 000000000000..c09e87bff7c9
--- /dev/null
+++ b/net-vpn/openconnect/files/openconnect-9.11-json-cflags.patch
@@ -0,0 +1,57 @@
+From ce49cf495276c737fe95725da8f0773742fb838d Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <flop...@gentoo.org>
+Date: Thu, 18 May 2023 15:04:17 -0400
+Subject: [PATCH] Move JSON_CFLAGS before LIBPROXY_CFLAGS
+
+Depending on build options, libproxy-1.0.pc depends indirectly
+on json-c.pc:
+
+libproxy-1.0 -> gio-2.0 -> mount -> libcryptsetup -> json-c
+
+This causes "pkg-config --cflags libproxy-1.0" to emit
+"-I/usr/include/json-c".
+
+json-c installs a "json.h" file that conflicts with the one provided by
+json-parser. If json-c comes before json-parser on the compiler command,
+we get a build failure:
+
+openconnect-internal.h:1654:59: error: unknown type name 'json_value'
+
+[ dwmw2: This is a combination of at *least* three different bugs in
+         three different packages conspiring to be my problem. See
+         
https://gitlab.com/openconnect/openconnect/-/merge_requests/476#note_1397129468
+         But still, working around it does no harm for now.
+         Ironically, if the presence of json-c on the include path
+         wasn't *entirely* gratuitous then hiding it by putting it
+         last wouldn't actually work because then something would
+         fail to include the json-c version of <json.h> instead. ]
+
+Bug: https://bugs.gentoo.org/906662
+Signed-off-by: Mike Gilbert <flop...@gentoo.org>
+Signed-off-by: David Woodhouse <dw...@infradead.org>
+---
+ Makefile.am | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 495b46f2..a09c0614 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -128,10 +128,10 @@ endif
+ 
+ libopenconnect_la_SOURCES = version.c $(library_srcs)
+ libopenconnect_la_CFLAGS = $(AM_CFLAGS) $(SSL_CFLAGS) $(DTLS_SSL_CFLAGS) \
+-      $(LIBXML2_CFLAGS) $(LIBPROXY_CFLAGS) $(ZLIB_CFLAGS) $(P11KIT_CFLAGS) \
+-      $(TSS_CFLAGS) $(LIBSTOKEN_CFLAGS) $(LIBPSKC_CFLAGS) $(GSSAPI_CFLAGS) \
+-      $(INTL_CFLAGS) $(ICONV_CFLAGS) $(LIBPCSCLITE_CFLAGS) $(LIBP11_CFLAGS) \
+-      $(LIBLZ4_CFLAGS) $(JSON_CFLAGS)
++      $(LIBXML2_CFLAGS) $(JSON_CFLAGS) $(LIBPROXY_CFLAGS) $(ZLIB_CFLAGS) \
++      $(P11KIT_CFLAGS) $(TSS_CFLAGS) $(LIBSTOKEN_CFLAGS) $(LIBPSKC_CFLAGS) \
++      $(GSSAPI_CFLAGS) $(INTL_CFLAGS) $(ICONV_CFLAGS) $(LIBPCSCLITE_CFLAGS) \
++      $(LIBP11_CFLAGS) $(LIBLZ4_CFLAGS)
+ libopenconnect_la_LIBADD = $(SSL_LIBS) $(DTLS_SSL_LIBS) \
+       $(LIBXML2_LIBS) $(LIBPROXY_LIBS) $(ZLIB_LIBS) $(P11KIT_LIBS) \
+       $(TSS_LIBS) $(LIBSTOKEN_LIBS) $(LIBPSKC_LIBS) $(GSSAPI_LIBS) \
+-- 
+GitLab
+

diff --git a/net-vpn/openconnect/openconnect-9.11.ebuild 
b/net-vpn/openconnect/openconnect-9.11.ebuild
index bda422a32553..c0d892b7dd16 100644
--- a/net-vpn/openconnect/openconnect-9.11.ebuild
+++ b/net-vpn/openconnect/openconnect-9.11.ebuild
@@ -6,11 +6,11 @@ EAPI=8
 PYTHON_COMPAT=( python3_{9..11} )
 PYTHON_REQ_USE="xml(+)"
 
-inherit linux-info python-any-r1
+inherit autotools linux-info python-any-r1
 
 if [[ ${PV} == 9999 ]]; then
        EGIT_REPO_URI="https://gitlab.com/openconnect/openconnect.git";
-       inherit git-r3 autotools
+       inherit git-r3
 else
        inherit verify-sig
        SRC_URI="https://www.infradead.org/openconnect/download/${P}.tar.gz
@@ -97,10 +97,11 @@ src_unpack() {
 }
 
 src_prepare() {
+       local PATCHES=(
+               "${FILESDIR}/openconnect-9.11-json-cflags.patch"
+       )
        default
-       if [[ ${PV} == 9999 ]]; then
-               eautoreconf
-       fi
+       eautoreconf
 }
 
 src_configure() {

Reply via email to