[debhelper-devel] Bug#864504: dh_systemd_enable: please go back using `disable` instead of `mask`
Alan Jenkins
alan.christopher.jenkins at gmail.com
Mon Oct 16 10:40:25 UTC 2017
On 14/10/17 13:27, Michael Biebl wrote:
> On Fri, 4 Aug 2017 22:12:08 +0100 Alan Jenkins
> <alan.christopher.jenkins at gmail.com> wrote:
> Can you please explain how #714903 can be fixed differently so masking
> is not needed?
> There were two reasons `mask` was used here.
>
> 1. Removing a package naturally deletes most of its files, including
deleting the systemd service unit. However the system V init script is
preserved, because it might include user changes. This can work OK under
system V init, but systemd also picks up the initscript, and will show
it as a started service in messages, logs, `systemctl list-units` etc.
I believe the solution (which may or not be politically practical) is:
Implement an equivalent feature to masking for system V init scripts,
which is dedicated to handle removed packages only.
This only strictly needs to be respected by the systemd generator, which
converts init scripts to systemd services.
Probably the init scripts want to include the same feature themselves.
(Around the same point where they decide whether to dispatch to
`systemctl start` instead). I think that would also allow removing some
less regular weirdness from init scripts. Debian would no longer have a
special requirement that init scripts silently succeed if the daemon
binary does not exist. And I think the dnsmasq package (as opposed to
dnsmasq-core?) has even more special handling, which could go away.
I suspect this would end up with Debian carrying the patch to the
systemd generator. But all it needs to do is test for
`/var/lib/update-rc.d/${script}.removed` and then skip ${script}.
Alan
More information about the debhelper-devel
mailing list