У меня есть файл спецификации, в котором используется условное выражение типа
%if "%{pkgname}" = "wobble"
Requires: extra-thing
....
%endif
, и теперь мне нужно обрабатывать wobble-thing
, wobble-otherthing
и любые другие wobble*
как удовлетворяющие тому же условию.Легко, вы подумали бы.
Я не могу найти способ сделать это, не разочаровавшись в ужасных файлах спецификаций и предварительно обработав файл.
К сожалению, предварительная обработка файла выиграла 'В этом контексте он перевернет целую цепочку сборки, которая, как ожидается, сможет просто создать спецификацию.
В rpm
и rpmbuild
много недокументированной магии, подобно ${error:blah}
и %{expand:..othermacros...}
и %global
прочее.И даже такие простые реляционные операции, как %if %{value} < 42
, на самом деле нигде не документированы.
Кто-нибудь знает оператор сопоставления с строковым префиксом или строковым инфиксом?
Япоиск спецификации, эквивалентной конструкции bash if [[ "${VAR}" == *"substring"* ]]; then
.
Edit : Для ясности причина, по которой я не просто использую условные выражения оболочки, заключается в том, что мне нужно влиять на метаданные rpm.Я думал, что было очевидно, что я бы использовал shell if
, если бы это было возможно.Я отредактировал, чтобы показать более четко выше.
Редактировать : Чтобы помочь другим людям найти это, речь идет о сопоставлении строковых шаблонов в rpm.Сложные условия в оборотах.Условные разделы в спецификациях.Строковые префиксы, инфиксные или суффиксные операторы и тесты в rpmbuild.