Процесс создания нового пакета для существующих участников

Это сокращённая версия процесса создания нового пакета, адаптированная для того, чтобы показать, как существующие участники могут создавать новые пакеты.

  1. Прочтите Рекомендации по упаковке и Рекомендации по именованию пакетов. Действительно прочтите. Убедитесь, что вы хорошо с ними знакомы.

  2. Создайте пакет.

  3. Загрузите ваши SRPM- и SPEC-файлы куда-нибудь в интернет.

    • Если у вас уже есть учётная запись Fedora, вы можете использовать своё хранилище на https://fedorapeople.org для этой цели.

  4. Убедитесь, что у вас есть учётная запись Bugzilla на bugzilla.redhat.com

  5. Заполните форму рецензирования Fedora в Bugzilla, чтобы создать запрос на рецензирование.

    • Убедитесь, что вы указали имя пакета в поле Review Summary вместе с очень кратким описанием того, что это за пакет

    • Убедитесь, что вы указали пути URL для SPEC-файла и SRPM-файла в поле Review Description

    • Поместите описание вашего пакета (обычно это может быть тем же самым, что вы указываете в spec-файле в %description) в поле Review Description

    • Процесс рецензирования подробно описан в Рекомендациях по рецензированию пакетов.

  6. Следите за запросом на рецензирование в Bugzilla. Исправляйте все блокирующие проблемы, на которые укажут рецензенты.

  7. Когда пакет будет одобрен, запросите репозиторий distgit для вашего пакета.

    • Убедитесь, что рецензент указан как Assignee (Исполнитель) в вашей заявке Bugzilla.

    • Request a distgit repository with fedpkg request-repo PACKAGE-NAME BUGZILLA-TICKET-NUMBER. (Package Maintenance Guide has more information about fedpkg.) You might need to get a distgit API token before being able to successfully request the repo.

    • Когда репозиторий будет создан, он будет содержать только ветку rawhide. Если вы хотите перенести пакет в другие релизы Fedora, обратитесь к разделу Запрос веток.

    • Если пакет предназначен только для EPEL, ветка rawhide должна быть выведена из эксплуатации. См. инструкции в разделе Вывод ветки rawhide из эксплуатации в пакетах только для EPEL.

  8. После того как запросы будут обработаны, получите репозиторий distgit с помощью fedpkg clone <packagename>.

  9. Импортируйте ваш SRPM

    • Сначала выполните fkinit -u username

    • Затем вы можете импортировать одобренный SRPM в ветку rawhide, выполнив fedpkg import libfoo-x.x.x.src.rpm; git commit -m "Initial import (fedora#nnnnnn)." (где nnnnnn — это номер вашей заявки на рецензирование пакета в Bugzilla). Если ваш пакет использует autochangelog, указание номера заявки указанным образом приведёт к тому, что Bodhi автоматически закроет заявку, когда ваш пакет будет отправлен в стабильный репозиторий Rawhide.

    • Разумеется, замените libfoo-x.x.x.src.rpm на полный путь к вашему одобренному SRPM.

    • Вы должны увидеть, как он загружает исходники и успешно завершается. Если вы не настроили ssh-agent, он будет часто запрашивать парольную фразу вашего ssh-ключа. Это нормально.

    • Теперь выполните git push, чтобы получить финальные версии в вашей ветке rawhide.

  10. Теперь вы также можете импортировать пакет в ваши ветки (которые вы запросили на шаге 7)

    • Самый быстрый способ сделать это — использовать fedpkg switch-branch BRANCH для переключения ветки (где BRANCH может быть f13 и так далее).

    • Теперь вы можете выполнить git merge rawhide. Это позволит получить файл .spec, .gitignore и файл исходников вместе с любыми патчами и другими файлами из ветки rawhide и создать идентичный коммит.

    • Предыдущий шаг уже создал за вас коммит, теперь вы можете отправить результаты с помощью fedpkg push или git push.

  11. Запросите сборки

    • Для каждой ветки, для которой вы хотите запросить сборку, переключитесь с помощью fedpkg switch-branch и выполните fedpkg build.

    • Если всё пройдёт хорошо, ваша ветка должна быть поставлена в очередь на сборку, пакет успешно соберётся, и вы закончили!

    • Если сборка завершится неудачей, система сборки отправит вам письмо с уведомлением об ошибке и ссылкой на журналы. Зафиксируйте необходимые изменения в git, увеличьте номер версии в spec-файле и запросите новую сборку.

  12. Закройте заявку в Bugzilla (при условии, что пакет успешно собрался)

    • Закройте её с разрешением NEXTRELEASE или RAWHIDE, в зависимости от того, где вы собрали пакет. Поле разрешения появится после того, как вы установите поле статуса в CLOSED.

  13. Если этот пакет будет собираться для любой уже выпущенной версии Fedora, пожалуйста, отправьте его для включения в репозиторий fedora-updates для этих версий Fedora. Дополнительные сведения см. в Руководстве по обновлению пакетов.

  14. При необходимости добавьте пакет в файл(ы) comps.

  15. Рассмотрите возможность включения Отслеживания релизов вышестоящего источника для пакета.

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

Руководство по обслуживанию пакетов также может быть полезным.