[rubygems] And again rebuild 1.8.15 for f17-ruby
Mamoru Tasaka
mtasaka at fedoraproject.org
Sun Jan 29 11:40:55 UTC 2012
commit 65f96b2709a3c434e5ffe1077ce796d0ccbdfb3d
Author: Mamoru Tasaka <tasaka1 at localhost.localdomain>
Date: Sun Jan 29 20:40:51 2012 +0900
And again rebuild 1.8.15 for f17-ruby
rubygems.spec | 150 ++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 96 insertions(+), 54 deletions(-)
---
diff --git a/rubygems.spec b/rubygems.spec
index 08d19ad..6b600f9 100644
--- a/rubygems.spec
+++ b/rubygems.spec
@@ -1,12 +1,15 @@
# Upstream git:
# https://github.com/rubygems/rubygems.git
#
-%global gem_dir %(ruby -rrbconfig -e 'puts File::expand_path(File::join(Config::CONFIG["sitedir"],"..","gems"))')
-%global rb_ver %(ruby -rrbconfig -e 'puts Config::CONFIG["ruby_version"]')
-%global gem_home %{gem_dir}/%{rb_ver}
-%global ruby_sitelib %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]')
-%global repoid 75475
+# The RubyGems library has to stay out of Ruby directory three, since the
+# RubyGems should be share by all Ruby implementations.
+%global rubygems_dir %{_datadir}/rubygems
+
+# Specify custom RubyGems root and other related macros.
+%global gem_dir %{_datadir}/gems
+# TODO: Should we create arch specific rubygems-filesystem?
+%global gem_extdir %{_exec_prefix}/lib{,64}/gems
# Executing testsuite (enabling %%check section) will cause dependency loop.
# To avoid dependency loop when necessary, please set the following value to 0
@@ -14,14 +17,21 @@
Summary: The Ruby standard for packaging ruby libraries
Name: rubygems
-Version: 1.8.11
-Release: 2%{?dist}
+Version: 1.8.15
+Release: 2%{?dist}.1
Group: Development/Libraries
License: Ruby or MIT
-URL: http://rubyforge.org/projects/rubygems/
-Source0: http://rubyforge.org/frs/download.php/%{repoid}/rubygems-%{version}.tgz
-Patch0: rubygems-1.8.5-noarch-gemdir.patch
+URL: https://rubygems.org/
+Source0: http://production.cf.rubygems.org/rubygems/%{name}-%{version}.tgz
+
+# Sources from the works by Vít Ondruch <vondruch at redhat.com>
+# Please keep Source100 and Patch{105,109} in sync with ruby.spec
+
+Source100: operating_system.rb
+
+# Kill patch0 for ruby 1.9.x
+##Patch0: rubygems-1.8.5-noarch-gemdir.patch
# Will discuss upstream
# https://github.com/rubygems/rubygems/issues/120
# rubygems-Patches-28631
@@ -33,20 +43,30 @@ Patch3: rubygems-1.8.5-show-rdoc-process-verbosely.patch
# on 2011-10-01)
Patch6: rubygems-1.8.5-all-load-paths.patch
-Requires: ruby(abi) = 1.8
-Requires: ruby >= 1.8.7
-Requires: ruby-rdoc
-BuildRequires: ruby
-BuildRequires: ruby-rdoc
+# Patches from the works by Vít Ondruch <vondruch at redhat.com>
+# Fix the uninstaller, so that it doesn't say that gem doesn't exist
+# when it exists outside of the GEM_HOME (already fixed in the upstream)
+Patch105: ruby-1.9.3-rubygems-1.8.11-uninstaller.patch
+# Add support for installing binary extensions according to FHS.
+# https://github.com/rubygems/rubygems/issues/210
+Patch109: rubygems-1.8.11-binary-extensions.patch
+
+
+Requires: ruby(abi) = 1.9.1
+Requires: rubygem(rdoc) >= 3.9.4
+Requires: rubygem(io-console) >= 0.3
+BuildRequires: ruby(abi) = 1.9.1
%if %{enable_check}
# For mkmf.rb
BuildRequires: ruby-devel
-BuildRequires: rubygem(hoe)
BuildRequires: rubygem(minitest)
BuildRequires: rubygem(rake)
+BuildRequires: rubygem(rdoc) >= 3.9.4
+BuildRequires: rubygem(io-console) >= 0.3
%endif
BuildArch: noarch
Provides: ruby(rubygems) = %{version}-%{release}
+Provides: gem = %{version}-%{release}
%description
RubyGems is the Ruby standard for publishing and managing third party
@@ -64,10 +84,14 @@ Macros and development tools for packagin RubyGems.
%prep
%setup -q
-%patch0 -p1 -b .noarch
+#%%patch0 -p1 -b .noarch
+%if 1
%patch1 -p1 -b .insync
%patch3 -p1 -b .rdoc_v
%patch6 -p1 -b .load_path
+%endif
+%patch105 -p1 -b .uninst
+%patch109 -p1 -b .bindir
# Some of the library files start with #! which rpmlint doesn't like
# and doesn't make much sense
@@ -75,79 +99,97 @@ for f in `find lib -name \*.rb` ; do
head -1 $f | grep -q '^#!/usr/bin/env ruby' && sed -i -e '1d' $f
done
-# Cleanups
-rm -rf rubygems-update-%{version}/
-
%build
# Nothing
%install
-GEM_HOME=%{buildroot}/%{gem_home} \
- ruby setup.rb --prefix=/ \
- --no-rdoc --no-ri \
- --destdir=%{buildroot}/%{ruby_sitelib}/
+GEM_HOME=%{buildroot}/%{gem_dir} \
+ ruby setup.rb --rdoc --prefix=/ \
+ --destdir=%{buildroot}/%{rubygems_dir}/
mkdir -p %{buildroot}/%{_bindir}
-mv %{buildroot}/%{ruby_sitelib}/bin/gem %{buildroot}/%{_bindir}/gem
-rm -rf %{buildroot}/%{ruby_sitelib}/bin
-mv %{buildroot}/%{ruby_sitelib}/lib/* %{buildroot}/%{ruby_sitelib}/.
+mv %{buildroot}/%{rubygems_dir}/bin/gem %{buildroot}/%{_bindir}/gem
+rm -rf %{buildroot}/%{rubygems_dir}/bin
-# FIXME!!
-mkdir -p $RPM_BUILD_ROOT%{gem_home}/{cache,gems,specifications,doc}
+mv %{buildroot}/%{rubygems_dir}/lib/* %{buildroot}/%{rubygems_dir}/.
+# No longer needed
+rmdir %{buildroot}%{rubygems_dir}/lib
-# create macros.rubygems
+# Install custom operating_system.rb.
+mkdir -p %{buildroot}%{rubygems_dir}/rubygems/defaults
+install -cpm 0644 %{SOURCE100} %{buildroot}%{rubygems_dir}/rubygems/defaults/
+
+# Create gem folders.
+mkdir -p %{buildroot}%{gem_dir}/{cache,gems,specifications,doc}
+mkdir -p %{buildroot}%{gem_extdir}/exts
+
+# Create macros.rubygems file for rubygems-devel
mkdir -p %{buildroot}%{_sysconfdir}/rpm
+
cat >> %{buildroot}%{_sysconfdir}/rpm/macros.rubygems << \EOF
# The RubyGems root folder.
-%%gem_dir %{gem_home}
+%%gem_dir %{gem_dir}
# Common gem locations and files.
-# ... But don't provide gem_extdir for F-16 and below
-# - This directory won't work
%%gem_instdir %%{gem_dir}/gems/%%{gem_name}-%%{version}
+%%gem_extdir %%{_libdir}/gems/exts/%%{gem_name}-%%{version}
%%gem_libdir %%{gem_instdir}/lib
%%gem_cache %%{gem_dir}/cache/%%{gem_name}-%%{version}.gem
%%gem_spec %%{gem_dir}/specifications/%%{gem_name}-%%{version}.gemspec
%%gem_docdir %%{gem_dir}/doc/%%{gem_name}-%%{version}
EOF
-
%if %{enable_check}
%check
-# Don't use isolate
-sed -i.tmp -e '\@isolate at d' Rakefile
-rake test || :
-mv Rakefile.tmp Rakefile
+# Create an empty operating_system.rb, so that the system's one doesn't get used,
+# otherwise the test suite fails.
+mkdir -p lib/rubygems/defaults
+touch lib/rubygems/defaults/operating_system.rb
+
+# It is necessary to specify the paths using RUBYOPT to let the test suite pass."
+GEM_PATH=%{gem_dir} RUBYOPT="-Itest -I%{_libdir}/gems/exts/io-console-0.3/lib/ -I./lib/" \
+ testrb test
%endif
%files
-%defattr(-, root, root, -)
%doc README*
-#%%doc ChangeLog
%doc History.txt
%doc MIT.txt LICENSE.txt
%dir %{gem_dir}
-%dir %{gem_home}
-%dir %{gem_home}/cache
-%dir %{gem_home}/gems
-%dir %{gem_home}/specifications
-%doc %{gem_home}/doc
+%dir %{gem_dir}/cache
+%dir %{gem_dir}/gems
+%dir %{gem_dir}/specifications
+%doc %{gem_dir}/doc
%{_bindir}/gem
-%dir %{ruby_sitelib}/
-%{ruby_sitelib}/gauntlet_rubygems.rb
-%{ruby_sitelib}/lib
-%{ruby_sitelib}/rbconfig/
-%{ruby_sitelib}/rubygems/
-%{ruby_sitelib}/rubygems.rb
-%{ruby_sitelib}/ubygems.rb
+%dir %{rubygems_dir}/
+%{rubygems_dir}/rbconfig/
+%{rubygems_dir}/rubygems/
+%{rubygems_dir}/rubygems.rb
+%{rubygems_dir}/ubygems.rb
+%{rubygems_dir}/gauntlet_rubygems.rb
+
+%dir %{_exec_prefix}/lib/gems
+%dir %{_exec_prefix}/lib64/gems
+%dir %{_exec_prefix}/lib/gems/exts
+%dir %{_exec_prefix}/lib64/gems/exts
%files devel
%config(noreplace) %{_sysconfdir}/rpm/macros.rubygems
%changelog
-* Thu Jan 26 2012 Mamoru Tasaka <mtasaka at fedoraproject.org> - 1.8.11-1.1
-- Provide -devel package except for %%gem_extdir
+* Thu Jan 26 2012 Vít Ondruch <vondruch at redhat.com> - 1.8.15-2
+- Make test suite green.
+
+* Thu Jan 26 2012 Mamoru Tasaka <mtasaka at fedoraproject.org> - 1.8.15-1
+- 1.8.15
+
+* Thu Jan 26 2012 Mamoru Tasaka <mtasaka at fedoraproject.org> - 1.8.11-10
+- Incorpolate works by Vít Ondruch <vondruch at redhat.com>
+ made for ruby 1.9.x
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.8.11-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Mon Nov 11 2011 Mamoru Tasaka <mtasaka at fedoraproject.org> - 1.8.11-1
- 1.8.11
More information about the scm-commits
mailing list