Gear/Обновление SRPM

Материал из ALT Linux Wiki
< Gear
Версия от 15:54, 16 мая 2023; Voropaevdmtr (обсуждение | вклад) (→‎Подписываем SRPM)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


  • Как собрать srpm из gear-репозитория?
  • Как поправить сборку пакета, если пакет собран в Сизиф из srpm и мейнтейнер хочет, чтобы так оно и оставалось?

Находим репозиторий

Некоторые пакеты собираются в Сизиф из SRPM: так может быть удобнее мейнтейнеру. Если по какой-то причине Вам удобнее работать с gear, то для работы с таким пакетом у Вас есть два варианта:

1. Сделать репозиторий самому из последней SRPM при помощи gear-srpmimport

2. Найти репозиторий пакета в git.altlinux.org/srpms -- туда, при сборке из SRPM, успешно собранные SRPM импортируются в ветку, соответствующую имени репозитория (sisyphus, p10, ...)

Вносим изменения

Работаем как с обычным gear-репозиторием. Не забываем добавить changelog и вызвать gear-commit.

Собираем SRPM

  • В локальной системе:
gear-rpm -bs --nodeps --verbose
gear-hsh --verbose -- --verbose --build-srpm-only


В локальной системе собирается быстрее, но требуется установить некий минимальный набор пакетов, необходимых для сборки (обычно это макросы из BuildRequires(pre)).

В хешере безопаснее (весь код из спека изолирован), в систему не нужно ничего устанавливать, но в общем случае дольше, так как требуется сформировать сборочное окружение. После сборки в hasher нужно куда-нибудь скопировать полученный srpm, так как файл по умолчанию оказывается принадлежащим вспомогательному пользователю (AKA builder, *_b) и у Вас нет на него прав на запись.

Подписываем SRPM

rpmsign --addsign /path/to/the.src.rpm

Чтобы эта команда сработала, нужно правильно определить макрос %_gpg_name в ~/.rpmmacros. Содержимое _gpg_name должно соответствовать вашему uid из вывода gpg -K. Если Вы уже отправляли пакеты в Girar, скорее всего у Вас это уже сделано.

Если при выполнении команды происходит следующее, а потом ничего не происходит:

$ rpmsign --addsign /path/to/the.src.rpm
this.src.rpm:
использование: gpg [параметры] [файл]

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

rpmsign --addsign /path/to/the.src.rpm --key-id=<gpg_id_key>

Отправляем пакет на сборку

Нужно залить SRPM в girar при помощи rsync:

rsync -yp  /path/to/the.src.rpm  gyle.alt:

Здесь gyle.alt -- это ваш ssh alias для gyle.altlinux.org.

Далее, SRPM можно добавлять в задачи так же, как и репозитории:

$ ssh gyle.alt task add --help | grep srpm
   srpm <srpm file>
   <srpm file without suffix>.src.rpm


Для сборки одного пакета можно воспользоваться командой build, например:

ssh gyle.alt build --test-only the.src.rpm