05 марта 2026 № 1 (2026)

ROSARIUM

газета советского программиста

Публикация в community

Как опубликовать пакет и попасть в официальный репозиторий.

На этой странице

После успешной сборки в личном репозитории следующий шаг — публикация в официальном репозитории community для всех пользователей ROSA.

Путь пакета

1. Личный репозиторий (username_personal)
   └── Тестирование и доработка
   
2. Запрос на включение в community
   └── Review от мейнтейнеров
   
3. Репозиторий community
   └── Доступен всем пользователям ROSA

Требования к пакету

Перед запросом на включение убедитесь:

Качество сборки

  • ✅ Пакет успешно собирается на ABF
  • rpmlint не показывает ошибок (предупреждения допустимы)
  • ✅ Пакет устанавливается и работает
  • ✅ Зависимости корректны

SPEC-файл

  • ✅ Лицензия указана правильно (SPDX-идентификатор)
  • ✅ URL актуален
  • ✅ Summary и Description информативны
  • ✅ Changelog ведётся
  • ✅ Используются макросы вместо жёстких путей

Юридические аспекты

  • ✅ Лицензия позволяет распространение
  • ✅ Нет патентных ограничений
  • ✅ Нет проприетарных компонентов (для main)

Процесс включения

Шаг 1: Убедиться в качестве

# Последняя проверка
rpmlint mypackage.spec
rpmlint ~/rpmbuild/RPMS/*/*.rpm

# Тестовая установка
sudo dnf install --repofrompath=test,https://abf-downloads.rosalinux.ru/username_personal/repository/ROSA_PLATFORM/x86_64/main/release/ mypackage
# где ROSA_PLATFORM = rosa13.1 (или имя платформы из ABF)

Шаг 2: Написать запрос

Напишите в один из каналов:

Telegram: t.me/rosalinux

Запрос на включение в community:
- Пакет: mypackage
- Версия: 1.0.0
- Описание: Краткое описание программы
- Сборка: https://abf.io/build_lists/12345
- Проект: https://abf.io/username_personal/mypackage

Форум: forum.rosa.ru

Создайте тему в разделе для разработчиков.

Шаг 3: Review

Мейнтейнер проверит:

  • Корректность SPEC-файла
  • Соответствие стандартам
  • Безопасность (нет подозрительного кода)
  • Работоспособность

Возможны замечания — исправьте и сообщите.

Шаг 4: Перенос в community

После одобрения мейнтейнер:

  1. Создаст проект в группе community
  2. Перенесёт ваши файлы
  3. Запустит официальную сборку
  4. Добавит вас как сопровождающего

После включения

Ваши обязанности

Как сопровождающий (maintainer) вы:

  • Обновляете пакет при выходе новых версий upstream
  • Исправляете баги, о которых сообщают пользователи
  • Реагируете на уязвимости безопасности (CVE)
  • Отвечаете на вопросы по пакету

Рабочий процесс

# Клонировать проект из community
git clone git@abf.io:community/mypackage.git
cd mypackage

# Обновить версию
# ... редактирование SPEC, обновление исходников ...

git add .
git commit -m "Update to 1.1.0"
git push

# Запустить сборку на ABF

Если не можете сопровождать

Если у вас нет времени на поддержку:

  1. Сообщите в сообщество
  2. Найдите нового мейнтейнера
  3. Или пакет будет помечен как «orphaned» (брошенный)

Репозитории community

Пакеты community доступны пользователям через:

# Установить пакет community-repos
sudo dnf install community-repos

# Или добавить вручную
sudo tee /etc/yum.repos.d/rosa-community.repo << 'EOF'
[community-release]
name=ROSA Community Release
# замените ROSA_PLATFORM на имя платформы из ABF (например, rosa13.1)
baseurl=https://abf-downloads.rosalinux.ru/community/repository/ROSA_PLATFORM/$basearch/main/release/
enabled=1
gpgcheck=1
# gpgkey=... (используйте ключи, которые устанавливает community-repos)
EOF

# Обновить кеш
sudo dnf makecache

Уровни репозиториев

РепозиторийКто может публиковатьДля чего
username_personalВыРазработка, тестирование
communityОдобренные мейнтейнерыПакеты от сообщества
import (main)Команда ROSAОсновные пакеты дистрибутива

Подписание пакетов

Пакеты в официальных репозиториях подписаны GPG:

# Проверка подписи
rpm -K mypackage.rpm
# mypackage.rpm: digests signatures OK

В личном репозитории пакеты не подписаны.

Checklist перед запросом

  • Пакет успешно собирается на ABF
  • Протестирована установка и запуск
  • rpmlint не показывает ошибок
  • Лицензия указана корректно (SPDX)
  • Changelog содержит записи
  • Готов поддерживать пакет

Проверьте понимание

  1. Какие требования к пакету для включения в community?
  2. Куда написать запрос на включение?
  3. Что проверяет мейнтейнер при review?
  4. Какие обязанности у сопровождающего пакета?
  5. Как пользователи подключают репозиторий community?

Следующий модуль: Продвинутые техники