@@ -466,6 +466,7 @@ F: package/mjpg-streamer/
F: package/mpg123/
F: package/ntp/
F: package/nut/
+F: package/openconnect/
F: package/openvpn/
F: package/opus/
F: package/pciutils/
@@ -2555,6 +2555,7 @@ endif
source "package/open-iscsi/Config.in"
source "package/open-lldp/Config.in"
source "package/open-plc-utils/Config.in"
+ source "package/openconnect/Config.in"
source "package/openntpd/Config.in"
source "package/openobex/Config.in"
source "package/openresolv/Config.in"
new file mode 100644
@@ -0,0 +1,40 @@
+From 5185f640045df2b4f8ee7f028fc59e6f02fdf367 Mon Sep 17 00:00:00 2001
+From: Brahmajit Das <brahmajit.xyz@gmail.com>
+Date: Mon, 29 Jan 2024 23:28:53 +0530
+Subject: [PATCH] Fix implicit declaration of function 'malloc'
+
+First observed on Gentoo Linux with GCC 14. This is due to GCC 14
+enabling -Werror=implicit-function-declaration by default.
+Thus resulting in errors such as:
+
+openconnect-internal.h: In function 'alloc_pkt':
+openconnect-internal.h:911:27: error: implicit declaration of function 'malloc' [-Werror=implicit-function-declaration]
+ 911 | struct pkt *pkt = malloc(alloc_len);
+ | ^~~~~~
+
+Plese refer gentoo bug: https://bugs.gentoo.org/923173
+Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com>
+
+Upstream: https://gitlab.com/openconnect/openconnect/-/commit/5185f640045df2b4f8ee7f028fc59e6f02fdf367
+
+Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
+[rebased for 9.12]
+---
+ openconnect-internal.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/openconnect-internal.h b/openconnect-internal.h
+index 21460adf6..2830d693f 100644
+--- a/openconnect-internal.h
++++ b/openconnect-internal.h
+@@ -87,6 +87,7 @@
+
+ #include <libxml/tree.h>
+ #include <zlib.h>
++#include <stdlib.h>
+
+ #ifdef _WIN32
+ #ifndef _Out_cap_c_
+--
+GitLab
+
new file mode 100644
@@ -0,0 +1,19 @@
+config BR2_PACKAGE_OPENCONNECT
+ bool "openconnect"
+ depends on BR2_PACKAGE_GNUTLS || BR2_PACKAGE_LIBOPENSSL
+ depends on BR2_USE_MMU # fork()
+ select BR2_PACKAGE_LIBXML2
+ select BR2_PACKAGE_ZLIB
+ help
+ OpenConnect is an SSL VPN client initially created to support
+ Cisco's AnyConnect SSL VPN.
+ It has since been ported to support the Juniper SSL VPN (which
+ is now known as Pulse Connect Secure), the Palo Alto Networks
+ GlobalProtect SSL VPN the F5 Big-IP SSL VPN, and the Fortinet
+ FortiGate SSL VPN.
+
+ https://www.infradead.org/openconnect/
+
+comment "openconnect needs either gnutls or libopenssl"
+ depends on BR2_USE_MMU
+ depends on !BR2_PACKAGE_GNUTLS && !BR2_PACKAGE_LIBOPENSSL
new file mode 100644
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 a2bedce3aa4dfe75e36e407e48e8e8bc91d46def5335ac9564fbf91bd4b2413e openconnect-9.12.tar.gz
+sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL
new file mode 100644
@@ -0,0 +1,32 @@
+################################################################################
+#
+# openconnect
+#
+################################################################################
+
+OPENCONNECT_VERSION = 9.12
+OPENCONNECT_SITE = https://www.infradead.org/openconnect/download
+OPENCONNECT_DEPENDENCIES = host-pkgconf libxml2 zlib
+OPENCONNECT_LICENSE = LGPL-2.1
+OPENCONNECT_LICENSE_FILES = COPYING.LGPL
+OPENCONNECT_CONF_OPTS = \
+ --disable-dsa-tests \
+ --with-vpnc-script=/etc/vpnc/vpnc-script \
+ --without-java
+
+ifeq ($(BR2_PACKAGE_LIBOPENSSL),y)
+OPENCONNECT_DEPENDENCIES += openssl
+OPENCONNECT_CONF_OPTS += --without-gnutls --with-openssl
+else ifeq ($(BR2_PACKAGE_GNUTLS),y)
+OPENCONNECT_DEPENDENCIES += gnutls
+OPENCONNECT_CONF_OPTS += --with-gnutls --without-openssl
+endif
+
+ifeq ($(BR2_PACKAGE_LZ4),y)
+OPENCONNECT_DEPENDENCIES += lz4
+OPENCONNECT_CONF_OPTS += --with-lz4
+else
+OPENCONNECT_CONF_OPTS += --without-lz4
+endif
+
+$(eval $(autotools-package))
Build-tested using these defconfigs BR2_PACKAGE_OPENSSL=y BR2_PACKAGE_LIBOPENSSL=y BR2_PACKAGE_OPENCONNECT=y arm-aarch64 [ 1/41]: OK bootlin-aarch64-glibc [ 2/41]: OK bootlin-arcle-hs38-uclibc [ 3/41]: OK bootlin-armv5-uclibc [ 4/41]: OK bootlin-armv7-glibc [ 5/41]: OK bootlin-armv7m-uclibc [ 6/41]: SKIPPED bootlin-armv7-musl [ 7/41]: OK bootlin-m68k-5208-uclibc [ 8/41]: SKIPPED bootlin-m68k-68040-uclibc [ 9/41]: OK bootlin-microblazeel-uclibc [10/41]: OK bootlin-mipsel32r6-glibc [11/41]: OK bootlin-mipsel-uclibc [12/41]: OK bootlin-nios2-glibc [13/41]: OK bootlin-openrisc-uclibc [14/41]: OK bootlin-powerpc64le-power8-glibc [15/41]: OK bootlin-powerpc-e500mc-uclibc [16/41]: OK bootlin-riscv32-glibc [17/41]: OK bootlin-riscv64-glibc [18/41]: OK bootlin-riscv64-musl [19/41]: OK bootlin-s390x-z13-glibc [20/41]: OK bootlin-sh4-uclibc [21/41]: OK bootlin-sparc64-glibc [22/41]: OK bootlin-sparc-uclibc [23/41]: OK bootlin-x86-64-glibc [24/41]: OK bootlin-x86-64-musl [25/41]: OK bootlin-x86-64-uclibc [26/41]: OK bootlin-x86-i686-musl [27/41]: OK bootlin-xtensa-uclibc [28/41]: OK br-arm-basic [29/41]: OK br-arm-full-nothread [30/41]: OK br-arm-full-static [31/41]: OK br-i386-pentium4-full [32/41]: OK br-mips64-n64-full [33/41]: OK br-mips64r6-el-hf-glibc [34/41]: OK br-powerpc-603e-basic-cpp [35/41]: OK br-powerpc64-power7-glibc [36/41]: OK linaro-aarch64-be [37/41]: OK linaro-aarch64 [38/41]: OK linaro-arm [39/41]: OK sourcery-mips64 [40/41]: OK sourcery-mips [41/41]: OK 41 builds, 2 skipped, 0 build failed, 0 legal-info failed, 0 show-info failed BR2_PACKAGE_GNUTLS=y BR2_PACKAGE_OPENCONNECT=y arm-aarch64 [ 1/41]: OK bootlin-aarch64-glibc [ 2/41]: OK bootlin-arcle-hs38-uclibc [ 3/41]: OK bootlin-armv5-uclibc [ 4/41]: OK bootlin-armv7-glibc [ 5/41]: OK bootlin-armv7m-uclibc [ 6/41]: SKIPPED bootlin-armv7-musl [ 7/41]: OK bootlin-m68k-5208-uclibc [ 8/41]: SKIPPED bootlin-m68k-68040-uclibc [ 9/41]: OK bootlin-microblazeel-uclibc [10/41]: OK bootlin-mipsel32r6-glibc [11/41]: OK bootlin-mipsel-uclibc [12/41]: OK bootlin-nios2-glibc [13/41]: OK bootlin-openrisc-uclibc [14/41]: OK bootlin-powerpc64le-power8-glibc [15/41]: OK bootlin-powerpc-e500mc-uclibc [16/41]: OK bootlin-riscv32-glibc [17/41]: OK bootlin-riscv64-glibc [18/41]: OK bootlin-riscv64-musl [19/41]: OK bootlin-s390x-z13-glibc [20/41]: OK bootlin-sh4-uclibc [21/41]: OK bootlin-sparc64-glibc [22/41]: OK bootlin-sparc-uclibc [23/41]: OK bootlin-x86-64-glibc [24/41]: OK bootlin-x86-64-musl [25/41]: OK bootlin-x86-64-uclibc [26/41]: OK bootlin-x86-i686-musl [27/41]: OK bootlin-xtensa-uclibc [28/41]: OK br-arm-basic [29/41]: SKIPPED br-arm-full-nothread [30/41]: OK br-arm-full-static [31/41]: SKIPPED br-i386-pentium4-full [32/41]: OK br-mips64-n64-full [33/41]: OK br-mips64r6-el-hf-glibc [34/41]: OK br-powerpc-603e-basic-cpp [35/41]: SKIPPED br-powerpc64-power7-glibc [36/41]: OK linaro-aarch64-be [37/41]: OK linaro-aarch64 [38/41]: OK linaro-arm [39/41]: OK sourcery-mips64 [40/41]: OK sourcery-mips [41/41]: OK 41 builds, 5 skipped, 0 build failed, 0 legal-info failed, 0 show-info failed Signed-off-by: Bernd Kuhls <bernd@kuhls.net> --- DEVELOPERS | 1 + package/Config.in | 1 + ...licit-declaration-of-function-malloc.patch | 40 +++++++++++++++++++ package/openconnect/Config.in | 19 +++++++++ package/openconnect/openconnect.hash | 3 ++ package/openconnect/openconnect.mk | 32 +++++++++++++++ 6 files changed, 96 insertions(+) create mode 100644 package/openconnect/0001-Fix-implicit-declaration-of-function-malloc.patch create mode 100644 package/openconnect/Config.in create mode 100644 package/openconnect/openconnect.hash create mode 100644 package/openconnect/openconnect.mk