Package: release.debian.org
Severity: normal
Tags: bookworm
X-Debbugs-Cc: runit-servi...@packages.debian.org, plore...@disroot.org
Control: affects -1 + src:runit-services
User: release.debian....@packages.debian.org
Usertags: pu

Dear Release Team,

I would like to do a stable update to address #1086131
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1086131

the fix includes two commits that are alredy in unstable

* dhclient: ship as disabled by default (inlcuded in 0.7)
https://salsa.debian.org/debian/runit-services/-/commit/caf085228bbaa351749504fafd39609e2f5ec48b
this will address the issue for new bookworm install and for
bullseye --> bookworm upgrades

For comparison, this is roughly equivalent to pass the '--no-enable' to
dh_installsystemd for a package that ships a systemd service; the relevant
difference is that with runit/dh_runit when a service is not enabled is also not
started.

* News for runit-services users: dhclient issues (included in 0.8)
https://salsa.debian.org/debian/runit-services/-/commit/b89057ec4fc5a0661c10ba354a1bab289b66f07d
this will likely mitigate the issue on bookworm systems where
0.5.5~deb12u1 is already installed, by describing the issue
and pointing the user to the solution.
This commit is slighlty edited to change the reference to 0.7
version and the "update-service" command invocation.

Automatically fix the issue for users ugrading from 0.5.5~deb12u1
is too risky since there is no reliable way to tell if the
service is enabled due to a decision of the sysadmin or due to being
automatically enabled by the package, so I'm opting for the NEWS file.

[ Reason ]
dhclient is enabled and started by default at package installation;
this creates a conflict and network malfunctions with other services
such as network-manager, connman and the like.
This is a regression for runit systems upgrading from oldstable since the
dhclient service was not available there

The dhclient service should be disabled by default, as it requires
configuration from the user and also it should not be used when another
service that configures network is in use.


[ Impact ]
if this is not approved network issues are expected to persist;
this will affects desktop users (where network-manager, connman
of wicd are likely in use).
It may also create problems in system where the simple network configuration
done at boot is used.

[ Tests ]
it's confirmed the the commit
https://salsa.debian.org/debian/runit-services/-/commit/caf085228bbaa351749504fafd39609e2f5ec48b
fixes the issue in unstable for new installations of the package

[ Risks ]
code changes are trivial, I fail to see downsides for this upgrade:
by disabling the dhclient service we are aligning with other init system
where dhclient is only invoked by networks hooks as oneshot.
For new installation or upgrades from oldstable the issue is avoided;
for upgrades 0.5.5~deb12u1 --> 0.5.5~deb12u2 the NEWS file may help to
fix outstanding network issues

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
 * dhclient: ship as disabled by default
   (this will address the issue on new installations)
 * NEWS: recommend to disable dhclient
   (this explains how to fix the issue on upgrade from 0.5.5~deb12u1)

Regards,
Lorenzo

Deddiff:

diff -Nru '--exclude=.git' ./runit-services/debian/changelog 
./runit-services.new/debian/changelog
--- ./runit-services/debian/changelog   2024-12-08 19:34:06.022168677 +0100
+++ ./runit-services.new/debian/changelog       2024-12-09 01:48:55.310511635 
+0100
@@ -1,3 +1,12 @@
+runit-services (0.5.5~deb12u2) bookworm; urgency=medium
+
+  * stable update for bookworm
+  * dhclient: ship as disabled by default
+    (Closes: #1086131)
+  * NEWS: recommend to disable dhclient
+
+ -- Lorenzo Puliti <plore...@disroot.org>  Sun, 08 Dec 2024 22:40:21 +0100
+
 runit-services (0.5.5~deb12u1) bookworm; urgency=medium
 
   * Rebuild for bookworm.
diff -Nru '--exclude=.git' ./runit-services/debian/runit-services.NEWS 
./runit-services.new/debian/runit-services.NEWS
--- ./runit-services/debian/runit-services.NEWS 1970-01-01 01:00:00.000000000 
+0100
+++ ./runit-services.new/debian/runit-services.NEWS     2024-12-09 
01:47:46.112490633 +0100
@@ -0,0 +1,20 @@
+runit-services (0.5.5~deb12u2) bookworm; urgency=medium
+
+    Before version (0.5.5~deb12u2) the dhclient service was automatically 
enabled at package
+    installation; however the service interacts badly with other network 
services such
+    as network-manager, wicd, connman and the like, causing disruption on 
network setup.
+    For this reason, since this version the dhclient service is shipped as 
disabled
+    by default.
+    This change is effective on new installations but for installations 
upgrading from old
+    versions of the package, the dhclient service remains enabled.
+    Unless dhclient was enabld as explicit choice of the sysadmin, (and no 
other service
+    is used to configure the network) it's recommended to permanently disable 
it with
+
+    # update-service --remove /etc/sv/dhclient
+
+    to avoid network issues.
+    Note that there are networks hooks to invoke dhclient as oneshot during 
network
+    setup (for example during system boot), and disabling the dhclient runit 
service does
+    not affect such hooks.
+
+ -- Lorenzo Puliti <plore...@disroot.org>  Wed, 20 Nov 2024 17:31:49 +0100
diff -Nru '--exclude=.git' ./runit-services/debian/runit-services.runit 
./runit-services.new/debian/runit-services.runit
--- ./runit-services/debian/runit-services.runit        2024-12-08 
19:34:06.022168677 +0100
+++ ./runit-services.new/debian/runit-services.runit    2024-12-08 
22:47:26.643003135 +0100
@@ -7,7 +7,7 @@
 sv/cups/       noscripts,usr,bin=/usr/sbin/cupsd
 sv/dbus        
noscripts,usr,logscript,onupgrade=reload,finish,bin=/usr/bin/dbus-daemon
 sv/dbus.dep-fixer   noscripts,usr,onupgrade=nostop,bin=/usr/bin/dbus-daemon
-sv/dhclient   noscripts,usr,finish,logscript,bin=/sbin/dhclient
+sv/dhclient   disable,noscripts,usr,finish,logscript,bin=/sbin/dhclient
 sv/elogind    noscripts,usr,finish,bin=/lib/elogind/elogind
 sv/exim4      noscripts,usr,finish,logscript,bin=/usr/sbin/exim4
 sv/gdomap/  noscripts,usr,disable,bin=/usr/bin/gdomap

Reply via email to