Compare commits

...
Sign in to create a new pull request.

31 commits

Author SHA1 Message Date
Fedora Release Engineering
7e4003d32d Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 12:55:56 +00:00
Fedora Release Engineering
d96fa24231 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 00:18:15 +00:00
Fedora Release Engineering
421aca0243 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 20:12:53 +00:00
Software Management Team
9dc3880e15 Eliminate use of obsolete %patchN syntax (#2283636) 2024-05-30 12:47:07 +02:00
Fedora Release Engineering
3deb1a7064 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 17:46:54 +00:00
Fedora Release Engineering
4ae38aeaca Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 18:40:03 +00:00
Fedora Release Engineering
f181990447 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 21:23:05 +00:00
Jun Aruga
da1ce52ba2 Update to RubyGems 3.3.25.
Resolves: rhbz#2132563
2022-11-04 13:37:22 +01:00
Vít Ondruch
d9386b9177 Update to RubyGems 3.3.22.
Resolves: rhbz#1941091
Resolves: rhbz#2046966
2022-09-15 15:58:05 +02:00
Fedora Release Engineering
cf5ca2d739 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 02:33:01 +00:00
Fedora Release Engineering
0937400645 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-21 19:29:54 +00:00
Fedora Release Engineering
302d85f8c4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 12:55:51 +00:00
Vít Ondruch
0dc319185b Enable additional test cases with Ruby load path setup correctly. 2021-03-11 19:02:21 +01:00
Vít Ondruch
c7ee33ec57 Update to RubyGems 3.2.14.
Resolves: rhbz#1905813
Resolves: rhbz#1923699
2021-03-10 18:59:38 +01:00
Fedora Release Engineering
9eb95a29a8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 16:42:58 +00:00
Fedora Release Engineering
4f22f48ab4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 07:18:40 +00:00
Vít Ondruch
2e4742a04a Update to RubyGems 3.1.4. 2020-06-24 13:54:45 +02:00
Vít Ondruch
634b956b77 Fix require behavior allowing to load libraries multiple times.
Resolves: rhbz#1835836
2020-05-28 14:13:03 +02:00
Vít Ondruch
03f7c46798 Update to RubyGems 3.1.3. 2020-05-18 15:16:49 +02:00
Pavel Valena
e19d9442c8 Upgrade to Rubygems 3.0.3.
Sync operating_system.rb with ruby package.
Also enahnce .gitignore and .spec files.
2020-05-18 15:15:35 +02:00
Vít Ondruch
3ad844443d Drop rubygems-devel subpackage.
There is no need to provide this sub-package, because there is always
rubygems-devel available coming along with ruby package.

This will make maitenance of rubygems package much easier, because it
won't need synchronization of various bits with ruby package.
2020-05-18 15:12:10 +02:00
Vít Ondruch
70bbbb78c2 Fix FTBFS due to Ruby 2.7, OpenSSL 1.1.1 and CMake 2.8+ incompatibilities.
Resolves: rhbz#1800046
2020-05-18 15:11:03 +02:00
Fedora Release Engineering
290f2e2e78 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 19:42:04 +00:00
04e86d73e8 Revert "rubygems fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1675964"
This reverts commit 366607586d.

Unretirement request: https://pagure.io/releng/issue/8797
2019-09-16 13:36:06 +02:00
Fedora Release Engineering
366607586d rubygems fails to build from source: https://bugzilla.redhat.com/show_bug.cgi?id=1675964 2019-08-08 16:32:40 +00:00
Fedora Release Engineering
4490edd12d - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 20:26:26 +00:00
Fedora Release Engineering
18b94f7548 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-02 13:19:02 +00:00
Igor Gnatenko
483842ba5f Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:47 +01:00
Fedora Release Engineering
540ac6b436 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 04:58:06 +00:00
Fedora Release Engineering
1f105e45e7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-09 15:11:13 +00:00
Vít Ondruch
c25bc8c3e4 Update to RubyGems 2.6.13. 2017-09-05 13:44:45 +02:00
10 changed files with 288 additions and 390 deletions

37
.gitignore vendored
View file

@ -1,36 +1 @@
rubygems-1.3.7.tgz
/rubygems-1.5.0.tgz
/rubygems-1.5.2.tgz
/rubygems-1.5.3.tgz
/rubygems-1.6.0.tgz
/rubygems-1.6.1.tgz
/rubygems-1.6.2.tgz
/rubygems-1.7.2.tgz
/rubygems-1.8.5.tgz
/rubygems-1.8.6.tgz
/rubygems-1.8.7.tgz
/rubygems-1.8.8.tgz
/rubygems-1.8.9.tgz
/rubygems-1.8.10.tgz
/rubygems-1.8.11.tgz
/rubygems-1.8.15.tgz
/rubygems-1.8.22.tgz
/rubygems-1.8.23.tgz
/rubygems-1.8.24.tgz
/rubygems-1.8.25.tgz
/rubygems-2.0.0.tgz
/rubygems-2.0.3.tgz
/rubygems-2.0.5.tgz
/rubygems-2.0.6.tgz
/rubygems-2.0.7.tgz
/rubygems-2.0.8.tgz
/rubygems-2.0.9.tgz
/rubygems-2.0.10.tgz
/rubygems-2.0.11.tgz
/rubygems-2.0.12.tgz
/rubygems-2.1.9.tgz
/rubygems-2.1.10.tgz
/rubygems-2.1.11.tgz
/rubygems-2.2.2.tgz
/rubygems-2.4.8.tgz
/rubygems-2.6.10.tgz
/rubygems-*.tgz

View file

@ -1,130 +0,0 @@
# The RubyGems root folder.
%gem_dir %{_datadir}/gems
%gem_archdir %{_libdir}/gems
# Common gem locations and files.
%gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}%{?prerelease}
%gem_extdir_mri %{gem_archdir}/%{name}/%{gem_name}-%{version}%{?prerelease}
%gem_libdir %{gem_instdir}/lib
%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}%{?prerelease}.gem
%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}%{?prerelease}.gemspec
%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}%{?prerelease}
# %gem_install - Install gem into appropriate directory.
#
# Usage: %gem_install [options]
#
# -n <gem_file> Overrides gem file name for installation.
# -d <install_dir> Set installation directory.
#
%gem_install(d:n:) \
mkdir -p %{-d*}%{!?-d:.%{gem_dir}} \
\
CONFIGURE_ARGS="--with-cflags='%{optflags}' $CONFIGURE_ARGS" \\\
gem install \\\
-V \\\
--local \\\
--build-root %{-d*}%{!?-d:.} \\\
--force \\\
--document=ri,rdoc \\\
%{-n*}%{!?-n:%{gem_name}-%{version}%{?prerelease}.gem} \
%{nil}
# For rubygems packages we want to filter out any provides caused by private
# libs in %%{gem_archdir}.
#
# Note that this must be invoked in the spec file, preferably as
# "%{?rubygems_default_filter}", before any %description block.
%rubygems_default_filter %{expand: \
%global __provides_exclude_from %{?__provides_exclude_from:%{__provides_exclude_from}|}^%{gem_extdir_mri}/.*\\\\.so$ \
}
# The 'read' command in gemspec_add _depand gemspec_remove_dep macros is not
# essential, but it is usefull to make the sript appear in build log.
# %gemspec_add_dep - Add dependency into .gemspec.
#
# Usage: %gemspec_add_dep -g <gem> [options] [requirements]
#
# Add dependency named <gem> to .gemspec file. The macro adds runtime
# dependency by default. The [requirements] argument can be used to specify
# the dependency constraints more precisely. It is expected to be valid Ruby
# code.
#
# -s <gemspec_file> Overrides the default .gemspec location.
# -d Add development dependecy.
#
%gemspec_add_dep(g:s:d) \
read -d '' gemspec_add_dep_script << 'EOR' || : \
gemspec_file = '%{-s*}%{!?-s:./%{gem_name}.gemspec}' \
\
name = '%{-g*}' \
requirements = %{*}%{!?1:nil} \
\
type = :%{!?-d:runtime}%{?-d:development} \
\
spec = Gem::Specification.load(gemspec_file) \
abort("#{gemspec_file} is not accessible.") unless spec \
\
dep = spec.dependencies.detect { |d| d.type == type && d.name == name } \
if dep \
dep.requirement.concat requirements \
else \
spec.public_send "add_#{type}_dependency", name, requirements \
end \
File.write gemspec_file, spec.to_ruby \
EOR\
echo "$gemspec_add_dep_script" | ruby \
unset -v gemspec_add_dep_script \
%{nil}
# %gemspec_remove_dep - Remove dependency from .gemspec.
#
# Usage: %gemspec_remove_dep -g <gem> [options] [requirements]
#
# Remove dependency named <gem> from .gemspec file. The macro removes runtime
# dependency by default. The [requirements] argument can be used to specify
# the dependency constraints more precisely. It is expected to be valid Ruby
# code. The macro fails if these specific requirements can't be removed.
#
# -s <gemspec_file> Overrides the default .gemspec location.
# -d Remove development dependecy.
#
%gemspec_remove_dep(g:s:d) \
read -d '' gemspec_remove_dep_script << 'EOR' || : \
gemspec_file = '%{-s*}%{!?-s:./%{gem_name}.gemspec}' \
\
name = '%{-g*}' \
requirements = %{*}%{!?1:nil} \
\
type = :%{!?-d:runtime}%{?-d:development} \
\
spec = Gem::Specification.load(gemspec_file) \
abort("#{gemspec_file} is not accessible.") unless spec \
\
dep = spec.dependencies.detect { |d| d.type == type && d.name == name } \
if dep \
if requirements \
requirements = Gem::Requirement.create(requirements).requirements \
requirements.each do |r| \
unless dep.requirement.requirements.reject! { |dependency_requirements| dependency_requirements == r } \
abort("Requirement '#{r.first} #{r.last}' was not possible to remove for dependency '#{dep}'!") \
end \
end \
spec.dependencies.delete dep if dep.requirement.requirements.empty? \
else \
spec.dependencies.delete dep \
end \
else \
abort("Dependency '#{name}' was not found!") \
end \
File.write gemspec_file, spec.to_ruby \
EOR\
echo "$gemspec_remove_dep_script" | ruby \
unset -v gemspec_remove_dep_script \
%{nil}

