[Dev] [RFC] OpenRC strategy

Luke Shumaker lukeshu at lukeshu.com
Wed Sep 13 01:19:50 GMT 2017


I haven't really been a part of Parabola's OpenRC scene, but given my
maintainership of notsystemd, I probably should be.

I have a couple of issues with how openrc and friends are being
packaged right now.

 - I'm locked in to using openrc-init as PID 1.  OpenRC is designed in
   a way that splits PID 1 ("init") from the system manager (yay small
   modular programs!).  That means you can actually use it with a
   number of different init programs, including sysvinit, busybox
   init, and since OpenRC 0.25, openrc-init.  I should be able to use
   any of those as my init--hell, I should even be able to use systemd
   as my init.

   I propose that openrc be turned in to a split package, something like:

       pkgname=(openrc openrc-init openrc-sysvinit)

       package_openrc() {
         depends=(openrc-init)
         ...
       }

       package_openrc-init() {
         depends=(openrc)
         conflicts=(sysvinit)
         ...
       }

       package_openrc-sysvinit() {
         depends=(openrc sysvinit)
         provides=(openrc-init)
         conflicts=(openrc-init)
         
         install -Dm644 support/sysvinit/inittab "${pkgdir}/etc/inittab"
       }

   From there, there could be other [pcr] packages like
   'openrc-busybox-init' to use busybox init.  These packages would
   need to depends=(openrc), provides=(openrc-init), and probably
   conflicts=(openrc-init).

   Unfortunately, we don't have a good meta-package name to conflict
   with other packages that provide /bin/init.

 - (not)systemd-udev should be a just as valid of a choice for udev as
   eudev is.  In the past this was the case, via the udev-openrc
   package.  If this package needs to be merged in to the notsystemd
   package, I am fine with that.

-- 
Happy hacking,
~ Luke Shumaker



More information about the Dev mailing list