* 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