Adrian Vovk, de maker van de atomair bijgewerkte carbonOS-distributie en -installer voor GNOME OS, en tevens een van de ontwikkelaars van systemd-homed en systemd-sysupdate, heeft wijzigingen in GNOME aangekondigd die de afhankelijkheid van systemd voor het project zullen vergroten. In de aankomende releases van GNOME 49 en 50 worden enkele native componenten voor het starten van het inlogscherm vervangen door standaard systemd-mogelijkheden. Dit vereist de ontwikkeling van nieuwe lagen om GNOME te kunnen leveren in distributies en besturingssystemen die geen systemd gebruiken. Het verwijderen van oude code ten gunste van standaard systemd-mogelijkheden zal het onderhoud vereenvoudigen, het project ontdoen van tijdelijke oplossingen en de implementatie van extra functionaliteit mogelijk maken, zoals het opslaan en herstellen van sessies.
Sinds 2015 gebruikt GNOME de systemd-logind sessiebeheerder, die ConsoleKit heeft vervangen. Distributies die systemd niet ondersteunen, gebruiken elogind, een uitgeklede versie van logind die onafhankelijk is van systemd, of patches die ondersteuning voor ConsoleKit herstellen. Dergelijke oplossingen voor het werken zonder systemd worden niet meegenomen of getest tijdens de ontwikkeling van GNOME, waardoor de functionaliteit ervan afhankelijk is van externe enthousiastelingen.
In toekomstige versies van GNOME zal de GDM-displaymanager bovendien gebruikmaken van de userdb-infrastructuur van systemd, ter vervanging van de eigen AccountsService. GNOME en systemd zelf ondersteunen niet het uitvoeren van meer dan één grafische sessie voor dezelfde gebruiker. GDM kan echter meerdere inlogschermen tegelijk weergeven om meerdere grafische sessies uit te voeren, wat handig is voor toegang tot externe bureaubladen en op systemen met meerdere gebruikers en meerdere monitoren en invoerapparaten. Deze functionaliteit werd 15 jaar geleden in GDM geïmplementeerd als tijdelijke oplossing en is niet compatibel met de moderne dbus-broker. Daarom is besloten over te stappen op een nieuwe implementatie die systemd-userdb gebruikt om accounts dynamisch toe te wijzen en elke inlogscherminstantie onder een unieke gebruiker uit te voeren.
Daarnaast werd besloten de implementatie van de eigen service manager, die in gnome-session werd gebruikt als fallback-handler voor het starten van GNOME-services in omgevingen zonder systemd, uit GNOME te verwijderen. De ingebouwde service manager functioneerde op het niveau van het starten van desktopbestanden en het monitoren van de werking van de daaraan gekoppelde services. Deze service manager is de afgelopen 17 jaar vrijwel ongewijzigd gebleven en de enige reden dat hij niet werd verwijderd, was het gebruik ervan in GDM om het inlogscherm te starten. Nadat GDM was overgeschakeld naar systemd voor het starten van het inlogscherm, had het project geen reden meer om een eigen primitieve sessiemanager te ondersteunen, wat de implementatie van de mogelijkheid om sessies op te slaan en te herstellen belemmert.
Om de aanpassing van distributies die systmed niet gebruiken aan wijzigingen te vereenvoudigen, zal GNOME 49 tijdelijk de mogelijkheid toevoegen om GDM te starten zonder userdb met behulp van een vaste gebruiker gdm-greeter voor de eerste aanmeldsessie, gdm-greeter-2 voor de tweede, enz. In GNOME 50 is het de bedoeling dat een dergelijke mogelijkheid, evenals de ingebouwde service manager, wordt verwijderd. Daarom moeten ontwikkelaars van distributies zonder systemd dringend lagen ontwikkelen ter vervanging van systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) en het sessieleiderproces dat communiceert met de service manager die in de distributie wordt gebruikt.
Er is ook een vervanging nodig voor het uitvoerbare bestand gnome-session-ctl, dat de interacties coördineert tussen het sessieopstartproces, de D-Bus-service en systemd. Een vervanging voor gnome-session-ctl zou ontwikkeld moeten worden vóór de release van GNOME 49.
Bron: opennet.ru
