Adrian Vovk, creator of the atomically updated distribution carbonOS 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 dependency on systemd. In the upcoming GNOME 49 and 50 releases, some of the own components for 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, free the project from workarounds, and allow implementing additional functionality, such as session saving and restoration.
Since 2015, GNOME has been using the session manager systemd-logind, which has replaced ConsoleKit. In distributions that do not support systemd, elogind, a systemd-independent trimmed version of logind, or patches restoring ConsoleKit support are used. During the development of GNOME, such workarounds for operating without systemd are not considered and not tested, so their functionality depends on third-party enthusiasts.
In future releases of GNOME, the display manager GDM will additionally utilize the userdb infrastructure provided by systemd, which will replace its own service AccountsService. GNOME and systemd do not support running more than one graphical session for the same user. However, GDM can output multiple login screens simultaneously to launch several graphical sessions at the same time, which is applied in remote desktop access and on multiseat systems with multiple monitors and input devices. Such functionality in GDM was implemented 15 years ago as a temporary workaround and is incompatible with the modern dbus-broker, so it has been decided to switch to a new implementation using systemd-userdb for dynamically allocating accounts and launching each login screen instance under a unique user.
În plus, s-a decis eliminarea din GNOME a implementării propriei sale gestiuni a serviciilor, care a fost folosită în gnome-session ca un handler de rezervă pentru lansarea serviciilor GNOME în medii fără systemd. Managerul încorporat al serviciilor funcționa la nivelul lansării fișierelor desktop și urmărea activitatea serviciilor corespunzătoare. Acest manager al serviciilor nu a fost aproape deloc modificat în ultimii 17 ani, iar singurul motiv pentru care nu a fost eliminat a fost utilizarea sa în GDM pentru lansarea ecranului de autentificare. După migrarea GDM la utilizarea systemd pentru lansarea ecranului de autentificare, proiectul nu a mai avut motive pentru a menține propriul său manager primitiv de sesiuni, care împiedica implementarea funcționalității de salvare și restaurare a sesiunilor.
Pentru a simplifica adaptarea la schimbările distribuțiilor care nu folosesc systemd, în GNOME 49 va fi temporar adăugată posibilitatea de a lansa GDM fără userdb, folosind un utilizator fix gdm-greeter pentru prima sesiune de autentificare, gdm-greeter-2 pentru a doua etc. În GNOME 50, o astfel de posibilitate, precum și managerul încorporat al serviciilor, vor fi planificate pentru eliminare, așa că dezvoltatorii distribuțiilor fără systemd trebuie urgent să dezvolte straturi de substituție pentru systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) și pentru procesul de lansare a sesiunii (liderul sesiunii), care interacționează cu managerul de servicii utilizat în distribuție.
De asemenea, va fi necesară înlocuirea fișierului executabil gnome-session-ctl, care coordonează interacțiunea dintre procesul de lansare a sesiunii, serviciul D-Bus și systemd. Înlocuirea gnome-session-ctl trebuie dezvoltată înainte de lansarea GNOME 49.
Sursa: opennet.ro
