Bug#1100096: unblock: sysvinit/3.14-4 (pre-approval)
Mark Hindley
leepen at debian.org
Tue Mar 11 10:55:07 GMT 2025
Package: release.debian.org
Severity: normal
User: release.debian.org at packages.debian.org
Usertags: unblock
X-Debbugs-Cc: sysvinit at packages.debian.org
Control: affects -1 + src:sysvinit
Please pre-approve unblocking of package sysvinit.
[ Reason ]
src:kmod removed /etc/init.d/kmod in version 34.1-1[1]. It was suggested that it
be included in src:orphan-sysvinit-scripts[2], but orphan-sysvinit-scripts
requires a matching unit file to use as a dpkg trigger. The equivalent systemd
unit is in systemd itself. Therefore we consider /etc/init.d/kmod to be a better
fit in bin:initscripts.
bin:initscripts is built from src:sysvinit which also builds bin:sysvinit-utils
which is part of the toolchain freeze from 15th March -- hence the pre-approval
unblock request.
[ Impact ]
Without this transition, non-systemd systems will no longer load kernel modules
statically configured in /etc/mod*. The upload will fix #1100072.
[ Tests ]
I have manually tested installation with existing kmod/34-3. The Breaks/Replaces
forces apt to upgrade kmod as expected.
[ Risks ]
Moving files between packages is not risk free. However, the uncoordinated
actions of the kmod maintainer has made this necessary despite the current
stage of the release cycle.
[ 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 testing
[ Other info ]
kmod.postinst also runs[3]
rm -f /etc/rcS.d/[SK]*kmod
This breaks upgrades and has also been highlighted in #1100035
unblock sysvinit/3.14-4
[1] https://salsa.debian.org/md/kmod/-/commit/8ca034958ad7d1734087a78078be4897209ab22e
[2] https://bugs.debian.org/1100035
[3] https://salsa.debian.org/md/kmod/-/commit/c2ae42ca3a338fba0f190e3a61a635d386b1e8fa
Thanks for your consideration.
Mark
-------------- next part --------------
dpkg-source: warning: extracting unsigned source package (/home/mark/src/devuan/build/sysvinit_3.14-4.dsc)
diff -Nru sysvinit-3.14/debian/changelog sysvinit-3.14/debian/changelog
--- sysvinit-3.14/debian/changelog 2025-02-24 09:27:01.000000000 +0000
+++ sysvinit-3.14/debian/changelog 2025-03-10 16:49:51.000000000 +0000
@@ -1,3 +1,10 @@
+sysvinit (3.14-4) unstable; urgency=medium
+
+ * d/control: bump Standards Version (no changes).
+ * Take over /etc/init.d/kmod from src:kmod << 34.1-1 (Closes: #1100072).
+
+ -- Mark Hindley <leepen at debian.org> Mon, 10 Mar 2025 16:49:51 +0000
+
sysvinit (3.14-3) unstable; urgency=medium
* rcS: Default to ASYNCMOUNTNFS=no if ip= or nfsroot= specified on kernel
diff -Nru sysvinit-3.14/debian/control sysvinit-3.14/debian/control
--- sysvinit-3.14/debian/control 2025-02-24 09:27:01.000000000 +0000
+++ sysvinit-3.14/debian/control 2025-03-10 16:49:51.000000000 +0000
@@ -14,7 +14,7 @@
libselinux1-dev [linux-any],
po4a,
Rules-Requires-Root: no
-Standards-Version: 4.7.1
+Standards-Version: 4.7.2
Homepage: https://github.com/slicer69/sysvinit
Vcs-Git: https://salsa.debian.org/debian/sysvinit.git
Vcs-Browser: https://salsa.debian.org/debian/sysvinit
@@ -111,9 +111,11 @@
psmisc,
util-linux-extra,
Breaks: udev (<< 254.3-1),
- util-linux-extra (<< 2.39.2-2.1~)
+ util-linux-extra (<< 2.39.2-2.1~),
+ kmod (<< 34.1-1)
Replaces: udev (<< 254.3-1),
- util-linux-extra (<< 2.39.2-2.1~)
+ util-linux-extra (<< 2.39.2-2.1~),
+ kmod (<< 34.1-1)
Description: scripts for initializing and shutting down the system
The scripts in this package initialize a standard Debian
system at boot time and shut it down at halt or reboot time.
diff -Nru sysvinit-3.14/debian/initscripts.postinst sysvinit-3.14/debian/initscripts.postinst
--- sysvinit-3.14/debian/initscripts.postinst 2025-02-24 09:27:01.000000000 +0000
+++ sysvinit-3.14/debian/initscripts.postinst 2025-03-10 16:49:51.000000000 +0000
@@ -42,7 +42,7 @@
checkroot-bootclean.sh checkfs.sh mountall.sh mountall-bootclean.sh \
mountnfs.sh mountnfs-bootclean.sh bootmisc.sh urandom halt reboot \
udev umountroot umountfs umountnfs.sh sendsigs killprocs single motd \
- bootlogs rc.local rmnologin hwclock.sh"
+ bootlogs rc.local rmnologin hwclock.sh kmod"
for F in $INITSCRIPTS; do
if [ -x "$DPKG_ROOT/etc/init.d/$F" ]; then
diff -Nru sysvinit-3.14/debian/src/initscripts/etc/init.d/kmod sysvinit-3.14/debian/src/initscripts/etc/init.d/kmod
--- sysvinit-3.14/debian/src/initscripts/etc/init.d/kmod 1970-01-01 01:00:00.000000000 +0100
+++ sysvinit-3.14/debian/src/initscripts/etc/init.d/kmod 2025-03-10 16:49:51.000000000 +0000
@@ -0,0 +1,92 @@
+#!/bin/sh -e
+### BEGIN INIT INFO
+# Provides: kmod
+# Required-Start:
+# Required-Stop:
+# Should-Start: checkroot
+# Should-Stop:
+# Default-Start: S
+# Default-Stop:
+# Short-Description: Load the modules listed in /etc/modules.
+# Description: Load the modules listed in /etc/modules.
+### END INIT INFO
+
+# Silently exit if the kernel does not support modules.
+[ -f /proc/modules ] || exit 0
+[ -x /sbin/modprobe ] || exit 0
+
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+. /lib/lsb/init-functions
+
+PATH='/usr/sbin:/usr/bin:/sbin:/bin'
+
+case "$1" in
+ start)
+ ;;
+
+ stop|restart|reload|force-reload)
+ log_warning_msg "Action '$1' is meaningless for this init script"
+ exit 0
+ ;;
+
+ *)
+ log_success_msg "Usage: $0 start"
+ exit 1
+esac
+
+load_module() {
+ local module args
+ module="$1"
+ args="$2"
+
+ if [ "$VERBOSE" != no ]; then
+ log_action_msg "Loading kernel module $module"
+ modprobe $module $args || true
+ else
+ modprobe $module $args > /dev/null 2>&1 || true
+ fi
+}
+
+modules_files() {
+ local modules_load_dirs='/etc/modules-load.d /run/modules-load.d /usr/local/lib/modules-load.d /usr/lib/modules-load.d'
+ local processed=' '
+ local add_etc_modules=true
+
+ for dir in $modules_load_dirs; do
+ [ -d $dir ] || continue
+ for file in $(run-parts --list --regex='\.conf$' $dir 2> /dev/null || true); do
+ local base=${file##*/}
+ if echo -n "$processed" | grep -qF " $base "; then
+ continue
+ fi
+ if [ "$add_etc_modules" -a -L $file \
+ -a "$(readlink -f $file)" = /etc/modules ]; then
+ add_etc_modules=
+ fi
+ processed="$processed$base "
+ echo $file
+ done
+ done
+
+ if [ "$add_etc_modules" ]; then
+ echo /etc/modules
+ fi
+}
+
+if [ "$VERBOSE" = no ]; then
+ log_action_begin_msg 'Loading kernel modules'
+fi
+
+files=$(modules_files)
+if [ "$files" ] ; then
+ grep -h '^[^#]' $files |
+ while read module args; do
+ [ "$module" ] || continue
+ load_module "$module" "$args"
+ done
+fi
+
+if [ "$VERBOSE" = no ]; then
+ log_action_end_msg 0
+fi
+
More information about the Debian-init-diversity
mailing list