Глава 2. Необходимые предварительные требования

Содержание

2.1. Люди вокруг Debian
2.2. Как принять участие
2.3. Социальная динамика Debian
2.4. Техническая памятка
2.5. Документация Debian
2.6. Справочные ресурсы
2.7. Ситуация с архивом
2.8. Подходы к участию
2.9. Начинающий участник и сопровождающий

Ниже приведены необходимые предварительные требования, которые вам нужно понять до того, как вы примете участие в Debian.

Существует несколько типов людей, взаимодействующих с Debian в рамках разный ролей:

  • автор основной ветки разработки: тот, кто создал исходную программу.
  • сопровождающий основной ветки разработки: тот, кто в настоящее время сопровождает программу.
  • сопровождающий: тот, кто создаёт пакет Debian с программой.
  • поручитель: тот, кто помогает сопровождающим загружать пакеты в официальный архив пакетов Debian (после проверки содержимого пакетов).
  • ментор: тот, кто помагает начинающим сопровождающим создавать пакеты и проч.
  • разработчик Debian (DD): член проекта Debian с полными правами на загрузку в официальный архив пакетов Debian.
  • сопровождающий Debian (DM): тот, кто имеет ограниченные права на загрузку в официальный архив пакетов Debian.

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

Помните, что для того, чтобы стать разработчиком Debian не обязательно создавать какие-либо новые пакеты. Участие в уже существующих пакетах тоже может дать вам возможность к получению статуса разработчика Debian. Множество пакетов ждут своих хороших сопровождающих (см., Раздел 2.8, «Подходы к участию»).

Чтобы узнать, как принять участие в Debian, обратите внимание не следующее:

Для подготовки к взаимодействию с Debian следует понять социальную динамику Debian, которая состоит в следующем:

  • Все мы являемся добровольцами.

    • Вы не можете диктовать остальным, что им делать.
    • У вас должна быть мотивация делать что-то самостоятельно.
  • Движущей силой является дружеское сотрудничество.

    • Ваше участие не должно чрезмерно досаждать остальным.
    • Ваш вклад ценен только в том случае, если остальные вам за него признательны.
  • Debian — это не школа, где вы автоматически получаете внимание учителей.

    • Вам следует быть готовым к самостоятельному обучению многим вещам.
    • Внимание других добровольцев является очень дефицитным ресурсом.
  • Debian постоянно улучшается.

    • От вас ожидается, что вы будете создавать пакеты высокого качества.
    • You should adapt yourself to change.

Поскольку в оставшейся части настоящего руководства мы концентрируемся исключительно на технических аспектах создания пакетов, постольку чтобы понять социальную динамику Debian, рекомендуем обратиться к следующей документации:

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

[Примечание] Примечание

Отладка ПО чаще требует большего количества времени, чем изначальное написание работающего ПО.

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

If this guide contradicts the official Debian documentation, the official Debian documentation is correct. Please file a bug report on the debmake-doc package using the reportbug command.

Here are alternative tutorial documents, which you may read along with this guide:

[Подсказка] Подсказка

When reading these tutorials, you should consider using the debmake command in place of the dh_make command for better template files.

Before you decide to ask your question in some public place, please do your part of the effort, i.e., read the fine documentation:

Your desired information can be found effectively by using a well-formed search string such as “keyword site:lists.debian.org” to limit the search domain of the web search engine.

Создание небольшого тестового пакета — хороший способ изучить детали создания пакетов. Исследование существующих хорошо сопровождаемых пакетов — лучший способ изучить то, как другие люди создают пакеты.

Если у вас всё ещё остаются вопросы по поводу создания пакетов, вы можете задать их в следующих списках рассылки:

Более опытные разработчики Debian с радостью вам помогут, если вы правильно зададите вопрос после того, как уже самостоятельно попробовали разобраться.

[Внимание] Внимание

Debian development is a moving target. Some information found on the web may be outdated, incorrect, and non-applicable. Please use it carefully.

Пожалуйста, поймите ситуацию с архивом Debian.

  • В Debian уже имеются пакеты для большинства видов программ.
  • Число пакетов в архиве Debian уже в несколько раз превышает число активных сопровождающих.
  • Unfortunately, some packages lack an appropriate level of attention by the maintainer.

Thus, contributions to packages already in the archive are far more appreciated (and more likely to receive sponsorship for uploading) by other maintainers.

[Подсказка] Подсказка

Команда wnpp-alert из пакета devscripts может проверять, если ли среди установленных пакетов пакеты открытые для усыновления или же осиротевшие пакеты.

Here is pseudo-Python code for your contribution approaches to Debian with a program:

if exist_in_debian(program):
  if is_team_maintained(program):
    join_team(program)
  if is_orphaned(program) # maintainer: Debian QA Group
    adopt_it(program)
  elif is_RFA(program) # Request for Adoption
    adopt_it(program)
  else:
    if need_help(program):
      contact_maintainer(program)
      triaging_bugs(program)
      preparing_QA_or_NMU_uploads(program)
    else:
      leave_it(program)
else: # new packages
  if not is_good_program(program):
    give_up_packaging(program)
  elif not is_distributable(program):
    give_up_packaging(program)
  else: # worth packaging
    if is_ITPed_by_others(program):
      if need_help(program):
        contact_ITPer_for_collaboration(program)
      else:
        leave_it_to_ITPer(program)
    else: # really new
      if is_applicable_team(program):
        join_team(program)
      if is_DFSG(program) and is_DFSG(dependency(program)):
        file_ITP(program, area="main") # This is Debian
      elif is_DFSG(program):
        file_ITP(program, area="contrib") # This is not Debian
      else: # non-DFSG
        file_ITP(program, area="non-free") # This is not Debian
      package_it_and_close_ITP(program)

Где:

Вам необходимо либо отправить сообщение об ошибке ITP или усыновить пакет, чтобы начать над ним работать. См. «Справочник разработчика Debian»:

Начинающий участник и сопровождающий могут недоумевать по поводу того, что же следует изучить, чтобы начать участвовать в Debian. Ниже приводятся некоторые предложения в зависимости от того, чем вы хотите заниматься.

  • Создание пакетов

    • Basics of the POSIX shell and make.
    • Некоторое зачаточное знание Perl и Python.
  • Перевод

    • Basics of how the PO based translation system works.
  • Документация

    • Основы различных языков разметки (XML, ReST, Wiki, …).

Начинающий участник и сопровождающий могут недоумевать по поводу того, где же начать участвовать в Debian. Ниже приводятся некоторые предложения в зависимости от ваших навыков.

Эта деятельность даст вам возможность познакомиться с другими участниками Debian и улучшить вашу репутацию.

Начинающему сопровождающему следует избегать работу над пакетами, содержащими программы с высокими рисками в плане безопасности:

  • программы, имеющие флаги доступа setuid или setgid
  • службы
  • программы, устанавливаемые в каталоги /sbin/ или /usr/sbin/

Когда вы получите больше опыта в работе над пакетами, вы сможете создавать пакеты и с такими программами.



[4] Подавляющее большинство сопровождающих Debian используют git, а не другие системы управляения версиями, такие как hg, bzr и т. д.

[5] This is not the absolute requirement. The hostile upstream may become a major resource drain for us all. The friendly upstream can be consulted to solve any problems with the program.