Subject: Re: bug#723: init-system-helpers: update-rc.d calls systemctl on a SysVinit system, creating a recursion

From: [email-masked] (Wolfgang Wegner)
Date: Sun, 13 Nov 2022 22:00:05 +0100

Hi Mark,

thanks for looking into this!

On Sun, Nov 13, 2022 at 06:38:28PM +0000, Mark Hindley wrote:
> Control: tags -1 moreinfo
> 
> Wolfgang,
> 
> Thanks for this.
> 
> On Sat, Nov 12, 2022 at 09:20:17PM +0100, Wolfgang Wegner wrote:
> > Package: init-system-helpers
> > Version: 1.65.2devuan1
> > Severity: normal
> > X-Debbugs-Cc: [email-masked]
> > 
> > Dear Maintainer,
> > 
> > I am trying to install a package which expects SystemD. I manually added
> > scripts and an initial set for sysVinit. However, the post-install script
> > calls "systemctl --no-reload enable <packagename>", which invokes
> > update-rc.d, which in turn diverts to a systemctl call, and so on.
> 
> Which of the available systemctl emulations do you have installed?

Sorry I am not sure what exactly you mean here. I try to list packages that
might be relevant:

ii  init-system-helpers          1.65.2devuan1 all          helper tools for all init systems
ii  initscripts                  3.05-6devuan1 all          scripts for initializing and shutting down the system
ii  orphan-sysvinit-scripts      0.11          all          Orphaned System-V-like init scripts
ii  sysvinit                     3.05-6devuan1 amd64        System-V-like init utilities - transitional package
ii  sysvinit-core                3.05-6devuan1 amd64        System-V-like init
ii  sysvinit-utils               3.05-6devuan1 amd64        System-V-like utilities
ii  systemctl-service-shim 0.0.4-1      all          Adds systemctl translator script
ii  dummy-systemd-dev   0.2          all          Development files extracted from systemd

"systemctl-service-shim" might be what you are asking for, but I did not see
any alternative?

> > Calling update-rc.d from the systemctl "abstraction" (surrogate?) seems
> > to be correct, but I would have expected update-rc.d to detect the system's
> > init system and - as I am using sysVinit on Devuan - just modify the links.
> > 
> > update-rc.d behaviour can also be reproduced when calling it for an already
> > installed service.
> 
> Could you give a specific example here. I can't reproduce it.

root@<host>:~# update-rc.d rsyslog enable
update-rc.d rsyslog enable
update-rc.d rsyslog enable
update-rc.d rsyslog enable
...

> Thanks
> Mark

Best regards
Wolfgang