Gear/Обновление SRPM
- Как собрать 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
- В Hasher:
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