* [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