[devel] Поддержка файлов макроопределений в gear
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Ср Авг 29 11:26:00 MSD 2007
Hi,
Cc'ed devel на lists.
On Wed, Aug 29, 2007 at 10:19:57AM +0700, Alexey Morozov wrote:
> Здравствуйте, Дмитрий.
>
> Я тут реализовал две доп. фичи для gear, хотел предложить их Вашему вниманию
Спасибо. Мои комментарии ниже:
> 1. При использовании gear --rpmbuild требуется, чтобы все используемые
> в спеке макросы были определены.
Именно о случае gear --rpmbuild я бы не беспокоился, поскольку для
сборки rpmbuild'ом всё равно нужны эти макроопределения, причём сборочные
зависимости пакета должны обеспечивать наличие этих макроопределений.
Хотя ...
> Приходится подсовывать макросы,
> уникальные для данного пакета через --define 'somemacro definition',
> причём, по факту, для сборки src.rpm (наиболее частый для меня вариант
> использования) эти макросы чаще всего не нужны, т.к. они будут
> задействованы только при пересборке данного srpm'а.
... сейчас так бывает: среда, в которой производится сборка srpm,
зачастую не предназначена для сборки пакетов.
> Поэтому я добавил в gear следующую функциональность: если в проекте
> существует файл .gear-rpmmacros, то макроопределения из него будут
> автоматически использоваться наряду со макроопределениями из всех
> обычных файлов. Реализовано это через использование дополнительного
> кастомного rpmrc с расширенным списком macrofiles.
"Идея gear заключается в том, чтобы с помощью одного файла с простыми
правилами (для обработки которых достаточно sed и git) можно было бы
собирать пакеты из произвольно устроенного git-репозитория, по аналогии
с hasher, который был задуман как средство собирать пакеты из
произвольных srpm-пакетов."
В этой связи выполнение (rpmquery --specfile это выполнение) кода из
macro-файла, хранимого в репозитории наряду с .gear-rules, недопустимо.
Я понимаю, что вы вполне доверяете вашему собственному gear-репозиторию,
но ведь git-репозитории предназначены для удобства распределённой
разработки, что подразумевает возможность безопасной сборки путём запуска
"gear --hasher" из чужого коммита. Я бы не хотел вводить небезопасные
опции, поскольку они будут провоцировать разработчиков на обработку чужих
коммитов небезопасным образом.
> Проверял я [только] на --rpmbuild, хотя, думаю, и с другими командами
> проблем быть не должно.
>
> 2. Я реализовал поддержку использования @name@, @version@ и @release@
> в .gear-rules, даже если в спек-файле их значения определяются через
> макроподстановки (например, если версия определена так:
>
> %define majorver 3.5
> %define patchlevel 10
>
> Version: %majorver.%patchlevel
>
> итп. Следует заметить, что конструкции подобного рода часто
> применяются в наших спеках, и стандартный gear не позволяет
> использовать @<переменная>@ в этом случае.
Каким образом решить эту проблему? У меня пока нет ответа.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070829/0b4afd5f/attachment-0001.bin>
Подробная информация о списке рассылки Devel