ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
@ 2008-07-13  3:52 Aleksey Avdeev
  2008-07-13  8:56 ` Alexey I. Froloff
  0 siblings, 1 reply; 11+ messages in thread
From: Aleksey Avdeev @ 2008-07-13  3:52 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 429 bytes --]

Здравствуйте.

  Есть ли способы раскрытия rpm`овских макросов содержащихся в стороннем
файле (не в спеке)?

  Т. е. если некий src.rpm будет содержать файл, в котором будут
присутствовать макросы, то смогу ли я их раскрыть при сборке данного пакета?

PS: Сейчас эту задачу решаю sed`ом. Недостаток решения -- список
макросов и их значения требуется указывать явно, командами sed.

-- 

С уважением. Алексей.




[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 552 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-07-13  3:52 [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке? Aleksey Avdeev
@ 2008-07-13  8:56 ` Alexey I. Froloff
  2008-07-13  9:48   ` Aleksey Avdeev
  0 siblings, 1 reply; 11+ messages in thread
From: Alexey I. Froloff @ 2008-07-13  8:56 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 435 bytes --]

* Aleksey Avdeev <solo@> [080713 07:55]:
>   Есть ли способы раскрытия rpm`овских макросов содержащихся в стороннем
> файле (не в спеке)?
%include

>   Т. е. если некий src.rpm будет содержать файл, в котором будут
> присутствовать макросы, то смогу ли я их раскрыть при сборке данного пакета?
Помнится, кто-то уже делал что-то подобное.  Уж не lav@ ли?
Посмотрите макросы в ehersoft-build-utils.

-- 
Regards,
Sir Raorn.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-07-13  8:56 ` Alexey I. Froloff
@ 2008-07-13  9:48   ` Aleksey Avdeev
  2008-07-13 10:14     ` Aleksey Avdeev
  0 siblings, 1 reply; 11+ messages in thread
From: Aleksey Avdeev @ 2008-07-13  9:48 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 747 bytes --]

Alexey I. Froloff пишет:
> * Aleksey Avdeev <solo@> [080713 07:55]:
>>   Есть ли способы раскрытия rpm`овских макросов содержащихся в стороннем
>> файле (не в спеке)?
> %include

  Немного не то: %include позволяет вставить в спек файл присутствующий
в виде %SOUCE<n>, а я хочу таким образом пройтись по дереву файлов
(развёрнутому из трабла) и/или по файлам сгенерённым из других.

> 
>>   Т. е. если некий src.rpm будет содержать файл, в котором будут
>> присутствовать макросы, то смогу ли я их раскрыть при сборке данного пакета?
> Помнится, кто-то уже делал что-то подобное.  Уж не lav@ ли?
> Посмотрите макросы в ehersoft-build-utils.

  etersoft-build-utils? Я не нашёл там подобного...

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 552 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-07-13  9:48   ` Aleksey Avdeev
@ 2008-07-13 10:14     ` Aleksey Avdeev
  2008-07-13 10:34       ` Alexey Tourbin
  0 siblings, 1 reply; 11+ messages in thread
From: Aleksey Avdeev @ 2008-07-13 10:14 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 790 bytes --]

Aleksey Avdeev пишет:
> Alexey I. Froloff пишет:
>> * Aleksey Avdeev <solo@> [080713 07:55]:
>>>   Есть ли способы раскрытия rpm`овских макросов содержащихся в стороннем
>>> файле (не в спеке)?
>> %include
> 
>   Немного не то: %include позволяет вставить в спек файл присутствующий
> в виде %SOUCE<n>, а я хочу таким образом пройтись по дереву файлов
> (развёрнутому из трабла) и/или по файлам сгенерённым из других.

  Похоже есть выход: rpm --eval %%<макрос> нормально отрабатывает внутри
спека. (Ограничение: макросы должны предоставляться другим пакетом.)

  Попробую реализовать такой алгоритм:

1. Выдернуть из файлов используемые макросы (sed/awk).

2. Сформировать sed программу с таблицей замен.

3. Прогнать её по файлам.

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 552 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-07-13 10:14     ` Aleksey Avdeev
@ 2008-07-13 10:34       ` Alexey Tourbin
  2008-07-13 11:45         ` Alexey Tourbin
  2008-08-01 19:06         ` Aleksey Avdeev
  0 siblings, 2 replies; 11+ messages in thread
