Gentoo Archives: gentoo-dev

From: Rich Freeman <rich0@g.o>
To: gentoo-dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] rfc: making sysvinit optional
Date: Thu, 11 Jul 2019 17:38:37
Message-Id: CAGfcS_nn+iZoF8TZXqmKyLYmfWaUHx=V4XxXapxg8bQ-umiUhQ@mail.gmail.com
In Reply to: Re: [gentoo-dev] rfc: making sysvinit optional by William Hubbs
On Thu, Jul 11, 2019 at 1:22 PM William Hubbs <williamh@g.o> wrote:
> > On Thu, Jul 11, 2019 at 12:46:02PM -0400, Rich Freeman wrote: > > On Thu, Jul 11, 2019 at 11:56 AM William Hubbs <williamh@g.o> wrote: > > > > > > On Thu, Jul 11, 2019 at 09:42:02AM -0400, Rich Freeman wrote: > > > > If somebody just installs openrc their expectation is going to be that > > they get sysvinit or your substitute that actually works with openrc > > out of the box. They're not going to want to have neither installed > > simply because they have runit or systemd already installed. If > > somebody is migrating from systemd to openrc that is exactly the > > situation they would be in. > > And this would be handled by virtual/init and virtual/service-manager... > > If you are migrating, you would definitely want to be careful with > --depclean until you knew exactly what you wanted to remove or make sure > everything is in your world file that you don't want removed. >
What value is virtual/init adding though? You don't have to be careful with migrating if you don't use it. You get no benefit from using the virtual instead of just depending directly on sysvinit, because that is the only package in the virtual that provides a reasonable init implementation for openrc to use. Yes, we can add that extra layer and then half the time it doesn't do anything and the other half the time it automatically does what the user doesn't want it to do, and users can work around it. What it won't ever do is make it easier to do what the user actually wants to do. If you do create a virtual/init then I'd just limit it to stuff that provides a generic sysvinit implementation that will easily work with any other service manager. I'd argue that is sysvinit, and maybe busybox[make-symlinks]. Maybe your openrc init implementation does, but I haven't looked at it. The rest simply don't provide an init that is designed to be used with an arbitrary service manager. Maybe to look at it another way: is this actually fixing a problem that anybody is concerned about? It just seems like it is giving portage freedom to shoot the user in the foot, for little real gain. -- Rich