diff --git a/doc/guix.texi b/doc/guix.texi index 75886e94b3..58c3688c03 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10773,6 +10773,28 @@ several commands to interact with the daemon and configure networking: and @command{wicd-curses} user interfaces. @end deffn +@cindex ModemManager + +@defvr {Scheme Variable} modem-manager-service-type +This is the service type for the +@uref{https://wiki.gnome.org/Projects/ModemManager, ModemManager} +service. The value for this service type is a +@code{modem-manager-configuration} record. + +This service is part of @code{%desktop-services} (@pxref{Desktop +Services}). +@end defvr + +@deftp {Data Type} modem-manager-configuration +Data type representing the configuration of ModemManager. + +@table @asis +@item @code{modem-manager} (default: @code{modem-manager}) +The ModemManager package to use. + +@end table +@end deftp + @cindex NetworkManager @defvr {Scheme Variable} network-manager-service-type diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 400b6919d2..67674e895e 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -31,6 +31,7 @@ #:use-module (gnu system pam) #:use-module (gnu packages admin) #:use-module (gnu packages connman) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages linux) #:use-module (gnu packages tor) #:use-module (gnu packages messaging) @@ -92,6 +93,9 @@ connman-configuration? connman-service-type + modem-manager-configuration + modem-manager-configuration? + modem-manager-service-type wpa-supplicant-service-type openvswitch-service-type @@ -809,6 +813,17 @@ several commands to interact with the daemon and configure networking: and @command{wicd-curses} user interfaces." (service wicd-service-type wicd)) + +;;; +;;; ModemManager +;;; + +(define-record-type* + modem-manager-configuration make-modem-manager-configuration + modem-manager-configuration? + (modem-manager modem-manager-configuration-modem-manager + (default modem-manager))) + ;;; ;;; NetworkManager @@ -946,6 +961,30 @@ wireless networking.")))) "Run @url{https://01.org/connman,Connman}, a network connection manager.")))) + +;;; +;;; Modem manager +;;; + +(define modem-manager-service-type + (let ((config->package + (match-lambda + (($ modem-manager) + (list modem-manager))))) + (service-type (name 'modem-manager) + (extensions + (list (service-extension dbus-root-service-type + config->package) + (service-extension udev-service-type + config->package) + (service-extension polkit-service-type + config->package))) + (default-value (modem-manager-configuration)) + (description + "Run @uref{https://wiki.gnome.org/Projects/ModemManager, +ModemManager}, a modem management daemon that aims to simplify dialup +networking.")))) + ;;; ;;; WPA supplicant diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm index 171c636e5f..323679e7fc 100644 --- a/gnu/tests/networking.scm +++ b/gnu/tests/networking.scm @@ -22,6 +22,7 @@ #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services networking) #:use-module (guix gexp) #:use-module (guix store)