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