Adrian Vovk, criador da distribuição carbonOS com atualizações atômicas e do instalador para GNOME OS, bem como um dos desenvolvedores do systemd-homed e systemd-sysupdate, anunciou mudanças no GNOME que aumentarão a dependência do projeto em relação ao systemd. Nas próximas versões GNOME 49 e 50, alguns componentes próprios para a tela de entrada do sistema serão substituídos por funcionalidades nativas do systemd, o que exigirá a criação de novas camadas para fornecer GNOME em distribuições e sistemas operacionais que não utilizam systemd. Ressalta-se que a remoção do código antigo em favor das funcionalidades nativas do systemd simplificará a manutenção, livrará o projeto de gambiarras e permitirá a implementação de funcionalidades adicionais, como a preservação e recuperação de sessões.
Desde 2015, o GNOME utiliza o gerenciador de sessões systemd-logind, que substituiu o ConsoleKit. Em distribuições que não suportam systemd, utiliza-se o elogind, uma versão reduzida do logind independente do systemd, ou patches que restauram o suporte ao ConsoleKit. No desenvolvimento do GNOME, essas soluções alternativas para operar sem o systemd não são consideradas e não são testadas, portanto, sua funcionalidade depende de entusiastas externos.
Nas futuras versões do GNOME, a infraestrutura userdb fornecida pelo systemd será adicionalmente integrada ao gerenciador de exibição GDM, substituindo seu próprio serviço AccountsService. Tanto o GNOME quanto o systemd não suportam nativamente a execução de mais de uma sessão gráfica para o mesmo usuário. No entanto, o GDM pode exibir simultaneamente várias telas de entrada para iniciar várias sessões gráficas, o que é utilizado no acesso remoto ao desktop e em sistemas multiseat com vários monitores e dispositivos de entrada. Essa funcionalidade no GDM foi implementada há 15 anos como uma gambiarra temporária e não é compatível com o moderno dbus-broker, portanto, foi decidido adotar uma nova implementação que utiliza o systemd-userdb para a alocação dinâmica de contas e para iniciar cada instância da tela de entrada sob um usuário único.
Além disso, foi decidido remover do GNOME a implementação do próprio gerenciador de serviços, que era utilizado no gnome-session como um fallback para iniciar serviços GNOME em ambientes sem systemd. O gerenciador de serviços integrado funcionava no nível de execução de arquivos desktop e monitoramento da operação dos serviços associados. Este gerenciador de serviços praticamente não sofreu alterações nos últimos 17 anos, e a única razão pela qual não foi removido era seu uso no GDM para iniciar a tela de login. Após a migração do GDM para o uso do systemd para iniciar a tela de login, o projeto não tinha mais razões para manter seu primitivo gerenciador de sessões, que dificultava a implementação da capacidade de salvar e restaurar sessões.
Para simplificar a adaptação às mudanças em distribuições que não utilizam systemd, o GNOME 49 adicionará temporariamente a capacidade de iniciar o GDM sem userdb, utilizando o usuário fixo gdm-greeter para a primeira sessão de login, gdm-greeter-2 para a segunda, e assim por diante. No GNOME 50, essa funcionalidade, assim como o gerenciador de serviços integrado, estão previstos para serem removidos, portanto, os desenvolvedores de distribuições sem systemd devem urgentemente desenvolver camadas para substituir systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) e o processo de início da sessão (session leader), que interage com o gerenciador de serviços usado na distribuição.
Também será necessário substituir o arquivo executável gnome-session-ctl, que coordena a interação entre o processo de início da sessão, o serviço D-Bus e o systemd. A substituição do gnome-session-ctl deve ser desenvolvida antes do lançamento do GNOME 49.
Fonte: opennet.ru
