Руководство начинающего мейнтейнера ALT Linux Team: различия между версиями

Материал из ALT Linux Wiki
(ssh-keygen создаёт rsa, а не dsa без параметров)
Строка 44: Строка 44:
:; [[git.alt]]: хостинг git-репозиториев для хранения исходного кода пакетов Сизифа
:; [[git.alt]]: хостинг git-репозиториев для хранения исходного кода пакетов Сизифа
:; [[gear]]: инструмент для хранения исходного кода пакетов в git-репозиториях
:; [[gear]]: инструмент для хранения исходного кода пакетов в git-репозиториях
== Работа с ключами ==
При приеме участник предоставляет два криптографических ключа, по которым он идентифицируется в дальнейшем. '''Берегите свои приватные ключи!'''
При утере одного из ключей участник может заменить его, заверив вторым. При утрате обоих ключей участник обязан незамедлительно известить об этом принимающих. Его доступ в incoming прекращается до восстановления ключей.
Два ключа могут быть восстановлены либо посредством личной встречи с одним из принимающих, либо посылкой их письмом, заверенным ключом одного из участников ALT Linux Team. В последнем случае всю ответственность за дальнейшую безопасность репозитория несет участник, заверивший ключи.
=== Создание SSH-ключа ===
Если у вас нет SSH-ключа, то создать его можно следующей командой:
$ ssh-keygen
Ключ настоятельно рекомендуется сделать с паролем. Для упрощения работы с ключами с паролями можно воспользоваться SSH-агентом.
Публичная часть ключа — файл <tt>~/.ssh/id_rsa.pub</tt>.
=== Создание GPG-ключа ===
Создать новый GPG-ключ можно командой
$ gpg --gen-key
В процессе ответа на вопросы выберите тип ключа - DSA и ElGamal (можно выбрать только DSA, но тогда этот ключ будет непригоден для шифрования), размер - 1024bit. В качестве email укажите <tt>псевдоним@altlinux.org</tt>.
=== Модификация существующего GPG-ключа ===
Проверьте, что тип ключа - DSA и ElGamal, размер 1024bit. Добавьте идентификатор в ключ с помощью команд
$ gpg --edit-key <key id>
Command> adduid
Укажите своё имя и email вида <tt>псевдоним@altlinux.org</tt>, после чего сохраните изменения
Command> save
И экспортируйте публичную часть ключа для отправки:
$ gpg --armor --export псевдоним@altlinux.org
<!--
Вот несколько причин, по которым пакету может быть отказано в доступе в репозиторий (более подробные сведения находятся в ALT-Packaging-HOWTO):
Несоответствие требованиям репозитория (см. выше);
Пакет не подписан GPG-ключом мантейнера;
В пакете недопустимые %post, %preun, %pre скрипты. Например:
нельзя изменять на этапе установки/удаления какие-либо системные файлы;
не допускается доустанавливать дополнительные программы, производить их перемещения из одного места в другое;
Недопустимые права на файлы (немотивированный SUID/SGID, World-writeable файлы);
Ложные или недопустимые зависимости пакета (Requires);
Ложные или недопустимые зависимости сборки (BuildReqs);
Полное несоответствие spec-файла требованиям ALT Linux Team (более подробно в ALT-Packaging-HOWTO). Например, использование BuildRoot, %clean, defattr(-,-,root);
Избыточная информация в версии пакета (например, 1.2.3pre5) может повредить корректному обновлению (1.2.3 до 1.2.3pre5, несмотря на то, что 1.2.3 — это финальная версия). Переносите все дополнительные сведения в номер сборки (например, alt0.1.pre5);
Необоснованное увеличение Serial. Увеличение следует производить только в случае необходимости отката по версии;
На самом деле правил и ограничений намного больше, самый надёжный способ всегда быть в курсе это использовать утилиту sisyphus_check из пакета sisyphus для проверки своих пакетов перед отправкой в incoming. Также рекомендуется использовать утилиту add_changelog из пакета rpm-utils для добавления changelog к пакету.
Примерное содержание файла .rpmmacros
Очень удобно и настоятельно рекомендуется создать в своем домашнем каталоге файл .rpmmacros. В нем вы можете определить такие параметры, как:
Месторасположение структуры каталогов для сборки;
Каким ключом подписывать пакеты;
Значение полей, таких, как Packager, Vendor и Distribution;
%vendor ALT Linux Team
%distribution ALT Linux
%_topdir /home/pupkin/RPM/
%_gpg_name pupkin@altlinux.org
%packager Vasja Pupkin <pupkin@altlinux.org>
Типовая инструкция, высылаемая новому мантейнеру
Greetings!
Ваш account в incoming Sisyphus создан (название account’a in_xxx).
О том как им пользоваться, смотрите инструкции ниже. Также создан
forward c адреса xxx@altlinux.org на yyy@somehost.com
Вашим главным помощником будет zzz@altlinux.org (ZZZ ZZZZ) — если у Вас
возникнут какие-либо вопросы по изготовлению пакетов спрашивайте у
него.
ПРЕЖДЕ ЧЕМ ВЫ НАЧНЕТЕ ВЫКЛАДЫВАТЬ ПАКЕТЫ:
Надо пройти простенький тест. Это поможет Вам лучше освоиться с
технологией работы с incoming, избежать типичных ошибок при сборке
пакетов, с’экономить деньги на лишнем трафике. Итак, Задача:
Необходимо собрать пакет, удовлетворяющий следующим требованиям:
1. xxxxxxxxxxxxx
2. xxxxxxxxxxxxx
3. xxxxxxxxxxxxx
4. xxxxxxxxxxxxx
5. xxxxxxxxxxxxx
После того как Вы успешно сделаете этот пакет, можете выкладывать то, что
хотите.
Инструкции:
Теперь можно добавить в ~/.ssh/config:
Host incoming
    HostName devel.altlinux.org
    User in_xxx
    Protocol 2
    ForwardX11 no
    ForwardAgent no
    Compression no
