Product SiteDocumentation Site

15.4. Как стать сопровождающим пакета

15.4.1. Учимся создавать пакеты

Creating a quality Debian package is not always a simple task, and becoming a package maintainer takes some learning, both with theory and practice. It is not a simple matter of building and installing software; rather, the bulk of the complexity comes from understanding the problems and conflicts, and more generally the interactions, with the myriad of other packages available.

15.4.1.1. Правила

A Debian package must comply with the precise rules compiled in the Debian policy, and each package maintainer must know them. There is no requirement to know them by heart, but rather to know they exist and to refer to them whenever a choice presents a non-trivial alternative. Every Debian maintainer has made mistakes by not knowing about a rule, but this is not a huge problem as long as the error gets fixed when a user reports it as a bug report (which tends to happen fairly soon thanks to advanced users). The Standards-Version field in debian/control specifies the version of the Debian policy with which a package complies. Maintainers should comply to the latest version of the Debian policy.

15.4.1.2. Методика

Debian — это не просто набор отдельных пакетов. Работа каждого по пакетированию является частью коллективного проекта; быть разработчиком Debian — значит знать каким образом проект Debian работает как единое целое. Каждому разработчику рано или поздно придётся взаимодействовать с другими. В cправочнике разработчика Debian (в пакете developers-reference) сведена информация, которую нужно знать каждому разработчику для успешного взаимодействия с различными командами в рамках проекта и наиболее эффективного использования имеющихся ресурсов. В этом документе также перечисляется ряд обязанностей разработчика, которые должны выполняться.

15.4.1.3. Инструменты

Множество инструментов помогает сопровождающим пакетов в их работе. В этом раздел они описываются вкратце, без подробностей, так как все они сопровождаются исчерпывающей документацией.
15.4.1.3.1. Программа lintian
This tool is one of the most important: it is the Debian package checker. It is based on a large array of tests created from the Debian policy, and detects quickly and automatically many errors that can then be fixed before packages are released.
Этот инструмент является лишь вспомогательным, и иногда ошибается (например из-за того, что политики Debian со временем меняются, lintian иногда устаревает). Это тоже еще не все: отсутствие каких-либо ошибок, получаемых от Lintian, не следует интерпретировать как доказательство идеальности пакета; большее, на что он способен, это помочь избежать наиболее распространенных ошибок.
15.4.1.3.2. Программа piuparts
Это другой важный инструмент: он автоматизирует установку, обновление, удаление и полное удаление пакета (в изолированном окружении) и проверяет, что ни одна из этих операций не ведёт к ошибке. Он может помочь в обнаружении недостающих зависимостей, а также определяет, когда файлы по ошибке остаются в системе после полного удаления пакета.
15.4.1.3.3. devscripts
Пакет devscripts содержит множество программ, оказывающих помощь в широком круге задач разработчика Debian:
  • debuild позволяет создавать пакет (с помощью dpkg-buildpackage) и после этого запускать lintian для проверки его соответствия с политикой Debian.
  • debclean очищает пакет исходных текстов после создания двоичного пакета.
  • dch позволяет быстро и легко редактировать файл debian/changelog из пакета исходного кода.
  • uscan проверяет, была ли выпущена новая версия программного обеспечения основными авторами; для этого требуется наличие файла debian/watch с описанием размещения таких выпусков.
  • debi позволяет устанавливать (с помощью dpkg -i) только что созданный пакет Debian без необходимости вводить его полное имя и путь.
  • Аналогичным образом, debc позволяет сканировать содержимое недавно созданного пакета (с помощью dpkg -c) без необходимости вводить его полное имя и путь.
  • bts контролирует систему отслеживания ошибок из командной строки; эта программа автоматически генерирует соответствующие письма.
  • debrelease загружает недавно созданный пакет на удалённый сервер без необходимости ввода полного имени и пути соответствующего файла .changes.
  • debsign подписывает файлы *.dsc и *.changes.
  • uupdate автоматизирует создание новой редакции пакета, как только новая версия будет выпущена разработчиками программы.
