GNOME посилює залежність від systemd – зміни в GDM та gnome-session
Адріан Вовк (Adrian Vovk), творець атомарно оновлюваного дистрибутиву carbonOS та один із розробників systemd-homed і systemd-sysupdate, оголосив про внесення в GNOME змін, які посилять залежність проекту від systemd. У майбутніх версіях GNOME 49 і 50 деякі власні компоненти для запуску екрана входу в систему будуть замінені на штатні можливості systemd.
Історія залежності GNOME від systemd
З 2015 року в GNOME використовується менеджер сеансів systemd-logind, який прийшов на зміну ConsoleKit. В дистрибутивах, що не підтримують systemd, використовується elogind (незалежний від systemd урізаний варіант logind) або патчі, що повертають підтримку ConsoleKit.
При розробці GNOME подібні обхідні шляхи роботи без systemd не враховуються і не тестуються. Їх працездатність залежить від сторонніх ентузіастів.
Основні зміни в майбутніх версіях GNOME
У майбутніх випусках GNOME в дисплейному менеджері GDM додатково буде задіяна інфраструктура userdb. Вона замінить собою сервіс AccountsService.
Окрім того, розробники вирішили видалити з GNOME реалізацію власного менеджера сервісів. Цей менеджер використовувався в gnome-session як запасний обробник для запуску сервісів GNOME в середовищах без systemd.
Причини змін у GNOME
GNOME і systemd самі по собі не підтримують запуск більше одного графічного сеансу для одного й того ж користувача. При цьому GDM може виводити одночасно декілька екранів входу для запуску кількох графічних сеансів.
Ця функціональність у GDM була реалізована 15 років тому як тимчасовий костиль і несумісна з сучасним dbus-broker. Тому вирішено перейти на нову реалізацію, що використовує systemd-userdb для динамічного виділення облікових записів.
Адаптація для дистрибутивів без systemd
Для спрощення адаптації дистрибутивів, що не використовують systemd, у GNOME 49 буде тимчасово додана можливість запуску GDM без userdb. Вона використовуватиме фіксованого користувача gdm-greeter для першого сеансу входу, gdm-greeter-2 для другого тощо.
Однак у майбутніх версіях GNOME ця можливість, а також вбудований менеджер сервісів будуть видалені. Тому розробникам дистрибутивів без systemd потрібно терміново розробити прошарки для заміни systemd-userdb та процесу запуску сеансу.
Крім того, знадобиться заміна виконуваного файлу gnome-session-ctl, що координує взаємодію між процесом запуску сеансу, сервісом D-Bus і systemd. Заміну gnome-session-ctl необхідно розробити до випуску GNOME 49, а userdb – до GNOME 50.
Видалення старого коду на користь штатних можливостей systemd має спростити супровід, позбавити проект від костилів і дозволити реалізувати бажану функціональність. Проте для дистрибутивів без systemd це означає додаткову роботу з адаптації.
Більше інформації можна отримати на офіційному сайті GNOME.