M doc/guix.texi => doc/guix.texi +9 -0
@@ 8397,6 8397,15 @@ several the @command{connmanctl} command to interact with the daemon and
configure networking."
@end deffn
+@cindex WPA Supplicant
+@deffn {Scheme Procedure} wpa-supplicant-service @
+ [#:wpa-supplicant @var{wpa-supplicant}]
+Return a service that runs @url{https://w1.fi/wpa_supplicant/,WPA
+supplicant}, an authentication daemon required to authenticate against
+encrypted WiFi or ethernet networks. Service is started to listen for
+requests on D-Bus.
+@end deffn
+
@cindex NTP
@cindex real time clock
@deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
M gnu/services/networking.scm => gnu/services/networking.scm +30 -1
@@ 64,7 64,8 @@
wicd-service
network-manager-service
- connman-service))
+ connman-service
+ wpa-supplicant-service-type))
;;; Commentary:
;;;
@@ 740,4 741,32 @@ several the @command{connmanctl} command to interact with the daemon and
configure networking."
(service connman-service-type connman))
+
+
+;;;
+;;; WPA supplicant
+;;;
+
+
+(define (wpa-supplicant-shepherd-service wpa-supplicant)
+ "Return a shepherd service for wpa_supplicant"
+ (list (shepherd-service
+ (documentation "Run WPA supplicant with dbus interface")
+ (provision '(wpa-supplicant))
+ (requirement '(user-processes dbus-system loopback))
+ (start #~(make-forkexec-constructor
+ (list (string-append #$wpa-supplicant
+ "/sbin/wpa_supplicant")
+ "-u" "-B" "-P/var/run/wpa_supplicant.pid")
+ #:pid-file "/var/run/wpa_supplicant.pid"))
+ (stop #~(make-kill-destructor)))))
+
+(define wpa-supplicant-service-type
+ (service-type (name 'wpa-supplicant)
+ (extensions
+ (list (service-extension shepherd-root-service-type
+ wpa-supplicant-shepherd-service)
+ (service-extension dbus-root-service-type list)
+ (service-extension profile-service-type list)))))
+
;;; networking.scm ends here