Adrian Vovk, twórca atomowo aktualizowanej dystrybucji carbonOS i instalatora dla GNOME OS, a także jeden z deweloperów systemd-homed i systemd-sysupdate, ogłosił zmiany w GNOME, które zwiększą zależność projektu od systemd. W nadchodzących wydaniach GNOME 49 i 50 niektóre natywne komponenty do uruchamiania ekranu logowania zostaną zastąpione standardowymi możliwościami systemd, co będzie wymagało utworzenia nowych warstw do dostarczania GNOME w dystrybucjach i systemach operacyjnych, które nie używają systemd. Należy zauważyć, że usunięcie starego kodu na rzecz standardowych możliwości systemd uprości konserwację, uwolni projekt od obejść i umożliwi wdrożenie dodatkowych funkcji, takich jak zapisywanie i przywracanie sesji.
Od 2015 r. GNOME używa menedżera sesji systemd-logind, który zastąpił ConsoleKit. Dystrybucje, które nie obsługują systemd, używają elogind, okrojonej wersji logind niezależnej od systemd, lub poprawek, które zwracają obsługę ConsoleKit. Takie obejścia dla pracy bez systemd nie są brane pod uwagę ani testowane podczas opracowywania GNOME, więc ich funkcjonalność zależy od entuzjastów stron trzecich.
W przyszłych wersjach GNOME menedżer wyświetlania GDM będzie dodatkowo korzystał z infrastruktury userdb dostarczanej przez systemd, zastępując własną usługę AccountsService. GNOME i sam systemd nie obsługują uruchamiania więcej niż jednej sesji graficznej dla tego samego użytkownika. Jednak GDM może wyświetlać wiele ekranów logowania w tym samym czasie, aby uruchamiać wiele sesji graficznych, co jest przydatne w przypadku dostępu do pulpitu zdalnego i w systemach wielostanowiskowych z wieloma monitorami i urządzeniami wejściowymi. Ta funkcjonalność została zaimplementowana w GDM 15 lat temu jako tymczasowe obejście problemu i nie jest zgodna z nowoczesnym brokerem dbus, więc postanowiono przejść na nową implementację, która używa systemd-userdb do dynamicznego przydzielania kont i uruchamiania każdej instancji ekranu logowania pod unikalnym użytkownikiem.
Ponadto postanowiono usunąć z GNOME implementację własnego menedżera usług, który był używany w gnome-session jako zapasowy program obsługi uruchamiania usług GNOME w środowiskach bez systemd. Wbudowany menedżer usług funkcjonował na poziomie uruchamiania plików pulpitu i monitorowania pracy powiązanych z nimi usług. Ten menedżer usług pozostawał niemal niezmieniony przez ostatnie 17 lat i jedynym powodem, dla którego nie został usunięty, było jego użycie w GDM do uruchamiania ekranu logowania. Po przełączeniu GDM na używanie systemd do uruchamiania ekranu logowania projekt nie miał powodu, aby wspierać własnego prymitywnego menedżera sesji, co koliduje z implementacją możliwości zapisywania i przywracania sesji.
Aby uprościć adaptację dystrybucji nieużywających systemd do zmian, GNOME 49 tymczasowo doda możliwość uruchamiania GDM bez userdb przy użyciu stałego użytkownika gdm-greeter dla pierwszej sesji logowania, gdm-greeter-2 dla drugiej itd. W GNOME 50 planowane jest usunięcie takiej możliwości, jak również wbudowanego menedżera usług, więc programiści dystrybucji bez systemd muszą pilnie opracować warstwy zastępujące systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) oraz proces lidera sesji, który współpracuje z menedżerem usług używanym w dystrybucji.
Potrzebny będzie również zamiennik pliku wykonywalnego gnome-session-ctl, który koordynuje interakcje między procesem uruchamiania sesji, usługą D-Bus i systemd. Zamiennik dla gnome-session-ctl powinien zostać opracowany przed wydaniem GNOME 49.
Źródło: opennet.ru