View file

@ -87,37 +87,39 @@ module Gem
# Remove methods we are going to override. This avoids "method redefined;"
# warnings otherwise issued by Ruby.
remove_method :operating_system_defaults if method_defined? :operating_system_defaults
remove_method :default_dir if method_defined? :default_dir
remove_method :default_path if method_defined? :default_path
remove_method :default_bindir if method_defined? :default_bindir
remove_method :default_ext_dir_for if method_defined? :default_ext_dir_for
##
# Regular user installs into user directory, root manages /usr/local.
def operating_system_defaults
unless opt_build_root?
options = if Process.uid == 0
"--install-dir=#{Gem.default_dirs[:local][:gem_dir]} --bindir #{Gem.default_dirs[:local][:bin_dir]}"
else
"--user-install --bindir #{File.join [Dir.home, 'bin']}"
end
{"gem" => options}
else
{}
end
end
##
# RubyGems default overrides.
def default_dir
if opt_build_root?
Gem.default_dirs[:system][:gem_dir]
elsif Process.uid == 0
Gem.default_dirs[:local][:gem_dir]
else
Gem.user_dir
end
Gem.default_dirs[:system][:gem_dir]
end
def default_path
path = default_dirs.collect {|location, paths| paths[:gem_dir]}
path.unshift Gem.user_dir if File.exist? Gem.user_home
end
def default_bindir
if opt_build_root?
Gem.default_dirs[:system][:bin_dir]
elsif Process.uid == 0
Gem.default_dirs[:local][:bin_dir]
else
File.join [Dir.home, 'bin']
end
path
end
def default_ext_dir_for base_dir

