[arch-dev-public] [RFC] official systemd support

Hi guys, Pierre, Tobias, Dave and myself discussed the state of systemd on irc today, and we'd like to propose that we from now on officially support systemd. In particular this means: 1) systemd moves to core, 2) unit files (systemd's version of rc scripts) are added to packages where this makes sense, 3) packages are compiled with systemd support where it is available and does not cause regressions on non-systemd systems. This does not mean that people are forced to install systemd (though libsystemd might be pulled in by other packages). Furthermore, it does not mean that initscripts is being discontinued, I am committed to maintain initscripts for the foreseeable future. Lastly, where it is impossible to support both systemd and non-systemd systems, non-systemd systems should have the highest priority. A bit more background info: systemd is, in my humble opinion, a better init system than sysvinit in every sense, except maturity. I believe that systemd has now reached a point where it is stable and mature enough to be used by the majority of Arch users. 1) systemd should move to core because a) as an init system it should follow our signoff procedure b) as of the next udev release, udev will be a split package of systemd so having them in the same repo makes sense c) the same goes for libsystemd which might soon become a dependency of other core packages (notice that this lib does nothing if systemd is not running, so no need for panic). 2) it is possible to use our old rc scripts with systemd [0], but unit files are both less fragile, require less code and can better use systemds features than the rc scripts can. In the cases where upstream ship unit files they can usually be enabled with "--with-systemdsystemunitdir=/usr/lib/systemd/system", otherwise they can be cherry-picked from Dave's git repo [1] (please coordinate with him so there are no file conflicts). 3) this is required in some cases to get e.g. socket activation to work (I have a patch to make this work with rpcbind, and I'm sure there are other examples). This would usually cause a dep on libsystemd, but as mentioned that is a noop on non-systemd systems, so if this is done right the same package should work just fine on systemd and non-systemd systems. At some point we might want to move to using systemd by default, but I suggest we revisit that question sometime in the future once more devs are more intimately familiar with systemd and can make an educated decision. Cheers, Tom [0]: https://github.com/falconindy/initscripts-systemd [1]: https://github.com/falconindy/systemd-arch-units