incoming — это специальная среда c rsync’ом, и ssh
используется прежде всего как транспорт для rsync.
В каталог /incoming заливаются новые пакеты, собранные
разработчиками, находящимися вне офиса.
Для закачки туда-сюда файлов лучше всего использовать rsync. Например,
для upload’а в incoming можно запускать нечто вроде
rsync -vaP --stats local_path/ incoming:/incoming/Sisyphus/
Если что-то непонятно либо не получается — спрашивайте.
Тест на работоспособность:
$ ssh incoming
-in_sh: invalid arguments
Connection to devel.altlinux.org closed.
$ rsync incoming:/incoming/
drwxr-x--x 4096 2007/10/30 17:28:31 .
drwxrws--T 4096 2008/01/29 15:12:44 Daedalus
drwxrwx--T 28672 2008/01/30 02:08:16 Sisyphus
drwxr-s--- 4096 2007/04/25 03:12:42 backports
drwxrws--- 4096 2007/09/18 16:41:24 docs
drwxrws--T 4096 2008/01/11 12:38:59 join
drwxr-x--x 4096 2006/06/10 22:09:37 notes
drwxr-s--- 4096 2007/04/25 03:05:35 updates
С наилучшими пожеланиями
GATE-KEEPER NAME
-->

Версия от 23:30, 30 октября 2008

У каждого пакета в Sisyphus есть один или несколько мантейнеров — это те участники ALT Linux Team, которые собирают новые версии пакета, следят за ошибками, которые заводят пользователи в багтракере и общаются с upstream-разработчиками программы.

Этот документ предназначен в помощь тем, кто решил присоединиться к команде ALT Linux Team, то есть стать мантейнером одного или нескольких пакетов со свободным программным обеспечением.

Обязанности майнтайнера

  • Следить за современностью и актуальностью поддерживаемых им пакетов,
  • Незамедлительно исправлять ошибки, связанные с безопасностью по первому запросу из ALT Security Team,
  • По мере возможности исправлять ошибки, связанные с некорректным функционированием программ,
  • По мере возможности участвовать в списках рассылки ALT Linux Team

Общение с разработчиками софта, входящего в пакет, крайне желательно, но не обязательно.

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

Прием новых участников в ALT Linux Team

Если вы считаете, что какого-то пакета в Сизифе не хватает, или что какой-то пакет заслуживает большего внимания и готовы заняться им — значит, настало время присоединиться к команде ALT Linux Team.

Первым делом нужно уведомить команду о своём желании, написав письмо на адрес join@altlinux.org. Такие письма читают специальные члены команды — принимающие.

В этом письме нужно написать несколько слов о том, чем вы намерены заняться в ALT Linux Team («собрать для начала такой-то пакет, а потом, если получится, ещё пакеты из такой-то области», «просто помочь со сборкой чего-нибудь», «научиться собирать пакеты» и т. п.).

Помимо намерений, принимающему для включения вас в команду разработчиков нужна ещё следующая информация:

  • псевдоним (имя пользователя) участника. Выбирается им самим, если ещё не принадлежит существующему участнику. Его длина должна быть по возможности минимальной и он не должен содержать цифры.
  • адрес почты, на который будет производиться пересылка с адреса псевдоним@altlinux.org.
  • SSH-ключ (RSA 2048bit или DSA 1024bit). Принимающему нужна публичная часть ключа. Этот ключ будет использоваться для SSH-доступа на ресурсы Sisyphus (incoming, git.alt и другие).
  • GPG-ключ (DSA и ElGamal 1024bit). В ключе должен быть uid вида псевдоним@altlinux.org. Принимающему нужна публичная часть ключа. Этот ключ будет использоваться для подписи пакетов и для удостоверения личности в почте.

После получения необходимой информации принимающий вышлет небольшое тестовое задание и при успешном его выполнении выдаст доступ в incoming и git.alt.

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

Ресурсы для начинающего майнтенера

Sisyphus
раздел ALT Linux Wiki, содержащий большое количество информации о различных аспектах Сизифа, в частности:
policy
нормативные документы разработки (в процессе формирования)
hasher
инструмент для сборки пакетов
sisyphus_check
инструмент для проверки пакетов на соответствие правилам Сизифа
Incoming
ресурс для отправки пакетов в Сизиф и для управления правами на отправку пакетов
git.alt
хостинг git-репозиториев для хранения исходного кода пакетов Сизифа
gear
инструмент для хранения исходного кода пакетов в git-репозиториях