Project

General

Profile

Download (4.02 KB) Statistics
| Branch: | Tag: | Revision:
# template: nonscl
<%-
require 'json'
root = `git rev-parse --show-toplevel`.strip
LICENSES = JSON.load(File.read(File.join(root, 'licenses.json')))
-%>
%global gem_name <%= spec.name %>
%global gem_require_name %{gem_name}

Name: rubygem-%{gem_name}
Version: <%= spec.version %>
Release: 1%{?dist}
Summary: <%= spec.summary.gsub(/\.$/, "") %>
Group: Development/Languages
License: <%= spec.licenses.empty? ? 'FIXME' : spec.licenses.map { |l| LICENSES.fetch(l, l) }.join(" and ") %>
<% if spec.homepage -%>
URL: <%= spec.homepage %>
<% end -%>
Source0: <%= download_path %>%{gem_name}-%{version}.gem

# start specfile generated dependencies
Requires: ruby(release)
<% for req in spec.required_ruby_version -%>
Requires: ruby <%= req %>
<% end -%>
<% for req in spec.required_rubygems_version -%>
Requires: ruby(rubygems) <%= req %>
<% end -%>
<% for d in spec.runtime_dependencies -%>
<% for req in d.requirement -%>
Requires: rubygem(<%= d.name %>) <%= req %>
<% end -%>
<% end -%>
BuildRequires: ruby(release)
<% for req in spec.required_ruby_version -%>
BuildRequires: ruby<%= "-devel" unless spec.extensions.empty? %> <%= req %>
<% end -%>
<% for req in spec.required_rubygems_version -%>
BuildRequires: rubygems-devel <%= req %>
<% end -%>
<% if spec.extensions.empty? -%>
BuildArch: noarch
<% else -%>
<% for d in spec.runtime_dependencies -%>
<% for req in d.requirement -%>
Requires: rubygem(<%= d.name %>) <%= req %>
<% end -%>
<% end -%>
<% end -%>
Provides: rubygem(%{gem_name}) = %{version}
# end specfile generated dependencies

%description
<%= spec.description %>

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

%description doc
Documentation for %{name}.
<% end # if doc_subpackage -%>

%prep
gem unpack %{SOURCE0}

%setup -q -D -T -n %{gem_name}-%{version}

gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec

%build
# Create the gem as gem install only works on a gem file
gem build %{gem_name}.gemspec

# %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir
# by default, so that we can move it into the buildroot in %%install
%gem_install

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

<% unless spec.extensions.empty? -%>
mkdir -p %{buildroot}%{gem_extdir_mri}
cp -a .%{gem_extdir_mri}/{gem.build_complete,*.so} %{buildroot}%{gem_extdir_mri}/

<% for ext in spec.extensions -%>
# Prevent dangling symlink in -debuginfo (rhbz#878863).
rm -rf %{buildroot}%{gem_instdir}/<%= ext.split(File::SEPARATOR).first %>/
<% end -%>

<% end -%>
<% unless spec.executables.nil? or spec.executables.empty? -%>
mkdir -p %{buildroot}%{_bindir}
cp -a .%{_bindir}/* \
%{buildroot}%{_bindir}/
find %{buildroot}%{gem_instdir}/<%= spec.bindir %> -type f | xargs chmod a+x

<% end -%>
<% unless spec.extensions.empty? -%>
%check
# Ideally, this would be something like this:
# GEM_PATH="%{buildroot}%{gem_dir}:$GEM_PATH" ruby -e "require '%{gem_require_name}'"
# But that fails to find native extensions on EL8, so we fake the structure that ruby expects
mkdir gem_ext_test
cp -a %{buildroot}%{gem_dir} gem_ext_test/
mkdir -p gem_ext_test/gems/extensions/%{_arch}-%{_target_os}/$(ruby -r rbconfig -e 'print RbConfig::CONFIG["ruby_version"]')/
cp -a %{buildroot}%{gem_extdir_mri} gem_ext_test/gems/extensions/%{_arch}-%{_target_os}/$(ruby -r rbconfig -e 'print RbConfig::CONFIG["ruby_version"]')/
GEM_PATH="./gem_ext_test/gems:$GEM_PATH" ruby -e "require '%{gem_require_name}'"
rm -rf gem_ext_test

<% end -%>
%files
%dir %{gem_instdir}
<% unless spec.executables.nil? or spec.executables.empty? -%>
<% for f in spec.executables -%>
%{_bindir}/<%= f %>
<% end -%>
<% end -%>
<% unless spec.extensions.empty? -%>
%{gem_extdir_mri}
<% end -%>
<%= main_file_entries(spec) %>
<% unless doc_subpackage -%>
%doc %{gem_docdir}
<%= doc_file_entries(spec) -%>
<% end -%>
%exclude %{gem_cache}
%{gem_spec}

<% if doc_subpackage -%>
%files doc
%doc %{gem_docdir}
<%= doc_file_entries(spec) %>
<% end # if doc_subpackage -%>

%changelog
(3-3/5)