diff options
author | Declan Tsien <declantsien@riseup.net> | 2023-01-12 18:37:51 +0800 |
---|---|---|
committer | Andrew Tropin <andrew@trop.in> | 2023-01-16 20:59:30 +0400 |
commit | 0f20fc4dd99146c988907ca1cd2c58421b287596 (patch) | |
tree | da2dc4d151bb93c5e2a0bb2ecb18ceac30f1331b | |
parent | f52cc681b0791f43287525ea57d53c7889059ec6 (diff) | |
download | guix-0f20fc4dd99146c988907ca1cd2c58421b287596.tar.gz |
services: connman: Add iwd backend support.
* gnu/services/networking.scm (connman-configuration)[iwd?]: New field. (connman-shepherd-service): Add iwd? logic, remove wpa-supplicant requirement. * doc/guix.texi: Add information about connman-configuration iwd? option. Co-authored-by: Andrew Tropin <andrew@trop.in> Signed-off-by: Andrew Tropin <andrew@trop.in>
-rw-r--r-- | doc/guix.texi | 3 | ||||
-rw-r--r-- | gnu/services/networking.scm | 14 |
2 files changed, 13 insertions, 4 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index ac0f479e0f..27a0c62532 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -19770,6 +19770,9 @@ The connman package to use. @item @code{disable-vpn?} (default: @code{#f}) When true, disable connman's vpn plugin. + +@item @code{iwd?} (default: @code{#f}) +When true, ConnMan uses iwd to connect to wireless networks. @end table @end deftp diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 702404bc6c..89ce16f6af 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -18,7 +18,8 @@ ;;; Copyright © 2021 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> -;;; Copyright © 2022 Andrew Tropin <andrew@trop.in> +;;; Copyright © 2022, 2023 Andrew Tropin <andrew@trop.in> +;;; Copyright © 2023 Declan Tsien <declantsien@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1265,6 +1266,8 @@ wireless networking.")))) (connman connman-configuration-connman (default connman)) (disable-vpn? connman-configuration-disable-vpn? + (default #f)) + (iwd? connman-configuration-iwd? (default #f))) (define (connman-activation config) @@ -1281,18 +1284,21 @@ wireless networking.")))) (and (connman-configuration? config) (let ((connman (connman-configuration-connman config)) - (disable-vpn? (connman-configuration-disable-vpn? config))) + (disable-vpn? (connman-configuration-disable-vpn? config)) + (iwd? (connman-configuration-iwd? config))) (list (shepherd-service (documentation "Run Connman") (provision '(networking)) (requirement - '(user-processes dbus-system loopback wpa-supplicant)) + (append '(user-processes dbus-system loopback) + (if iwd? '(iwd) '()))) (start #~(make-forkexec-constructor (list (string-append #$connman "/sbin/connmand") "--nodaemon" "--nodnsproxy" - #$@(if disable-vpn? '("--noplugin=vpn") '())) + #$@(if disable-vpn? '("--noplugin=vpn") '()) + #$@(if iwd? '("--wifi=iwd_agent") '())) ;; As connman(8) notes, when passing '-n', connman ;; "directs log output to the controlling terminal in |