unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#30991] [PATCH 0/2] Add ModemManager service.
@ 2018-03-29 18:28 Danny Milosavljevic
  2018-03-29 18:33 ` [bug#30991] [PATCH 1/2] services: Add modem-manager-service-type Danny Milosavljevic
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Danny Milosavljevic @ 2018-03-29 18:28 UTC (permalink / raw)
  To: 30991

Danny Milosavljevic (2):
  services: Add modem-manager-service-type.
  services: Add ModemManager to '%desktop-services'.

 doc/guix.texi               | 22 ++++++++++++++++++++++
 gnu/services/desktop.scm    |  1 +
 gnu/services/networking.scm | 35 +++++++++++++++++++++++++++++++++++
 3 files changed, 58 insertions(+)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH 1/2] services: Add modem-manager-service-type.
  2018-03-29 18:28 [bug#30991] [PATCH 0/2] Add ModemManager service Danny Milosavljevic
@ 2018-03-29 18:33 ` Danny Milosavljevic
  2018-03-29 18:33   ` [bug#30991] [PATCH 2/2] services: Add ModemManager to '%desktop-services' Danny Milosavljevic
  2018-03-29 19:15 ` [bug#30991] [PATCH 0/2] Add ModemManager service Danny Milosavljevic
  2018-03-29 22:21 ` [bug#30991] [PATCH v2 0/3] " Danny Milosavljevic
  2 siblings, 1 reply; 22+ messages in thread
From: Danny Milosavljevic @ 2018-03-29 18:33 UTC (permalink / raw)
  To: 30991

* gnu/services/networking.scm (modem-manager-service-type): New variable.
(<modem-manager-configuration>): New variable.
(modem-manager-configuration): New procedure.
(modem-manager-configuration?): New procedure.
* doc/guix.texi (Networking Services): Document it.
---
 doc/guix.texi               | 22 ++++++++++++++++++++++
 gnu/services/networking.scm | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 25c08b9f0..23b7ae089 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -10712,6 +10712,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 6ac440fd2..660ec162b 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -30,6 +30,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)
@@ -90,6 +91,9 @@
             connman-configuration?
             connman-service-type
 
+            modem-manager-configuration
+            modem-manager-configuration?
+            modem-manager-service-type
             wpa-supplicant-service-type
 
             openvswitch-service-type
@@ -890,6 +894,17 @@ and @command{wicd-curses} user interfaces."
   (service wicd-service-type wicd))
 
 \f
+;;;
+;;; ModemManager
+;;;
+
+(define-record-type* <modem-manager-configuration>
+  modem-manager-configuration make-modem-manager-configuration
+  modem-manager-configuration?
+  (modem-manager modem-manager-configuration-modem-manager
+                   (default modem-manager)))
+
+\f
 ;;;
 ;;; NetworkManager
 ;;;
@@ -1027,6 +1042,26 @@ wireless networking."))))
 a network connection manager."))))
 
 \f
+;;;
+;;; Modem manager
+;;;
+
+(define modem-manager-service-type
+  (let ((config->package
+         (match-lambda
+          (($ <modem-manager-configuration> modem-manager)
+           (list modem-manager)))))
+    (service-type (name 'modem-manager)
+                  (extensions
+                   (list (service-extension dbus-root-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."))))
+
+\f
 ;;;
 ;;; WPA supplicant
 ;;;

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH 2/2] services: Add ModemManager to '%desktop-services'.
  2018-03-29 18:33 ` [bug#30991] [PATCH 1/2] services: Add modem-manager-service-type Danny Milosavljevic
@ 2018-03-29 18:33   ` Danny Milosavljevic
  0 siblings, 0 replies; 22+ messages in thread
From: Danny Milosavljevic @ 2018-03-29 18:33 UTC (permalink / raw)
  To: 30991

* gnu/services/desktop.scm (%desktop-services): Add ModemManager.
---
 gnu/services/desktop.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 897252917..00f5c105b 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -898,6 +898,7 @@ with the administrator's password."
          (simple-service 'mtp udev-service-type (list libmtp))
 
          ;; The D-Bus clique.
+         (service modem-manager-service-type)
          (service network-manager-service-type)
          (service wpa-supplicant-service-type)    ;needed by NetworkManager
          (avahi-service)

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH 0/2] Add ModemManager service.
  2018-03-29 18:28 [bug#30991] [PATCH 0/2] Add ModemManager service Danny Milosavljevic
  2018-03-29 18:33 ` [bug#30991] [PATCH 1/2] services: Add modem-manager-service-type Danny Milosavljevic
@ 2018-03-29 19:15 ` Danny Milosavljevic
  2018-03-29 22:21 ` [bug#30991] [PATCH v2 0/3] " Danny Milosavljevic
  2 siblings, 0 replies; 22+ messages in thread
From: Danny Milosavljevic @ 2018-03-29 19:15 UTC (permalink / raw)
  To: 30991

[-- Attachment #1: Type: text/plain, Size: 328 bytes --]

I'd also like to extend udev-service-type in modem-manager-service-type - but that would create a cycle (gnu services networking) - (gnu services base).

Can we fix this please?

A way is to move static-networking-service into (gnu services base).

Or move %base-services to a new module (gnu base-services) or whatever.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 0/3] Add ModemManager service.
  2018-03-29 18:28 [bug#30991] [PATCH 0/2] Add ModemManager service Danny Milosavljevic
  2018-03-29 18:33 ` [bug#30991] [PATCH 1/2] services: Add modem-manager-service-type Danny Milosavljevic
  2018-03-29 19:15 ` [bug#30991] [PATCH 0/2] Add ModemManager service Danny Milosavljevic
@ 2018-03-29 22:21 ` Danny Milosavljevic
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base) Danny Milosavljevic
                     ` (2 more replies)
  2 siblings, 3 replies; 22+ messages in thread
From: Danny Milosavljevic @ 2018-03-29 22:21 UTC (permalink / raw)
  To: 30991

Danny Milosavljevic (3):
  services: Move static-networking to (gnu services base).
  services: Add modem-manager-service-type.
  services: Add ModemManager to '%desktop-services'.

 doc/guix.texi               |  22 +++++
 gnu/services/base.scm       | 160 ++++++++++++++++++++++++++++++++++-
 gnu/services/desktop.scm    |   1 +
 gnu/services/networking.scm | 199 +++++++++-----------------------------------
 4 files changed, 222 insertions(+), 160 deletions(-)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base).
  2018-03-29 22:21 ` [bug#30991] [PATCH v2 0/3] " Danny Milosavljevic
@ 2018-03-29 22:21   ` Danny Milosavljevic
  2018-03-31 16:13     ` Ludovic Courtès
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type Danny Milosavljevic
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services' Danny Milosavljevic
  2 siblings, 1 reply; 22+ messages in thread
From: Danny Milosavljevic @ 2018-03-29 22:21 UTC (permalink / raw)
  To: 30991

* gnu/services/networking.scm (static-networking, static-networking?,
static-networking-interface, static-networking-ip, static-networking-netmask,
static-networking-gateway, static-networking-requirement,
static-networking-service, static-networking-service-type): Move to...
* gnu/services/base.scm: ...here.
---
 gnu/services/base.scm       | 160 +++++++++++++++++++++++++++++++++++++++++++-
 gnu/services/networking.scm | 160 +-------------------------------------------
 2 files changed, 160 insertions(+), 160 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index be1bfce57..694aab882 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -26,7 +26,6 @@
   #:use-module (guix store)
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
-  #:use-module (gnu services networking)
   #:use-module (gnu system pam)
   #:use-module (gnu system shadow)                ; 'user-account', etc.
   #:use-module (gnu system uuid)
@@ -64,6 +63,18 @@
             console-font-service
             virtual-terminal-service-type
 
+            static-networking
+
+            static-networking?
+            static-networking-interface
+            static-networking-ip
+            static-networking-netmask
+            static-networking-gateway
+            static-networking-requirement
+
+            static-networking-service
+            static-networking-service-type
+
             udev-configuration
             udev-configuration?
             udev-configuration-rules
@@ -2045,6 +2056,153 @@ This service is not part of @var{%base-services}."
         (start #~(make-forkexec-constructor #$kmscon-command))
         (stop #~(make-kill-destructor)))))))
 
+(define-record-type* <static-networking>
+  static-networking make-static-networking
+  static-networking?
+  (interface static-networking-interface)
+  (ip static-networking-ip)
+  (netmask static-networking-netmask
+           (default #f))
+  (gateway static-networking-gateway              ;FIXME: doesn't belong here
+           (default #f))
+  (provision static-networking-provision
+             (default #f))
+  (requirement static-networking-requirement
+               (default '()))
+  (name-servers static-networking-name-servers    ;FIXME: doesn't belong here
+                (default '())))
+
+(define static-networking-shepherd-service
+  (match-lambda
+    (($ <static-networking> interface ip netmask gateway provision
+                            requirement name-servers)
+     (let ((loopback? (and provision (memq 'loopback provision))))
+       (shepherd-service
+
+        (documentation
+         "Bring up the networking interface using a static IP address.")
+        (requirement requirement)
+        (provision (or provision
+                       (list (symbol-append 'networking-
+                                            (string->symbol interface)))))
+
+        (start #~(lambda _
+                   ;; Return #t if successfully started.
+                   (let* ((addr     (inet-pton AF_INET #$ip))
+                          (sockaddr (make-socket-address AF_INET addr 0))
+                          (mask     (and #$netmask
+                                         (inet-pton AF_INET #$netmask)))
+                          (maskaddr (and mask
+                                         (make-socket-address AF_INET
+                                                              mask 0)))
+                          (gateway  (and #$gateway
+                                         (inet-pton AF_INET #$gateway)))
+                          (gatewayaddr (and gateway
+                                            (make-socket-address AF_INET
+                                                                 gateway 0))))
+                     (configure-network-interface #$interface sockaddr
+                                                  (logior IFF_UP
+                                                          #$(if loopback?
+                                                                #~IFF_LOOPBACK
+                                                                0))
+                                                  #:netmask maskaddr)
+                     (when gateway
+                       (let ((sock (socket AF_INET SOCK_DGRAM 0)))
+                         (add-network-route/gateway sock gatewayaddr)
+                         (close-port sock))))))
+        (stop #~(lambda _
+                  ;; Return #f is successfully stopped.
+                  (let ((sock (socket AF_INET SOCK_STREAM 0)))
+                    (when #$gateway
+                      (delete-network-route sock
+                                            (make-socket-address
+                                             AF_INET INADDR_ANY 0)))
+                    (set-network-interface-flags sock #$interface 0)
+                    (close-port sock)
+:                    #f)))
+        (respawn? #f))))))
+
+(define (static-networking-etc-files interfaces)
+  "Return a /etc/resolv.conf entry for INTERFACES or the empty list."
+  (match (delete-duplicates
+          (append-map static-networking-name-servers
+                      interfaces))
+    (()
+     '())
+    ((name-servers ...)
+     (let ((content (string-join
+                     (map (cut string-append "nameserver " <>)
+                          name-servers)
+                     "\n" 'suffix)))
+       `(("resolv.conf"
+          ,(plain-file "resolv.conf"
+                       (string-append "\
+# Generated by 'static-networking-service'.\n"
+                                      content))))))))
+
+(define (static-networking-shepherd-services interfaces)
+  "Return the list of Shepherd services to bring up INTERFACES, a list of
+<static-networking> objects."
+  (define (loopback? service)
+    (memq 'loopback (shepherd-service-provision service)))
+
+  (let ((services (map static-networking-shepherd-service interfaces)))
+    (match (remove loopback? services)
+      (()
+       ;; There's no interface other than 'loopback', so we assume that the
+       ;; 'networking' service will be provided by dhclient or similar.
+       services)
+      ((non-loopback ...)
+       ;; Assume we're providing all the interfaces, and thus, provide a
+       ;; 'networking' service.
+       (cons (shepherd-service
+              (provision '(networking))
+              (requirement (append-map shepherd-service-provision
+                                       services))
+              (start #~(const #t))
+              (stop #~(const #f))
+              (documentation "Bring up all the networking interfaces."))
+             services)))))
+
+(define static-networking-service-type
+  ;; The service type for statically-defined network interfaces.
+  (service-type (name 'static-networking)
+                (extensions
+                 (list
+                  (service-extension shepherd-root-service-type
+                                     static-networking-shepherd-services)
+                  (service-extension etc-service-type
+                                     static-networking-etc-files)))
+                (compose concatenate)
+                (extend append)
+                (description
+                 "Turn up the specified network interfaces upon startup,
+with the given IP address, gateway, netmask, and so on.  The value for
+services of this type is a list of @code{static-networking} objects, one per
+network interface.")))
+
+(define* (static-networking-service interface ip
+                                    #:key
+                                    netmask gateway provision
+                                    ;; Most interfaces require udev to be usable.
+                                    (requirement '(udev))
+                                    (name-servers '()))
+  "Return a service that starts @var{interface} with address @var{ip}.  If
+@var{netmask} is true, use it as the network mask.  If @var{gateway} is true,
+it must be a string specifying the default network gateway.
+
+This procedure can be called several times, one for each network
+interface of interest.  Behind the scenes what it does is extend
+@code{static-networking-service-type} with additional network interfaces
+to handle."
+  (simple-service 'static-network-interface
+                  static-networking-service-type
+                  (list (static-networking (interface interface) (ip ip)
+                                           (netmask netmask) (gateway gateway)
+                                           (provision provision)
+                                           (requirement requirement)
+                                           (name-servers name-servers)))))
+
 \f
 (define %base-services
   ;; Convenience variable holding the basic services.
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 6ac440fd2..da96bbeb5 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -24,6 +24,7 @@
 
 (define-module (gnu services networking)
   #:use-module (gnu services)
+  #:use-module (gnu services base)
   #:use-module (gnu services shepherd)
   #:use-module (gnu services dbus)
   #:use-module (gnu system shadow)
@@ -45,17 +46,6 @@
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match)
   #:export (%facebook-host-aliases
-            static-networking
-
-            static-networking?
-            static-networking-interface
-            static-networking-ip
-            static-networking-netmask
-            static-networking-gateway
-            static-networking-requirement
-
-            static-networking-service
-            static-networking-service-type
             dhcp-client-service
             %ntp-servers
 
@@ -134,154 +124,6 @@ fe80::1%lo0 connect.facebook.net
 fe80::1%lo0 www.connect.facebook.net
 fe80::1%lo0 apps.facebook.com\n")
 
-
-(define-record-type* <static-networking>
-  static-networking make-static-networking
-  static-networking?
-  (interface static-networking-interface)
-  (ip static-networking-ip)
-  (netmask static-networking-netmask
-           (default #f))
-  (gateway static-networking-gateway              ;FIXME: doesn't belong here
-           (default #f))
-  (provision static-networking-provision
-             (default #f))
-  (requirement static-networking-requirement
-               (default '()))
-  (name-servers static-networking-name-servers    ;FIXME: doesn't belong here
-                (default '())))
-
-(define static-networking-shepherd-service
-  (match-lambda
-    (($ <static-networking> interface ip netmask gateway provision
-                            requirement name-servers)
-     (let ((loopback? (and provision (memq 'loopback provision))))
-       (shepherd-service
-
-        (documentation
-         "Bring up the networking interface using a static IP address.")
-        (requirement requirement)
-        (provision (or provision
-                       (list (symbol-append 'networking-
-                                            (string->symbol interface)))))
-
-        (start #~(lambda _
-                   ;; Return #t if successfully started.
-                   (let* ((addr     (inet-pton AF_INET #$ip))
-                          (sockaddr (make-socket-address AF_INET addr 0))
-                          (mask     (and #$netmask
-                                         (inet-pton AF_INET #$netmask)))
-                          (maskaddr (and mask
-                                         (make-socket-address AF_INET
-                                                              mask 0)))
-                          (gateway  (and #$gateway
-                                         (inet-pton AF_INET #$gateway)))
-                          (gatewayaddr (and gateway
-                                            (make-socket-address AF_INET
-                                                                 gateway 0))))
-                     (configure-network-interface #$interface sockaddr
-                                                  (logior IFF_UP
-                                                          #$(if loopback?
-                                                                #~IFF_LOOPBACK
-                                                                0))
-                                                  #:netmask maskaddr)
-                     (when gateway
-                       (let ((sock (socket AF_INET SOCK_DGRAM 0)))
-                         (add-network-route/gateway sock gatewayaddr)
-                         (close-port sock))))))
-        (stop #~(lambda _
-                  ;; Return #f is successfully stopped.
-                  (let ((sock (socket AF_INET SOCK_STREAM 0)))
-                    (when #$gateway
-                      (delete-network-route sock
-                                            (make-socket-address
-                                             AF_INET INADDR_ANY 0)))
-                    (set-network-interface-flags sock #$interface 0)
-                    (close-port sock)
-                    #f)))
-        (respawn? #f))))))
-
-(define (static-networking-etc-files interfaces)
-  "Return a /etc/resolv.conf entry for INTERFACES or the empty list."
-  (match (delete-duplicates
-          (append-map static-networking-name-servers
-                      interfaces))
-    (()
-     '())
-    ((name-servers ...)
-     (let ((content (string-join
-                     (map (cut string-append "nameserver " <>)
-                          name-servers)
-                     "\n" 'suffix)))
-       `(("resolv.conf"
-          ,(plain-file "resolv.conf"
-                       (string-append "\
-# Generated by 'static-networking-service'.\n"
-                                      content))))))))
-
-(define (static-networking-shepherd-services interfaces)
-  "Return the list of Shepherd services to bring up INTERFACES, a list of
-<static-networking> objects."
-  (define (loopback? service)
-    (memq 'loopback (shepherd-service-provision service)))
-
-  (let ((services (map static-networking-shepherd-service interfaces)))
-    (match (remove loopback? services)
-      (()
-       ;; There's no interface other than 'loopback', so we assume that the
-       ;; 'networking' service will be provided by dhclient or similar.
-       services)
-      ((non-loopback ...)
-       ;; Assume we're providing all the interfaces, and thus, provide a
-       ;; 'networking' service.
-       (cons (shepherd-service
-              (provision '(networking))
-              (requirement (append-map shepherd-service-provision
-                                       services))
-              (start #~(const #t))
-              (stop #~(const #f))
-              (documentation "Bring up all the networking interfaces."))
-             services)))))
-
-(define static-networking-service-type
-  ;; The service type for statically-defined network interfaces.
-  (service-type (name 'static-networking)
-                (extensions
-                 (list
-                  (service-extension shepherd-root-service-type
-                                     static-networking-shepherd-services)
-                  (service-extension etc-service-type
-                                     static-networking-etc-files)))
-                (compose concatenate)
-                (extend append)
-                (description
-                 "Turn up the specified network interfaces upon startup,
-with the given IP address, gateway, netmask, and so on.  The value for
-services of this type is a list of @code{static-networking} objects, one per
-network interface.")))
-
-(define* (static-networking-service interface ip
-                                    #:key
-                                    netmask gateway provision
-                                    ;; Most interfaces require udev to be usable.
-                                    (requirement '(udev))
-                                    (name-servers '()))
-  "Return a service that starts @var{interface} with address @var{ip}.  If
-@var{netmask} is true, use it as the network mask.  If @var{gateway} is true,
-it must be a string specifying the default network gateway.
-
-This procedure can be called several times, one for each network
-interface of interest.  Behind the scenes what it does is extend
-@code{static-networking-service-type} with additional network interfaces
-to handle."
-  (simple-service 'static-network-interface
-                  static-networking-service-type
-                  (list (static-networking (interface interface) (ip ip)
-                                           (netmask netmask) (gateway gateway)
-                                           (provision provision)
-                                           (requirement requirement)
-                                           (name-servers name-servers)))))
-
 (define dhcp-client-service-type
   (shepherd-service-type
    'dhcp-client

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type.
  2018-03-29 22:21 ` [bug#30991] [PATCH v2 0/3] " Danny Milosavljevic
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base) Danny Milosavljevic
@ 2018-03-29 22:21   ` Danny Milosavljevic
  2018-03-31 16:14     ` Ludovic Courtès
  2018-03-31 18:39     ` Björn Höfling
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services' Danny Milosavljevic
  2 siblings, 2 replies; 22+ messages in thread
From: Danny Milosavljevic @ 2018-03-29 22:21 UTC (permalink / raw)
  To: 30991

* gnu/services/networking.scm (modem-manager-service-type): New variable.
(<modem-manager-configuration>): New variable.
(modem-manager-configuration): New procedure.
(modem-manager-configuration?): New procedure.
* doc/guix.texi (Networking Services): Document it.
---
 doc/guix.texi               | 22 ++++++++++++++++++++++
 gnu/services/networking.scm | 39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 25c08b9f0..23b7ae089 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -10712,6 +10712,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 da96bbeb5..5092a5f35 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)
@@ -80,6 +81,9 @@
             connman-configuration?
             connman-service-type
 
+            modem-manager-configuration
+            modem-manager-configuration?
+            modem-manager-service-type
             wpa-supplicant-service-type
 
             openvswitch-service-type
@@ -732,6 +736,17 @@ and @command{wicd-curses} user interfaces."
   (service wicd-service-type wicd))
 
 \f
+;;;
+;;; ModemManager
+;;;
+
+(define-record-type* <modem-manager-configuration>
+  modem-manager-configuration make-modem-manager-configuration
+  modem-manager-configuration?
+  (modem-manager modem-manager-configuration-modem-manager
+                   (default modem-manager)))
+
+\f
 ;;;
 ;;; NetworkManager
 ;;;
@@ -869,6 +884,30 @@ wireless networking."))))
 a network connection manager."))))
 
 \f
+;;;
+;;; Modem manager
+;;;
+
+(define modem-manager-service-type
+  (let ((config->package
+         (match-lambda
+          (($ <modem-manager-configuration> 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."))))
+
+\f
 ;;;
 ;;; WPA supplicant
 ;;;

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services'.
  2018-03-29 22:21 ` [bug#30991] [PATCH v2 0/3] " Danny Milosavljevic
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base) Danny Milosavljevic
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type Danny Milosavljevic
@ 2018-03-29 22:21   ` Danny Milosavljevic
  2018-03-31 16:08     ` Ludovic Courtès
  2 siblings, 1 reply; 22+ messages in thread
From: Danny Milosavljevic @ 2018-03-29 22:21 UTC (permalink / raw)
  To: 30991

* gnu/services/desktop.scm (%desktop-services): Add ModemManager.
---
 gnu/services/desktop.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 897252917..00f5c105b 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -898,6 +898,7 @@ with the administrator's password."
          (simple-service 'mtp udev-service-type (list libmtp))
 
          ;; The D-Bus clique.
+         (service modem-manager-service-type)
          (service network-manager-service-type)
          (service wpa-supplicant-service-type)    ;needed by NetworkManager
          (avahi-service)

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services'.
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services' Danny Milosavljevic
@ 2018-03-31 16:08     ` Ludovic Courtès
  2018-05-01  9:58       ` Danny Milosavljevic
  0 siblings, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2018-03-31 16:08 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

Hello Danny,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> * gnu/services/desktop.scm (%desktop-services): Add ModemManager.

I would not add it to ‘%desktop-services’ because I’d think it’s not a
very common requirement, but I don’t know.  WDYT?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base).
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base) Danny Milosavljevic
@ 2018-03-31 16:13     ` Ludovic Courtès
  2018-04-01  8:16       ` Danny Milosavljevic
  0 siblings, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2018-03-31 16:13 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> * gnu/services/networking.scm (static-networking, static-networking?,
> static-networking-interface, static-networking-ip, static-networking-netmask,
> static-networking-gateway, static-networking-requirement,
> static-networking-service, static-networking-service-type): Move to...
> * gnu/services/base.scm: ...here.

What’s the reason?  Is there a module cross-dependency issue or
something?

> +        (stop #~(lambda _
> +                  ;; Return #f is successfully stopped.
> +                  (let ((sock (socket AF_INET SOCK_STREAM 0)))
> +                    (when #$gateway
> +                      (delete-network-route sock
> +                                            (make-socket-address
> +                                             AF_INET INADDR_ANY 0)))
> +                    (set-network-interface-flags sock #$interface 0)
> +                    (close-port sock)
> +:                    #f)))
   ^
A cat walked on the keyboard.  :-)

Ludo’.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type.
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type Danny Milosavljevic
@ 2018-03-31 16:14     ` Ludovic Courtès
  2018-09-04 13:22       ` Ludovic Courtès
  2018-03-31 18:39     ` Björn Höfling
  1 sibling, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2018-03-31 16:14 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> * gnu/services/networking.scm (modem-manager-service-type): New variable.
> (<modem-manager-configuration>): New variable.
> (modem-manager-configuration): New procedure.
> (modem-manager-configuration?): New procedure.
> * doc/guix.texi (Networking Services): Document it.

LGTM, thanks!

Ludo'.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type.
  2018-03-29 22:21   ` [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type Danny Milosavljevic
  2018-03-31 16:14     ` Ludovic Courtès
@ 2018-03-31 18:39     ` Björn Höfling
  1 sibling, 0 replies; 22+ messages in thread
From: Björn Höfling @ 2018-03-31 18:39 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

[-- Attachment #1: Type: text/plain, Size: 1899 bytes --]

On Fri, 30 Mar 2018 00:21:39 +0200
Danny Milosavljevic <dannym@scratchpost.org> wrote:

> * gnu/services/networking.scm (modem-manager-service-type): New
> variable. (<modem-manager-configuration>): New variable.
> (modem-manager-configuration): New procedure.
> (modem-manager-configuration?): New procedure.
> * doc/guix.texi (Networking Services): Document it.
> ---
>  doc/guix.texi               | 22 ++++++++++++++++++++++
>  gnu/services/networking.scm | 39
> +++++++++++++++++++++++++++++++++++++++ 2 files changed, 61
> insertions(+)
> 
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 25c08b9f0..23b7ae089 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -10712,6 +10712,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.

See below ...

[..]

> diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
> index da96bbeb5..5092a5f35 100644
> --- a/gnu/services/networking.scm
> +++ b/gnu/services/networking.scm

[..]

> +(define modem-manager-service-type

[..]

> +                  (description
> +                   "Run
> @uref{https://wiki.gnome.org/Projects/ModemManager, +ModemManager}, a
> modem management daemon that aims to simplify dialup +networking."))))

URL in texinfo and here: This page says only "This page does not exist
yet. You can create a new empty page, or use one of the page templates.
"

I found this one working, but it's the unstable version:

https://developer.gnome.org/ModemManager/unstable/

Björn

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base).
  2018-03-31 16:13     ` Ludovic Courtès
@ 2018-04-01  8:16       ` Danny Milosavljevic
  2018-04-01  9:38         ` Ludovic Courtès
  0 siblings, 1 reply; 22+ messages in thread
From: Danny Milosavljevic @ 2018-04-01  8:16 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 30991

[-- Attachment #1: Type: text/plain, Size: 997 bytes --]

Hi Ludo,

On Sat, 31 Mar 2018 18:13:33 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

> Danny Milosavljevic <dannym@scratchpost.org> skribis:
> 
> > * gnu/services/networking.scm (static-networking, static-networking?,
> > static-networking-interface, static-networking-ip, static-networking-netmask,
> > static-networking-gateway, static-networking-requirement,
> > static-networking-service, static-networking-service-type): Move to...
> > * gnu/services/base.scm: ...here.  
> 
> What’s the reason?  Is there a module cross-dependency issue or
> something?

Yes, (gnu services base) uses (gnu services networking), and now I wanted
to use (gnu services networking) in (gnu services base) - because
I extend udev service and it's in the latter.

but I thought of a better way to resolve it: Just put modem-manager service
into (gnu services base) to begin with.  Testing...

> > +:                    #f)))  
>    ^
> A cat walked on the keyboard.  :-)

Hehe, oops!

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base).
  2018-04-01  8:16       ` Danny Milosavljevic
@ 2018-04-01  9:38         ` Ludovic Courtès
  0 siblings, 0 replies; 22+ messages in thread
From: Ludovic Courtès @ 2018-04-01  9:38 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

Hello!

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> On Sat, 31 Mar 2018 18:13:33 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:
>
>> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>> 
>> > * gnu/services/networking.scm (static-networking, static-networking?,
>> > static-networking-interface, static-networking-ip, static-networking-netmask,
>> > static-networking-gateway, static-networking-requirement,
>> > static-networking-service, static-networking-service-type): Move to...
>> > * gnu/services/base.scm: ...here.  
>> 
>> What’s the reason?  Is there a module cross-dependency issue or
>> something?
>
> Yes, (gnu services base) uses (gnu services networking), and now I wanted
> to use (gnu services networking) in (gnu services base) - because
> I extend udev service and it's in the latter.

I see.

> but I thought of a better way to resolve it: Just put modem-manager service
> into (gnu services base) to begin with.  Testing...

I’d actually prefer the initial approach—moving
‘static-networking-service-type’ to (gnu services base).  That seems
more logical to me.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services'.
  2018-03-31 16:08     ` Ludovic Courtès
@ 2018-05-01  9:58       ` Danny Milosavljevic
  2018-05-06 21:00         ` Ludovic Courtès
  0 siblings, 1 reply; 22+ messages in thread
From: Danny Milosavljevic @ 2018-05-01  9:58 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 30991

[-- Attachment #1: Type: text/plain, Size: 494 bytes --]

Hi Ludo,

On Sat, 31 Mar 2018 18:08:35 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

> Danny Milosavljevic <dannym@scratchpost.org> skribis:
> 
> > * gnu/services/desktop.scm (%desktop-services): Add ModemManager.  
> 
> I would not add it to ‘%desktop-services’ because I’d think it’s not a
> very common requirement, but I don’t know.  WDYT?

Do we need internet in order to install GuixSD?

Then modem-manager should at least be available in the installation image.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services'.
  2018-05-01  9:58       ` Danny Milosavljevic
@ 2018-05-06 21:00         ` Ludovic Courtès
  2018-05-08  7:04           ` Danny Milosavljevic
  0 siblings, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2018-05-06 21:00 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

Hello Danny,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> On Sat, 31 Mar 2018 18:08:35 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:
>
>> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>> 
>> > * gnu/services/desktop.scm (%desktop-services): Add ModemManager.  
>> 
>> I would not add it to ‘%desktop-services’ because I’d think it’s not a
>> very common requirement, but I don’t know.  WDYT?
>
> Do we need internet in order to install GuixSD?
>
> Then modem-manager should at least be available in the installation image.

I think this is orthogonal to the question of adding it to
‘%desktop-services’ since the installation image doesn’t rely on
‘%desktop-services’.

Nevertheless, this will all be a matter of size, usability, and
documentation.  If it adds “too much” to the size of the installation
image, I’d be rather against it.

If we do add it to the installation image, then we’ll have to document
it a little.

But then, at this point we should also consider adding NetworkManager to
the installation image.

WDYT?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services'.
  2018-05-06 21:00         ` Ludovic Courtès
@ 2018-05-08  7:04           ` Danny Milosavljevic
  2018-05-08 13:35             ` Ludovic Courtès
  0 siblings, 1 reply; 22+ messages in thread
From: Danny Milosavljevic @ 2018-05-08  7:04 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 30991

[-- Attachment #1: Type: text/plain, Size: 1844 bytes --]

Hi Ludo,

On Sun, 06 May 2018 23:00:54 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

> >> I would not add it to ‘%desktop-services’ because I’d think it’s not a
> >> very common requirement, but I don’t know.  WDYT?  
> >
> > Do we need internet in order to install GuixSD?
> >
> > Then modem-manager should at least be available in the installation image.  
> 
> I think this is orthogonal to the question of adding it to
> ‘%desktop-services’ since the installation image doesn’t rely on
> ‘%desktop-services’.

True.  I agree.

> Nevertheless, this will all be a matter of size, usability, and
> documentation.  If it adds “too much” to the size of the installation
> image, I’d be rather against it.

Well, some way of getting to the internet eventually needs to be available
somewhere.

(it's fine if it's only in the installed system, so I guess compilation
of everything is fine).

In Austria the cellphone internet is very cheap - so almost everyone has it
(and many have only that).  That said, USB or Wifi tethering is common, too.

I'm just trying to reduce the number of things I have to charge on the road :)

GNU Linux distributions nowadays have trouble providing any kind of simple
dialup installation - so it's more difficult to install GNU Linux here.
I think that's ridiculous since the AT commands and PPP required to have
some kind of internet didn't change sice circa 1985 - and it's small, too.

(I didn't know ModemManager before I packaged it here - but it does
some extra stuff like provide network card simulator integration for the
extremely fast LTE modems)

I still have not-so-fond memories of manually downloading a random wvdial
binary and its dependencies in order to be able to install Gentoo.  A normal
person (TM) would just give up ;)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services'.
  2018-05-08  7:04           ` Danny Milosavljevic
@ 2018-05-08 13:35             ` Ludovic Courtès
  0 siblings, 0 replies; 22+ messages in thread
From: Ludovic Courtès @ 2018-05-08 13:35 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

Hi Danny,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> On Sun, 06 May 2018 23:00:54 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:
>
>> >> I would not add it to ‘%desktop-services’ because I’d think it’s not a
>> >> very common requirement, but I don’t know.  WDYT?  
>> >
>> > Do we need internet in order to install GuixSD?
>> >
>> > Then modem-manager should at least be available in the installation image.  
>> 
>> I think this is orthogonal to the question of adding it to
>> ‘%desktop-services’ since the installation image doesn’t rely on
>> ‘%desktop-services’.
>
> True.  I agree.

So do you still want to add ‘modem-manager’ to ‘%desktop-services’?  :-)

>> Nevertheless, this will all be a matter of size, usability, and
>> documentation.  If it adds “too much” to the size of the installation
>> image, I’d be rather against it.
>
> Well, some way of getting to the internet eventually needs to be available
> somewhere.
>
> (it's fine if it's only in the installed system, so I guess compilation
> of everything is fine).
>
> In Austria the cellphone internet is very cheap - so almost everyone has it
> (and many have only that).  That said, USB or Wifi tethering is common, too.
>
> I'm just trying to reduce the number of things I have to charge on the road :)

:-)

I would expect people installing an OS to have Ethernet or WiFi.  One
gets WiFi even on the train nowadays.  ;-)

In terms of size it doesn’t look good:

--8<---------------cut here---------------start------------->8---
$ guix size $(guix system build ~/src/guix/gnu/system/install.scm ) | tail -1
total: 1116.4 MiB
$ guix size $(guix system build ~/src/guix/gnu/system/install.scm ) modem-manager | tail -1
total: 1346.0 MiB
--8<---------------cut here---------------end--------------->8---

WDYT?

(I actually fail to see how we end up with 1G in the first place…)

> GNU Linux distributions nowadays have trouble providing any kind of simple
> dialup installation - so it's more difficult to install GNU Linux here.
> I think that's ridiculous since the AT commands and PPP required to have
> some kind of internet didn't change sice circa 1985 - and it's small, too.
>
> (I didn't know ModemManager before I packaged it here - but it does
> some extra stuff like provide network card simulator integration for the
> extremely fast LTE modems)
>
> I still have not-so-fond memories of manually downloading a random wvdial
> binary and its dependencies in order to be able to install Gentoo.  A normal
> person (TM) would just give up ;)

Heheh.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type.
  2018-03-31 16:14     ` Ludovic Courtès
@ 2018-09-04 13:22       ` Ludovic Courtès
  2018-09-04 19:41         ` Danny Milosavljevic
  0 siblings, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2018-09-04 13:22 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

Hello Danny,

ludo@gnu.org (Ludovic Courtès) skribis:

> Danny Milosavljevic <dannym@scratchpost.org> skribis:
>
>> * gnu/services/networking.scm (modem-manager-service-type): New variable.
>> (<modem-manager-configuration>): New variable.
>> (modem-manager-configuration): New procedure.
>> (modem-manager-configuration?): New procedure.
>> * doc/guix.texi (Networking Services): Document it.
>
> LGTM, thanks!

Ping!  :-)

I think the only question was about patch 3/3, which adds ModemManager
to ‘%desktop-services’.  I’m in favor of dropping patch 3/3, but
regardless patches 1/3 (the variant that moves
‘static-networking-service-type’ to (gnu services base), as we
discussed) and 2/3 can definitely go in!

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type.
  2018-09-04 13:22       ` Ludovic Courtès
@ 2018-09-04 19:41         ` Danny Milosavljevic
  2018-09-04 20:53           ` Ludovic Courtès
  0 siblings, 1 reply; 22+ messages in thread
From: Danny Milosavljevic @ 2018-09-04 19:41 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 30991

[-- Attachment #1: Type: text/plain, Size: 850 bytes --]

Hi Ludo,

On Tue, 04 Sep 2018 15:22:07 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

> I think the only question was about patch 3/3, which adds ModemManager
> to ‘%desktop-services’.  I’m in favor of dropping patch 3/3, but
> regardless patches 1/3 (the variant that moves
> ‘static-networking-service-type’ to (gnu services base), as we
> discussed) and 2/3 can definitely go in!

It already is in master.  I guess I left the bug report open so far - probably
because of the %desktop-services .

I still want to underline that there should be a way for a regular user
to bootstrap from the GuixSD image to a "guix pull"-able system using
his existing internet connection - otherwise the first impression is bad.

This means that the GuixSD image needs to have at least pppd, and
maybe modem-manager too (maybe not).


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type.
  2018-09-04 19:41         ` Danny Milosavljevic
@ 2018-09-04 20:53           ` Ludovic Courtès
  2018-09-04 21:16             ` Danny Milosavljevic
  0 siblings, 1 reply; 22+ messages in thread
From: Ludovic Courtès @ 2018-09-04 20:53 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: 30991

Hello Danny,

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> On Tue, 04 Sep 2018 15:22:07 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:
>
>> I think the only question was about patch 3/3, which adds ModemManager
>> to ‘%desktop-services’.  I’m in favor of dropping patch 3/3, but
>> regardless patches 1/3 (the variant that moves
>> ‘static-networking-service-type’ to (gnu services base), as we
>> discussed) and 2/3 can definitely go in!
>
> It already is in master.  I guess I left the bug report open so far - probably
> because of the %desktop-services .

Oh, silly me.

> I still want to underline that there should be a way for a regular user
> to bootstrap from the GuixSD image to a "guix pull"-able system using
> his existing internet connection - otherwise the first impression is bad.
>
> This means that the GuixSD image needs to have at least pppd, and
> maybe modem-manager too (maybe not).

I agree in principle, though, as I wrote, I think we need to strike a
balance between popularity and overhead, so to speak.  ModemManager
currently takes quite a bit of extra space, which is why I’m reluctant.
Do you think this can be optimized?  Or would pppd enough be convenient?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type.
  2018-09-04 20:53           ` Ludovic Courtès
@ 2018-09-04 21:16             ` Danny Milosavljevic
  0 siblings, 0 replies; 22+ messages in thread
From: Danny Milosavljevic @ 2018-09-04 21:16 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 30991

[-- Attachment #1: Type: text/plain, Size: 399 bytes --]

Hi Ludo,

On Tue, 04 Sep 2018 22:53:19 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

> Do you think this can be optimized?

I'll check.

>Or would pppd enough be convenient?

I think that pppd would work on the vast majority of modems (slow transfer
speeds sometimes since many modems need network card emulation for the
faster modes - but they do work with PPP just fine, just slow).

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2018-09-04 21:17 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-29 18:28 [bug#30991] [PATCH 0/2] Add ModemManager service Danny Milosavljevic
2018-03-29 18:33 ` [bug#30991] [PATCH 1/2] services: Add modem-manager-service-type Danny Milosavljevic
2018-03-29 18:33   ` [bug#30991] [PATCH 2/2] services: Add ModemManager to '%desktop-services' Danny Milosavljevic
2018-03-29 19:15 ` [bug#30991] [PATCH 0/2] Add ModemManager service Danny Milosavljevic
2018-03-29 22:21 ` [bug#30991] [PATCH v2 0/3] " Danny Milosavljevic
2018-03-29 22:21   ` [bug#30991] [PATCH v2 1/3] services: Move static-networking to (gnu services base) Danny Milosavljevic
2018-03-31 16:13     ` Ludovic Courtès
2018-04-01  8:16       ` Danny Milosavljevic
2018-04-01  9:38         ` Ludovic Courtès
2018-03-29 22:21   ` [bug#30991] [PATCH v2 2/3] services: Add modem-manager-service-type Danny Milosavljevic
2018-03-31 16:14     ` Ludovic Courtès
2018-09-04 13:22       ` Ludovic Courtès
2018-09-04 19:41         ` Danny Milosavljevic
2018-09-04 20:53           ` Ludovic Courtès
2018-09-04 21:16             ` Danny Milosavljevic
2018-03-31 18:39     ` Björn Höfling
2018-03-29 22:21   ` [bug#30991] [PATCH v2 3/3] services: Add ModemManager to '%desktop-services' Danny Milosavljevic
2018-03-31 16:08     ` Ludovic Courtès
2018-05-01  9:58       ` Danny Milosavljevic
2018-05-06 21:00         ` Ludovic Courtès
2018-05-08  7:04           ` Danny Milosavljevic
2018-05-08 13:35             ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).