* [Buildroot] [PATCH 1/1] package/openconnect: new package
@ 2024-07-28 11:50 Bernd Kuhls
2024-07-29 20:44 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Bernd Kuhls @ 2024-07-28 11:50 UTC (permalink / raw)
To: buildroot; +Cc: Thomas Petazzoni
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
diff --git a/DEVELOPERS b/DEVELOPERS
index c6b0d68bcb..4a4472293c 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -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/
diff --git a/package/Config.in b/package/Config.in
index 90f1ecc877..3e51ddd707 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -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"
diff --git a/package/openconnect/0001-Fix-implicit-declaration-of-function-malloc.patch b/package/openconnect/0001-Fix-implicit-declaration-of-function-malloc.patch
new file mode 100644
index 0000000000..4732c4fb5e
--- /dev/null
+++ b/package/openconnect/0001-Fix-implicit-declaration-of-function-malloc.patch
@@ -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
+
diff --git a/package/openconnect/Config.in b/package/openconnect/Config.in
new file mode 100644
index 0000000000..502babd5b4
--- /dev/null
+++ b/package/openconnect/Config.in
@@ -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
diff --git a/package/openconnect/openconnect.hash b/package/openconnect/openconnect.hash
new file mode 100644
index 0000000000..86bdaa5d4e
--- /dev/null
+++ b/package/openconnect/openconnect.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 a2bedce3aa4dfe75e36e407e48e8e8bc91d46def5335ac9564fbf91bd4b2413e openconnect-9.12.tar.gz
+sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING.LGPL
diff --git a/package/openconnect/openconnect.mk b/package/openconnect/openconnect.mk
new file mode 100644
index 0000000000..70c9bd3779
--- /dev/null
+++ b/package/openconnect/openconnect.mk
@@ -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))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/openconnect: new package
2024-07-28 11:50 [Buildroot] [PATCH 1/1] package/openconnect: new package Bernd Kuhls
@ 2024-07-29 20:44 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-07-29 20:44 UTC (permalink / raw)
To: Bernd Kuhls; +Cc: buildroot
Hello Bernd,
On Sun, 28 Jul 2024 13:50:29 +0200
Bernd Kuhls <bernd@kuhls.net> wrote:
> diff --git a/package/openconnect/Config.in b/package/openconnect/Config.in
> new file mode 100644
> index 0000000000..502babd5b4
> --- /dev/null
> +++ b/package/openconnect/Config.in
> @@ -0,0 +1,19 @@
> +config BR2_PACKAGE_OPENCONNECT
> + bool "openconnect"
> + depends on BR2_PACKAGE_GNUTLS || BR2_PACKAGE_LIBOPENSSL
Instead of this, we do:
select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_GNUTLS
select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL if !BR2_PACKAGE_GNUTLS
in a number of other packages. I've also added a comment above the
"select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL" to explain why it is
selected.
Also, some features of OpenSSL need to be explicitly selected:
+ select BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4 if !BR2_PACKAGE_GNUTLS
+ select BR2_PACKAGE_LIBOPENSSL_ENABLE_DES if !BR2_PACKAGE_GNUTLS
Basically for any package that uses libopenssl, make sure to do a test
build with all OpenSSL features disabled, to catch these issues.
Patch applied with those changes. Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-07-29 20:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-28 11:50 [Buildroot] [PATCH 1/1] package/openconnect: new package Bernd Kuhls
2024-07-29 20:44 ` Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox