GNOME системи посилює інтеграцію з systemd для дистрибутивів

Відносини GNOME з systemd вже багато років викликають дискусії серед користувачів Linux та різних дистрибутивів. Хоча це десктопне середовище офіційно не вимагало systemd для своєї основної функціональності, багато його компонентів суттєво спиралися на екосистему systemd, особливо на logind – сервіс управління сесіями.

Тепер GNOME робить подальші кроки для поглиблення своєї інтеграції з systemd, що значно ускладнить роботу десктопу на альтернативних системах ініціалізації.

Історія зв’язку GNOME та systemd

GNOME вже давно не є повністю незалежним від systemd. З 2015 року він покладається на logind для керування сесіями та місцями, відмовившись від підтримки старішого ConsoleKit. Проте logind не обов’язково має працювати під systemd – проєкти на кшталт elogind дозволяли GNOME функціонувати на системах з OpenRC, runit або BSD init.

Однак така сумісність завжди була досить нестабільною. Більшість розробників GNOME зосереджуються на системах на основі systemd, а інфраструктура автоматизованого тестування проєкту не перевіряє конфігурації без systemd. Внаслідок цього підтримка альтернативних систем ініціалізації значною мірою лягла на плечі дистриб’юторів.

Що змінюється в інтеграції GNOME з systemd

Відбуваються дві значні зміни, які посилять залежність GNOME від systemd:

GDM інтегрується з systemd-userdb

Менеджер дисплеїв GNOME отримує залежність від systemd-userdb – системи динамічного управління обліковими записами користувачів. Ця зміна допомагає модернізувати обробку багатомісцевих та віддалених сесій входу в GDM, замінюючи те, що розробники описують як “застарілу поведінку та відверті хаки”.

Хоча для систем без userdb існує тимчасове резервне рішення (використання статичних облікових записів вітальника, як-от “gdm-greeter-1”, “gdm-greeter-2” тощо), це лише тимчасовий захід.

Gnome-session відмовляється від вбудованого менеджера служб

Починаючи з GNOME 3.34, менеджер сесій використовував systemd для запуску та моніторингу користувацьких служб, повертаючись до внутрішнього менеджера служб лише коли systemd недоступний.

Однак зараз це резервне рішення видаляється. Початково написаний для GNOME 2.24, старий менеджер служб вважається застарілим, погано підтримуваним і перешкодою для нових функцій, таких як збереження/відновлення сесій.

Що це означає для дистрибутивів без systemd?

Коротко кажучи, нічого доброго. Одне можна сказати напевно: цей крок GNOME викличе гарячі дебати та розчарування як серед розробників, так і користувачів systemd-free дистрибутивів (Void, Slackware, Alpine, Chimera, Devuan тощо).

Хоча шлях вперед не є неможливим, він, безумовно, стає складнішим. З огляду на це, команда GNOME пропонує кілька варіантів:

  • Реалізувати заміни systemd-userdb. Проєкти на кшталт elogind вже заповнили подібні прогалини для logind; подібні зусилля можуть знадобитися для userdb.
  • Підтримувати патчі для старіших версій GNOME. GNOME 48 продовжуватиме отримувати оновлення до випуску GNOME 50, даючи супроводжувачам час для адаптації.

Тим не менш, все очевидно: GNOME рухається до глибшої інтеграції з systemd, і хоча альтернативні налаштування не зникнуть миттєво, вони вимагатимуть більше зусиль для підтримки функціональності.

Безперечно, посилення інтеграції GNOME з systemd вплине на майбутнє Linux-дистрибутивів та змусить спільноту шукати нові рішення для збереження різноманітності в екосистемі.

Для отримання додаткової інформації ви можете відвідати офіційний сайт GNOME або прочитати детальний блогпост про ці зміни.