Процесс создания нового пакета для существующих участников
Это сокращённая версия процесса создания нового пакета, адаптированная для того, чтобы показать, как существующие участники могут создавать новые пакеты.
-
Прочтите Рекомендации по упаковке и Рекомендации по именованию пакетов. Действительно прочтите. Убедитесь, что вы хорошо с ними знакомы.
-
Создайте пакет.
-
Убедитесь, что это действительно новый пакет. Список существующих пакетов в Fedora Packages доступен здесь: https://src.fedoraproject.org/projects/rpms/*
-
Некоторую информацию о том, как создать RPM-пакет, можно найти в Руководстве по упаковке.
-
Убедитесь, что ваш пакет соответствует Рекомендациям по упаковке и Рекомендациям по именованию пакетов
-
Ознакомьтесь с запрещёнными элементами и Рекомендациями по рецензированию пакетов. Они будут использоваться в процессе рецензирования.
-
-
Загрузите ваши SRPM- и SPEC-файлы куда-нибудь в интернет.
-
Если у вас уже есть учётная запись Fedora, вы можете использовать своё хранилище на https://fedorapeople.org для этой цели.
-
-
Убедитесь, что у вас есть учётная запись Bugzilla на bugzilla.redhat.com
-
Заполните форму рецензирования Fedora в Bugzilla, чтобы создать запрос на рецензирование.
-
Убедитесь, что вы указали имя пакета в поле
Review Summaryвместе с очень кратким описанием того, что это за пакет -
Убедитесь, что вы указали пути URL для SPEC-файла и SRPM-файла в поле
Review Description -
Поместите описание вашего пакета (обычно это может быть тем же самым, что вы указываете в spec-файле в
%description) в полеReview Description -
Процесс рецензирования подробно описан в Рекомендациях по рецензированию пакетов.
-
-
Следите за запросом на рецензирование в Bugzilla. Исправляйте все блокирующие проблемы, на которые укажут рецензенты.
-
Когда пакет будет одобрен, запросите репозиторий distgit для вашего пакета.
-
Убедитесь, что рецензент указан как Assignee (Исполнитель) в вашей заявке Bugzilla.
-
Request a distgit repository with
fedpkg request-repo PACKAGE-NAME BUGZILLA-TICKET-NUMBER. (Package Maintenance Guide has more information aboutfedpkg.) You might need to get a distgit API token before being able to successfully request the repo. -
Когда репозиторий будет создан, он будет содержать только ветку
rawhide. Если вы хотите перенести пакет в другие релизы Fedora, обратитесь к разделу Запрос веток. -
Если пакет предназначен только для EPEL, ветка
rawhideдолжна быть выведена из эксплуатации. См. инструкции в разделе Вывод веткиrawhideиз эксплуатации в пакетах только для EPEL.
-
-
После того как запросы будут обработаны, получите репозиторий distgit с помощью
fedpkg clone <packagename>. -
Импортируйте ваш 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.
-
-
Теперь вы также можете импортировать пакет в ваши ветки (которые вы запросили на шаге 7)
-
Самый быстрый способ сделать это — использовать
fedpkg switch-branch BRANCHдля переключения ветки (гдеBRANCHможет бытьf13и так далее). -
Теперь вы можете выполнить
git merge rawhide. Это позволит получить файл.spec,.gitignoreи файл исходников вместе с любыми патчами и другими файлами из ветки rawhide и создать идентичный коммит. -
Предыдущий шаг уже создал за вас коммит, теперь вы можете отправить результаты с помощью
fedpkg pushилиgit push.
-
-
Запросите сборки
-
Для каждой ветки, для которой вы хотите запросить сборку, переключитесь с помощью
fedpkg switch-branchи выполнитеfedpkg build. -
Если всё пройдёт хорошо, ваша ветка должна быть поставлена в очередь на сборку, пакет успешно соберётся, и вы закончили!
-
Если сборка завершится неудачей, система сборки отправит вам письмо с уведомлением об ошибке и ссылкой на журналы. Зафиксируйте необходимые изменения в git, увеличьте номер версии в spec-файле и запросите новую сборку.
-
-
Закройте заявку в Bugzilla (при условии, что пакет успешно собрался)
-
Закройте её с разрешением
NEXTRELEASEилиRAWHIDE, в зависимости от того, где вы собрали пакет. Поле разрешения появится после того, как вы установите поле статуса вCLOSED.
-
-
Если этот пакет будет собираться для любой уже выпущенной версии Fedora, пожалуйста, отправьте его для включения в репозиторий
fedora-updatesдля этих версий Fedora. Дополнительные сведения см. в Руководстве по обновлению пакетов. -
При необходимости добавьте пакет в файл(ы) comps.
-
Рассмотрите возможность включения Отслеживания релизов вышестоящего источника для пакета.
Мы знаем, что этот процесс иногда может быть совершенно непонятным, и мы всегда стараемся сделать его лучше. Если у вас возникнут какие-либо проблемы или вопросы, пожалуйста, задавайте их в списке разработчиков Fedora.
Руководство по обслуживанию пакетов также может быть полезным.
Want to help? Learn how to contribute to Fedora Docs ›