Bug#1021027: dh_installsystemd: do not mask/unmask any unit files besides services
Luca Boccassi
bluca at debian.org
Fri Sep 30 18:05:28 BST 2022
On Fri, 2022-09-30 at 18:56 +0200, Michael Biebl wrote:
> Am 30.09.22 um 18:45 schrieb Michael Biebl:
> > Package: debhelper
> > Version: 13.9.1
> > Severity: normal
> > X-Debbugs-Cc: pkg-systemd-maintainers at lists.alioth.debian.org
> >
> > dh_installsystemd currently creates a maintscript code to mask/unmask any
> > type of unit files (.service, .socket, .timer, etc) if a package is
> > removed/(re)installed.
> >
> > The masking/unmasking is currently done as packages unfortunately still
> > ship SysV init scripts along side native unit files and as SysV init
> > scripts are typically conffiles, they are not removed on uninstall.
> > So unless the package is purged systemd-sysv-generator will now see a
> > SysV init script and generate a corresponding runtime unit for it.
> >
> > Ideally, we would not have to manually create those masks.
> > At least we shouldn't do it for non-service units as this can lead to
> > failures e.g. when socket units that are used in a service are still
> > masked.
> >
> > Example:
> > # apt install -y systemd-oomd; apt remove -y systemd-oomd; apt install -y systemd-oomd
> > ...
> > Setting up systemd-oomd (251.4-3) ...
> > Failed to restart systemd-oomd.service: Unit systemd-oomd.socket is masked.
> > Could not execute systemctl: at /usr/bin/deb-systemd-invoke line 145.
> >
> >
> > dh_installsystemd should probably create two lists:
> > #UNITFILES# and #SERVICEFILES#
> > and the autoscripts for systemd doing the mask/unmask should only
> > operate on #SERVICEFILES#
> >
> > There's the problem of existing masks, so we will probably need to
> > create the unmask code in postinst for #UNITFILES# at least for a while
> > longer.
>
> Another idea how we could drop the need for the masks is to let
> dh_installinit generate a "chmod -x /etc/init.d/foo" upon package
> removal (and running a corresponding chmod +x on reinstall).
> systemd-sysv-generator already helpfully ignores any non-executable
> files in /etc/init.d
>
> What do others think about this idea?
>
> Getting rid of the mask/unmask bandaid would be really beneficial.
I like that, sounds simple, low-risk and effective
--
Kind regards,
Luca Boccassi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://alioth-lists.debian.net/pipermail/pkg-systemd-maintainers/attachments/20220930/85595a0d/attachment.sig>
More information about the Pkg-systemd-maintainers
mailing list