Created
July 28, 2012 05:03
-
-
Save osterman/3191882 to your computer and use it in GitHub Desktop.
Generic RPM Spec for RubyGems
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%define ruby_sitelib %(ruby -rrbconfig -e "puts Config::CONFIG['sitelibdir']") | |
%define gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null) | |
%define gemname myrubygem | |
%define gemversion 1.0.0 | |
%define geminstdir %{gemdir}/gems/%{gemname}-%{gemversion} | |
%define gemfile %{gemname}-%{gemversion}.gem | |
%define gemsummary %(ruby -rrubygems -e 'puts YAML.load(`gem specification %{gemfile}`).summary') | |
%define gemdesc %(ruby -rrubygems -e 'puts YAML.load(`gem specification %{gemfile}`).description') | |
%define gemhomepage %(ruby -rrubygems -e 'puts YAML.load(`gem specification %{gemfile}`).homepage') | |
%define gemlicense %(ruby -rrubygems -e 'puts YAML.load(`gem specification %{gemfile}`).license || "Unknown"') | |
%define gemdeps %(ruby -rrubygems -e 'puts YAML.load(`gem specification %{gemfile}`.chomp).dependencies.map { |d| "rubygem(%s) %s" % [d.name, d.requirement] }.sort.join(", ")') | |
%define gemrelease %(date +"%%Y%%m%%d%%H%%M%%S") | |
Summary: %{gemsummary} | |
# The version is repeated in the name so as to allow multiple versions of the gem to be installed on the system. | |
Name: rubygem-%{gemname}-%{gemversion} | |
Version: %{gemversion} | |
Release: %{gemrelease}%{?dist} | |
Group: Development/Languages | |
License: %{gemlicense} | |
URL: %{gemhomepage} | |
Source0: http://rubygems.org/gems/%{gemfile} | |
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) | |
Requires: rubygems | |
Requires: %{gemdeps} | |
BuildRequires: rubygems | |
BuildRequires: rubygem(bundler) | |
BuildArch: noarch | |
Provides: rubygem(%{gemname}) = %{version} | |
%description | |
%{gemdesc} | |
%prep | |
%build | |
%install | |
rm -rf %{buildroot} | |
install --directory 0755 %{buildroot}%{gemdir} | |
gem install --local --install-dir %{buildroot}%{gemdir} \ | |
--force --rdoc %{SOURCE0} | |
install --directory 0755 %{buildroot}/%{_bindir} | |
mv %{buildroot}%{gemdir}/bin/%{gemname} %{buildroot}/%{_bindir} | |
find %{buildroot}%{geminstdir}/bin -type f | xargs chmod a+x | |
install --directory --mode 0755 %{buildroot}%{_sysconfdir}/%{gemname} | |
install --directory --mode 0755 %{buildroot}%{_initrddir} | |
install --mode 755 %{buildroot}%{geminstdir}/redhat/%{gemname}.initrc %{buildroot}%{_initrddir}/%{gemname} | |
install --directory --mode 0755 %{buildroot}%{_sysconfdir}/sysconfig | |
cat<<__EOF__>%{buildroot}/%{_sysconfdir}/sysconfig/%{gemname} | |
__EOF__ | |
%clean | |
rm -rf %{buildroot} | |
%files | |
%defattr(-, root, root, -) | |
%{_bindir}/%{gemname} | |
%{gemdir}/gems/%{gemname}-%{version}/ | |
%doc %{gemdir}/doc/%{gemname}-%{version} | |
%{gemdir}/cache/%{gemname}-%{version}.gem | |
%{gemdir}/specifications/%{gemname}-%{version}.gemspec | |
%{_initrddir}/%{gemname} | |
%{_sysconfdir}/%{gemname}/ | |
%{_sysconfdir}/sysconfig/%{gemname} | |
%changelog | |
* Fri Jul 27 2012 Erik Osterman <[email protected]> | |
- Initial package |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment