[PKG-OpenRC-Debian] Bug#817006: openrc: dangling diversion of /usr/sbin/{invoke, update}-rc.d

Adam Borowski kilobyte at angband.pl
Mon Mar 7 03:31:57 UTC 2016


Package: openrc
Version: 0.20.4-2
Severity: critical
Justification: breaks unrelated software


I'm afrad the removal of diversions of /usr/sbin/{invoke,update}-rc.d
without undiverting them breaks anything that uses those scripts.  This
makes many packages uninstallable:
.--=======================================================================
Setting up virtualbox (5.0.16-dfsg-2) ...
/var/lib/dpkg/info/virtualbox.postinst: 34: /var/lib/dpkg/info/virtualbox.postinst: update-rc.d: not found
dpkg: error processing package virtualbox (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up exim4-base (4.86.2-2) ...
/var/lib/dpkg/info/exim4-base.postinst: 88: /var/lib/dpkg/info/exim4-base.postinst: update-rc.d: not found
dpkg: error processing package exim4-base (--configure):
 subprocess installed post-installation script returned error exit status 127
`--=======================================================================

Another casualty is logrotate:
.--=======================================================================
/etc/cron.daily/logrotate:
logrotate_script: 2: logrotate_script: invoke-rc.d: not found
error: error running non-shared postrotate script for /var/log/syslog of '/var/log/syslog
'
logrotate_script: 2: logrotate_script: invoke-rc.d: not found
error: error running shared postrotate script for '/var/log/mail.info
`--=======================================================================

I dared not to try to reboot to see if this makes the system unbootable as
well, which might be the case.


As noted by Andreas Hendriksson in #811708, you need to undivert on all
systems that had 0.20.4-1 installed, but not on those upgraded from jessie
or those who installed 0.20.4-2 anew.  The version check proposed by Andreas
won't work, as an upgrade to 0.20.4-2 removes such information.  Thus, we'd
need to check whether such a diversion exists and was created by openrc
rather than as an action by the sysadmin.

Thus, I propose guarding it with:
if [ "$(dpkg-divert --list /usr/sbin/invoke-rc.d)" = "diversion of /usr/sbin/invoke-rc.d to /usr/sbin/invoke-rc.d.init-system-helpers by openrc" ]


-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (150, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.4.1-x32 (SMP w/6 CPU cores)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages openrc depends on:
ii  insserv      1.14.0-5.3
ii  libaudit1    1:2.4.5-1+b1
ii  libc6        2.21-9
ii  libeinfo1    0.20.4-2
ii  libpam0g     1.1.8-3.2
ii  librc1       0.20.4-2
ii  libselinux1  2.4-3+b1

Versions of packages openrc recommends:
ii  init-system-helpers  1.29

Versions of packages openrc suggests:
pn  policycoreutils  <none>

-- no debconf information



More information about the OpenRC-devel mailing list