# Upstream git: # https://github.com/rubygems/rubygems.git # # Bundled libraries versions %global molinillo_version 0.5.7 # Requires versions %global io_console_version 0.4.6 %global json_version 2.0.2 %global openssl_version 2.0.2 %global psych_version 2.2.2 %global rdoc_version 5.0.0 # The RubyGems library has to stay out of Ruby directory tree, since the # RubyGems should be share by all Ruby implementations. %global rubygems_dir %(ruby -e "puts RbConfig::CONFIG['rubygemsdir']") # TODO: These folders should go into rubygem-filesystem but how to achieve it, # since noarch package cannot provide arch dependent subpackages? # http://rpm.org/ticket/78 %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 %global enable_check 1 # It cannot be relied on %%{_libdir} for noarch packages. Query Ruby for # the right value. # https://fedorahosted.org/rel-eng/ticket/5257 %{!?buildtime_libdir:%global buildtime_libdir $(ruby -rrbconfig -e 'puts RbConfig::CONFIG["libdir"]')} Summary: The Ruby standard for packaging ruby libraries Name: rubygems Version: 2.7.7 Release: 104%{?dist} Group: Development/Libraries License: Ruby or MIT URL: https://rubygems.org/ Source0: http://production.cf.rubygems.org/rubygems/%{name}-%{version}.tgz # Sources from the works by Vít Ondruch # Please keep Source{1,5,8,9,10} in sync with ruby.spec Source1: operating_system.rb Source5: macros.rubygems # RPM dependency generators. Source8: rubygems.attr Source9: rubygems.req Source10: rubygems.prov Source13: rubygems.con # http://seclists.org/oss-sec/2013/q3/att-576/check_CVE-2013-4287_rb.bin # Slightly modified for exit status Source11: check_CVE-2013-4287.rb # http://seclists.org/oss-sec/2013/q3/att-621/check_CVE-2013-XXXX_rb.bin # Slightly modified for exit status, # Also modified to match: # http://seclists.org/oss-sec/2013/q3/605 Source12: check_CVE-2013-4363.rb # Add Gem.operating_system_defaults to allow packagers to override defaults. # https://github.com/rubygems/rubygems/pull/2116 Patch0: ruby-2.5.0-Add-Gem.operating_system_defaults.patch # Do not require C++ compiler. # https://github.com/rubygems/rubygems/pull/2367 Patch1: ruby-2.5.1-Avoid-need-of-C++-compiler-to-pass-the-test-suite.patch %{?load:%{SOURCE5}} Requires: ruby(release) Requires: rubygem(rdoc) >= %{rdoc_version} Requires: rubygem(io-console) >= %{io_console_version} Requires: rubygem(openssl) >= %{openssl_version} Requires: rubygem(psych) >= %{psych_version} BuildRequires: ruby(release) BuildRequires: rubygem(json) BuildRequires: rubygem(rdoc) %if %{enable_check} # For mkmf.rb BuildRequires: ruby-devel BuildRequires: rubygem(minitest) < 5 BuildRequires: rubygem(rake) # TestGemExtCmakeBuilder BuildRequires: %{_bindir}/cmake BuildRequires: git BuildRequires: rubygem(builder) BuildRequires: rubygem(bundler) %endif Provides: gem = %{version}-%{release} Provides: ruby(rubygems) = %{version}-%{release} # https://github.com/rubygems/rubygems/pull/1189#issuecomment-121600910 Provides: bundled(rubygem(molinillo)) = %{molinillo_version} Provides: bundled(rubygem-molinillo) = %{molinillo_version} BuildArch: noarch %description RubyGems is the Ruby standard for publishing and managing third party libraries. %package devel Summary: Macros and development tools for packaging RubyGems License: Ruby or MIT Requires: ruby(%{name}) = %{version}-%{release} # Needed for RDoc documentation format generation. Requires: rubygem(json) >= %{json_version} Requires: rubygem(rdoc) >= %{rdoc_version} BuildArch: noarch %description devel Macros and development tools for packaging RubyGems. %package doc Summary: Documentation for %{name} License: Ruby or MIT Requires: ruby(%{name}) = %{version}-%{release} BuildArch: noarch %description doc Documentation for %{name}. %prep %setup -q %patch0 -p1 %build # Nothing %install mkdir -p %{buildroot}{%{rubygems_dir},%{gem_dir}}/ GEM_HOME=%{buildroot}%{gem_dir} \ ruby setup.rb \ --document rdoc,ri \ --prefix=/ \ --backtrace \ --no-regenerate-binstubs \ --destdir=%{buildroot}%{rubygems_dir}/ mkdir -p %{buildroot}%{_bindir} mv %{buildroot}%{rubygems_dir}/bin/gem %{buildroot}%{_bindir}/. rm -rf %{buildroot}%{rubygems_dir}/bin mv %{buildroot}/%{rubygems_dir}/lib/* %{buildroot}%{rubygems_dir}/. # No longer needed rmdir %{buildroot}%{rubygems_dir}/lib # Kill bundled certificates, as they should be part of ca-certificates. for cert in \ rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem \ rubygems.org/AddTrustExternalCARoot.pem \ index.rubygems.org/GlobalSignRootCA.pem do rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert rm -r $(dirname %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert) done # Ensure there is not forgotten any certificate. test ! "$(ls -A %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/ 2>/dev/null)" # Move macros file into proper place and replace the %%{name} macro, since it # would be wrongly evaluated during build of other packages. mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d install -m 644 %{SOURCE5} %{buildroot}%{_rpmconfigdir}/macros.d/macros.rubygems sed -i "s/%%{name}/ruby/" %{buildroot}%{_rpmconfigdir}/macros.d/macros.rubygems # Install dependency generators. mkdir -p %{buildroot}%{_rpmconfigdir}/fileattrs install -m 644 %{SOURCE8} %{buildroot}%{_rpmconfigdir}/fileattrs install -m 755 %{SOURCE9} %{buildroot}%{_rpmconfigdir} install -m 755 %{SOURCE10} %{buildroot}%{_rpmconfigdir} install -m 755 %{SOURCE13} %{buildroot}%{_rpmconfigdir} # Install custom operating_system.rb. mkdir -p %{buildroot}%{rubygems_dir}/rubygems/defaults install -cpm 0644 %{SOURCE1} %{buildroot}%{rubygems_dir}/rubygems/defaults/ # Create gem folders. mkdir -p %{buildroot}%{gem_dir}/{cache,gems,specifications,extensions,doc} mkdir -p %{buildroot}%{gem_extdir}/ruby # Create below mkdir -p %{buildroot}%{gem_dir}/specifications/default # Remove bundled bundler rm -vr %{buildroot}%{rubygems_dir}/bundler* rm -vr %{buildroot}%{rubygems_dir}%{gem_dir}/specifications/default/bundler-*.gemspec rm -vr %{buildroot}%{rubygems_dir}%{buildroot}%{rubygems_dir}%{gem_dir}/specifications/gems/bundler* %check cat %{PATCH1} | patch -p1 sed -i '/^ def test_do_not_allow_invalid_client_cert_auth_connection/,/^ end/ s/^/#/g' \ test/rubygems/test_gem_remote_fetcher.rb # 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 to let the test suite pass." export GEM_PATH=%{gem_dir} export RUBYOPT="--disable-gems -Ilib:test" # Check Molinillo version correctness. [ "`ruby -e 'module Gem; module Resolver; end; end; require %{rubygems/resolver/molinillo/lib/molinillo/gem_metadata}; puts Gem::Resolver::Molinillo::VERSION' | tail -1`" \ == '%{molinillo_version}' ] %if %{enable_check} ruby -e 'Dir.glob "./test/**/test_*.rb", &method(:require)' # CVE vulnerability check ruby %{SOURCE11} ruby %{SOURCE12} %endif %files %doc README* %doc History.txt %license MIT.txt LICENSE.txt %doc CVE-*txt %{_bindir}/gem %dir %{rubygems_dir} %{rubygems_dir}/rubygems %{rubygems_dir}/rubygems.rb %{rubygems_dir}/ubygems.rb # Explicitly include only RubyGems directory strucure to avoid accidentally # packaged content. %dir %{gem_dir} %dir %{gem_dir}/build_info %dir %{gem_dir}/cache %dir %{gem_dir}/doc %dir %{gem_dir}/extensions %dir %{gem_dir}/gems %dir %{gem_dir}/specifications %dir %{gem_dir}/specifications/default %dir %{_exec_prefix}/lib*/gems %dir %{_exec_prefix}/lib*/gems/ruby %files devel %{_rpmconfigdir}/macros.d/macros.rubygems %{_rpmconfigdir}/fileattrs/rubygems.attr %{_rpmconfigdir}/rubygems.req %{_rpmconfigdir}/rubygems.prov %{_rpmconfigdir}/rubygems.con %files doc %doc %{gem_dir}/doc/* %changelog * Thu Aug 02 2018 Pavel Valena - 2.7.7-104 - Upgrade to Rubygems 2.7.7. * Sat Jul 14 2018 Fedora Release Engineering - 2.6.13-102 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Fri Feb 09 2018 Fedora Release Engineering - 2.6.13-101 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Tue Sep 05 2017 Vít Ondruch - 2.6.13-100 - Update to RubyGems 2.6.13. * Thu Jul 27 2017 Fedora Release Engineering - 2.6.10-101 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Tue Mar 07 2017 Vít Ondruch - 2.6.10-100 - Update to RubyGems 2.6.10. * Sat Feb 11 2017 Fedora Release Engineering - 2.4.8-102 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Thu Feb 04 2016 Fedora Release Engineering - 2.4.8-101 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Fri Jul 10 2015 Vít Ondruch - 2.4.8-100 - Update to RubyGems 2.4.8. * Fri Jun 19 2015 Fedora Release Engineering - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Sun Jun 08 2014 Fedora Release Engineering - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Wed May 07 2014 Vít Ondruch - 2.2.2-100 - Update to RubyGems 2.2.2. * Fri Jan 10 2014 Mamoru TASAKA - 2.1.11-115 - Add extension directory also to WhichCommand::gem_paths (bug 1051169) * Fri Dec 13 2013 Mamoru TASAKA - 2.1.11-114 - Add extension directory to contains_requirable_file (bug 1041391) * Thu Nov 14 2013 Mamoru TASAKA - 2.1.11-113 - Update to 2.1.11 * Sat Oct 26 2013 Mamoru TASAKA - 2.1.10-112 - Update to 2.1.10 * Mon Oct 21 2013 Mamoru TASAKA - 2.1.9-111 - Update to 2.1.9 * Tue Oct 15 2013 Mamoru TASAKA - 2.0.12-110 - Backport from 2.1.x branch to fix concurrent requires issue (ref:bug 989574) * Tue Oct 15 2013 Mamoru TASAKA - 2.0.12-109 - Update to 2.0.12 - Un-unlink %%{_sysconfdir}/pki/tls/cert.pem with discussion with Vít Ondruch * Wed Oct 9 2013 Mamoru TASAKA - 2.0.11-108 - Add BR: cmake for TestGemExtCmakeBuilder * Wed Oct 9 2013 Mamoru TASAKA - 2.0.11-107 - Update to 2.0.11 * Wed Sep 25 2013 Mamoru TASAKA - 2.0.10-106 - Update to 2.0.10 (fix for CVE-2013-4363 included) * Mon Sep 23 2013 Mamoru TASAKA - 2.0.9-105 - Update to 2.0.9 - Fix %%gem_dir/doc ownership (bug 1008866) - Patch for CVE-2013-4363 * Tue Sep 10 2013 Mamoru TASAKA - 2.0.8-104 - Update to 2.0.8, which fixes CVE-2013-4287 * Fri Aug 16 2013 Mamoru TASAKA - 2.0.7-103 - Update to 2.0.7 * Thu Aug 15 2013 Mamoru TASAKA - 2.0.6-102 - Update to 2.0.6 * Sun Aug 04 2013 Fedora Release Engineering - 2.0.5-101 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Mon Jul 15 2013 Mamoru TASAKA - 2.0.5-100 - Update to 2.0.5 - Show backtrace when %%gem_install fails * Thu Jul 04 2013 Vít Ondruch - 2.0.3-2 - Fix RubyGems search paths when building gems with native extension (rhbz#979133). * Thu Mar 21 2013 Mamoru TASAKA - 2.0.3-1 - Update to 2.0.3 * Fri Mar 08 2013 Mamoru TASAKA - 2.0.0-108 - Don't mark rpm config file as %%config (fpc#259) * Tue Mar 05 2013 Vít Ondruch - 2.0.0-107 - Avoid "method redefined;" warnings due to modified operating_system.rb. * Tue Mar 5 2013 Mamoru Tasaka - 2.0.0-106 - Fix regex for creating native extension directory (Vít Ondruch ) * Sun Mar 3 2013 Mamoru TASAKA - 2.0.0-105 - Kill creating unneeded LOCAL_LIBS\ = directory under %%gem_libdir when building native extension * Wed Feb 27 2013 Mamoru TASAKA - 2.0.0-104 - Kill %%gem_extdir * Tue Feb 26 2013 Vít Ondruch - 2.0.0-103 - Prevent squash of %%gem_install with following line. * Mon Feb 25 2013 Mamoru TASAKA - 2.0.0-102 - Provide %%gem_extdir_mri * Mon Feb 25 2013 Mamoru TASAKA - 2.0.0-101 - Split out ri-generated documentation * Mon Feb 25 2013 Mamoru TASAKA - 2.0.0-100 - Update to 2.0.0 * Mon Feb 25 2013 Mamoru TASAKA - 1.8.25-3 - Backport %%gem_install macro * Tue Feb 5 2013 Mamoru TASAKA - 1.8.25-2 - Fix rubygem(json) path * Tue Feb 5 2013 Mamoru TASAKA - 1.8.25-1 - 1.8.25 * Tue Feb 5 2013 Mamoru TASAKA - 1.8.24-4 - Bump release * Wed Sep 05 2012 Vít Ondruch - 1.8.24-3 - Fixed Fedora 18 mass rebuild issue. * Sat Jul 21 2012 Fedora Release Engineering - 1.8.24-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Sat Apr 28 2012 Mamoru Tasaka - 1.8.24-1 - 1.8.24 * Sat Apr 21 2012 Mamoru Tasaka - 1.8.23-20 - 1.8.23 - Use system-wide cert.pem * Wed Apr 18 2012 Mamoru Tasaka - 1.8.22-1 - 1.8.22 * Thu Jan 26 2012 Vít Ondruch - 1.8.15-2 - Make test suite green. * Thu Jan 26 2012 Mamoru Tasaka - 1.8.15-1 - 1.8.15 * Thu Jan 26 2012 Mamoru Tasaka - 1.8.11-10 - Incorpolate works by Vít Ondruch made for ruby 1.9.x * Sat Jan 14 2012 Fedora Release Engineering - 1.8.11-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Tue Nov 22 2011 Mamoru Tasaka - 1.8.11-1 - 1.8.11 * Sun Aug 28 2011 Mamoru Tasaka - 1.8.10-1 - 1.8.10 * Thu Aug 25 2011 Mamoru Tasaka - 1.8.9-1 - 1.8.9 * Sun Aug 21 2011 Mamoru Tasaka - 1.8.8-1 - 1.8.8 * Sat Aug 6 2011 Mamoru Tasaka - 1.8.7-1 - 1.8.7 * Wed Jul 27 2011 Mamoru Tasaka - 1.8.6-1 - 1.8.6 * Sat Jun 25 2011 Mamoru Tasaka - 1.8.5-2 - Fix Gem.latest_load_paths (for rubygem-gettext FTBFS) - Fix Gem.all_load_paths (for rubygem-gettext FTBFS, although it is already deprecated from 1.7.0) * Wed Jun 1 2011 Mamoru Tasaka - 1.8.5-1 - Try 1.8.5 * Tue May 24 2011 Mamoru Tasaka - 1.7.2-2 - Handle gemspec file with containing "invalid" date format generated with psych (ref: bug 706914) * Sat Apr 30 2011 Mamoru Tasaka - 1.7.2-1 - Update to 1.7.2 * Sat Mar 12 2011 Mamoru Tasaka - 1.6.2-1 - Update to 1.6.2 * Fri Mar 4 2011 Mamoru Tasaka - 1.6.1-1 - Update to 1.6.1 - Patch2, 4 upstreamed * Thu Mar 3 2011 Mamoru Tasaka - 1.6.0-1 - Update to 1.6.0 * Sun Feb 27 2011 Mamoru Tasaka - 1.5.3-1 - Update to 1.5.3 * Sun Feb 20 2011 Mamoru Tasaka - 1.5.2-1 - Update to 1.5.2 - Show rdoc process verbosely in verbose mode * Fri Feb 11 2011 Mamoru Tasaka - 1.5.0-2 - Modify in-sync patch to keep the original behavior (for testsuite) - Patch to make testsuite succeed, enabling testsuite * Thu Feb 10 2011 Mamoru Tasaka - 1.5.0-1 - Update to 1.5.0 * Wed Feb 09 2011 Fedora Release Engineering - 1.3.7-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Fri Oct 8 2010 Mamoru Tasaka - 1.3.7-2 - Show build process of extension library in sync * Mon May 17 2010 Mamoru Tasaka - 1.3.7-1 - Update to 1.3.7, dropping upstreamed patch * Wed Apr 28 2010 Mamoru Tasaka - 1.3.6-1 - Update to 1.3.6 - Show prefix with gem contents by default as shown in --help * Mon Sep 21 2009 Mamoru Tasaka - 1.3.5-1 - Update to 1.3.5 * Sun Jul 26 2009 Fedora Release Engineering - 1.3.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Wed Feb 25 2009 Fedora Release Engineering - 1.3.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Sun Nov 09 2008 Jeroen van Meeuwen - 1.3.1-1 - New upstream version * Tue Sep 16 2008 David Lutterkort - 1.2.0-2 - Bump release because I forgot to check in newer patch * Tue Sep 16 2008 David Lutterkort - 1.2.0-1 - Updated for new setup.rb - Simplified by removing conditionals that were needed for EL-4; there's just no way we can support that with newer rubygems * Wed Sep 3 2008 Tom "spot" Callaway - 0.9.4-2 - fix license tag * Fri Jul 27 2007 David Lutterkort - 0.9.4-1 - Conditionalize so it builds on RHEL4 * Tue Feb 27 2007 David Lutterkort - 0.9.2-1 - New version - Add patch0 to fix multilib sensitivity of Gem::dir (bz 227400) * Thu Jan 18 2007 David Lutterkort - 0.9.1-1 - New version; include LICENSE.txt and GPL.txt - avoid '..' in gem_dir to work around a bug in gem installer - add ruby-rdoc to requirements * Tue Jan 2 2007 David Lutterkort - 0.9.0-2 - Fix gem_dir to be arch independent - Mention dual licensing in License field * Fri Dec 22 2006 David Lutterkort - 0.9.0-1 - Updated to 0.9.0 - Changed to agree with Fedora Extras guidelines * Mon Jan 9 2006 David Lutterkort - 0.8.11-1 - Updated for 0.8.11 * Sun Oct 10 2004 Omar Kilani 0.8.1-1ts - First version of the package