View file

@ -0,0 +1,68 @@
From 9f0ec0233f618cbb862629816b22491c3df79578 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Tue, 31 Mar 2015 16:37:44 +0200
Subject: [PATCH 3/4] Add ruby_version_dir_name support for RubyGems.
---
lib/rubygems/defaults.rb | 7 ++++---
test/rubygems/test_gem.rb | 5 +++--
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
index d4ff4a262c..3f9a5bf590 100644
--- a/lib/rubygems/defaults.rb
+++ b/lib/rubygems/defaults.rb
@@ -34,7 +34,7 @@ def self.default_spec_cache_dir
# specified in the environment
def self.default_dir
- @default_dir ||= File.join(RbConfig::CONFIG["rubylibprefix"], "gems", RbConfig::CONFIG["ruby_version"])
+ @default_dir ||= File.join(RbConfig::CONFIG["rubylibprefix"], "gems", RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"])
end
##
@@ -103,7 +103,8 @@ def self.user_dir
gem_dir = File.join(Gem.user_home, ".gem")
gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir)
parts = [gem_dir, ruby_engine]
- parts << RbConfig::CONFIG["ruby_version"] unless RbConfig::CONFIG["ruby_version"].empty?
+ ruby_version_dir_name = RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]
+ parts << ruby_version_dir_name unless ruby_version_dir_name.empty?
File.join parts
end
@@ -234,7 +235,7 @@ def self.vendor_dir # :nodoc:
return nil unless RbConfig::CONFIG.key? "vendordir"
File.join RbConfig::CONFIG["vendordir"], "gems",
- RbConfig::CONFIG["ruby_version"]
+ RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]
end
##
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index b25068405d..e9fef4a311 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -1395,7 +1395,8 @@ def test_self_use_paths
def test_self_user_dir
parts = [@userhome, ".gem", Gem.ruby_engine]
- parts << RbConfig::CONFIG["ruby_version"] unless RbConfig::CONFIG["ruby_version"].empty?
+ ruby_version_dir_name = RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]
+ parts << ruby_version_dir_name unless ruby_version_dir_name.empty?
FileUtils.mkdir_p File.join(parts)
@@ -1471,7 +1472,7 @@ def test_self_vendor_dir
vendordir(File.join(@tempdir, "vendor")) do
expected =
File.join RbConfig::CONFIG["vendordir"], "gems",
- RbConfig::CONFIG["ruby_version"]
+ RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]
assert_equal expected, Gem.vendor_dir
end
--
2.1.0

