Процесс добавления нового пакета для новых участников
Это подробная версия процесса добавления нового пакета, содержащая больше деталей, чтобы новые участники могли легче следовать ей. Также включён обязательный шаг получения спонсорства.
Установка инструментов упаковщика
Следуйте Установка инструментов упаковщика.
Проверка существования пакета
Если какое-либо полезное программное обеспечение ещё не включено в Fedora, вы можете добавить его как новый пакет. Пакет, который вы добавляете, может быть из любого проекта со свободным и открытым исходным кодом.
Перед созданием пакета убедитесь, что программное обеспечение ещё не находится в репозитории Fedora:
-
Проверьте, существует ли уже пакет, выполнив поиск в Fedora Packages.
-
Выполните поиск в Review Tracker для пакетов, находящихся на проверке.
-
Проверьте осиротевшие или прекращённые пакеты, которым нужны новые сопровождающие.
-
Ознакомьтесь с запрещёнными элементами.
Создание пакета
-
Если вы не знаете, как создать RPM-пакет, обратитесь к Руководству по упаковке.
-
Убедитесь, что ваш пакет соответствует Рекомендациям по упаковке и Рекомендациям по именованию пакетов.
-
Ознакомьтесь с Рекомендациями по проверке пакетов (они будут использоваться во время проверки пакета).
-
Убедитесь, что ваш пакет собирается. Это удивительно важно, поскольку значительное количество заявок этого не делают.
Загрузка вашего пакета
Загрузите ваши SRPM и SPEC-файлы в Интернет так, чтобы другие могли их получить. Это может быть любое место, доступное по URL-адресу, но важно, чтобы файлы были доступны напрямую, а не скрыты за каким-либо сервисом, который заставляет людей ждать загрузки или перенаправляет через страницы с рекламой.
Рекомендуется использовать Copr. Он позволяет создавать репозитории с использованием src.rpm или spec-файла, которые затем можно предоставить проверяющим. Он также может создавать автоматические сборки из этих файлов и распространять результаты.
Сначала вам нужно войти в Copr, для этого вы можете использовать свою учётную запись Fedora.
Затем следуйте этому руководству для сборки проекта. На шаге "New Build" вам нужно загрузить исходный код; вы можете выбрать тот вариант, который вам больше подходит, но если у вас нет исходного кода, загруженного куда-либо ещё, вы можете выбрать опцию Upload и затем в разделе предоставления шага нажать кнопку Browse… для выбора файла. Теперь в следующем разделе вам нужно указать Chroots и другие параметры сборки; выберите хотя бы один chroot fedora-rawhide и настройте остальные параметры по необходимости.
После завершения сборки вы можете использовать следующие ссылки для процесса проверки:
-
Ссылка на SPEC-файл: перейдите к вашим пакетам в copr, нажмите на имя вашего пакета, затем в разделе общей информации найдите ваш репозиторий dist-git. Найдите файл Spec в этом дереве репозитория и скопируйте его ссылку, но замените часть URL tree на строку plain, затем используйте её для отправки на проверку.
-
Ссылка на SRPM-файл: в ваших сборках copr нажмите на id вашей последней успешной сборки и в разделе общей информации найдите ссылку с именем directory. Здесь зайдите в папку /srpm-build/ваш_идентификатор_сборки/ и скопируйте URL-адрес файла src.rpm для отправки на проверку.
Создание запроса на проверку
Заполните форму проверки Bugzilla Fedora.
-
Перед отправкой запроса убедитесь, что не было предыдущего запроса для того же пакета. На странице статуса проверки пакетов есть удобное поле поиска.
-
Убедитесь, что вы поместили имя пакета (исключая номер версии и выпуска) в поле
Review Summary, вместе с очень кратким описанием того, что представляет собой пакет. -
Поместите описание вашего пакета (обычно это может быть тем же, что и в спецификации
%description) в полеReview Description. Включите URL-адреса ваших SRPM и SPEC-файлов. -
Объясните в заявке, что это ваш первый пакет и вам нужен спонсор. Также включите любую информацию, которая может помочь потенциальным спонсорам. Если вы активно участвовали в других проверках, включите ссылки. Если вы являетесь сопровождающим вышестоящего проекта, обязательно укажите это.
-
Для дополнительных баллов включите ссылку на успешную сборку в koji, чтобы все знали, что вы выполнили всю свою домашнюю работу.
Процесс проверки подробно описан на странице Процесс проверки пакетов.
Уведомление вышестоящего проекта
Проект Fedora предпочитает оставаться близким к вышестоящим проектам. Сообщите разработчикам, что вы упаковываете их программное обеспечение. Вы можете сделать это, отправив им электронное письмо с представлением и указанием запроса на проверку. Это создаёт основу для будущих диалогов. Они обычно сообщают о том, что их программное обеспечение теперь является частью Fedora, или могут захотеть сообщить вам о важных ошибках в существующем выпуске, будущих планах и т. д.
Отслеживание отзывов
Следите за отчётом Bugzilla для вашего первого пакета. Вы должны получать уведомления об изменениях по электронной почте. Исправляйте все блокирующие проблемы, на которые указывают проверяющие.
Получение спонсорства
Когда пакет ОДОБРЕН проверяющим, вы должны отдельно получить спонсорство члена, чтобы иметь возможность загружать и собирать свой пакет. Спонсорство не является автоматическим и может потребовать вашего дальнейшего участия другими способами, чтобы продемонстрировать ваше понимание рекомендаций по упаковке. Ключ к получению спонсорства — убедить существующего члена уровня спонсора в том, что вы понимаете и соблюдаете руководящие принципы и процессы проекта.
См. Как получить спонсорство в группе упаковщиков для получения дополнительной информации о процессе получения спонсорства.
Ваш спонсор может добавить вас в группу упаковщиков. Вы должны получить подтверждение спонсорства по электронной почте.
Добавление пакета в систему управления исходным кодом (SCM) и установка владельца
Перед продолжением синхронизируйте свою учётную запись, войдя в Fedora Package Sources с использованием своих учётных данных FAS.
If you are becoming a maintainer for a new package, instead of being a co-maintainer, use fedpkg to request a new git repository for your package. The sub-command is fedpkg request-repo which includes help text for setting up the distgit API token the command requires. When creating your API-key choose at least Read and write permissions for issue. You will probably want the token to have additional permissions to support other package-maintenance tasks. You must specify the repository name and review bug number. For example:
fedpkg request-repo python-prometheus_client 1590452
The request will be reviewed and processed automatically. After processing, you will have access to commit and build the package. In case the automation does not work, you can report the problem to Toddlers issue tracker.
fedpkg request-repo создаёт ветку только для Rawhide. Для запроса веток для других выпусков Fedora см. Запрос веток.
Получение репозитория distgit
Вы можете получить свой репозиторий distgit сейчас, но перед этим рассмотрите возможность выполнить mkdir ~/fedora-scm ; cd ~/fedora-scm — так все ваши файлы будут находиться в одном каталоге. Также выполните ssh-add, чтобы вам не приходилось постоянно вводить пароль ключа.
Теперь вы готовы получить свой репозиторий distgit из SCM:
fedpkg clone <ваш_пакет>
Тестирование вашего пакета
Обратитесь к Использованию Mock для тестирования сборки пакетов и Пробным сборкам в Koji для получения дополнительной информации о тестировании вашего пакета. Mock использует вашу локальную систему, а инструмент командной строки Koji использует сервер системы сборки Fedora.
Импорт, фиксация и сборка вашего пакета
Теперь, когда вы получили свой (пустой) репозиторий distgit с помощью fedpkg, перейдите в основную ветку репозитория:
cd <имя_пакета>
Запустите fedpkg для импорта содержимого SRPM в SCM:
fedpkg import <путь_к_srpm>
# Проверьте изменения, нажмите 'q' для остановки; Отмена: git reset --hard HEAD git commit -m "Initial import (fedora#XXXXXX)." git push fedpkg build
Очевидно, замените PATH_TO_SRPM на полный путь (не URL) к вашему утверждённому SRPM, а XXXXXX на номер ошибки проверки пакета.
Если ваш пакет использует autochangelog, указание номера ошибки, как описано, приведёт к тому, что система обновлений Fedora автоматически закроет ошибку, когда ваш пакет будет отправлен в стабильный репозиторий Rawhide.
Это импортирует, фиксирует и собирает только основную (Rawhide) ветку.
Если отправка завершается ошибкой с таким сообщением:
W access for why DENIED to YOUR_ACCOUNT fatal: The remote end hung up unexpectedly Could not push: Command '['git', 'push']' returned non-zero exit status 128
Тогда у вас нет необходимых прав для изменения этой ветки пакета. Перейдите на https://src.fedoraproject.org/rpms/PACKAGE_NAME, чтобы запросить эти права.
Для получения дополнительной информации об использовании системы сопровождения пакетов Fedora см. Руководство по сопровождению пакетов.
Обновление ваших веток (при желании)
Ветки имеют вид f# (ранее F- и до этого FC-), main и т. д. Таким образом, f — это ветка для Fedora.
Чтобы сначала переключиться на ветку:
fedpkg switch-branch <ветка>
(например, f42)
Выполните слияние начального коммита из main (Rawhide), создавая идентичный коммит в ветке:
git merge rawhide
Отправьте изменения на сервер:
git push
Соберите пакет:
fedpkg build
Если есть другая ветка для работы, повторите шаги To switch to a branch и импортируйте и фиксируйте изменения для каждой ветки.
Если всё пройдёт хорошо, ваша ветка должна быть поставлена в очередь на сборку, пакет успешно соберётся, и вы закончили!
Если сборка не удастся, система сборки отправит вам электронное письмо с сообщением об ошибке и укажет на журналы. Зафиксируйте необходимые изменения в git, увеличьте номер выпуска в SPEC и запросите новую сборку.
Отправка пакета как обновления в Bodhi
Система обновлений Fedora, называемая Bodhi, используется для отправки обновлений, классификации пакетов и т. д. Вам не нужно отправлять обновления для Rawhide (main) вручную, поскольку они создаются автоматически после завершения сборки. Для всех остальных веток вы должны вручную отправлять обновления для всех сборок, которые вы хотели бы сделать доступными для пользователей.
Вы можете отправить обновление с помощью Bodhi через командную строку, используя это в каждой ветке:
fedpkg update
Часто проще завершить сборки для всех ваших веток, а затем отправить одно обновление с помощью веб-интерфейса Bodhi. Bodhi достаточно умён, чтобы разделить ваше обновление на отдельные обновления — по одному для каждой ветки выпуска Fedora.
Вы также можете выбрать несколько сборок из разных пакетов для включения в одно обновление с помощью веб-интерфейса. Это полезно, когда вы хотите отправить связанные сборки, например: пакет приложения и его зависимости, необходимые для его правильной работы.
Подробности см. в Руководстве по обновлению пакетов.
Включение пакета в файлы "comps"
Если это уместно для пакета, включите его в файлы "comps", чтобы его можно было выбрать во время установки и включать в операции с группами пакетов dnf. Дополнительную информацию см. в Как использовать и редактировать comps.xml для групп пакетов.
Отслеживание обновлений
Fedora имеет инфраструктуру для отслеживания новых выпусков программного обеспечения вышестоящих проектов, которые вы упаковываете. Подробности см. в Отслеживание выпусков вышестоящих проектов.
Want to help? Learn how to contribute to Fedora Docs ›