gem2rpm

$ su -c "yum install rubygem-gem2rpm" 
$ gem2rpm -h
/usr/bin/gem2rpm [OPTIONS] GEMFILE
  Convert ruby Gems to source RPMs and specfiles
  Uses a template to generate the RPM specfile
  from the Gem spec
    -T, --current-template           Print the current template
    -t, --template TEMPLATE          Use TEMPLATE for the specfile
    -v, --version                    Print gem2rpm's version and exit
    -o, --output FILE                Send the specfile to FILE
    -s, --srpm                       Create a source RPM
    -l, --local                      Do not retrieve Gem information over
                                     the network. Use on disconnected machines
    -d, --dependencies               Print the dependencies of the gem
    -n, --nongem                     Generate a subpackage for non-gem use
        --no-doc                     Disable document subpackage

Generando un spec

Al ejecutar pasando un archivo gem, gem2rpm genera en stdout el resultado de su conversión. Para guardar en un archivo simplemente redirija la stdout a un archivo (> rubygem-gemname.spec).

$ gem2rpm SOURCES/jnunemaker-matchy-0.4.0.gem 
# Generated from jnunemaker-matchy-0.4.0.gem by gem2rpm -*- rpm-spec -*-
%global gemname jnunemaker-matchy

%global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null)
%global geminstdir %{gemdir}/gems/%{gemname}-%{version}
%global rubyabi 1.8

Summary: RSpec-esque matchers for use in Test::Unit
Name: rubygem-%{gemname}
Version: 0.4.0
Release: 1%{?dist}
Group: Development/Languages
License: GPLv2+ or Ruby
URL: http://matchy.rubyforge.org
Source0: http://rubygems.org/gems/%{gemname}-%{version}.gem
Requires: ruby(abi) = %{rubyabi}
Requires: ruby(rubygems) 
Requires: ruby 
BuildRequires: ruby(abi) = %{rubyabi}
BuildRequires: ruby(rubygems) 
BuildRequires: ruby 
BuildArch: noarch
Provides: rubygem(%{gemname}) = %{version}

%description
RSpec-esque matchers for use in Test::Unit

%package doc
Summary: Documentation for %{name}
Group: Documentation
Requires: %{name} = %{version}-%{release}
BuildArch: noarch

%description doc
Documentation for %{name}

%prep
%setup -q -c -T
mkdir -p .%{gemdir}
gem install --local --install-dir .%{gemdir} \
            --force %{SOURCE0}

%build

%install
mkdir -p %{buildroot}%{gemdir}
cp -a .%{gemdir}/* \
        %{buildroot}%{gemdir}/

%files
%dir %{geminstdir}
%{geminstdir}/lib
%{gemdir}/cache/%{gemname}-%{version}.gem
%{gemdir}/specifications/%{gemname}-%{version}.gemspec

%files doc
%doc %{gemdir}/doc/%{gemname}-%{version}
%doc %{geminstdir}/History.txt
%doc %{geminstdir}/Manifest.txt
%doc %{geminstdir}/README.rdoc

%changelog
* Thu Feb 02 2012 Guillermo <gomix@movix.fedora-ve.org> - 0.4.0-1
- Initial package

Generando un srpm

$ gem2rpm -s jnunemaker-matchy-0.4.0.gem