Для проверки, существует ли заданный макрос, используется специальный синтаксис. Например:
| 
 %{?macro_to_test: expression}     | 
Подобная строка говорит RPM развернуть значение выражения, если macro_to_test определялся и существует. В противном случае строка игнорируется. Если нужно инвертировать условие, тогда впереди ставится восклицательный знак:
| 
 %{!?macro_to_test: expression}     | 
В данном примере если macro_to_test не существует, тогда разворачивается выражение.
Для ветвления процесса используется макрос %if. Например:
| 
 %if %{old_5x}   | 
%else позволяет специфицировать действия, которые необходимо проделать, если тест был неуспешный. Например:
| 
 %if %{old_5x}   | 
Здесь также может быть использован восклицательный знак для инверсии условия.
| 
 if ! %{old_5x}   | 
Для комбинации нескольких тестов используется && :
| 
 %if %{old_5x} && %{old_6x}   | 
 Далее - Встроенные макросы 
 Назад - Макросы определения переменных 
 Содержание