Girar/girar-nmu
Знакомство с утилитами girar-nmu
утилиты предназначены для проведения NMU.
утилиты общего назначения.
Опции:
- -b rpm репозиторий, например, -b 5.1. По умолчанию sisyphus.
- -d локальная ветвь git. Позволяет менять имя используемой локальной ветви git
для тех команд, гд это имеет смысл.
girar-get-upload-method <name>
Позволяет быстро узнать, как нужно заливать указанный пакет: через src.rpm или через git tag в git/gear репозитории.
Примеры:
$ girar-get-upload-method xmms srpm
$ girar-get-upload-method -b p5 hplip git
girar-fetch-build-commit
Удобна, когда на ваш пакет сделан NMU и чужой NMU commit нужно втянуть в ваш репозиторий. По умолчанию, за имя локальной ветки берется имя rpm репозитория (sisyphus или значение опции -b).
Пример:
hplip.git $ girar-fetch-build-commit From git://git.altlinux.org/gears/h/hplip 1359385..1970106 sisyphus -> sisyphus
girar-clone-build-commit <name>
Клонирует репозиторий для name с git://git.altlinux.org/gears/, Устанавливает локальную ветвь git (по умолчанию master) на последний build commit.
утилиты для подготовки NMU.
Эти утилиты принимают либо список путей к файлам, либо список %{NAME} src.rpm файлов. Для удобства утилита girar-nmu-helper-name2path позволяет преобразовать список имен в список путей к файлам.
girar-nmu-helper-name2path /path/to/files/SRPMS `cat names.txt` > files.txt
Обратное преобразование можно выполнить так:
rpmquery --queryformat '%{NAME}\n' -p `cat files.txt`
girar-nmu-sort-transaction
girar-nmu-prepare
girar-nmu-local-build
утилиты для заливки NMU пакетов на сборку.
Опции:
- -t task ID.
- -H git.alt alias. По умолчанию, git.alt.
- -n | -g | -r. Опции подписывания rpm пакетов. По умолчанию, -g (использовать gpg agent).
-g) использовать gpg agent (внутренняя обвязка rpm-sign-gpg-agent) -n) если нет gpg agent, но ключ без passphrase - (внутренняя обвязка rpm-sign-no-passphrase) -r) использовать обычный rpm --sign, требует постоянного ввода ключа с клавиатуры.
NMU часто требуют подписывать сотни пакетов. Для git тегов спасает gpg agent, но rpm не умеет с ним работать напрямую. Чтобы не отсохли руки вводить pass phrase, в состав girar-nmu включены обвязки rpm-sign-gpg-agent и rpm-sign-no-passphrase. Эти обвязки вызываются утилитами автоматически и наружу не видны, кроме как в виде опций, но их можно использовать и как самостоятельные приложения.
Использование:
rpm-sign-gpg-agent <--addsign | --resign> *.src.rpm
rpm-sign-gpg-agent заставляет rpm использовать gpg agent для подписи. rpm-sign-no-passphrase удобен для удаленной работы. Когда вы заходите на удаленную песочницу, ваш gpg agent остается на локальной машине. Если ключ с пассфразой, то никуда не деться, надо настраивать локальный gpg agent. Но если пассфразы нет, gpg agent не нужен. Но rpm все равно попросит нажать Enter. так вот, rpm-sign-no-passphrase нажмет Enter за вас.
girar-nmu-task-add
girar-nmu-task-add [-t taskid] `cat names.txt`
Добавляет пакеты, подготовленные с помощью girar-nmu-prepare, на сборку в указанный task. Полученный task надо запустить на сборку вручную с помощью
ssh git.alt task run
girar-nmu-task-for-each
girar-nmu-task-for-each `cat names.txt`
В отличие от girar-nmu-task-add запускает на сборку пакеты автоматически каждый пакет в отдельной task.
Использование girar-nmu utils на примере обновления perl
План будет следующий: I. Получаем список пакетов, сортируем транзакцию. II. Готовим новые версии. III. Добавляем в task.
cd /var/ftp/pub/Linux/ALT girar-nmu-helper-sort-transaction --mark '^libperl\.so\.5\.' \ /Sisyphus/files/SRPMS /Sisyphus/files/noarch/RPMS /Sisyphus/files/i586/RPMS \ > names
girar-nmu-helper-name2path /Sisyphus/files/SRPMS `cat names` > files girar-nmu-prepare --changelog '- rebuild with new perl' --hook ./perl_510_upgrade.pl `cat files`