[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