especificación rpm: requiere condicional basado en la versión de distribución

8

Estoy tratando de escribir una sola especificación de rpm para RHEL / CentOS / SL 5 y 6. Esta especificación es para la aplicación python, por lo que no hay diferencias en el proceso de compilación. Pero en RHEL / CentOS5 necesito agregar una dependencia adicional.

¿Cómo definiría la dependencia solo para el5? He intentado lo siguiente:

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

No funciona (construir en CentOS5 no agrega dependencia kmod-coretemp).

También he intentado lo siguiente:

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

Informa con error de sintaxis. Estoy seguro de que dist macro está configurado y contiene 'el5'. Pero no estoy seguro de cuál es la sintaxis de if condicionales en rpm? rpmguide no tiene una respuesta detallada.

rvs
fuente

Respuestas:

8

La wiki de Fedora, como de costumbre, proporciona las mejores pautas sobre el empaquetado. Eche un vistazo a la página Empaquetado: DistTag . Puede usar la %{el5}variable y una condicional abreviada para asegurarse de que la Requirelínea relevante se use al crear paquetes para EL5.

%{?el5:Requires: kmod-coretemp}

Probablemente desee agregar la distetiqueta al campo de versión para evitar confusiones posteriores entre paquetes:

Release: 1%{?dist}

Ver Propósito de la etiqueta Dist .

Dan Carley
fuente
¡Gracias! Bueno, mi sistema no tiene esto por alguna razón, pero he definido la macro manualmente. Lo siento, marcando la respuesta de Ignacio como aceptada, ya que fue la primera.
rvs
1
Si no están presentes, es posible que deba instalar el paquete redhat-rpm-configdesde Yum.
Dan Carley
Está instalado, pero aún no hay macros. Creo que es centos específico, ya que en otras máquinas rhel5 están en su lugar.
rvs