15.4.1.3.4. debhelper и dh-make
Debhelper представляет собой набор сценариев, облегчающих создание пакетов, соответствующих политике; эти сценарии вызываются из debian/rules. Debhelper получил широкое распространение в Debian, о чем свидетельствует тот факт, что его использует большинство официальных пакетов Debian. Все команды, входящие в него, начинаются с префикса dh_.
Сценарий dh_make (из пакета dh-make) создает файлы, необходимые для создания пакета Debian в каталоге, изначально содержащем исходный код программы. Как можно догадаться из названия программы, сформированные файлы по умолчанию используют debhelper.
15.4.1.3.5. autopkgtest
autopkgtest runs tests on binary packages, using the tests supplied in the source package.
15.4.1.3.6. reprotest
reprotest builds the same source code twice in different environments, and then checks the binaries produced by each build for differences. If any are found, then diffoscope (if unavailable, diff) is used to display them in detail for later analysis.
15.4.1.3.7. dupload и dput
Команды dupload и dput позволяют загружать пакет Debian на (возможно удалённый) сервер. Это позволяет разработчикам публиковать свой пакет на основном сервере Debian (ftp-master.debian.org), чтобы он мог быть интегрирован в архив и распространён при помощи зеркал. Эти команды принимают файл *.changes в качестве параметра и на основании его содержимого находят остальные сопутствующие файлы.

15.4.2. Процесс принятия

Принятие в ряды разработчиков Debian — не простой административный вопрос. Процесс состоит из нескольких этапов и является в не меньшей степени процессом посвящения, нежели отбора. Так или иначе, он формализован и хорошо документирован, поэтому любой может отслеживать их продвижение на веб-сайте, посвящённом новым участникам.

15.4.2.1. Предварительные требования

Все кандидаты должны иметь, как минимум, практическое знание английского языка. Это необходимо на всех уровнях: само собой, для начальной связи с экзаменатором, и позднее, так как английский язык является предпочтительным языком для большей части документации; кроме того, пользователи пакетов будут общаться на английском языке при отправке сообщений об ошибках, и будут ожидать ответов на английском языке.
Другое требование касается мотивации. Пытаться стать разработчиком Debian имеет смысл, только если кандидат знает, что его интерес к Debian не угаснет в течение многих месяцев. Сам процесс принятия может длиться несколько месяцев, и Debian нуждается в разработчиках на долгосрочный период; каждый пакет требует постоянного обслуживания, а не только начальной загрузки.

15.4.2.2. Регистрация

Первый (реальный) шаг состоит в том, чтобы найти спонсора или защитника; то есть официального разработчика, готового заявить о том, что он считает, что принятие X было бы полезно для Debian. Обычно это предполагает, что кандидат уже проявил активность в рамках сообщества, и что его работа была оценена. Если кандидат является застенчивым и его работа не афишировалась публично, он может попытаться убедить разработчика Debian выступить за него, продемонстрировав свою работу приватно.
В то же время кандидат должен создать пару ключей RSA — открытый и секретный с помощью GnuPG, которая должна быть подписана не менее чем двумя официальными разработчиками Debian. Подпись удостоверяет имя владельца ключа. По сути, во время встречи для подписывания ключей каждый участник должен показать удостоверение личности (обычно ID-карту или паспорт) вместе с идентификационными данными своего ключа. Этот шаг подтверждает связь между человеком и ключами. Таким образом, для подписи необходима встреча в реальной жизни. Если вы ещё не встречали ни одного из разработчиков Debian на публичной конференции по свободному программному обеспечению, вы можете поискать разработчиков, живущих по соседству, используя список на следующей веб-странице в качестве отправной точки.
После того, как регистрация на nm.debian.org была подтверждена защитником, к кандидату приставляется Менеджер заявлений. Он проведёт процесс через многочисленные требующиеся шаги и проверки.
Первая проверка — идентификация личности. Если у вас уже есть ключ, подписанный двумя разработчиками Debian, этот шаг будет легким, в противном случае менеджер заявлений попытается помочь вам в поисках ближайших разработчиков Debian для организации встречи и подписания ключа.