From: Alexey Tourbin @ 2008-07-13 10:34 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 889 bytes --]

On Sun, Jul 13, 2008 at 02:14:04PM +0400, Aleksey Avdeev wrote:
> Aleksey Avdeev пишет:
> > Alexey I. Froloff пишет:
> >> * Aleksey Avdeev <solo@> [080713 07:55]:
> >>>   Есть ли способы раскрытия rpm`овских макросов содержащихся в стороннем
> >>> файле (не в спеке)?
> >> %include
> > 
> >   Немного не то: %include позволяет вставить в спек файл присутствующий
> > в виде %SOUCE<n>, а я хочу таким образом пройтись по дереву файлов
> > (развёрнутому из трабла) и/или по файлам сгенерённым из других.
> 
>   Похоже есть выход: rpm --eval %%<макрос> нормально отрабатывает внутри
> спека. (Ограничение: макросы должны предоставляться другим пакетом.)
> 
>   Попробую реализовать такой алгоритм:
> 
> 1. Выдернуть из файлов используемые макросы (sed/awk).
> 
> 2. Сформировать sed программу с таблицей замен.
> 
> 3. Прогнать её по файлам.

rpm --eval "$(cat file)"

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-07-13 10:34       ` Alexey Tourbin
@ 2008-07-13 11:45         ` Alexey Tourbin
  2008-08-01 19:06         ` Aleksey Avdeev
  1 sibling, 0 replies; 11+ messages in thread
From: Alexey Tourbin @ 2008-07-13 11:45 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 938 bytes --]

On Sun, Jul 13, 2008 at 02:34:41PM +0400, Alexey Tourbin wrote:
> On Sun, Jul 13, 2008 at 02:14:04PM +0400, Aleksey Avdeev wrote:
> >   Похоже есть выход: rpm --eval %%<макрос> нормально отрабатывает внутри
> > спека. (Ограничение: макросы должны предоставляться другим пакетом.)
> > 
> >   Попробую реализовать такой алгоритм:
> > 
> > 1. Выдернуть из файлов используемые макросы (sed/awk).
> > 
> > 2. Сформировать sed программу с таблицей замен.
> > 
> > 3. Прогнать её по файлам.
> 
> rpm --eval "$(cat file)"

