Fitting most of supported Fedora/EPEL versions in a single spec

František Dvořák valtri at civ.zcu.cz
Wed Jun 18 15:12:39 UTC 2014


Achilleas Pipinellis píše v st 18. 06. 2014 v 17:08 +0300:
> To the point.
> Now that we have some common ground between the packaging guidelines,
> I'm trying to get together a template for packaging: fc19, fc20, fc21,
> el6, el7.
> 
> I haven't yet packaged anything for EPEL6, so I searched ruby-sig and
> found some answers. So far I have written down the R/BR, so please
> correct me I am wrong. Here goes:
> 
> ```
> %if 0%{?fc19} || 0%{?fc20} || 0%{?el7}
> Requires: ruby(release)
> Requires: ruby(rubygems)
> %endif
> 
> %if 0%{?el6}
> Requires: ruby(abi) >= %{rubyabi}
> Requires: ruby(rubygems)
> BuildRequires: ruby(abi) >= %{rubyabi}
> %else
> BuildRequires: ruby(release)
> %endif
> 
> BuildRequires: rubygems-devel
> 
> %if 0%{?fc19} || 0%{?fc20} || 0%{?el7} || 0%{?el6}
> Provides: rubygem(%{gem_name}) = %{version}
> %endif
> ```
> 
> Next parts are:
> 
> 1) if gem has native extensions: different %install macro
> 2) if gem has minitest: build minitest5 for el7 [0]
> 
> If I left something out please advise.
> 

Plus "3)": add runtime gem-specific requires for Fedora <= 20 and EPEL
<= 7.

Independently I got this result (with the explicit EPEL6 ABI fix):

%if 0%{?rhel} && 0%{?rhel} <= 6
Requires:       ruby(abi) = %{rubyabi}
%else
Requires:       ruby(release)
%endif
%if 0%{?fedora} && 0%{?fedora} <= 20 || 0%{?rhel} && 0%{?rhel} <= 7
Requires:       ruby(rubygems)
Provides:       rubygem(%{gem_name}) = %{version}
%endif

... which looks equivalent.

Cheers,
  Frantisek



More information about the ruby-sig mailing list