mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
services: network-manager: Add iwd backend support.
* gnu/services/networking.scm (network-manager-configuration)[iwd?]: New field. (network-manager-shepherd-service): Add iwd to requirements if needed. * doc/guix.texi: Add information about iwd? option.
This commit is contained in:
parent
7dddf0cc54
commit
0823fd1aa9
2 changed files with 13 additions and 4 deletions
|
@ -19583,6 +19583,10 @@ This is the list of available plugins for virtual private networks
|
||||||
(VPNs). An example of this is the @code{network-manager-openvpn}
|
(VPNs). An example of this is the @code{network-manager-openvpn}
|
||||||
package, which allows NetworkManager to manage VPNs @i{via} OpenVPN.
|
package, which allows NetworkManager to manage VPNs @i{via} OpenVPN.
|
||||||
|
|
||||||
|
@item @code{iwd?} (default: @code{#f})
|
||||||
|
NetworkManager will use iwd as a backend for wireless networking if this
|
||||||
|
option is set to @code{#t}, otherwise it will use wpa-supplicant.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
;;; Copyright © 2021 Christine Lemmer-Webber <cwebber@dustycloud.org>
|
;;; Copyright © 2021 Christine Lemmer-Webber <cwebber@dustycloud.org>
|
||||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
||||||
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
|
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
|
||||||
|
;;; Copyright © 2022 Andrew Tropin <andrew@trop.in>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -1143,7 +1144,8 @@ (define-record-type* <network-manager-configuration>
|
||||||
(dns network-manager-configuration-dns
|
(dns network-manager-configuration-dns
|
||||||
(default "default"))
|
(default "default"))
|
||||||
(vpn-plugins network-manager-configuration-vpn-plugins ;list of file-like
|
(vpn-plugins network-manager-configuration-vpn-plugins ;list of file-like
|
||||||
(default '())))
|
(default '()))
|
||||||
|
(iwd? network-manager-configuration-iwd? (default #f)))
|
||||||
|
|
||||||
(define network-manager-activation
|
(define network-manager-activation
|
||||||
;; Activation gexp for NetworkManager
|
;; Activation gexp for NetworkManager
|
||||||
|
@ -1199,14 +1201,17 @@ (define network-manager-environment
|
||||||
|
|
||||||
(define network-manager-shepherd-service
|
(define network-manager-shepherd-service
|
||||||
(match-lambda
|
(match-lambda
|
||||||
(($ <network-manager-configuration> network-manager dns vpn-plugins)
|
(($ <network-manager-configuration> network-manager dns vpn-plugins iwd?)
|
||||||
(let ((conf (plain-file "NetworkManager.conf"
|
(let ((conf (plain-file "NetworkManager.conf"
|
||||||
(string-append "[main]\ndns=" dns "\n")))
|
(string-append
|
||||||
|
"[main]\ndns=" dns "\n"
|
||||||
|
(if iwd? "[device]\nwifi.backend=iwd\n" ""))))
|
||||||
(vpn (vpn-plugin-directory vpn-plugins)))
|
(vpn (vpn-plugin-directory vpn-plugins)))
|
||||||
(list (shepherd-service
|
(list (shepherd-service
|
||||||
(documentation "Run the NetworkManager.")
|
(documentation "Run the NetworkManager.")
|
||||||
(provision '(networking))
|
(provision '(networking))
|
||||||
(requirement '(user-processes dbus-system wpa-supplicant loopback))
|
(requirement (append '(user-processes dbus-system loopback)
|
||||||
|
(if iwd? '(iwd) '(wpa-supplicant))))
|
||||||
(start #~(make-forkexec-constructor
|
(start #~(make-forkexec-constructor
|
||||||
(list (string-append #$network-manager
|
(list (string-append #$network-manager
|
||||||
"/sbin/NetworkManager")
|
"/sbin/NetworkManager")
|
||||||
|
|
Loading…
Reference in a new issue