Eventualmente é preciso testar, no arquivo de spec de um RPM, qual a distribuição na qual está sendo gerado o rpm, desta maneira tornando possível modificar, por exemplo, as dependências de um pacote de acordo com a distribuição. A solução não é das mais limpas, uma vez que é preciso criar uma macro para cada distribuição, mas funciona para os casos mais simples.
A solução que encontrei foi a seguinte:
1) Crie as macros para testar as distribuições desejas:
[code]%define is_suse %(test -e /etc/SuSE-release && echo 1 || echo 0)
%define is_fedora %(test -e /etc/fedora-release && echo 1 || echo 0)[/code]
Note que apenas é testada a existência dos arquivos de release das respectivas distribuições.
2) Teste as variáveis e defina os resultados:
[code] %if %is_suse
%define macro valor-01
%endif
%if %is_fedora
%define macro valor-01 valor-02 … valor-n
%endif[/code]
3) Pronto, agora você pode usar %macro aonde os valores forem diferentes, de acordo com %is_suse ou %is_fedora.
Podemos usar como exemplo a seção “Requires” da spec do RPM:
[code]%if %is_suse
%define dist_require /sbin/ldconfig
%endif
%if %is_fedora
%define dist_require /sbin/ldconfig initscripts
%endif
# outra seções
…
Requires: %{dist_require}
[/code]
A solução é extremamente simples, embora não seja muito prática caso seja necessário suportar diversas distribuições no mesmo spec.
Referência: spec file example.