Artigo
Testando a distribuição na spec de um RPM
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,...
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:
- 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.
- 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]
- 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.