[CentOS] Helper variables like %{rhel} on CentOS

Akemi Yagi amyagi at gmail.com
Mon Jan 3 19:15:48 UTC 2011


On Mon, Jan 3, 2011 at 8:01 AM, Santi Saez <santisaez at woop.es> wrote:
> Hello,
>
> I'm trying to use helper variables like %{rhel} in a .SPEC file on
> CentOS (as they are defined in RHEL and Fedora [1]), but it seems they
> are not available.
>
> Is there any way to detect automatically CentOS release from a .SPEC
> file in a RPM build process?
>
> As a workaround, I use this hack:
>
>     %if 0%{?rhel} >= 5
>         (..)
>     %endif
>
> And when calling rpmbuild I use a conditional build, like:
>
>     $ rpmbuild -ba --clean --define "rhel 5"

You may want to look into the srpms of nx/freenx in the CentOS extras
repository. The spec file contains the following:

# centos_ver is a number (2,3,4,5). It can be provided in the build system or
# via the command line with the following define for rpmbuild
# --define "centos_ver 5"
# If centos_ver is not provided the following will find it and should work on
# all current redhat based EL rebuilds, will not work properly on FC though

%{!?centos_ver: %define centos_ver %(Z=`rpm -q --whatprovides
/etc/redhat-release`;A=`rpm -q --qf '%{V}' $Z`; echo ${A:0:1})}


I believe this was originally written by Johnny Hughes and is still in
use for those packages (now including the upcoming version "6").

Akemi



More information about the CentOS mailing list