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

Tom Gundersen teg at jklm.no
Fri Apr 13 09:23:27 EDT 2012

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

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



[0]: https://github.com/falconindy/initscripts-systemd
[1]: https://github.com/falconindy/systemd-arch-units

More information about the arch-dev-public mailing list