GNOME to Increase Dependence on systemd

Adrian Vovk, the creator of the atomically updated carbonOS distribution and installer for GNOME OS, as well as one of the developers of systemd-homed and systemd-sysupdate, announced changes to GNOME that will increase the project's dependence on systemd. In the upcoming GNOME 49 and 50 releases, some of the native components for launching the login screen will be replaced with standard systemd capabilities, which will require the creation of new layers for delivering GNOME in distributions and operating systems that do not use systemd. It is noted that removing old code in favor of standard systemd capabilities will simplify maintenance, rid the project of workarounds and allow for the implementation of additional functionality, such as saving and restoring sessions.

Since 2015, GNOME has used the systemd-logind session manager, which replaced ConsoleKit. Distributions that do not support systemd use elogind, a stripped-down version of logind independent of systemd, or patches that return support for ConsoleKit. Such workarounds for working without systemd are not taken into account or tested during the development of GNOME, so their functionality depends on third-party enthusiasts.

In future releases of GNOME, the GDM display manager will additionally use the userdb infrastructure provided by systemd, replacing its own AccountsService. GNOME and systemd themselves do not support running more than one graphical session for the same user. However, GDM can display multiple login screens at the same time to run multiple graphical sessions, which is useful for remote desktop access and on multiseat systems with multiple monitors and input devices. This functionality was implemented in GDM 15 years ago as a temporary workaround and is not compatible with the modern dbus-broker, so it was decided to move to a new implementation that uses systemd-userdb to dynamically allocate accounts and run each login screen instance under a unique user.

In addition, it was decided to remove from GNOME the implementation of its own service manager, which was used in gnome-session as a fallback handler for launching GNOME services in environments without systemd. The built-in service manager functioned at the level of launching desktop files and monitoring the work of services associated with them. This service manager has remained almost unchanged for the last 17 years and the only reason it was not removed was its use in GDM to launch the login screen. After switching GDM to use systemd to launch the login screen, the project had no reason to support its own primitive session manager, which interferes with the implementation of the ability to save and restore sessions.

To simplify the adaptation of distributions that do not use systmed to changes, GNOME 49 will temporarily add the ability to launch GDM without userdb using a fixed user gdm-greeter for the first login session, gdm-greeter-2 for the second, etc. In GNOME 50, such an ability, as well as the built-in service manager, is planned to be removed, so developers of distributions without systemd urgently need to develop layers to replace systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) and the session leader process that interacts with the service manager used in the distribution.

A replacement for the gnome-session-ctl executable, which coordinates interactions between the session startup process, the D-Bus service, and systemd, will also be needed. A replacement for gnome-session-ctl should be developed before GNOME 49 is released.

Source: opennet.ru

Add a comment