View file

@ -0,0 +1,17 @@
diff --git a/setup.rb b/setup.rb
index 16ffa7215..49f6bfca5 100644
--- a/setup.rb
+++ b/setup.rb
@@ -24,6 +24,12 @@ require 'rubygems/exceptions'
Gem::CommandManager.instance.register_command :setup
+require 'rubygems/commands/setup_command'
+
+class Gem::Commands::SetupCommand
+ def install_default_bundler_gem(bin_dir); end
+end
+
args = ARGV.clone
if ENV["GEM_PREV_VER"]
args = [ "--previous-version", ENV["GEM_PREV_VER"] ] + args

View file

@ -1,5 +0,0 @@
%__rubygems_requires %{_rpmconfigdir}/rubygems.req
%__rubygems_provides %{_rpmconfigdir}/rubygems.prov
# In non-gem packages, the %%{gem_name} macro is not available and the macro
# stays unexpanded which leads to "invalid regex" error (rhbz#1154067).
%__rubygems_path ^%{?gem_name:%{gem_spec}}%{!?gem_name:this_should_never_match_anything}$

View file

@ -1,36 +0,0 @@
#!/usr/bin/ruby
require 'rubygems/package'
module RubyGemsProv
module Helpers
# If there is some prelease version files, such as rc1 (i.e. non-numeric
# field), prepend this field by tilde instead of dot.
def self.normalize_prerelease(version)
if version.prerelease?
prerelease = version.version.sub /^#{version.release}\./, ''
"#{version.release}-0.1.#{prerelease}"
else
"#{version.release}-1"
end
end
end
# Reports all functionality gem provides.
def self.provides
while filename = gets
filename.strip!
begin
specification = Gem::Specification.load filename
puts "rubygem(#{specification.name}) = #{Helpers::normalize_prerelease(specification.version)}"
rescue => e
# Ignore all errors.
end
end
end
end
if __FILE__ == $0
RubyGemsProv::provides
end

View file

