Systemd and KDE Workspaces in openSUSE 12.3

openSUSE is migrating to the use of systemd for the upcoming 12.3 version, given the difficulties that emerged in trying to co-maintain two different init systems (SysV + systemd). While I am not going into the details of this choice (I leave this to more informed people), this has some consequences for software higher in the stack.

As ConsoleKit is deprecated, systemd offers its own daemon to keep track of sessions and assigned seats in a system. However, the KDE Workspaces rely on ConsoleKit to handle user switching, reboot, shutdown and a lot of ther things. Removing ConsoleKit would mean that users would suffer feature loss. On the other hand, with something that’s been deprecated and no longer actively worked on, you have issues with maintenance.

The solution the openSUSE KDE team took was to introduce support for systemd in the KDE Workspaces (this was mainly done by Raymond “tittiatcoke” Wooninck). The task was much easier than it seemed at first, because Red Hat people have already made patches to support systemd in Fedora. The part from the KDE team was to take these patches, test them for a few months (I’ve been running them smoothly for quite a while, along with others in the group), then apply them to the packages for the next version of the distribution. We’re currently testing a patch from Fedora that allows either ConsoleKit or systemd support runtime, without needing a compile-time dependency. Once sufficient data are available, it will be pushed to the distro packages.

Other patches were directly pushed upstream by Red Hat engineers, and include a better interaction between the workspaces’ power management infrastructure and systemd itself.

In short, the next version of openSUSE (12.3) should be fully capable of handling systemd. Of course, to ensure it’s as bug free as possible it requires testing, so why don’t you jump into the fray and share your experience with us?

14 thoughts on “Systemd and KDE Workspaces in openSUSE 12.3

  1. JR

    Great work!

    I’d really *really* like to see is KDE using systemd for its own user services though, like kded does today. Is that even remotely possible?

    More shared code, more robust (one module crashes and the entirety of kded isn’t torn down), etc. I don’t know, it just sounds attractive.

  2. isemenov

    Wait.. I had asked about this a few months ago in the KDE IRC and was told the usual “KDE exist on BSD win mac etc. so no systemd dep-t code” – now has this attitude changed, or are those patches downsteam only, specific to the SUSE/Fedora KDE builds? Thank you!

  3. Ian

    Is there any chance that shutdown in 12.3 will also power down the PC? Doesn’t seem to work with 12.2

  4. Aleix

    I think it’s really sad that those packages are not even on reviewboard. :/

    One won’t but expect that systemd is more widespread and all this patching is broken if the maintainers don’t know about them.

  5. Luca Beltrame Post author

    @Aleix

    Some bits touch stuff like KDM, hence I don’t think it’s even worth an effort to try putting them upstream (even though I would like that very much) due to the difficulty of getting patches approved for that. Most of the other bits are upstreamed instead (UDisks2 backend, inhibition support ,etc.).

  6. Aaron Seigo

    I also would like to see this upstreamed; there’s little risk in putting them on reviewboard. So why don’t you do so, set plasma to be a/the review group, and see where we go? There’s zero point in multiple downstreams carrying such patches.

  7. Luca Beltrame Post author

    @Aaron You should contact the RH people (Lukas Tinkl is one of them, but I’m not sure who authored the other patches; I’ll ask) as they were the ones who did the work.

  8. Kevin Kofler

    I did the initial patch. We were in a hurry to release, and user switching had been broken in systemd itself for a while (it also failed in GNOME), so we only managed to test shutdown and restart. I was planning to submit the patch for review when fully tested, but that didn’t get done. Recently, Martin Bříza (mbriza) got user switching working (it was triggering some bug or limitation in QtDBus as I had coded it – as I said, we weren’t able to test my code because systemd was broken itself when I had written it), and he changed the fallback to ConsoleKit to a runtime rather than compile time decision (which I personally don’t like all that much because of the overhead, but it has the advantage that you don’t have to attempt to figure out at compile time what will be used at runtime, my version was using a manual CMake flag for that). So I think this is ready for review now, we’ll submit it ASAP.

  9. Pingback: OpenSUSE 12.3 adotterà systemd in maniera completa | oneOpenSource

  10. asymmetric

    Please drop systemd from OpenSuSE completely or make it available as a marginally supported option. I use SuSE since 1996, mostly on servers – but also on desktops. systemd is much too complicated (except in the most simplistic configurations) and will never come anywhere close to sys-v-init in its simplicity, maintainability and stability. Systemd is a very typical case of failure-by-design.

    In the long run, systemd will do harm to OpenSuSE because of (missing) maintainability, complexity and server-unfriendliness. I believe, this is going to be far off from the “right way” of Linux.

    It’s not too late!

  11. Luca Beltrame Post author

    Supporting two init systems is a maintenance nightmare. And I would add, I do not want to delve into this (IMO pointless) debate as the only thing that causes is stop energy for contributors and developers, and I’ve had enough by reading the opensuse-factory ML every time systemd is mentioned.

Comments are closed.