diff --git a/doc/guix.texi b/doc/guix.texi index 9a95e1821d..a3eba5811e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -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}] @ diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index df609da0de..5ec29af4bf 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -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