Adrian Vovk, der Schöpfer der atomar aktualisierbaren Distribution carbonOS und des Installers für GNOME OS sowie einer der Entwickler von systemd-homed und systemd-sysupdate, hat Änderungen an GNOME angekündigt, die die Abhängigkeit des Projekts von systemd stärken werden. In den kommenden Versionen GNOME 49 und 50 werden einige Eigenentwicklungen für den Anmeldebildschirm durch die standardmäßigen Funktionen von systemd ersetzt, was die Schaffung neuer Schichten zur Bereitstellung von GNOME in Distributionen und Betriebssystemen erforderlich macht, die systemd nicht verwenden. Es wird angemerkt, dass die Entfernung von altem Code zugunsten der standardmäßigen Funktionen von systemd die Wartung erleichtert, das Projekt von Notlösungen befreit und die Implementierung zusätzlicher Funktionen wie das Speichern und Wiederherstellen von Sitzungen ermöglicht.
Seit 2015 verwendet GNOME den Sitzungsmanager systemd-logind, der ConsoleKit ersetzt hat. In Distributionen, die kein systemd unterstützen, wird elogind verwendet, eine von systemd unabhängige abgespeckte Version von logind, oder Patches, die die Unterstützung von ConsoleKit zurückbringen. Bei der Entwicklung von GNOME werden solche Umgehungslösungen für den Betrieb ohne systemd nicht berücksichtigt und nicht getestet, weshalb ihre Funktionsfähigkeit von externen Enthusiasten abhängt.
In zukünftigen Versionen von GNOME wird im Display-Manager GDM zusätzlich die Infrastruktur userdb integriert, die von systemd bereitgestellt wird und den eigenen Dienst AccountsService ersetzen wird. GNOME und systemd unterstützen von sich aus nicht die Ausführung von mehr als einer grafischen Sitzung für denselben Benutzer. GDM kann jedoch gleichzeitig mehrere Anmeldebildschirme ausgeben, um mehrere grafische Sitzungen gleichzeitig zu starten, was bei Remote-Desktop-Zugriffen und auf Multiseat-Systemen mit mehreren Monitoren und Eingabegeräten zum Einsatz kommt. Eine solche Funktionalität in GDM wurde vor 15 Jahren als vorübergehende Notlösung implementiert und ist nicht kompatibel mit dem modernen dbus-broker, weshalb beschlossen wurde, auf eine neue Implementierung umzusteigen, die systemd-userdb für die dynamische Zuweisung von Konten und den Start jeder Instanz des Anmeldebildschirms unter einem einzigartigen Benutzer verwendet.
Darüber hinaus wurde beschlossen, die Implementierung eines eigenen Dienstmanagers aus GNOME zu entfernen, der in gnome-session als Backup-Handler zum Starten von GNOME-Diensten in Umgebungen ohne systemd verwendet wurde. Der integrierte Dienstmanager funktionierte auf der Ebene des Startens von Desktop-Dateien und der Überwachung der Arbeit damit verbundener Dienste. Dieser Dienstmanager hat sich in den letzten 17 Jahren kaum verändert, und der einzige Grund, warum er nicht entfernt wurde, war seine Verwendung in GDM zum Starten des Anmeldebildschirms. Nach der Umstellung von GDM auf die Verwendung von systemd zur Steuerung des Anmeldebildschirms gibt es für das Projekt keinen Grund mehr, einen eigenen primitiven Sitzungsmanager zu unterstützen, der die Implementierung der Möglichkeit zur Speicherung und Wiederherstellung von Sitzungen behindert.
Um die Anpassung an Änderungen in Distributionen, die kein systemd verwenden, zu erleichtern, wird in GNOME 49 vorübergehend die Möglichkeit hinzugefügt, GDM ohne userdb mit einem festen Benutzer gdm-greeter für die erste Anmeldung, gdm-greeter-2 für die zweite usw. zu starten. In GNOME 50 wird diese Möglichkeit sowie der integrierte Dienstmanager voraussichtlich entfernt, weshalb es für die Entwickler von Distributionen ohne systemd dringend erforderlich ist, Ersatzschichten für systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) und den Anmeldeprozess (Sitzungsleiter), der mit dem in der Distribution verwendeten Dienstmanager interagiert, zu entwickeln.
Außerdem ist ein Ersatz für die ausführbare Datei gnome-session-ctl erforderlich, die die Interaktion zwischen dem Sitzungsstartprozess, dem D-Bus-Dienst und systemd koordiniert. Der Ersatz für gnome-session-ctl muss vor der Veröffentlichung von GNOME 49 entwickelt werden.
Quelle: opennet.ru
