Supporting 2 different init systems comes with a large increase of possible usecases and scenarios that are very difficult to support correctly, specially in the long term.
This RFC proposes steps to permanently phase out sysvinit from future openSUSE releases.
- Fix all *currently* outstanding bugs of systemd if any, note that this step only deals with problems in systemd itself, not in service files installed by other packages, udev, kernel, networkmanager or whatever other thing.
- Determine which services currently lack of native systemd units.
- Add an rpmlint error with moderate badness for the start,complaining about the lack of unit files.
- Delete sysvinit scripts that deal purely with hardware things,like only loading kernel modules, making udev to handle them or simple dropping a foobar.conf with the needed modules in /usr/lib/modules-load.d/ whichever is more adequate or doable.
- Add missing systemd units for the packages where rpmlint warns.
- Add rpmlint with badness complaining about logrotate, or other shell scripts calling files in /etc/init.d ...
- Turn rpmlint warnings about the lack of systemd units on packages including traditional sysvinit scripts a fatal error.
- fix logrotate or shell scripts that are calling sysvint scripts and make the rpmlint warning a fatal error.
- tell RPM to %exclude files in /etc/init.d from packages, do not forc packagers to exclude these files themselves.
- make all macros relevant to traditional init scripts a no-op, do not force packagers to remove those lines or add extra hacks to the already horrendous hackery in spec files.
- test, test, test.
- remove sysvinit and all the relevant bootloader options and from the documentation.
-- Profit. :-)
This is just a quick brain dump, I am certainly missing something else.