From 379d4afac343101a2351bab4f314496395828d8d Mon Sep 17 00:00:00 2001 From: Declan Tsien Date: Sat, 14 Jan 2023 08:57:02 +0800 Subject: [PATCH] services: connman: Add option to disable wpa-supplicant. * gnu/services/networking.scm (connman-configuration)[disable-wpa-supplicant?]: New field. (connman-shepherd-service): Applied disable-wpa-supplicant? logic. * doc/guix.texi: Add information about connman-configuration disable-wpa-supplicant? option. --- doc/guix.texi | 4 ++++ gnu/services/networking.scm | 20 ++++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 751d0957d8..29be830bd4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -19726,6 +19726,10 @@ The connman package to use. @item @code{disable-vpn?} (default: @code{#f}) When true, disable connman's vpn plugin. + +@item @code{disable-wpa-supplicant?} (default: @code{#f}) +When true, remove @code{wpa-supplicant} requirement. Let users disable +wireless adapters or hook in a another implementation like @code{iwd}. @end table @end deftp diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 702404bc6c..39162fe822 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Maxime Devos ;;; Copyright © 2021 Guillaume Le Vaillant ;;; Copyright © 2022 Andrew Tropin +;;; Copyright © 2023 Declan Tsien ;;; ;;; This file is part of GNU Guix. ;;; @@ -1262,10 +1263,12 @@ (define network-manager-service-type (define-record-type* connman-configuration make-connman-configuration connman-configuration? - (connman connman-configuration-connman - (default connman)) - (disable-vpn? connman-configuration-disable-vpn? - (default #f))) + (connman connman-configuration-connman + (default connman)) + (disable-vpn? connman-configuration-disable-vpn? + (default #f)) + (disable-wpa-supplicant? connman-configuration-disable-wpa-supplicant? + (default #f))) (define (connman-activation config) (let ((disable-vpn? (connman-configuration-disable-vpn? config))) @@ -1280,13 +1283,14 @@ (define (connman-shepherd-service config) "Return a shepherd service for Connman" (and (connman-configuration? config) - (let ((connman (connman-configuration-connman config)) - (disable-vpn? (connman-configuration-disable-vpn? config))) + (let ((connman (connman-configuration-connman config)) + (disable-vpn? (connman-configuration-disable-vpn? config)) + (disable-wpa-supplicant? (connman-configuration-disable-wpa-supplicant? config))) (list (shepherd-service (documentation "Run Connman") (provision '(networking)) - (requirement - '(user-processes dbus-system loopback wpa-supplicant)) + (requirement (append '(user-processes dbus-system loopback) + (if disable-wpa-supplicant? '() '(wpa-supplicant)))) (start #~(make-forkexec-constructor (list (string-append #$connman "/sbin/connmand") -- 2.38.1