summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Trofimov <sarg@sarg.org.ru>2025-05-23 21:21:41 +0200
committerLudovic Courtès <ludo@gnu.org>2025-06-05 22:42:14 +0200
commitfaa8cdfc09d14d62e441f588bbcc883b1da9fab2 (patch)
tree0b56ffbf35555a44e2a910b8e60e27b103e09e90
parent2ec1469104cf52ad0e91ad164a9f5a3a80fb9743 (diff)
services: wpa-supplicant: Add 'wireless-daemon' provision.
* gnu/services/networking.scm (wpa-supplicant-configuration): [requirement]: Deprecate, [shepherd-requirement]: New field, [shepherd-provision]: Extract to a field. Add 'wireless-daemon to it. * doc/guix.texi (Networking Setup): Document it. Change-Id: Icc6fdd695e6e96ef168a085524989da639f77cd3 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--doc/guix.texi5
-rw-r--r--gnu/services/networking.scm52
2 files changed, 38 insertions, 19 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 35d9f9c430..405e11795f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -22383,9 +22383,12 @@ It takes the following parameters:
@item @code{wpa-supplicant} (default: @code{wpa-supplicant})
The WPA Supplicant package to use.
-@item @code{requirement} (default: @code{'(user-processes loopback syslogd)}
+@item @code{shepherd-requirement} (default: @code{(user-processes loopback syslogd)}
List of services that should be started before WPA Supplicant starts.
+@item @code{shepherd-provision} (default: @code{(wpa-supplicant wireless-daemon)}) (type: list-of-symbols)
+The name(s) of the service.
+
@item @code{dbus?} (default: @code{#t})
Whether to listen for requests on D-Bus.
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 40081bf60e..4907dd5c04 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -227,6 +227,8 @@
wpa-supplicant-configuration?
wpa-supplicant-configuration-wpa-supplicant
wpa-supplicant-configuration-requirement
+ wpa-supplicant-configuration-shepherd-requirement
+ wpa-supplicant-configuration-shepherd-provision
wpa-supplicant-configuration-pid-file
wpa-supplicant-configuration-dbus?
wpa-supplicant-configuration-interface
@@ -2024,34 +2026,48 @@ whatever the thing is supposed to do).")))
;;; WPA supplicant
;;;
+(define-with-syntax-properties (warn-deprecated-wpa-supplicant-requirement
+ (value properties))
+ (unless (unspecified? value)
+ (warning (source-properties->location properties)
+ (G_ "the 'requirement' field is deprecated, please use \
+'shepherd-requirement' field instead~%")))
+ value)
+
(define-record-type* <wpa-supplicant-configuration>
wpa-supplicant-configuration make-wpa-supplicant-configuration
wpa-supplicant-configuration?
- (wpa-supplicant wpa-supplicant-configuration-wpa-supplicant ;file-like
- (default wpa-supplicant))
- (requirement wpa-supplicant-configuration-requirement ;list of symbols
- (default '(user-processes loopback syslogd)))
- (pid-file wpa-supplicant-configuration-pid-file ;string
- (default "/var/run/wpa_supplicant.pid"))
- (dbus? wpa-supplicant-configuration-dbus? ;Boolean
- (default #t))
- (interface wpa-supplicant-configuration-interface ;#f | string
- (default #f))
- (config-file wpa-supplicant-configuration-config-file ;#f | <file-like>
- (default #f))
- (extra-options wpa-supplicant-configuration-extra-options ;list of strings
- (default '())))
+ (wpa-supplicant wpa-supplicant-configuration-wpa-supplicant ;file-like
+ (default wpa-supplicant))
+ (requirement wpa-supplicant-configuration-requirement ;list of symbols
+ (sanitize warn-deprecated-wpa-supplicant-requirement)
+ (default *unspecified*))
+ (pid-file wpa-supplicant-configuration-pid-file ;string
+ (default "/var/run/wpa_supplicant.pid"))
+ (dbus? wpa-supplicant-configuration-dbus? ;Boolean
+ (default #t))
+ (interface wpa-supplicant-configuration-interface ;#f | string
+ (default #f))
+ (config-file wpa-supplicant-configuration-config-file ;#f | <file-like>
+ (default #f))
+ (extra-options wpa-supplicant-configuration-extra-options ;list of strings
+ (default '()))
+ (shepherd-provision wpa-supplicant-configuration-shepherd-provision ;list of symbols
+ (default '(wpa-supplicant wireless-daemon)))
+ (shepherd-requirement wpa-supplicant-configuration-shepherd-requirement ;list of symbols
+ (default '(user-processes loopback syslogd))))
(define (wpa-supplicant-shepherd-service config)
(match-record config <wpa-supplicant-configuration>
(wpa-supplicant requirement pid-file dbus?
+ shepherd-requirement shepherd-provision
interface config-file extra-options)
(list (shepherd-service
(documentation "Run the WPA supplicant daemon")
- (provision '(wpa-supplicant))
- (requirement (if dbus?
- (cons 'dbus-system requirement)
- requirement))
+ (provision shepherd-provision)
+ (requirement `(,@(if dbus? '(dbus-system) '())
+ ,@(or (if (unspecified? requirement) #f requirement)
+ shepherd-requirement)))
(start #~(make-forkexec-constructor
(list (string-append #$wpa-supplicant
"/sbin/wpa_supplicant")