Package: init-system-helpers Version: 1.40 Severity: serious In the latest upload, we dropped the insserv dependency and added some fallback code for SysV init scripts for the case where insserv is not installed [1].
Unfortunately, the disable case is not handled correctly. It removes all symlinks: # for "disable" we cannot rely on the init script still being present, as # this gets called in postrm for purging. Just remove all symlinks. if ("disable" eq $action) { unlink($_) for glob("/etc/rc?.d/[SK][0-9][0-9]$scriptname"); return; } On package upgrades, the SysV init script gets enabled again via update-rc.d foo defaults. This means 1/ For SysV only service, we enable and start a service, overriding the admins settings. 2/ For a package with native service files and a SysV init script, the state gets out of sync. I consider 1/ a blocker, which is why I'm marking this as RC. The correct why to handle disable a SysV init script, is to turn existing S symlinks in runlevel S,2,3,4,5 into K symlinks. For this we don't need the LSB header, we simply have to check for the existence symlinks on the disk. The update-rc.d man page says that the sequence number of the K symlink should be 100 minus the priority of the S symlink. For simplicities reason, I would simply turn S symlinks into K01 symlinks. Enable would be the reverse action. We check in runlevels S,2,3,4,5 for K symlinks and turn them into S symlinks. Again, I would just use priority S01 here. So, a disable + enable on service foo might change the priority of that SysV init script, but under systemd those priorities are ignored and if sysvinit-core is installed, it will pull in insserv which will correct the priorities. So we do not lose any relevant (admin) configuration. Regards, Michael [1] http://anonscm.debian.org/cgit/collab-maint/init-system-helpers.git/commit/?id=f51e81cabe -- System Information: Debian Release: stretch/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unstable'), (200, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages init-system-helpers depends on: ii perl-base 5.22.2-3 init-system-helpers recommends no packages. init-system-helpers suggests no packages. -- no debconf information