Hi all,
long time as a silent lurker, but is seems well time to get up and act. Although
today I'm just about writing about doing, so feel free to ignore me.
English is not my first language, so if I use inappropriate writing tone, I
apologize now and please let me know about my errors.
The exchange of ideas on converting init script is needed and I've seen plenty
of interesting comments and proposed solutions.
On 29/11/2019 18:17, s@po wrote:
> On Fri, 29 Nov 2019 12:15:29 +0100
> Didier Kryn <kryn@???> wrote:
>
>> Le 29/11/2019 à 02:08, s@po a écrit :
>>> freedesktop.org, should adress the situation,
>>
>> I don't trust Freedesktop to produce a good quality standard. I
>> don't know who are the people behind Freedesktop, beyond Gnome and KDE,
>> but they have produced Dbus and also the practice to automatically
>> create unwanted directories in your home, unless you disable them
>> explicitely.
>>
>> If "unit" files are something which can be retained (after all,
>> there might be one non-negative outcome of Systemd), they can be used to
>> produce init scripts for various init systems, or these init systems
>> could be made able to, optionnaly, read their configuration from "unit
>> files".
>>
If (assuming that) we are going to lose the source of init scripts upstream,
then it's the only way forward.
(For those who consider recognizing the unit files as a valid source a defeat: I
may agree with you, but sometimes a strategic retreat can lead to victory).
>
> I don't trust them neither..
> But, they should have addressed this problem after all they were waving the flag of standards..
> They seems to forgot a Standard Init API mechanism.. shame..
>
> I spoke about that because I took 5 minutes to look at last development of SysVInit, and indeed you find there some stuff about systemd and dbus integration..
> I understand the dbus integration as a way, so that SysVinit daemons could coexist with Dbus controlled daemons..
>
> The Idea arrived..
> Why not have an Interpreter, for the UnitFiles, that then internally do things as SysVInit does?
> In this way we could preserve SysVinit daemons functionality, and when impossible( or a "unscallable wall arrive".. ), SysVinit will continue to control, the usual daemons, plus the wave of non SysVinit ones( in the mean time we could have time to port daemons at the speed we can.. ).
>
> So this idea is some sort of a patched SysVinit, to have half of the 'Script Injector' idea( the interpreter of unit files part ), and some logic to do it like sysVInit does..
> But that would also means.. that we had to have in /etc/init.d/, all the s*tty systemD service files.. which is a bit crazy..
Fascinating, but I'd like to explain my viewpoint about this idea.
My impression is that it is viable building a batch init script generator, where
package maintainers are able to check and validate the newly generated init
scripts *in the maintainer test system*, as well as take care of any peculiar
bug of the translation, or quirky behaviour of the unit files.
As it's systemd we are talking about, I wouldn't ever place a bet on stable and
documented behaviour on its part. Otherwise we wouldn't be here on devuan ML,
after all. When new peculiar behaviour is discovered, we can adapt the
initscript generator. This would mean a huge effort on repacking debian
packages, or having blanket-like packages with init"scripts" for
SysV/openrc/any_init that provide the init support to all/groups of debian
packages, possibly synced with major revisions of devuan.
On the other hand, a unitfile *interpreter* is a different story, I'm not sure
this is viable as of now, and the risks look greater to me in this case. IMO
there are two scenarios.
1) the interpreter is external to SysVinit/any_init init and is called after
each package update (by means of apt ?).
Still, any bug that creeps through by leveraging unexpected unit file behaviour
will risk of breaking the interpreter *in the devuan user system*, and this
would negatively affect devuan reliability. Imagine the backfire of a situation
where the interpreter fails after a security update for some obscure change in a
unit file, so at service start/stop or at next reboot the system goes astray.
2) the interpreter is run by the init process (bound to it some way) and used
each time a script is accessed. I'd rather not see this, more complexity of this
kind in the init process is bad for system health.
I agree the interpreter idea is technically intriguing, but bot scenarios are a
bit too close to reimplementing systemd, IMO.
I'd rather develop something useful to the mantainers now, and keep the option
to turn it into a package for the end user later on.
So I'd first go with 1) the offline translation, 2) get it stable enough that it
can run automatically on any debian package updates, 3) monitor the amount of
bugs and manual corrections needed, then 4) enable the initscript to be
automatically generated and added to packages in devuan, 5) monitor again for
errors 6) consider putting the interpreter in the final system.
We can have both solutions along this path but I think the solution with shorter
development time and biggest advantage to maintainers should be prioritary.
Best Regards
Massimo