* [devel] макросы rpm в спеке
@ 2023-12-11 14:30 Aleksey Cheusov
2023-12-11 16:40 ` Dmitry V. Levin
0 siblings, 1 reply; 3+ messages in thread
From: Aleksey Cheusov @ 2023-12-11 14:30 UTC (permalink / raw)
To: devel
Задача: определить макрос в СПЕКЕ ПАКЕТА! с одним параметром, который
принимал бы значение 0, если макрос "disabled_<параметр>" определен
и 1 в противном случае.
Есть спека. Начинается она вот так:
1 %define disabled_trtrtr 1
2 %define enabled() %{?disabled_%{1}:0}%{!?disabled_%{1}:1}
3 %{enabled trtrtr}
4 fail here
rpmspec на ней работает так:
0 $ rpmspec -P mk-configure.spec
error: line 4: Unknown tag: fail here
1 $
То есть, такое ощущение, что макрос %{enabled trtrtr}
вообще ни во что не раскрывается.
Ожидаемое поведение: rpmspec должен упасть на строчке 3, поскольку
%{enabled trtrtr} должен раскрыться в 0. Что я делаею не так?
P.S.
Мне не важно, что есть в альтовских конфигах для rpm. Мне нужно
разобраться именно в этом примере и именно с макросами в спеке пакета.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [devel] макросы rpm в спеке
2023-12-11 14:30 [devel] макросы rpm в спеке Aleksey Cheusov
@ 2023-12-11 16:40 ` Dmitry V. Levin
2023-12-11 17:32 ` Aleksey Cheusov
0 siblings, 1 reply; 3+ messages in thread
From: Dmitry V. Levin @ 2023-12-11 16:40 UTC (permalink / raw)
To: devel
On Mon, Dec 11, 2023 at 06:30:29PM +0400, Aleksey Cheusov wrote:
> Задача: определить макрос в СПЕКЕ ПАКЕТА! с одним параметром, который
> принимал бы значение 0, если макрос "disabled_<параметр>" определен
> и 1 в противном случае.
>
> Есть спека. Начинается она вот так:
>
> 1 %define disabled_trtrtr 1
> 2 %define enabled() %{?disabled_%{1}:0}%{!?disabled_%{1}:1}
> 3 %{enabled trtrtr}
> 4 fail here
>
> rpmspec на ней работает так:
>
> 0 $ rpmspec -P mk-configure.spec
> error: line 4: Unknown tag: fail here
> 1 $
>
> То есть, такое ощущение, что макрос %{enabled trtrtr}
> вообще ни во что не раскрывается.
>
> Ожидаемое поведение: rpmspec должен упасть на строчке 3, поскольку
> %{enabled trtrtr} должен раскрыться в 0. Что я делаею не так?
disabled_%{1} не превратится в disabled_trtrtr без %{expand:...}.
> Мне не важно, что есть в альтовских конфигах для rpm. Мне нужно
> разобраться именно в этом примере и именно с макросами в спеке пакета.
И тем не менее там есть примеры того, как это сделать так, чтобы работало.
--
ldv
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [devel] макросы rpm в спеке
2023-12-11 16:40 ` Dmitry V. Levin
@ 2023-12-11 17:32 ` Aleksey Cheusov
0 siblings, 0 replies; 3+ messages in thread
From: Aleksey Cheusov @ 2023-12-11 17:32 UTC (permalink / raw)
To: devel
>> Ожидаемое поведение: rpmspec должен упасть на строчке 3, поскольку
>> %{enabled trtrtr} должен раскрыться в 0. Что я делаею не так?
> disabled_%{1} не превратится в disabled_trtrtr без %{expand:...}.
Вот так работает. Спасибо.
1 %define disabled_lalala 1
2 %define myenabled() %{expand:%%{?disabled_%{1}:0}%%{!?disabled_%{1}:1}}
3 %{myenabled trtrtr}%{myenabled lalala}
4 fail here
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-12-11 17:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-11 14:30 [devel] макросы rpm в спеке Aleksey Cheusov
2023-12-11 16:40 ` Dmitry V. Levin
2023-12-11 17:32 ` Aleksey Cheusov
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