Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/network-manager: make cryptography library optional
@ 2025-05-27 15:23 Florian Larysch
  2025-05-30 20:01 ` Thomas Petazzoni via buildroot
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Florian Larysch @ 2025-05-27 15:23 UTC (permalink / raw)
  To: buildroot; +Cc: Florian Larysch

The network-manager package currently pulls in either gnutls or libnss,
neither of which are very common and it might be the only reason why
they are present on a system.

However, most of NetworkManager works just fine without any cryptography
support, it only seems to be used in test cases and 802.1X support code.

Make the crypto backend configurable and optional to make it possible to
avoid this dependency while keeping the default behavior the same.

Signed-off-by: Florian Larysch <fl@n621.de>
---

The select vs depends on thing is a bit hacky because I've tried to set
it up in a way that keeps the existing behavior for backwards
compatibility. I'm not even sure if this is the best way to go about it
or if all the options should maybe just depend on the respective
libraries to make it less implicit.

 package/network-manager/Config.in          | 22 +++++++++++++++++++++-
 package/network-manager/network-manager.mk |  6 ++++--
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/package/network-manager/Config.in b/package/network-manager/Config.in
index b388c573fe..4557174b7d 100644
--- a/package/network-manager/Config.in
+++ b/package/network-manager/Config.in
@@ -10,7 +10,6 @@ config BR2_PACKAGE_NETWORK_MANAGER
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
 	depends on BR2_USE_WCHAR # libglib2
 	select BR2_PACKAGE_DBUS
-	select BR2_PACKAGE_GNUTLS if !BR2_PACKAGE_LIBNSS
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_LIBNDP
 	select BR2_PACKAGE_UTIL_LINUX
@@ -58,6 +57,27 @@ config BR2_PACKAGE_NETWORK_MANAGER_OVS
 	select BR2_PACKAGE_JANSSON
 	help
 	  This option enables support for OpenVSwitch
+
+choice
+	prompt "Crypto backend"
+	default BR2_PACKAGE_NETWORK_MANAGER_CRYPTO_GNUTLS if !BR2_PACKAGE_LIBNSS
+	default BR2_PACKAGE_NETWORK_MANAGER_CRYPTO_LIBNSS if BR2_PACKAGE_LIBNSS
+	help
+	  Select which library (if any) is used to provide cryptographic
+	  operations for 802.1X, for example.
+
+config BR2_PACKAGE_NETWORK_MANAGER_CRYPTO_GNUTLS
+	bool "gnutls"
+	select BR2_PACKAGE_GNUTLS
+
+config BR2_PACKAGE_NETWORK_MANAGER_CRYPTO_LIBNSS
+	bool "libnss"
+	depends on BR2_PACKAGE_LIBNSS
+
+config BR2_PACKAGE_NETWORK_MANAGER_CRYPTO_NONE
+	bool "none"
+
+endchoice
 endif
 
 comment "NetworkManager needs udev /dev management and a glibc or musl toolchain w/ headers >= 5.4, dynamic library, wchar, threads, gcc >= 4.9"
diff --git a/package/network-manager/network-manager.mk b/package/network-manager/network-manager.mk
index ab3a437838..14119f8fa2 100644
--- a/package/network-manager/network-manager.mk
+++ b/package/network-manager/network-manager.mk
@@ -76,12 +76,14 @@ else
 NETWORK_MANAGER_CONF_OPTS += -Dconcheck=false
 endif
 
-ifeq ($(BR2_PACKAGE_LIBNSS),y)
+ifeq ($(BR2_PACKAGE_NETWORK_MANAGER_CRYPTO_LIBNSS),y)
 NETWORK_MANAGER_DEPENDENCIES += libnss
 NETWORK_MANAGER_CONF_OPTS += -Dcrypto=nss
-else
+else ifeq ($(BR2_PACKAGE_NETWORK_MANAGER_CRYPTO_GNUTLS),y)
 NETWORK_MANAGER_DEPENDENCIES += gnutls
 NETWORK_MANAGER_CONF_OPTS += -Dcrypto=gnutls
+else ifeq ($(BR2_PACKAGE_NETWORK_MANAGER_CRYPTO_NONE),y)
+NETWORK_MANAGER_CONF_OPTS += -Dcrypto=null
 endif
 
 ifeq ($(BR2_PACKAGE_LIBPSL),y)
-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-02-03 22:01 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-27 15:23 [Buildroot] [PATCH 1/1] package/network-manager: make cryptography library optional Florian Larysch
2025-05-30 20:01 ` Thomas Petazzoni via buildroot
2025-05-30 22:11   ` Florian Larysch
2025-05-31  8:56     ` Thomas Petazzoni via buildroot
2025-05-31 14:39 ` [Buildroot] [PATCH v2 0/2] package/network-manager: make crypto " Florian Larysch
2025-11-17 13:01   ` Florian Larysch
2025-05-31 14:39 ` [Buildroot] [PATCH v2 1/2] " Florian Larysch
2025-07-08  9:13   ` Marcus Hoffmann via buildroot
2026-02-03 22:01   ` Marcus Hoffmann via buildroot
2025-05-31 14:39 ` [Buildroot] [PATCH v2 2/2] package/network-manager: switch default crypto provider to gnutls Florian Larysch
2025-07-08  9:16   ` Marcus Hoffmann via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox