systemd as external dependency


I'd like to propose systemd (GPL2+, as blessed external
dependency for GNOME 3.2. 

Currently the interfacing between GNOME and systemd is minimal. Bastien
has been implementing a UI for changing the host name via a
configuration UI in the control center which uses a tiny mechanism
daemon included in systemd as backend. GLib already exposes
g_get_user_runtime_dir() which is a frontend for XDG_RUNTIME_DIR whose
only implementation I know right now is in systemd.

In the future I expect more interfacing with GNOME however, and I'd thus
like to see the discussion regarding acceptance as blessed
dependency started early.

In the long run I expect the following additional interfaces used by
GNOME or one of its components:

- I am working on two more mechanisms generalizing control of the system
  locale and system clock/timezone for use in the control center and by
  other UIs.

- gdm will interface with the new CK-replacing code I am working on.

- gnome-session will be augmented by a per-user systemd instace,
  leveraging the benefits that systemd gives you for system startup also
  for session startup.

- Later on I hope that we can use per-application cgroups to create
  reliable mapping between desktop files and processes. (i.e. place each
  app in a cgroup and name it after the .desktop file), integrated into
  the systemd cgroup hierarchy, so that this can be used for g-s and
  other UIs to relate desktop files to processes.

And I expect a couple of more interfacing points, however things get
more and more into vaporware areas with those.

With these interfaces I hope to bring the speed improvements we are
providing for the system also to the session. Also it brings a ton of
new user-visible features with it, like automatic multiseat, or the
ability to change the system locale.

systemd is Linux-only. That means if we still care for those non-Linux
platforms replacements have to be written. In case of the
timezone/time/locale/hostname mechanisms this should be relatively easy
as we kept the D-Bus interface very much independent from systemd, and
they are easy to reimplement. Also, just leaving out support for this on
those archs should be workable too. The hostname interface is documented
in a lot of detail here: -- we plan to
offer similar documentation for the other mechanisms.

Not all Linux distributions currently use systemd. The majority of the
big and small distributions however has switched by now or is planning
to switch in their next versions, or at least provides packages in the
distribution. The one exception is Ubuntu. While I have hopes this will
be resolved next year, there is no official statement from Ubuntu on
this. Distributions not interested in systemd which however are looking
into having some of its features could probably compile systemd but
remove all but the mechanism daemons.

Integration between gnome-session and systemd I expect to be very lose,
and can probably easily be #ifdef'ed out for conservative distros or
other OSes.

The closest integration I expect in gdm. Ideally I'd like to rip out the
current CK support completely and replace it entirely by the more
low-level systemd specific code. However, that I can only do if the
outcome of this discussion is clear.

systemd itself has very minimal external dependencies. You need Linux,
udev, D-Bus, and that's it. (there are a couple of additional optional
deps however).

The first version i'd like to see blessed is systemd 26.



Lennart Poettering - Red Hat, Inc.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]