Bug 8089 - Make rpmbuild fail on unknown macros
: Make rpmbuild fail on unknown macros
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/rpm-build)
: unstable
: all Linux
: P2 enhancement
Assigned To:
:
: http://lists.altlinux.ru/pipermail/de...
:
:
:
  Show dependency tree
 
Reported: 2005-09-29 14:54 by
Modified: 2005-10-26 23:39 (History)


Attachments
rpm-4_0-4.0.4-alt-fail-on-unknown-macros.patch (804 bytes, patch)
2005-09-29 14:55, Sir Raorn
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-09-29 14:54:30
Unknown macros should generate error when parsing spec.
------- Comment #1 From 2005-09-29 14:55:28 -------
Created an attachment (id=1151) [details]
rpm-4_0-4.0.4-alt-fail-on-unknown-macros.patch

patch against rpm-4.0.4-alt48
------- Comment #2 From 2005-09-29 17:22:49 -------
Вероятно, этот патч неполный, там, кажется, есть ещё один случай, но суть не в
этом.

Я так понял, никто не возражает и последствий не боится?
------- Comment #3 From 2005-09-29 17:41:33 -------
Я думаю ничего страшного не случится ... отваляться пакеты которые сейчас
работают неправильно... если они вообще работают.
------- Comment #4 From 2005-09-29 17:48:58 -------
Поступило предположение, что сломается sandman в некоторых местах из-за
отсутствия /etc/rpm/macros.d/*...
------- Comment #5 From 2005-09-29 18:26:44 -------
(In reply to comment #2)
> Вероятно, этот патч неполный, там, кажется, есть ещё один случай, но суть не в
> этом.

Там ещё чуть выше есть, сразу после case(){}...  Обновить патч?
------- Comment #6 From 2005-09-29 18:31:48 -------
(In reply to comment #4)
> Поступило предположение, что сломается sandman в некоторых местах из-за
> отсутствия /etc/rpm/macros.d/*...

sandman желает знать Name-Version-Release, все Source/Patch и BuildRequires. 
Если какие-то макросы влияли на содержимое этих тегов раньше, значит они все
раскрывались.  Всё остальное можно скопировать после минимально необходимой
информации, думаю таких случаев будет немного и решаться это будет мантейнерами
этих пакетов...

Мне кажется что конечный результат в какой-то степени оправдывает это количество
геммороя.
------- Comment #7 From 2005-09-29 18:54:45 -------
sandman рассчитывает на то, что rpm -bE выдаст значения
некоторых тэгов (см. предыдущий комментарий), даже
если в процессе препроцессинга есть ошибки.
Иными словами, вывод команды не будет прекращён на первой
нераскрывшейся конструкции.
Если предлагаемый патч изменяет это поведение,
то для sandman это закончится плохо.
------- Comment #8 From 2005-09-29 19:33:46 -------
Нет, предлагаемый патч работать не будет совершенно: если сделать нечто
подобное, то все тэги пойдут лесом.
------- Comment #9 From 2005-09-29 21:15:17 -------
Чтобы было понятно:
error: Macro %description not found
------- Comment #10 From 2005-09-29 22:54:34 -------
(In reply to comment #9)
> Чтобы было понятно:
> error: Macro %description not found

Ох, как всё запущено...  Я сходу придумал три варианта обхода этой проблемы и
все три кривые до безобразия...
------- Comment #11 From 2005-09-30 11:09:28 -------
> Ох, как всё запущено...  Я сходу придумал три варианта обхода этой проблемы и
> все три кривые до безобразия...

1. subst 's/^%\(package\|description\|...\)/%%\1/' *.spec

2. где-то в macros:
%global package %%package
%global description %%description
...

3. как-то проверять имена секций в expandMacro(), например по
build/parseSpec.c:partList[]

Учитывая comment #7 нужен режим, где нераскрытые макросы не будут генерить
ошибку, тоже слабо представляю как такое реализовать...

P.S. Наверно пока RESOLVED/LATER...
------- Comment #12 From 2005-10-06 23:19:15 -------
Как насчёт --define '_allow_undefined_macros 1', с помощью которого можно будет
обрабатывать неопределённые макросы?
------- Comment #13 From 2005-10-07 18:33:51 -------
Implemented in 4.0.4-alt49.