Debian возвращается к вопросу поддержки нескольких систем инициализации

Сэм Хартман (Sam Hartman), лидер проекта Debian, попытался разобраться в разногласиях, связанных с поставкой пакета elogind в составе дистрибутива. В июле команда, отвечающая за подготовку релизов, заблокировала включение elogind в ветку testing, так как данный пакет конфликтует с libsystemd.

Напомним, что elogind предоставляет интерфейсы, необходимые для работы GNOME без установки systemd. Проект основан как ответвление от systemd-logind, вынесенное в отдельный пакет и избавленное от привязки к компонентам systemd. В том числе elogind предоставляет свой вариант библиотеки libelogind, которая берёт на себя ряд функций, предлагаемых в libsystemd, и заменяет при установке данную библиотеку.

В качестве причин блокировки был отмечен конфликт с пакетом systemd и опасность замены libsystemd альтернативным вариантом libelogind, полностью не совместимым с исходной библиотекой на уровне ABI. В пакете elogind помечен как конфликтующий с библиотеками systemd, но он по своей сути рассчитан на работу только без systemd и конфликт с systemd даже приносит пользу, так как не позволяет установить elogind по ошибке. С другой стороны в текущем виде попытки через APT обновить конфигурацию с systemd на вариант с sysvinit и elogind приводят к получению повреждённой системы с неработающим APT. Но даже при устранении этой недоработки переход от systemd к elogind остаётся невозможен без удаления уже установленных пользовательских окружений.

Разработчикам elogind было предложено адаптировать elogind для работы поверх штатного libpam-systemd, без использования собственной прослойки libpam-elogind. Переходу elogind на libpam-systemd мешает отсутствие поддержки концепции слайсов, но разработчики elogind не желают добиться полного соответствия API и в точности повторить все возможности systemd, так как elogind лишь предоставляют минимальную функциональность для организации входа пользователей и не ставит целью повторения всех подсистем systemd.

Разрешение описанных технических проблем должно решаться на уровне взаимодействия команды выпускающей релизы и мэйнтейнеров elogind и systemd, но лидер проекта был вынужден вмешаться так как команды не смогли договориться, совместная работа переросла в противостояние и решение проблемы зашло в тупик, в котором каждая сторона права по своему. По мнению Сэма Хартмана, ситуация приближается к состоянию, требующему проведения общего голосования (GR, general resolution), в котором сообщество примет решение в отношении альтернативных систем инициализации и поддержки sysvinit с elogind.

Если участники проекта проголосуют за диверсификацию систем инициализации, все мэйнтейнеры будут вовлечены в совместную работу по решению этой задачи или будут назначены специальные ответственные разработчики для работы над данной проблемой и сопровождающие больше не смогут игнорировать альтернативную систему инициализации, отмалчиваться или затягивать процесс.

В настоящее время в репозитории уже накопилось 1033 пакета, поставляющих сервисные юниты для systemd, но не включающих скрипты init.d. Для решения этой проблемы предлагается поставлять по умолчанию service-файлы, но подготовить обработчик, который бы автоматически разбирал команды из этих файлов и генерировал на их основе скрипты init.d.

Если сообщество решит, что в Debian достаточно поддержки одной системы инициализации, можно больше не заботиться о sysvinit и elogind, сосредоточившись только на unit-файлах и systemd. Такое решение негативно повлияет на порты, не использующие ядро Linux (Debian GNU/Hurd, Debian GNU/NetBSD и Debian GNU/kFreeBSD), но в основном архиве подобных портов пока нет и они не имеют статус официально поддерживаемых.

Привязка к systemd также существенно затруднит смену направления развития дистрибутива в будущем и ограничит проведение дальнейших экспериментов в области инициализации и управления сервисами. Поддерживать elogind в рабочем виде значительно проще, чем удалить, а потом пытаться добавить вновь. У каждого варианта решения есть плюсы и минусы, поэтому перед голосованием потребуется всестороннее обсуждение всех аргументов за и против.

Источник: http://www.opennet.ru/opennews/art.shtml?num=51517