especificação rpm: exigência condicional baseada na versão distro

8

Estou tentando escrever uma única especificação de rpm para RHEL / CentOS / SL 5 e 6. Essa especificação é para o aplicativo python, portanto, não há diferenças no processo de criação. Mas no RHEL / CentOS5 eu preciso adicionar uma dependência adicional.

Como eu definiria dependência apenas para o el5? Eu tentei seguir:

%if 0%{?redhat} == 5 || 0%{?centos} == 5
Requires:   kmod-coretemp
%endif

Não funciona (a construção no CentOS5 não adiciona a dependência do kmod-coretemp).

Eu também tentei seguir:

%if %{?dist} == "el5"

Relata com erro de sintaxe. Tenho certeza de que a macro dist está configurada e contém 'el5'. Mas não tenho certeza qual é a sintaxe de se condicionais em rpm? O rpmguide não tem resposta detalhada.

    
por rvs 23.06.2011 / 11:24

2 respostas

5

Diretrizes de embalagem da tag

    
por 23.06.2011 / 11:34
7

O wiki do Fedora, como sempre, fornece as melhores diretrizes sobre empacotamento. Dê uma olhada na página Packaging: DistTag . Você pode usar a variável %{el5} e a abreviação condicional para garantir que a linha relevante Require seja usada ao criar pacotes para o EL5.

%{?el5:Requires: kmod-coretemp}

Você provavelmente desejará rotular os RPMs binários resultantes como .el5 e .el6 para evitar confusão posterior.

    
por 23.06.2011 / 11:43