Subject: bug#38524: closed (Re: bug#38524: [PATCH v2] services: dhcp-client: Ignore interfaces that need non-free firmware.)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 29 Dec 2019 16:51:01 +0000

Your bug report

#38524: 'dhcp-client-service' crash when non-libre networking interface is present

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].

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

Subject: Re: bug#38524: [PATCH v2] services: dhcp-client: Ignore interfaces that need non-free firmware.
From: Ludovic Courtès <[email-masked]>
To: Brice Waegeneire <[email-masked]>
Cc: [email-masked]
Date: Sun, 29 Dec 2019 17:50:15 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Brice,

Brice Waegeneire <[email-masked]> skribis:

> Fixes bug #38524 (see: https://bugs.gnu.org/38524).
>
> * gnu/services/networking.scm (dhcp-client-service-type): Filter interfaces
> that need non-free firmware.

I adjusted the commit log (I’m not applying it just because it helps
with non-free firmware but rather because it seems more accurate and
generally useful), and finally committed.

Thank you!

Ludo’.

Subject: 'dhcp-client-service' crash when non-libre networking interface is present
From: Brice Waegeneire <[email-masked]>
To: [email-masked]
Date: Sun, 08 Dec 2019 09:59:08 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

The 'dhcp-client-service' fail to start when a non-libre network 
interface (here 148f:3070) is plugged-in even though there is an libre 
networking interface (here 01:00.0) available.
Removing the non-libre networking interface from the system allow 
'dhcp-client-service' to start correctly on the libre networking 
interface.

I think the service shouldn't crash when there is an non-libre network 
interface connected, it should just skip it and maybe throw an error 
message. Allowing to specify the network interfaces on which 
'dhcp-client-service' should run can also somewhat resolve the issue.

#+begin_src sh
$ sudo herd start networking
[ 2758.305139] 1-3:1.0: Missing Free firmware (non-Free firmware loading 
is disabled)
[ 2758.395791] ieee80211 phy0: rt2x00lib_request_firmware: Error - 
Failed to request Firmware
herd: exception caught while executing 'start' on service 'networking':
In procedure set-network-interface-flags: set-network-interface-flags on 
wlp0s20f0u3: No such file or directory

$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
group default qlen 1000
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
     inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
     inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast 
state DOWN group default qlen 1000
     link/ether 00:e0:4c:68:67:77 brd ff:ff:ff:ff:ff:ff
3: wlp0s20f0u3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
group default qlen 1000
     link/ether 00:c0:ca:77:05:e7 brd ff:ff:ff:ff:ff:ff

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 148f:3070 Ralink Technology, Corp. RT2870/RT3070 
Wireless Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core 
Processor Host Bridge/DRAM Registers (rev 02)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 
(rev 02)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / 
E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI 
Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP 
Thermal subsystem (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA 
Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root 
Port #3 (rev f1)
00:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP 
Serial IO UART Controller #0 (rev 21)
00:1e.4 SD Host controller: Intel Corporation Device 9d2b (rev 21)
00:1e.6 SD Host controller: Intel Corporation Sunrise Point-LP Secure 
Digital IO Controller (rev 21)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller 
(rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 
21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 
21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. 
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
#+end_src

#+begin_src scheme
(services
     (append
       (list (service openssh-service-type)
             (service dhcp-client-service-type))
       %base-services)))
#+end_src