summaryrefslogtreecommitdiff
path: root/gnu/services
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 /gnu/services
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>
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/networking.scm52
1 files changed, 34 insertions, 18 deletions
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 40081bf60e4..4907dd5c043 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -227,6 +227,8 @@
227 wpa-supplicant-configuration? 227 wpa-supplicant-configuration?
228 wpa-supplicant-configuration-wpa-supplicant 228 wpa-supplicant-configuration-wpa-supplicant
229 wpa-supplicant-configuration-requirement 229 wpa-supplicant-configuration-requirement
230 wpa-supplicant-configuration-shepherd-requirement
231 wpa-supplicant-configuration-shepherd-provision
230 wpa-supplicant-configuration-pid-file 232 wpa-supplicant-configuration-pid-file
231 wpa-supplicant-configuration-dbus? 233 wpa-supplicant-configuration-dbus?
232 wpa-supplicant-configuration-interface 234 wpa-supplicant-configuration-interface
@@ -2024,34 +2026,48 @@ whatever the thing is supposed to do).")))
2024;;; WPA supplicant 2026;;; WPA supplicant
2025;;; 2027;;;
2026 2028
2029(define-with-syntax-properties (warn-deprecated-wpa-supplicant-requirement
2030 (value properties))
2031 (unless (unspecified? value)
2032 (warning (source-properties->location properties)
2033 (G_ "the 'requirement' field is deprecated, please use \
2034'shepherd-requirement' field instead~%")))
2035 value)
2036
2027(define-record-type* <wpa-supplicant-configuration> 2037(define-record-type* <wpa-supplicant-configuration>
2028 wpa-supplicant-configuration make-wpa-supplicant-configuration 2038 wpa-supplicant-configuration make-wpa-supplicant-configuration
2029 wpa-supplicant-configuration? 2039 wpa-supplicant-configuration?
2030 (wpa-supplicant wpa-supplicant-configuration-wpa-supplicant ;file-like 2040 (wpa-supplicant wpa-supplicant-configuration-wpa-supplicant ;file-like
2031 (default wpa-supplicant)) 2041 (default wpa-supplicant))
2032 (requirement wpa-supplicant-configuration-requirement ;list of symbols 2042 (requirement wpa-supplicant-configuration-requirement ;list of symbols
2033 (default '(user-processes loopback syslogd))) 2043 (sanitize warn-deprecated-wpa-supplicant-requirement)
2034 (pid-file wpa-supplicant-configuration-pid-file ;string 2044 (default *unspecified*))
2035 (default "/var/run/wpa_supplicant.pid")) 2045 (pid-file wpa-supplicant-configuration-pid-file ;string
2036 (dbus? wpa-supplicant-configuration-dbus? ;Boolean 2046 (default "/var/run/wpa_supplicant.pid"))
2037 (default #t)) 2047 (dbus? wpa-supplicant-configuration-dbus? ;Boolean
2038 (interface wpa-supplicant-configuration-interface ;#f | string 2048 (default #t))
2039 (default #f)) 2049 (interface wpa-supplicant-configuration-interface ;#f | string
2040 (config-file wpa-supplicant-configuration-config-file ;#f | <file-like> 2050 (default #f))
2041 (default #f)) 2051 (config-file wpa-supplicant-configuration-config-file ;#f | <file-like>
2042 (extra-options wpa-supplicant-configuration-extra-options ;list of strings 2052 (default #f))
2043 (default '()))) 2053 (extra-options wpa-supplicant-configuration-extra-options ;list of strings
2054 (default '()))
2055 (shepherd-provision wpa-supplicant-configuration-shepherd-provision ;list of symbols
2056 (default '(wpa-supplicant wireless-daemon)))
2057 (shepherd-requirement wpa-supplicant-configuration-shepherd-requirement ;list of symbols
2058 (default '(user-processes loopback syslogd))))
2044 2059
2045(define (wpa-supplicant-shepherd-service config) 2060(define (wpa-supplicant-shepherd-service config)
2046 (match-record config <wpa-supplicant-configuration> 2061 (match-record config <wpa-supplicant-configuration>
2047 (wpa-supplicant requirement pid-file dbus? 2062 (wpa-supplicant requirement pid-file dbus?
2063 shepherd-requirement shepherd-provision
2048 interface config-file extra-options) 2064 interface config-file extra-options)
2049 (list (shepherd-service 2065 (list (shepherd-service
2050 (documentation "Run the WPA supplicant daemon") 2066 (documentation "Run the WPA supplicant daemon")
2051 (provision '(wpa-supplicant)) 2067 (provision shepherd-provision)
2052 (requirement (if dbus? 2068 (requirement `(,@(if dbus? '(dbus-system) '())
2053 (cons 'dbus-system requirement) 2069 ,@(or (if (unspecified? requirement) #f requirement)
2054 requirement)) 2070 shepherd-requirement)))
2055 (start #~(make-forkexec-constructor 2071 (start #~(make-forkexec-constructor
2056 (list (string-append #$wpa-supplicant 2072 (list (string-append #$wpa-supplicant
2057 "/sbin/wpa_supplicant") 2073 "/sbin/wpa_supplicant")