Также имейте в виду, что Command Substitution в шелле (см. man sh)
отрезает все '\n' в самом конце вывода ("any trailing newlines
deleted").  Обычно это компенсируется тем, что команда, которая
печатает значение, сама по себе добавляет '\n' в конце (как в случае
и с `rpm --eval', а также напр. echo).

Тем не менее, надёжное (в строгом смысле) программирование на шелле
вследствие этого невозможно.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-07-13 10:34       ` Alexey Tourbin
  2008-07-13 11:45         ` Alexey Tourbin
@ 2008-08-01 19:06         ` Aleksey Avdeev
  2008-08-07 23:07           ` Aleksey Avdeev
  1 sibling, 1 reply; 11+ messages in thread
From: Aleksey Avdeev @ 2008-08-01 19:06 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 864 bytes --]

Alexey Tourbin пишет:
> On Sun, Jul 13, 2008 at 02:14:04PM +0400, Aleksey Avdeev wrote:
>> Aleksey Avdeev пишет:
>>> Alexey I. Froloff пишет:
>>>> * Aleksey Avdeev <solo@> [080713 07:55]:
>>>>>   Есть ли способы раскрытия rpm`овских макросов содержащихся в стороннем
>>>>> файле (не в спеке)?
...
> 
> rpm --eval "$(cat file)"

  Спасибо.

  Задачу решил с помощью скрипта rpm-eval.sh (см.
<http://git.altlinux.org/people/solo/packages/?p=apache2.git;a=blob;f=rpm-eval.sh;h=ab82a670c624e997256ce9c03f997f70a64100d0;hb=21516cc349f80295459977d916c725e14012aebf>)
и следующего кода:

find %buildroot%_sysconfdir original -type f -print0 | \
	xargs -r0i %SOURCE14 "{}"

  Где %SOURCE14 -- скрипт rpm-eval.sh помещённый в пакет.

PS: Похоже, что подобный скрипт стоит запоковать в какой нибудь
rpm-build-*...

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 552 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-08-01 19:06         ` Aleksey Avdeev
@ 2008-08-07 23:07           ` Aleksey Avdeev
  2008-08-07 23:09             ` Aleksey Avdeev
  2008-08-08  4:29             ` Slava Semushin
  0 siblings, 2 replies; 11+ messages in thread
From: Aleksey Avdeev @ 2008-08-07 23:07 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1445 bytes --]

Aleksey Avdeev пишет:
> Alexey Tourbin пишет:
>> On Sun, Jul 13, 2008 at 02:14:04PM +0400, Aleksey Avdeev wrote:
>>> Aleksey Avdeev пишет:
>>>> Alexey I. Froloff пишет:
>>>>> * Aleksey Avdeev <solo@> [080713 07:55]:
>>>>>>   Есть ли способы раскрытия rpm`овских макросов содержащихся в стороннем
>>>>>> файле (не в спеке)?
> ...
>> rpm --eval "$(cat file)"
> 
>   Спасибо.
> 
>   Задачу решил с помощью скрипта rpm-eval.sh (см.
> <http://git.altlinux.org/people/solo/packages/?p=apache2.git;a=blob;f=rpm-eval.sh;h=ab82a670c624e997256ce9c03f997f70a64100d0;hb=21516cc349f80295459977d916c725e14012aebf>)
> и следующего кода:
> 
> find %buildroot%_sysconfdir original -type f -print0 | \
> 	xargs -r0i %SOURCE14 "{}"
> 
>   Где %SOURCE14 -- скрипт rpm-eval.sh помещённый в пакет.
> 
> PS: Похоже, что подобный скрипт стоит запоковать в какой нибудь
> rpm-build-*...

   На некоторых файлах вылетает с диагностикой:

*** buffer overflow detected ***: rpm terminated
======= Backtrace: =========
/lib64/libc.so.6(__chk_fail+0x2f)[0x2ae70b998d1f]
/usr/lib64/librpmio-4.0.4.so(rpmExpand+0x66)[0x2ae70be32a16]
rpm(parseSpec+0x5c9)[0x4026f1]
/lib64/libc.so.6(__libc_start_main+0xf4)[0x2ae70b8e8cf4]
rpm(parseSpec+0xb1)[0x4021d9]
======= Memory map: ========
/usr/src/RPM/SOURCES/rpm-eval.sh: line 8:  4278 Aborted 
rpm --eval "$(cat "$f")" > "$n"

   Придётся добавлять защиту...

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 552 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-08-07 23:07           ` Aleksey Avdeev
@ 2008-08-07 23:09             ` Aleksey Avdeev
  2008-08-08  4:29             ` Slava Semushin
  1 sibling, 0 replies; 11+ messages in thread
From: Aleksey Avdeev @ 2008-08-07 23:09 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1639 bytes --]

Aleksey Avdeev пишет:
> Aleksey Avdeev пишет:
>> Alexey Tourbin пишет:
>>> On Sun, Jul 13, 2008 at 02:14:04PM +0400, Aleksey Avdeev wrote:
>>>> Aleksey Avdeev пишет:
>>>>> Alexey I. Froloff пишет:
>>>>>> * Aleksey Avdeev <solo@> [080713 07:55]:
>>>>>>>   Есть ли способы раскрытия rpm`овских макросов содержащихся в 
>>>>>>> стороннем
>>>>>>> файле (не в спеке)?
>> ...
>>> rpm --eval "$(cat file)"

   Некоторые файлы не переваривает.

>>
>>   Спасибо.
>>
>>   Задачу решил с помощью скрипта rpm-eval.sh (см.
>> <http://git.altlinux.org/people/solo/packages/?p=apache2.git;a=blob;f=rpm-eval.sh;h=ab82a670c624e997256ce9c03f997f70a64100d0;hb=21516cc349f80295459977d916c725e14012aebf>) 
>>
>> и следующего кода:
>>
>> find %buildroot%_sysconfdir original -type f -print0 | \
>>     xargs -r0i %SOURCE14 "{}"
>>
>>   Где %SOURCE14 -- скрипт rpm-eval.sh помещённый в пакет.
>>
>> PS: Похоже, что подобный скрипт стоит запоковать в какой нибудь
>> rpm-build-*...
> 
>   На некоторых файлах вылетает с диагностикой:
> 
> *** buffer overflow detected ***: rpm terminated
> ======= Backtrace: =========
> /lib64/libc.so.6(__chk_fail+0x2f)[0x2ae70b998d1f]
> /usr/lib64/librpmio-4.0.4.so(rpmExpand+0x66)[0x2ae70be32a16]
> rpm(parseSpec+0x5c9)[0x4026f1]
> /lib64/libc.so.6(__libc_start_main+0xf4)[0x2ae70b8e8cf4]
> rpm(parseSpec+0xb1)[0x4021d9]
> ======= Memory map: ========
> /usr/src/RPM/SOURCES/rpm-eval.sh: line 8:  4278 Aborted rpm --eval 
> "$(cat "$f")" > "$n"
> 
>   Придётся добавлять защиту...

   См. <https://bugzilla.altlinux.org/show_bug.cgi?id=16623>

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 552 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-08-07 23:07           ` Aleksey Avdeev
  2008-08-07 23:09             ` Aleksey Avdeev
@ 2008-08-08  4:29             ` Slava Semushin
  2008-08-08  8:36               ` Aleksey Avdeev
  1 sibling, 1 reply; 11+ messages in thread
From: Slava Semushin @ 2008-08-08  4:29 UTC (permalink / raw)
  To: ALT Linux Team development discussions

8 августа 2008 г. 6:07 пользователь Aleksey Avdeev <solo /solin.spb.ru> написал:
[...]
>  На некоторых файлах вылетает с диагностикой:
>
> *** buffer overflow detected ***: rpm terminated
> ======= Backtrace: =========
> /lib64/libc.so.6(__chk_fail+0x2f)[0x2ae70b998d1f]
> /usr/lib64/librpmio-4.0.4.so(rpmExpand+0x66)[0x2ae70be32a16]
> rpm(parseSpec+0x5c9)[0x4026f1]
> /lib64/libc.so.6(__libc_start_main+0xf4)[0x2ae70b8e8cf4]
> rpm(parseSpec+0xb1)[0x4021d9]
> ======= Memory map: ========
> /usr/src/RPM/SOURCES/rpm-eval.sh: line 8:  4278 Aborted rpm --eval "$(cat
> "$f")" > "$n"

Это баг. Повесьте в багзиллу вместе с тесткейсом (желательно минимальным).


-- 
+ Slava Semushin | slava.semushin @ gmail.com
+ ALT Linux Team | php-coder @ altlinux.ru

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке?
  2008-08-08  4:29             ` Slava Semushin
@ 2008-08-08  8:36               ` Aleksey Avdeev
  0 siblings, 0 replies; 11+ messages in thread
From: Aleksey Avdeev @ 2008-08-08  8:36 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 826 bytes --]

Slava Semushin пишет:
> 8 августа 2008 г. 6:07 пользователь Aleksey Avdeev <solo /solin.spb.ru> написал:
> [...]
>>  На некоторых файлах вылетает с диагностикой:
>>
>> *** buffer overflow detected ***: rpm terminated
>> ======= Backtrace: =========
>> /lib64/libc.so.6(__chk_fail+0x2f)[0x2ae70b998d1f]
>> /usr/lib64/librpmio-4.0.4.so(rpmExpand+0x66)[0x2ae70be32a16]
>> rpm(parseSpec+0x5c9)[0x4026f1]
>> /lib64/libc.so.6(__libc_start_main+0xf4)[0x2ae70b8e8cf4]
>> rpm(parseSpec+0xb1)[0x4021d9]
>> ======= Memory map: ========
>> /usr/src/RPM/SOURCES/rpm-eval.sh: line 8:  4278 Aborted rpm --eval "$(cat
>> "$f")" > "$n"
> 
> Это баг. Повесьте в багзиллу вместе с тесткейсом (желательно минимальным).

   Сделано: см. <https://bugzilla.altlinux.org/show_bug.cgi?id=16625>.

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 552 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2008-08-08  8:36 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-13  3:52 [devel] Q: Есть ли способ раскрыть макросы rpm не в спеке? Aleksey Avdeev
2008-07-13  8:56 ` Alexey I. Froloff
2008-07-13  9:48   ` Aleksey Avdeev
2008-07-13 10:14     ` Aleksey Avdeev
2008-07-13 10:34       ` Alexey Tourbin
2008-07-13 11:45         ` Alexey Tourbin
2008-08-01 19:06         ` Aleksey Avdeev
2008-08-07 23:07           ` Aleksey Avdeev
2008-08-07 23:09             ` Aleksey Avdeev
2008-08-08  4:29             ` Slava Semushin
2008-08-08  8:36               ` Aleksey Avdeev

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