* gnu/services/networking.scm (wpa-supplicant-service): New procedure. (wpa-supplicant-service-type): New variable. (wpa-supplicant-shepherd-service): New procedure. * doc/guix.texi (Networking Services): Document it. --- doc/guix.texi | 8 ++++++++ gnu/services/networking.scm | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/doc/guix.texi b/doc/guix.texi index 89a7a58..bdf0bce 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -8301,6 +8301,14 @@ 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. +@end deffn + @deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @ [#:servers @var{%ntp-servers}] @ [#:allow-large-adjustment? #f] diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index df609da..05ee339 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)) ;;; Commentary: ;;; @@ -740,4 +741,37 @@ 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"))) + (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))))) + +(define* (wpa-supplicant-service #:key (wpa-supplicant 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 wpa-supplicant-service-type wpa-supplicant)) + ;;; networking.scm ends here -- 2.10.2