Adrian Vovk, skaparen av den atomärt uppdaterade distributionen carbonOS och installatören för GNOME OS, samt en av utvecklarna av systemd-homed och systemd-sysupdate, har meddelat om förändringar i GNOME som kommer att öka projektets beroende av systemd. I de kommande versionerna GNOME 49 och 50 kommer vissa egna komponenter för att starta inloggningsskärmen att ersättas med standardfunktioner från systemd, vilket kräver skapandet av nya mellanlager för att distribuera GNOME i distributioner och operativsystem som inte använder systemd. Det påpekas att borttagningen av gammal kod till förmån för standardfunktioner från systemd kommer att förenkla underhållet, befri projekte från provisoriska lösningar och möjliggöra implementeringen av ytterligare funktionalitet, som att spara och återställa sessioner.
Sedan 2015 har GNOME använt sessionhanteraren systemd-logind, som ersatte ConsoleKit. I distributioner som inte stöder systemd används elogind, en oberoende och nedskuren version av logind, eller patchar som återinför stöd för ConsoleKit. Vid utvecklingen av GNOME tas sådana alternativa metoder för att arbeta utan systemd inte hänsyn till och testas därför inte, vilket gör att deras funktionalitet beror på externa entusiaster.
I framtida versioner av GNOME kommer displayhanteraren GDM att utnyttja infrastrukturen userdb, tillhandahållen av systemd, som ersätter den egna tjänsten AccountsService. GNOME och systemd stöder i sig inte körning av mer än en grafisk session för samma användare. GDM kan dock visa flera inloggningsskärmar samtidigt för att starta flera grafiska sessioner, vilket tillämpas vid fjärråtkomst till skrivbordet och på multiseat-system med flera skärmar och inmatningsenheter. Denna funktionalitet i GDM implementerades för 15 år sedan som en tillfällig lösning och är inte kompatibel med den moderna dbus-broker, så det har beslutats att gå över till en ny implementation som använder systemd-userdb för dynamisk tilldelning av konton och start av varje inloggningsskärm under en unik användare.
Dessutom har det beslutats att ta bort GNOME:s egen tjänstehanterare, som användes i gnome-session som en reservhanterare för att starta GNOME-tjänster i miljöer utan systemd. Den inbyggda tjänstehanteraren fungerade på nivån för att starta desktop-filer och övervaka arbetet med de relaterade tjänsterna. Denna tjänstehanterare har nästan inte ändrats under de senaste 17 åren, och den enda anledningen till att den inte har tagits bort kvarstod att den användes i GDM för att starta inloggningsskärmen. Efter att GDM har övergått till att använda systemd för att starta inloggningsskärmen, har projektet inga skäl kvar att stödja sin egen primitiva sessionshanterare, som hindrar möjligheten att spara och återställa sessioner.
För att förenkla anpassningen till förändringar i distributioner som inte använder systemd, kommer GNOME 49 tillfälligt att lägga till möjligheten att köra GDM utan userdb med användning av den fasta användaren gdm-greeter för den första inloggningen, gdm-greeter-2 för den andra och så vidare. I GNOME 50 planeras samma möjlighet samt den inbyggda tjänstehanteraren att tas bort, så utvecklare av distributioner utan systemd behöver brådskande utveckla gränssnitt för att ersätta systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) och sessionens startprocess (session leader) som interagerar med den tjänstehanterare som används i distributionen.
Det kommer också att behövas en ersättning för exekverbara filen gnome-session-ctl, som koordinerar interaktionen mellan sessionens startprocess, D-Bus-tjänsten och systemd. Ersättningen av gnome-session-ctl måste utvecklas före lanseringen av GNOME 49.
Källa: opennet.ru
