rpm spec: conditional require based of distro version

I'm trying to write a single rpm spec for RHEL/CentOS/SL 5 and 6. This spec is for python app, so there is no differences in build process. But on RHEL/CentOS5 I need to add one additional dependency.

How would I define dependency only for el5? I've tried following:

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

Does not work (build on CentOS5 does not adds kmod-coretemp dependency).

I've tried also following:

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

It reports with syntax error. I'm sure dist macro is set and contains 'el5'. But I'm not sure what is the syntax of if conditionals in rpm? rpmguide does not have detailed answer.


Solution 1:

Dist tag packaging guidelines.

Solution 2:

The Fedora wiki, as usual, provides the best guidelines about packaging. Take a look at the Packaging:DistTag page. You can use the %{el5} variable and a shorthand conditional to ensure that the relevent Require line is used when building packages for EL5.

%{?el5:Requires: kmod-coretemp}

You'll probably want to add the dist tag to the version field to avoid later confusion between packages:

Release: 1%{?dist}

See Purpose of the Dist Tag.