15.4.2.3. Соглашение с принципами

Эти административные формальности проистекают из философских соображений. Смысл в том, чтобы убедиться, что кандидат понимает и принимает социальный контракт и принципы, лежащие в основе Свободного ПО. Присоединение к Debian возможно, только если он разделяет ценности, объединяющие текущих разработчиков, как изложено в основополагающих текстах (и обобщено в Глава 1, Проект Debian).
Кроме того, каждый кандидат, желающий присоединиться к рейтингу Debian, должен быть осведомлен о деятельности проекта и о том, как надлежит взаимодействовать для решения проблем, с которыми он, несомненно, со временем столкнётся. Вся эта информация, как правило, описана в руководствах, ориентированных на новых сопровождающих, а также в справочнике разработчика Debian. Внимательного чтения этого документа должно быть достаточно для ответа на вопросы экзаменатора. Если ответы неудовлетворительны, кандидат будет проинформирован. В таком случае ему придется читать соответствующую документацию (ещё раз), прежде чем повторить попытку. В случаях, когда существующая документация не содержит подходящего ответа на вопрос, кандидат, как правило, может получить ответ при помощи некоторого практического опыта работы в Debian или, возможно, путем обсуждения с другими разработчиками Debian. Этот механизм гарантирует, что кандидаты тем или иным образом принимают участие в Debian до того, как стать его полноправным участником. Это продуманная политика,направленная на то, чтобы кандидаты, в конечном итоге присоединившиеся к проекту, встроились в него как очередной кусочек бесконечно расширяющегося пазла.
Этот этап известен как Философия & Процедуры (на английском языке — P&P для краткости) на жаргоне разработчиков, участвующих в процессе принятия нового участника.

15.4.2.4. Проверка навыков

Каждое заявление на приём в официальные разработчики Debian должно быть обосновано. Чтобы стать участником проекта, нужно показать, что этот статус легитимен, и что он облегчает работу кандидата в оказании помощи Debian. Наиболее распространённое подтверждение легитимности статуса состоит в том, что статус разработчика Debian облегчает сопровождение пакета Debian, но оно не единственное. Некоторые разработчики присоединяются к проекту для того, чтобы внести свой вклад в перенос на определенную архитектуру, другие же хотят улучшить документацию и так далее.
На этом этапе кандидату предоставляется возможность заявить, что он намерен делать в рамках проекта Debian, и показать, что он уже сделал в этом направлении. Debian — прагматичный проект, и недостаточно просто сказать что-то, если слова расходятся с делом. В общем случае, когда желаемая роль в проекте связана с сопровождением пакета, первая версия будущего пакета должна пройти техническую проверку и быть загружена на серверы Debian спонсором из числа существующих разработчиков Debian.
В заключение эксперт проверяет технические навыки (пакетирования) кандидата с помощью подробного опросного листа. Неправильные ответы не допускаются, однако срок подачи ответов не ограничен. Вся документация доступна, и допускается несколько попыток, если первые ответы были неудовлетворительными. Этот этап направлен не на дискриминацию, а на проверку наличия хотя бы толики знаний, типичных для новых участников.
Этот этап известен как Задачи & Навыки на жаргоне экзаменаторов (на английском языке — T&S для краткости).

15.4.2.5. Окончательное утверждение

На самом последнем этапе весь процесс рассматривается DAM (Debian Account Manager — менеджером учётных записей Debian). DAM рассматривает всю информацию о кандидате, собранную экзаменатором, и принимает решение, создавать ли учётную запись на серверах Debian. В случаях, когда необходима дополнительная информация, создание учётной записи может быть отложено. Отказы весьма редки, если экзаменатор добросовестно соблюдает процесс, но иногда они случаются. Они никогда не бывают постоянными, и кандидат волен попробовать ещё раз позднее.
Решение менеджера учётных записей является окончательным, (почти) без права на обжалование, что объясняет, почему люди находящиеся на этой позиции, часто критиковались в прошлом.