Subject: bug#35640: closed (Re: bug#35640: Make USB modems just work on Guix)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 15 Jun 2019 16:40:02 +0000

Your bug report

#35640: Make USB modems just work on Guix

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
35640: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=35640
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#35640: Make USB modems just work on Guix
From: Ludovic Courtès <[email-masked]>
To: "pelzflorian \(Florian Pelz\)" <[email-masked]>
Cc: [email-masked]
Date: Sat, 15 Jun 2019 18:39:22 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello!

"pelzflorian (Florian Pelz)" <[email-masked]> skribis:

> From 27aff97683537407c178ea2b664069def0cf141a Mon Sep 17 00:00:00 2001
> From: Florian Pelz <[email-masked]>
> Date: Thu, 13 Jun 2019 19:17:05 +0200
> Subject: [PATCH 1/2] Add usb-modeswitch-service-type.
>
> * gnu/services/networking.scm (usb-modeswitch-service-type): New variable.
> (usb-modeswitch-configuration): New variable.
> (usb-modeswitch-sh): New procedure.
> (usb-modeswitch-configuration->udev-rules): New procedure.
> * doc/guix.texi (Networking Services): Document it.

[...]

> From f4a5103b365f8bc5d2c514dad2e40f3c9981cfc2 Mon Sep 17 00:00:00 2001
> From: Florian Pelz <[email-masked]>
> Date: Wed, 12 Jun 2019 11:16:57 +0200
> Subject: [PATCH 2/2] services: Include USB_ModeSwitch in %desktop-services.
>
> Fixes <https://bugs.gnu.org/35640>.
>
> * gnu/services/desktop.scm (%desktop-services): Add usb-modeswitch-service-type.
> * doc/guix.texi (Networking Services): Document it.

Pushed, thank you!

Ludo’.

Subject: Make USB modems just work on Guix
From: "pelzflorian (Florian Pelz)" <[email-masked]>
To: [email-masked]
Date: Wed, 8 May 2019 20:26:07 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

When plugging in a USB modem, i.e. a “surf stick” / internet stick
with a SIM card for mobile broadband, setup should be as simple as
WiFi.  However, a few things are missing in Guix.

First, the manual claims:

 -- Scheme Variable: modem-manager-service-type
     […]
     This service is part of ‘%desktop-services’ (*note Desktop
     Services::).

But it is not part of %desktop-services.  The first attached patch
fixes this oversight.

Now I can type this to get an internet connection:

sudo nmcli connection add type gsm ifname ttyUSB1 apn internet

However, I want to be able to do this setup graphically.  I made a
second patch to propagate iso-codes (for mobile broadband country
selection) and mobile-broadband-provider-selection (for selecting
defaults for providers) in nm-connection-editor
(network-manager-applet) and gnome-control-center.

Propagation is ugly though.  Should I try patching
network-manager-applet instead?  I assume there are other packages
doing such patching that I can imitate.

Now I can configure the modem as Mobile Broadband in a graphical
interface.  I cannot do so in nmtui; I believe this modem setup
feature is not included in nmtui.

However, this is not the whole truth.  Before I can configure
anything, I have to run

sudo ~/usr/sbin/usb_modeswitch -c ~/Downloads/usb-modeswitch-data-20170806/usb_modeswitch.d/12d1:14fe -v 0x12d1 -p 0x14fe

because my modem by default presents itself as a CD containing Windows
drivers and not as a USB modem.  Preferrably, usb-modeswitch and
usb-modeswitch-data would be packaged (as a single package).  I can
try that later this week.

Lastly, there are udev rules in usb-modeswitch, I believe, because on
Debian I do not need to run any command; mode switching happens
automatically when plugging in the USB modem.  I suppose that means
there should also be a usb-modeswitch-service-type extending udev?

Regards,
Florian

>From 5e9b45fe785dee52da2a67fbecbabc4741f85e54 Mon Sep 17 00:00:00 2001
From: Florian Pelz <[email-masked]>
Date: Tue, 7 May 2019 11:51:43 +0200
Subject: [PATCH 1/2] services: Include ModemManager in %desktop-services.

* gnu/services/desktop.scm (%desktop-services): Add modem-manager-service-type.
---
 gnu/services/desktop.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 5e0bd102a2..c0300c0ddc 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1062,6 +1062,9 @@ dispatches events from it.")))
 
          ;; The D-Bus clique.
          (service network-manager-service-type)
+         (service modem-manager-service-type) ;the manual claims this were
+                                              ;part of %desktop-services, but
+                                              ;it wasn’t
          (service wpa-supplicant-service-type)    ;needed by NetworkManager
          (service avahi-service-type)
          (udisks-service)
-- 
2.21.0

>From d489f805599ea63e2e06727a3201572ee0480a60 Mon Sep 17 00:00:00 2001
From: Florian Pelz <[email-masked]>
Date: Wed, 8 May 2019 20:02:00 +0200
Subject: [PATCH 2/2] gnu: network-manager-applet: Propagate packages required
 for USB modem setup.

* gnu/packages/gnome.scm (network-manager-applet): Propagate iso-codes and
  mobile-broadband-provider-info.
  (gnome-control-center): Ditto.
---
 gnu/packages/gnome.scm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7c40a39f01..a3765007bf 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5511,10 +5511,12 @@ to virtual private networks (VPNs) via OpenVPN.")
      ;; libnm-gtk.pc refers to all these.
      `(("dbus-glib" ,dbus-glib)
        ("gtk+" ,gtk+)
+       ("iso-codes" ,iso-codes) ;mobile broadband country selection
+       ("mobile-broadband-provider-info"
+        ,mobile-broadband-provider-info) ;mobile broadband provider selection
        ("network-manager" ,network-manager)))
     (inputs
-     `(("iso-codes" ,iso-codes)
-       ("libgudev" ,libgudev)
+     `(("libgudev" ,libgudev)
        ("libnotify" ,libnotify)
        ("libsecret" ,libsecret)
        ("libselinux" ,libselinux)
@@ -5895,6 +5897,10 @@ devices using the GNOME desktop.")
        ("smbclient" ,samba)
        ("tzdata" ,tzdata)
        ("upower" ,upower)))
+    (propagated-inputs
+     `(("iso-codes" ,iso-codes) ;mobile broadband country selection
+       ("mobile-broadband-provider-info"
+        ,mobile-broadband-provider-info))) ;mobile broadband provider selection
     (synopsis "Utilities to configure the GNOME desktop")
     (home-page "https://www.gnome.org/")
     (description
-- 
2.21.0