* Re: [devel] Поддержка файлов макроопределений в gear
@ 2007-08-29 7:26 ` Dmitry V. Levin
2007-08-29 7:41 ` Kirill A. Shutemov
0 siblings, 1 reply; 3+ messages in thread
From: Dmitry V. Levin @ 2007-08-29 7:26 UTC (permalink / raw)
To: Alexey Morozov; +Cc: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 2838 bytes --]
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
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [devel] Поддержка файлов макроопределений в gear
2007-08-29 7:26 ` [devel] Поддержка файлов макроопределений в gear Dmitry V. Levin
@ 2007-08-29 7:41 ` Kirill A. Shutemov
2007-08-29 9:19 ` Dmitry V. Levin
0 siblings, 1 reply; 3+ messages in thread
From: Kirill A. Shutemov @ 2007-08-29 7:41 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1893 bytes --]
On [Wed, 29.08.2007 11:26], Dmitry V. Levin wrote:
> Hi,
>
> Cc'ed devel@lists.
>
> On Wed, Aug 29, 2007 at 10:19:57AM +0700, Alexey Morozov wrote:
> > 2. Я реализовал поддержку использования @name@, @version@ и @release@
> > в .gear-rules, даже если в спек-файле их значения определяются через
> > макроподстановки (например, если версия определена так:
> >
> > %define majorver 3.5
> > %define patchlevel 10
> >
> > Version: %majorver.%patchlevel
> >
> > итп. Следует заметить, что конструкции подобного рода часто
> > применяются в наших спеках, и стандартный gear не позволяет
> > использовать @<переменная>@ в этом случае.
>
> Каким образом решить эту проблему? У меня пока нет ответа.
В случае ruby.git с подачи raorn@ это решено так:
> cat .gear-rules
spec: ruby.spec
tar.bz2: ruby spec=ruby-version.spec name=@dir@-@version@-@release@
base=@dir@-@version@-@release@
Т.е ruby.spec -- это "настоящая" спека, а ruby-version.spec -- следующего
содержания:
> cat ruby-version.spec
Name: ruby
Version: 1.8.6
Release: alt2
ruby-version.spec обновляется с помощью скрипта:
> cat update-version
#!/bin/sh
rpm -bE ruby.spec | grep -iE '^(Name|Version|Release):' > ruby-version.spec
Он безопасным не является, но я доверяю содержимому ruby.spec ;)
--
Regards, Kirill A. Shutemov
+ Belarus, Minsk
+ Velesys LLC, http://www.velesys.com/
+ ALT Linux Team, http://www.altlinux.com/
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [devel] Поддержка файлов макроопределений в gear
2007-08-29 7:41 ` Kirill A. Shutemov
@ 2007-08-29 9:19 ` Dmitry V. Levin
0 siblings, 0 replies; 3+ messages in thread
From: Dmitry V. Levin @ 2007-08-29 9:19 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1132 bytes --]
On Wed, Aug 29, 2007 at 10:41:34AM +0300, Kirill A. Shutemov wrote:
[...]
> В случае ruby.git с подачи raorn@ это решено так:
>
> > cat .gear-rules
> spec: ruby.spec
> tar.bz2: ruby spec=ruby-version.spec name=@dir@-@version@-@release@
> base=@dir@-@version@-@release@
>
> Т.е ruby.spec -- это "настоящая" спека, а ruby-version.spec -- следующего
> содержания:
>
> > cat ruby-version.spec
> Name: ruby
> Version: 1.8.6
> Release: alt2
>
> ruby-version.spec обновляется с помощью скрипта:
>
> > cat update-version
> #!/bin/sh
>
> rpm -bE ruby.spec | grep -iE '^(Name|Version|Release):' > ruby-version.spec
>
> Он безопасным не является, но я доверяю содержимому ruby.spec ;)
Комментарий для стороннего читателя:
Существенное отличие этой схемы от предложенной Алексеем заключается в
том, что для _сборки_ чужого коммита не требуется выполнять чужой spec-файл
(rpmbuild -bE). Таким образом, автомат, собирающий чужие коммиты, может
чувствовать себя в безопасности. С другой стороны, человек, который
увеличивает версию/релиз пакета, может проанализировать spec-файл.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-08-29 9:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-29 7:26 ` [devel] Поддержка файлов макроопределений в gear Dmitry V. Levin
2007-08-29 7:41 ` Kirill A. Shutemov
2007-08-29 9:19 ` Dmitry V. Levin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git