Como posso especificar requisitos de compilação condicionais do SO em um arquivo de especificação do RPM?

5

Estou tentando trabalhar com o sinalizador BuildPrereq nos arquivos de especificação. Eu quero que alguns pré-requisitos sejam incluídos se o sistema operacional for de uma versão específica. algo como

if os == fedora 4
 BuildPrereq >= apr0.9
endif

if os == feodra 10
 BuildPrereq >= apr2.0
endif 

Existe alguma maneira de alcançar o acima? Também gostaria de ouvir algumas alternativas sobre isso. O problema é que eu tenho uma seção do código que não é necessário para ser compilado em algumas versões do sistema operacional. Então eu estou olhando para misturar a compilação condicional e o acima.

Felicidades!

    
por Ricko M 15.03.2011 / 18:24

1 resposta

5

Para traduzir o que você escreveu diretamente para as macros do specfile:

%if 0%{?fedora} == 4
BuildPrereq >= apr0.9
%endif 
%if 0%{?fedora} == 10
BuildPrereq >= apr2.0
%endif

Você provavelmente poderia alterar o primeiro %endif a um %else mas eu queria manter a minha reescrita tão semelhantes quanto possível no caso de existirem outras circunstâncias envolvidas.

Se você quiser suportar versões do fedora entre fc4 e f10 ou posterior, você pode usar > = e < = também. Se você se preocupa com o RHEL, há um %{rhel} que é avaliado como 4 para RHEL4 e 5 para RHEL5.

    
por 15.03.2011 / 19:08