especificação rpm: requisito condicional com base 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 aplicativos python, portanto, não há diferenças no processo de compilação. Mas no RHEL / CentOS5, preciso adicionar uma dependência adicional.

Como eu definiria dependência apenas para 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 dependência kmod-coretemp).

Eu tentei também o seguinte:

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

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

rvs
fonte

Respostas:

8

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

%{?el5:Requires: kmod-coretemp}

Você provavelmente desejará adicionar a disttag ao campo da versão para evitar confusão posterior entre os pacotes:

Release: 1%{?dist}

Consulte Objetivo da etiqueta Dist .

Dan Carley
fonte
Obrigado! Bem, meu sistema não tem isso por algum motivo, mas eu defini a macro manualmente. Desculpe marcar a resposta de Ignacio como aceita, como foi a primeira.
RVS
1
Se eles não estiverem presentes, pode ser necessário instalar o pacote redhat-rpm-configdo Yum.
Dan Carley
Está instalado, mas ainda não há macros. Eu acredito que é específico para centos, pois em outras máquinas rhel5 elas estão no lugar.
RVS