| Summary: | add_changelog не работает с вложенными условиями | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vitaly Lipatov <lav> |
| Component: | rpm | Assignee: | placeholder <placeholder> |
| Status: | NEW --- | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | at, glebfm, imz, ldv, mike, placeholder, viy, vt |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
Поискал, но не смог найти обсуждения проблемы со вложенными условиями. Но мне казалось, что где-то вопрос поднимался. Какие у нас рекомендации? Писать спеки без вложенных условий? Переписывать add_changelog самостоятельно? На самом деле это
$ rpm -q --qf '%{CHANGELOGNAME}\n' --specfile спек
ошибка: спек:68: Найден %endif без %if
rpm-4.13.0.1-alt24
Утилита srpmtool умеет вложенные условия. Вызывается srpmtool --add-changelog name.spec (сокращенно srpmtool --add-ch ) Только rpmbuild их обрабатывает не как вложенные. rpmspec хотя бы диагностирует это, а rpm-build просто обрабатывает не так, как ожидается. (Ответ для Dmitry V. Levin на комментарий #4) > Только rpmbuild их обрабатывает не как вложенные. > rpmspec хотя бы диагностирует это, а rpm-build просто обрабатывает не так, > как ожидается. Я правильно понимаю, что эта фраза означает, что add_changelog можно было бы починить, но потом пакет неправильно соберётся при наличии вложенных условий? |
$ add_changelog node.spec ошибка: строка 175: Пакет не существует: %description -n npm ошибка: запрос файла спецификации node.spec не удался, невозможно разобрать файл ошибка: строка 175: Пакет не существует: %description -n npm ошибка: запрос файла спецификации node.spec не удался, невозможно разобрать файл add_changelog: node.spec: version "" unchanged, skipping Кусок спека: %def_without npm %def_without nodejs_abi ... %if_with npm %package -n npm Version: %npmver Group: Development/Tools Summary: A package manager for node License: MIT License Requires: node BuildArch: noarch AutoReq: yes,nopython %if_with nodejs_abi Requires: nodejs(abi) = %{nodejs_abi} %endif %description -n npm npm is a package manager for node. You can use it to install and publish your node programs. It manages dependencies and does other cool stuff. %endif