[debhelper-devel] Bug#837528: debhelper: dh_installinit	--no-restart-on-upgrade now restarts after upgrade
    Simon McVittie 
    smcv at debian.org
       
    Mon Sep 12 08:19:38 UTC 2016
    
    
  
Package: debhelper
Version: 10
Severity: normal
dbus contains a service that explicitly does not support being restarted
without a reboot (it would require an init-style stateful re-exec with a
lot of state to be transferred, which hasn't been implemented), so for a
long time we've used
        dh_installinit -pdbus -r
(where -r is the short form of --no-restart-on-upgrade) to suppress the
restart that debhelper would normally put in the maintainer scripts.
After upgrading dbus to compat level 10, I see this:
       --- /var/lib/dpkg/info/dbus.postinst	2016-08-15 22:05:45.000000000 +0100
       +++ dbus_1.10.10-2_amd64/DEBIAN/postinst	2016-08-26 11:07:56.000000000 +0100
       @@ -97,15 +97,18 @@
        if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
        	if [ -x "/etc/init.d/dbus" ]; then
        		update-rc.d dbus defaults >/dev/null
       -		invoke-rc.d dbus start || exit $?
       +		if [ -n "$2" ]; then
       +			_dh_action=restart
       +		else
       +			_dh_action=start
       +		fi
       +		invoke-rc.d dbus $_dh_action || exit $?
        	fi
        fi
        # End automatically added section
i.e. the change of default in compat level 10 has meant we would now
restart the service. Is this intended?
It looks as though it'll be possible to work around this with
    dh_installinit -pdbus --no-restart-on-upgrade --no-restart-after-upgrade
but that seems counter-intuitive: I would have expected
    dh_installinit -pdbus --no-restart-on-upgrade
to be enough?
I think this pseudo-patch would do what I expect:
        			if (! $dh{NO_START}) {
       -				if ($dh{RESTART_AFTER_UPGRADE}) {
       +				if ($dh{RESTART_AFTER_UPGRADE} && ! $dh{R_FLAG}) {
On the other hand, this change would likely also affect compat
levels < 10 if they did
    dh_installinit -pdbus --no-restart-on-upgrade --restart-after-upgrade
which has an unclear meaning: it isn't obvious what that should do, and
which of the two contradictory-looking options should "win".
Regards,
    S
-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.7.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages debhelper depends on:
ii  autotools-dev            20160430.1
ii  binutils                 2.27-8
ii  dh-autoreconf            12
ii  dh-strip-nondeterminism  0.027-1
ii  dpkg                     1.18.10
ii  dpkg-dev                 1.18.10
ii  file                     1:5.28-4
ii  libdpkg-perl             1.18.10
ii  man-db                   2.7.5-1
ii  perl                     5.22.2-5
ii  po-debconf               1.0.19
debhelper recommends no packages.
Versions of packages debhelper suggests:
pn  dh-make  <none>
-- no debconf information
    
    
More information about the debhelper-devel
mailing list