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