Gear/Обновление SRPM: различия между версиями
(Новая страница: «{{Stub}} * Как собрать srpm из gear-репозитория? * Как поправить сборку пакета, если пакет собран в Сизиф из srpm и мейнтейнер хочет, чтобы так оно и оставалось? == Находим репозиторий == Некоторые пакеты собираются в Сизиф из SRPM: так может быть удобнее мейнтейнеру....») |
|||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 11: | Строка 11: | ||
1. Сделать репозиторий самому из последней SRPM при помощи <tt>gear-srpmimport</tt> | 1. Сделать репозиторий самому из последней SRPM при помощи <tt>gear-srpmimport</tt> | ||
2. Найти репозиторий пакета в [http://git.altlinux.org/srpms git.altlinux.org/srpms] -- туда, при сборке из SRPM, успешно собранные SRPM импортируются в ветку, | 2. Найти репозиторий пакета в [http://git.altlinux.org/srpms git.altlinux.org/srpms] -- туда, при сборке из SRPM, успешно собранные SRPM импортируются в ветку, соответствующую имени репозитория (sisyphus, p10, ...) | ||
== Вносим изменения == | == Вносим изменения == | ||
Строка 37: | Строка 37: | ||
Чтобы эта команда сработала, нужно правильно определить макрос <tt>%_gpg_name</tt> в <tt>~/.rpmmacros</tt>. Содержимое _gpg_name должно соответствовать вашему uid из вывода gpg -K. Если Вы уже отправляли пакеты в Girar, скорее всего у Вас это уже сделано. | Чтобы эта команда сработала, нужно правильно определить макрос <tt>%_gpg_name</tt> в <tt>~/.rpmmacros</tt>. Содержимое _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> | |||
== Отправляем пакет на сборку == | == Отправляем пакет на сборку == |
Текущая версия от 15:54, 16 мая 2023
- Как собрать 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