Adrian Vovk, creador de la distribución carbonOS de actualización atómica y del instalador para GNOME OS, además de uno de los desarrolladores de systemd-homed y systemd-sysupdate, ha anunciado cambios en GNOME que fortalecerán la dependencia del proyecto en systemd. En las próximas versiones de GNOME 49 y 50, algunos de los componentes propios para la pantalla de inicio de sesión serán reemplazados por las capacidades nativas de systemd, lo que requerirá la creación de nuevas capas para distribuir GNOME en distribuciones y sistemas operativos que no utilizan systemd. Se señala que la eliminación del código antiguo en favor de las capacidades nativas de systemd simplificará el mantenimiento, liberará al proyecto de soluciones provisionales y permitirá implementar funcionalidades adicionales, como la conservación y recuperación de sesiones.
Desde 2015, GNOME utiliza el gestor de sesiones systemd-logind, que sustituyó a ConsoleKit. En las distribuciones que no soportan systemd, se utiliza elogind, una variante recortada de logind independiente de systemd, o parches que restauran el soporte de ConsoleKit. Al desarrollar GNOME, tales soluciones alternativas para trabajar sin systemd no se tienen en cuenta ni se prueban, por lo que su funcionalidad depende de entusiastas externos.
En futuras versiones de GNOME, se incorporará en el gestor de pantalla GDM la infraestructura userdb proporcionada por systemd, que reemplazará su propio servicio AccountsService. GNOME y systemd por sí mismos no soportan la ejecución de más de una sesión gráfica para el mismo usuario. Sin embargo, GDM puede mostrar simultáneamente múltiples pantallas de inicio de sesión para iniciar varias sesiones gráficas al mismo tiempo, lo cual se aplica al acceso remoto al escritorio y en sistemas multiseat con múltiples monitores y dispositivos de entrada. Esta funcionalidad en GDM fue implementada hace 15 años como una solución provisional y no es compatible con el moderno dbus-broker, por lo que se ha decidido pasar a una nueva implementación que utiliza systemd-userdb para asignar cuentas dinámicamente y ejecutar cada instancia de la pantalla de inicio de sesión bajo un usuario único.
Además, se ha decidido eliminar de GNOME la implementación de su propio gestor de servicios, que se utilizaba en gnome-session como un manejador de respaldo para iniciar servicios de GNOME en entornos sin systemd. El gestor de servicios integrado funcionaba a nivel de inicio de archivos desktop y seguimiento de los servicios relacionados. Este gestor de servicios no ha cambiado casi en 17 años y la única razón por la que no fue eliminado era su uso en GDM para iniciar la pantalla de inicio de sesión. Después de trasladar GDM a utilizar systemd para lanzar la pantalla de inicio de sesión, el proyecto no tenía razones para mantener su primitivo gestor de sesiones, que obstaculiza la implementación de la capacidad de guardar y restaurar sesiones.
Para facilitar la adaptación a cambios en las distribuciones que no usan systemd, en GNOME 49 se añadirá temporalmente la posibilidad de iniciar GDM sin userdb utilizando un usuario fijo gdm-greeter para la primera sesión de inicio, gdm-greeter-2 para la segunda, etc. En GNOME 50 se planea eliminar esta posibilidad, así como el gestor de servicios integrado, por lo que los desarrolladores de distribuciones sin systemd deben urgentemente desarrollar capas de reemplazo para systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) y el proceso de inicio de sesión (session leader) que interactúa con el gestor de servicios utilizado en la distribución.
También será necesaria la sustitución del archivo ejecutable gnome-session-ctl, que coordina la interacción entre el proceso de inicio de sesión, el servicio D-Bus y systemd. La sustitución de gnome-session-ctl debe desarrollarse antes del lanzamiento de GNOME 49.
Fuente: opennet.ru