@ -1,81 +0,0 @@
#!/usr/bin/ruby
require 'rubygems/package'
module RubyGemsReq
module Helpers
# Expands '~>' and '!=' gem requirements.
def self.expand_requirement(requirements)
requirements.inject([]) do |output, r|
output.concat case r.first
when '~>'
expand_pessimistic_requirement(r)
when '!='
expand_not_equal_requirement(r)
else
[r]
end
end
end
# Expands the pessimistic version operator '~>' into equivalent '>=' and
# '<' pair.
def self.expand_pessimistic_requirement(requirement)
next_version = Gem::Version.create(requirement.last).bump
return ['>=', requirement.last], ['<', next_version]
end
# Expands the not equal version operator '!=' into equivalent '<' and
# '>' pair.
def self.expand_not_equal_requirement(requirement)
return ['<', requirement.last], ['>', requirement.last]
end
# Converts Gem::Requirement into array of requirements strings compatible
# with RPM .spec file.
def self.requirement_versions_to_rpm(requirement)
self.expand_requirement(requirement.requirements).map do |op, version|
version == Gem::Version.new(0) ? "" : "#{op} #{version}"
end
end
end
# Report RubyGems dependency, versioned if required.
def self.rubygems_dependency(specification)
Helpers::requirement_versions_to_rpm(specification.required_rubygems_version).each do |requirement|
dependency_string = "ruby(rubygems)"
dependency_string += " #{specification.required_rubygems_version}" if requirement && requirement.length > 0
puts dependency_string
end
end
# Report all gem dependencies including their version.
def self.gem_depenencies(specification)
specification.runtime_dependencies.each do |dependency|
Helpers::requirement_versions_to_rpm(dependency.requirement).each do |requirement|
dependency_string = "rubygem(#{dependency.name})"
dependency_string += " #{requirement}" if requirement && requirement.length > 0
puts dependency_string
end
end
end
# Reports all requirements specified by all provided .gemspec files.
def self.requires
while filename = gets
filename.strip!
begin
specification = Gem::Specification.load filename
rubygems_dependency(specification)
gem_depenencies(specification)
rescue => e
# Ignore all errors.
end
end
end
end
if __FILE__ == $0
RubyGemsReq::requires
end

View file

