Some of you have probably seen the blog post a few months ago about how GNOME is more strongly depending on systemd. The changes mentioned there have landed into the latest stable versions of the mentioned software (GNOME 49) and do affect us. In particular, the main culprit is the removal of the non-systemd fallback code in gnome-session. This makes it currently impossible to launch gnome-shell/mutter on a non-systemd system. A fairly straightforward patch of using elogind, like what was previously done, no longer works either.
Since we don’t have the time or interest to write a new non-systemd codepath for gnome-session, this means that all support for gnome-based desktops has to be dropped. In particular, the affected packages would be gnome-session, gnome-shell, mutter, and gnome-settings-daemon. For now, the old versions are still in the repos but because there is so much intertwining between other gtk/gnome packages, there is no guarantee they actually work and will later be removed from our repos.
Standalone gnome applications will still continue to be packaged, but it is simply not feasible anymore to support gnome desktops without systemd.
what is the argument against using systemd?
It’s a large and very complicated piece of software with a single implementation. It’s practically impossible to fork, so users are forced to adopt whatever changes the maintainers decide to implement. This could include things like forced dependencies (incompatible with mulb libc for example), or other poor design choices (like binary logging, which is very controversial). And it forces its adoption in places that do not want it (as in cases like the one we’re discussing here, where it’s becoming harder and harder for Gnome to be used without it).
I’m not going to argue about whether systemd is good software or not. But the biggest problem with it is that it’s basically a way for Red Hat to exert control over the entire Linux ecosystem.
Think of it like Chrome/Chromium. Everybody naïvely thought we were never be where we are today when it was announced, but look at where we are today. While it’s technically open source and an excellent browser, above all, it’s a tool for Google to exert its control over the WWW, such as disabling adblockers, implementing DRM, deciding which CSS/Javascript APIs should (or should not) be adopted, etc. systemd could very well be Red Hat’s vehicle for imposing similar requirements on desktop Linux.
It does too many things too well.
Slightly off on that, SystemD does too many things as PID1, and there are a lot of attack vectors that come with that. It doesn’t follow the Free Software of ethos of “do one thing, and one thing well”.
it’s quite modular. I would argue that each individual component does follow that ethos
It is lots of modules but not really that modular. There is little concern about working with anything else.
If it were properly modular, systemd would be built from universal components, which could be used by other init systems. But it’s the other way around. Meaning the universal components are created by taking them out of systemd. For example elogind is “extracted” from systemd to be a standalone daemon.
systemd isn’t a pid1; systemd-init is
Compared to what? Most services do not run PID1
It’s not called systemD. It’s just systemd.
systemdeez nuts
My guess (i dont understand it all that well) is that people are less again using systemd, than against a growing dependency on systemd. If something bad happens to it, it could drag down other big elements of the linux ecosystem with itself.