rpm centos5 rpmbuild

rpmbuild%{dist} no está definido en CentOS 5.5?



centos5 (2)

Estoy intentando usar la etiqueta %{dist} en mi archivo de especificaciones de RPM para proporcionar dependencias específicas de la distribución entre Fedora Core (por ejemplo, fc12 ), CentOS 5 (por ejemplo, el5 ) y la AMI de Linux de Amazon:

Release: %_svn_revision%{?dist}

y

# Depencencies %{?rhel:Requires: ...} %{?fedora:Requires: ...}

Desafortunadamente, %{dist} no parece estar definido en CentOS 5.5, y no he encontrado un condicional específico de la distribución que coincida con CentOS 5.5 (pensé que el5 coincidiría, pero no lo parece). This ticket informó el %{dist} faltante en CentOS en 2008, pero no se ha actualizado desde 2009.

¿Cómo puedo obtener %{dist} definido en CentOS y qué condicional debo usar para coincidir con CentOS 5? ¿Pueden los gurús de RPM apuntarme en la dirección correcta?


Las macros dist no están definidas en CentOS 5 porque no están en /etc/rpm/macros.disttag ; hay un RPM llamado buildsys-macros-rhel que lo proporciona, o buildsys-macros en fedora, pero por alguna razón no es reenvasado por Centos.

Opción 1) Descargue e instale fedora build-macros desde here

Opción 2) invocar rpmbuild --define ''dist .el5'' cada vez

Opción 3) Edite manualmente /etc/rpm/macros.disttag para agregar definiciones de macro para rhel (5) y dist (.el5).

Luego puedes usar condicionales como este en tu archivo de especificaciones:

%if 0%{?rhel} == 5 %{Requires: foo} %endif


Otra opción es llamar al script dentro de su propia macro en el archivo de especificaciones:

%define distribution %(/usr/lib/rpm/redhat/dist.sh --distnum)

que llama a un script que es parte de la configuración rpm (redhat-rpm-config). También puede asegurarse de que este script esté allí incluyendo:

BuildRequires: redhat-rpm-config

y luego hacer lo mismo que ggiroux ha definido:

%if %{distribution} == 5 Requires: glibc.i686, libXext.i386, libXtst.i386 %else Requires: glibc.i686, libXext.i686, libXtst.i686 %endif