@ -3,16 +3,19 @@
#
# Bundled libraries versions
%global molinillo_version 0.5.5
%global molinillo_version 0.7.0
%global optparse_version 0.2.0
# TODO: Check the version if/when available in library.
%global tsort_version 0.1.0
# 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
%global bundler_version 2.3.25
%global io_console_version 0.5.6
%global openssl_version 2.2.0
%global psych_version 3.3.0
%global rdoc_version 6.3.0
# The RubyGems library has to stay out of Ruby directory three, since the
# 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']")
@ -23,7 +26,7 @@
# 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
%bcond_with bootstrap
# It cannot be relied on %%{_libdir} for noarch packages. Query Ruby for
# the right value.
@ -32,21 +35,18 @@
Summary: The Ruby standard for packaging ruby libraries
Name: rubygems
Version: 2.6.10
Release: 101%{?dist}
Group: Development/Libraries
License: Ruby or MIT
Version: 3.3.25
Release: 207%{?dist}
# BSD-2-Clause: lib/rubygems/tsort/
# BSD-2-Clause OR RUBY: lib/rubygems/optparse/
# MIT: lib/rubygems/resolver/molinillo
License: (Ruby OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR RUBY) AND MIT
URL: https://rubygems.org/
Source0: http://production.cf.rubygems.org/rubygems/%{name}-%{version}.tgz
Source0: https://rubygems.org/rubygems/%{name}-%{version}.tgz
# Sources from the works by Vít Ondruch <vondruch@redhat.com>
# Please keep Source{1,5,8,9,10} in sync with ruby.spec
# NOTE: Keep Source1 in sync with ruby.spec.
Source1: operating_system.rb
Source5: macros.rubygems
# RPM dependency generators.
Source8: rubygems.attr
Source9: rubygems.req
Source10: rubygems.prov
# 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
@ -55,31 +55,37 @@ Source11: check_CVE-2013-4287.rb
# Also modified to match:
# http://seclists.org/oss-sec/2013/q3/605
Source12: check_CVE-2013-4363.rb
# Fix ruby_version abuse.
# https://bugs.ruby-lang.org/issues/11002
# NOTE: Keep this patch in sync with ruby.spec.
Patch0: ruby-2.3.0-ruby_version.patch
# Bundler installation does not respec `--destdir`. But we ship Bundler in
# independent package, therefore just ignore the installation altogether.
# https://github.com/rubygems/rubygems/issues/3604
Patch1: rubygems-3.1.3-Avoid-Bundler-installation.patch
%{?load:%{SOURCE5}}
Requires: ruby(release)
Recommends: rubygem(bundler) >= %{bundler_version}
Recommends: rubygem(rdoc) >= %{rdoc_version}
Recommends: 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}
BuildRequires: rubygems-devel
%if %{without bootstrap}
# For mkmf.rb
BuildRequires: ruby-devel
BuildRequires: rubygem(minitest) < 5
BuildRequires: rubygem(rake)
# TestGemExtCmakeBuilder
BuildRequires: rubygem(test-unit)
BuildRequires: %{_bindir}/cmake
BuildRequires: git
BuildRequires: rubygem(builder)
BuildRequires: %{_bindir}/git
BuildRequires: %{_bindir}/gcc
BuildRequires: rubygem(rake)
BuildRequires: rubygem(webrick)
%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
@ -87,22 +93,8 @@ BuildArch: noarch
RubyGems is the Ruby standard for publishing and managing third party
libraries.
%package devel
Summary: Macros and development tools for packaging RubyGems
Group: Development/Libraries
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}
Group: Development/Libraries
License: Ruby or MIT
Requires: ruby(%{name}) = %{version}-%{release}
BuildArch: noarch
@ -113,76 +105,93 @@ Documentation for %{name}.
%prep
%setup -q
%patch 0 -p1
%patch 1 -p1
%build
# Nothing
%install
GEM_HOME=%{buildroot}/%{gem_dir} \
mkdir -p %{buildroot}{%{rubygems_dir},%{gem_dir}}/
GEM_HOME=%{buildroot}%{gem_dir} \
ruby setup.rb \
--document rdoc,ri \
--prefix=/ \
--backtrace \
--destdir=%{buildroot}/%{rubygems_dir}/
--no-regenerate-binstubs \
--destdir=%{buildroot}%{rubygems_dir}/
mkdir -p %{buildroot}/%{_bindir}
mv %{buildroot}/%{rubygems_dir}/bin/gem %{buildroot}/%{_bindir}/gem
rm -rf %{buildroot}/%{rubygems_dir}/bin
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}/.
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
.document \
rubygems.org/GlobalSignRootCA.pem \
rubygems.org/GlobalSignRootCA_R3.pem
do
rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert
rm -r $(dirname %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert)
rm -d $(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}
test ! "$(ls -A %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/ 2>/dev/null)"
# 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_dir}/{cache,gems,specifications,extensions,doc,plugins}
mkdir -p %{buildroot}%{gem_extdir}/ruby
# Create below
mkdir -p %{buildroot}%{gem_dir}/specifications/default
# Remove bundled bundler
rm -vr %{buildroot}%{rubygems_dir}/bundler*
%check
# 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 Bundler version.
[ "`RUBYOPT=-Ibundler/lib ruby -rbundler/version -e 'puts Bundler::VERSION'| tail -1`" \
== '%{bundler_version}' ]
# 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`" \
[ "`RUBYOPT=-Ilib ruby -e 'module Gem; class 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)'
# Check optparse version correctness.
[ "`RUBYOPT=-Ilib ruby -e 'require %{rubygems/optparse/lib/optparse}; puts Gem::OptionParser::Version' | tail -1`" \
== '%{optparse_version}' ]
%if %{without bootstrap}
# util directory with changelog generator are not shipped in release archive.
mv test/test_changelog_generator.rb{,.disabled}
# Put all required libraries on the `$LOAD_PATH`, where the original Ruby
# `require` can find them. This prevents the RubyGems load machinery from
# running and failing to find `gem.build_complete` files for sytem packages
# and therefore raising warnings such as: "Ignoring json-2.5.1 because its
# extensions are not built. Try: gem pristine json --version 2.5.1".
# https://github.com/rubygems/rubygems/pull/4446
export RUBYOPT="-I$(ruby -e 'size = $LOAD_PATH.size; %w(rake test-unit rdoc webrick).each {|r| require r}; puts $LOAD_PATH[...-size].join ?:')"
# Rakefile is not shipped anymore => emulate its content.
# https://github.com/rubygems/rubygems/blob/v3.3.22/Rakefile#L56-L64
# The `test_realworld_{default_gem,upgraded_default_gem}` needs the same
# treatment as the have in Ruby repository. Use `GEM_COMMAND` to skip them.
GEM_COMMAND="skip test_realworld_{default_gem,upgraded_default_gem}" \
ruby -Itest:bundler/lib:lib -e 'Dir.glob "./test/**/test_*.rb", &method(:require)' - \
# CVE vulnerability check
ruby %{SOURCE11}
@ -190,15 +199,23 @@ ruby %{SOURCE12}
%endif
%files
%doc README*
%doc History.txt
%doc CODE_OF_CONDUCT.md
%doc CHANGELOG.md
%doc CONTRIBUTING.md
%doc MAINTAINERS.txt
%doc POLICIES.md
%doc README.md
%doc UPGRADING.md
%license MIT.txt LICENSE.txt
%doc CVE-*txt
%{_bindir}/gem
%dir %{rubygems_dir}
%{rubygems_dir}/rubygems
%{rubygems_dir}/rubygems.rb
%{rubygems_dir}/ubygems.rb
%exclude %{rubygems_dir}/rubygems/optparse/.*
%license %{rubygems_dir}/rubygems/optparse/COPYING
%license %{rubygems_dir}/rubygems/resolver/molinillo/LICENSE
%exclude %{rubygems_dir}/rubygems/tsort/.*
%license %{rubygems_dir}/rubygems/tsort/LICENSE.txt
# Explicitly include only RubyGems directory strucure to avoid accidentally
# packaged content.
@ -208,22 +225,103 @@ ruby %{SOURCE12}
%dir %{gem_dir}/doc
%dir %{gem_dir}/extensions
%dir %{gem_dir}/gems
%dir %{gem_dir}/plugins
%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
%files doc
%doc %{gem_dir}/doc/*
%changelog
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.25-207
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.25-206
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.25-205
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.25-204
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.25-203
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.25-202
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Nov 03 2022 Jun Aruga <jaruga@redhat.com> - 3.3.25-201
- Update to RubyGems 3.3.25.
Resolves: rhbz#2132563
* Thu Sep 08 2022 Vít Ondruch <vondruch@redhat.com> - 3.3.22-201
- Update to RubyGems 3.3.22.
Resolves: rhbz#1941091
Resolves: rhbz#2046966
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.14-204
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.14-203
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.14-202
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Thu Mar 11 2021 Vít Ondruch <vondruch@redhat.com> - 3.2.14-201
- Enable additional test cases with Ruby load path setup correctly.
* Fri Mar 05 2021 Vít Ondruch <vondruch@redhat.com> - 3.2.14-200
- Update to RubyGems 3.2.14.
Resolves: rhbz#1905813
Resolves: rhbz#1923699
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.4-202
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.4-201
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jun 24 2020 Vít Ondruch <vondruch@redhat.com> - 3.1.4-200
- Update to RubyGems 3.1.4.
* Thu May 28 2020 Vít Ondruch <vondruch@redhat.com> - 3.1.3-201
- Fix `require` behavior allowing to load libraries multiple times.
Resolves: rhbz#1835836
* Thu May 07 2020 Vít Ondruch <vondruch@redhat.com> - 3.1.3-200
- Update to RubyGems 3.1.3.
* Thu May 07 2020 Pavel Valena <pvalena@redhat.com> - 3.0.3-106
- Upgrade to Rubygems 3.0.3.
* Thu May 07 2020 Vít Ondruch <vondruch@redhat.com> - 2.6.13-106
- Fix FTBFS due to Ruby 2.7, OpenSSL 1.1.1 and CMake 2.8+ incompatibilities.
Resolves: rhbz#1800046
- Drop rubygems-devel subpackage.
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.13-105
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.13-104
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.13-103
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.13-102
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.13-101
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Sep 05 2017 Vít Ondruch <vondruch@redhat.com> - 2.6.13-100
- Update to RubyGems 2.6.13.
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6.10-101
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

View file

@ -1 +1 @@
SHA512 (rubygems-2.6.10.tgz) = 5f771e26fa57290a7dfb4c50778af4617964bb72141e757f538da2619ac36fa247715fb3f8cff314e5a573b27a38439c9a8a96fd37d806554e6f37d49608f6b7
SHA512 (rubygems-3.3.25.tgz) = 0ec39f4110c0ae21b3a2acb97e78220a429b3340a1498d48e663e98ebdc16123cc99b455474bc43d116a6b7c967340aebd77d93c13edcb3f9112e6614759216a