I'm attempting to use the %{dist}
tag in my RPM spec file to provide distribution-specific dependencies between Fedora Core (e.g. fc12
), CentOS 5 (e.g. el5
) and Amazon's Linux AMI:
Release: %_svn_revision%{?dist}
and
# Depencencies
%{?rhel:Requires: ...}
%{?fedora:Requires: ...}
Unfortunately, %{dist}
doesn't appear to be defined in CentOS 5.5, and I haven't found a distribution-specific conditional that matches CentOS 5.5 (I thought el5
would match, but doesn't appear to). This ticket reported the missing %{dist}
in CentOS in 2008, but hasn't been updated since 2009.
How can I get %{dist}
defined in CentOS and what conditional should I use to match CentOS 5?
Can any RPM gurus point me in the right direction?
The dist macros isn't defined on CentOS 5 because it isn't in /etc/rpm/macros.disttag
- there is a RPM named buildsys-macros-rhel
that provides it, or buildsys-macros
on fedora, but for some reason it is not repackaged by Centos.
Option 1) Download and install fedora build-macros from here
Option 2) invoke rpmbuild --define 'dist .el5' every time
Option 3) Manually edit /etc/rpm/macros.disttag to add macro definitions for rhel (5) and dist (.el5).
You can then use conditionals like this in your spec file:
%if 0%{?rhel} == 5
%{Requires: foo}
%endif