Подведены итоги голосования о системах инициализации в Debian

Опубликованы результаты общего голосования (GR, general resolution) разработчиков проекта Debian, участвующих в сопровождении пакетов и поддержании инфраструктуры, проводившегося по вопросу поддержки нескольких систем инициализации. Победил второй пункт («B») в списке — предпочитаемым остаётся systemd, но оставляется возможность сопровождения альтернативных систем инициализации. Голосование проводилось методом Кондорсе, при котором каждый голосующий ранжирует все варианты в порядке их предпочтения, а при вычислении результата учитывается сколько голосующих предпочитает один вариант другому.

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

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

Напомним, что в 2014 году технический комитет утвердил переход дистрибутива по умолчанию на systemd, но не выработал решения по отношению к поддержке нескольких систем инициализации (при голосовании победил пункт, указывающий на неготовность комитета вынести решение по данному вопросу). Лидер комитета порекомендовал сопровождающим пакеты сохранить поддержку sysvinit в качестве альтернативной системы инициализации, но указал, что не может навязывать свою точку зрения и в каждом случае решение следует принимать самостоятельно.

После этого некоторыми разработчиками была предпринята попытка проведения общего голосования, но предварительное голосование показало отсутствие необходимости принятия решения по вопросу использования нескольких систем инициализации. Несколько месяцев назад, после проблем с включением пакета elogind (необходим для работы GNOME без systemd) в ветку testing из-за конфликта с libsystemd, вопрос был повторно поднят лидером проекта Debian, так как разработчики не смогли договориться, а их общение переросло в противостояние и зашло в тупик.

Рассматривавшиеся варианты:

  • Основное внимание фокусируется на systemd. Предоставление поддержки альтернативных систем инициализации не является приоритетом, но сопровождающие вправе опционально включать в пакеты init-скрипты для таких систем.
  • Предпочитаемым остаётся systemd, но оставляется возможность сопровождения и альтернативных систем инициализации. Технологии, такие как elogind, позволяющие в альтернативных окружениях запускать приложения, привязанные к systemd, рассматриваются как важные. В пакеты допускается включение init-файлов для альтернативных систем.
  • Поддержка разнообразных систем инициализации и возможность загрузки Debian с системами инициализации, отличными от systemd.
    Для запуска сервисов пакеты обязательно должны включать init-скрипты, поставка только unit-файлов systemd без sysv init-скриптов недопустима.

  • Поддержка систем, не использующих systemd, но без внесения изменений, мешающих развитию. Разработчики соглашаются поддерживать несколько систем инициализации в обозримом будущем, но также считают необходимым работать над улучшением поддержки systemd. Разработкой и сопровождением специфичных решений следует заниматься заинтересованным в таких решениях сообществам, но другие мэйнтейнеры должны активно помогать и способствовать решению проблем, когда в этом возникает необходимость. В идеале пакеты должны функционировать при использовании любой системы инициализации, для чего можно поставлять традиционные init-скрипты или использовать иные механизмы, позволяющие работать без systemd. Невозможность работы без systemd рассматривается как ошибка, но не как ошибка, блокирующая релиз, за исключением случаев, когда имеется готовое решение для работы без systemd, но его отказываются сохранять (например, когда проблема вызвана удалением ранее поставлявшегося init-скрипта).
  • Поддержка переносимости, без внесения изменений, мешающих развитию. Debian продолжает рассматриваться как связующее звено для интеграции различного ПО, предоставляющего эквивалентную или похожую функциональность. Переносимость между аппаратными платформами и программными стеками относится к важным задачам, а интеграция альтернативных технологий приветствуется, даже если мировоззрение их создателей расходятся с общим мнением. Позиция в отношении systemd и других систем инициализации полностью совпадает с 4 пунктом.
  • Перевод поддержки нескольких систем инициализации в разряд обязательных. Предоставление возможности запуска Debian с системами инициализации, отличными от systemd, продолжает иметь значение для проекта. Каждый пакет обязан работать с обработчиками pid1, отличными от systemd, за исключением случаев, когда входящее в пакет ПО изначально предназначено для работы только с systemd и отсутствует поддержка запуска без systemd (отсутствие init-скриптов не считается предназначением только для работы с systemd).
  • Поддержка переносимости и нескольких реализаций. Общие принципы полностью совпадают с пунктом 5, но в отношении systemd и систем инициализации не предъявляется конкретных требований, а также не накладываются какие-либо обязательства на разработчиков. Разработчикам предлагается учитывать интересы друг друга, идти на компромиссы и находить общие решения, удовлетворительные для различных сторон.
  • Продолжение обсуждения. Пункт может использоваться для снижения рейтинга неприемлемых вариантов.
  • Источник: opennet.ru

    Добавить комментарий