Upgrade to Ruby 3.0.1.

Rebased from Fedora rawhide, commit: 6b2ff68.

* Except "Fix FTBFS due to an incompatible load" as that is included as
  a separate commit to highlight the change.
* Add missing `rubygem-` prefix for bundled provide of 'connection_pool'.
* Pass ldflags to gem install via CONFIGURE_ARGS
* Remove IRB dependency from rubygem-rdoc.
* Fix flaky excon test suite.
* Properly support DWARF5 debug information.
  Related: rhbz#1920533
* Bundle OpenSSL into StdLib.
* Fix SEGFAULT in rubygem-shoulda-matchers test suite.
* Provide `gem.build_complete` file for binary gems.
* Re-enable test suite.
* ruby-default-gems have to depend on rubygem(io-console) due to
  reline.
* Fix SEGFAULT preventing rubygem-unicode to build on armv7hl.
* Add support for reworked RubyGems plugins.
* Use proper path for plugin wrappers.
* Extract RSS and REXML into separate subpackages, because they were
   moved from default gems to bundled gems.
* Drop Net::Telnet and XMLRPC packages, because they were dropped from
  Ruby.

Resolves: rhbz#1938942
This commit is contained in:
Jarek Prokop 2021-06-01 12:02:21 +02:00
parent 6261d5976c
commit 8475ee2d69
17 changed files with 625 additions and 468 deletions

3
.gitignore vendored
View File

@ -1,4 +1,3 @@
/*/ /*/
/ruby-2.*.tar.bz2 /ruby-*.tar.xz
/ruby-2.*.tar.xz
/*.rpm /*.rpm

View File

@ -9,6 +9,7 @@
%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}%{?prerelease}.gem %gem_cache %{gem_dir}/cache/%{gem_name}-%{version}%{?prerelease}.gem
%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}%{?prerelease}.gemspec %gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}%{?prerelease}.gemspec
%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}%{?prerelease} %gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}%{?prerelease}
%gem_plugin %{gem_dir}/plugins/%{gem_name}_plugin.rb
# %gem_install - Install gem into appropriate directory. # %gem_install - Install gem into appropriate directory.

View File

@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac
index d261ea57b5..3c13076b82 100644 index d261ea57b5..3c13076b82 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -3115,6 +3115,11 @@ AS_IF([test ${multiarch+set}], [ @@ -3211,6 +3211,11 @@ AS_IF([test ${multiarch+set}], [
]) ])
archlibdir='${libdir}/${arch}' archlibdir='${libdir}/${arch}'

View File

@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac
index c42436c23d..d261ea57b5 100644 index c42436c23d..d261ea57b5 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -3753,7 +3753,8 @@ AS_CASE(["$ruby_version_dir_name"], @@ -3852,7 +3852,8 @@ AS_CASE(["$ruby_version_dir_name"],
ruby_version_dir=/'${ruby_version_dir_name}' ruby_version_dir=/'${ruby_version_dir_name}'
if test -z "${ruby_version_dir_name}"; then if test -z "${ruby_version_dir_name}"; then

View File

@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac
index 3c13076b82..93af30321d 100644 index 3c13076b82..93af30321d 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -3817,6 +3817,8 @@ AC_SUBST(vendorarchdir)dnl @@ -3916,6 +3916,8 @@ AC_SUBST(vendorarchdir)dnl
AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl
AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl

View File

@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac
index 93af30321d..bc13397e0e 100644 index 93af30321d..bc13397e0e 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -3789,6 +3789,10 @@ AC_ARG_WITH(vendorarchdir, @@ -3888,6 +3888,10 @@ AC_ARG_WITH(vendorarchdir,
[vendorarchdir=$withval], [vendorarchdir=$withval],
[vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}]) [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}])
@ -26,7 +26,7 @@ index 93af30321d..bc13397e0e 100644
AS_IF([test "${LOAD_RELATIVE+set}"], [ AS_IF([test "${LOAD_RELATIVE+set}"], [
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
RUBY_EXEC_PREFIX='' RUBY_EXEC_PREFIX=''
@@ -3813,6 +3817,7 @@ AC_SUBST(sitearchdir)dnl @@ -3912,6 +3916,7 @@ AC_SUBST(sitearchdir)dnl
AC_SUBST(vendordir)dnl AC_SUBST(vendordir)dnl
AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorlibdir)dnl
AC_SUBST(vendorarchdir)dnl AC_SUBST(vendorarchdir)dnl
@ -64,10 +64,10 @@ index 79c003e..34f2382 100644
% R = {} % R = {}
% R["ruby_version"] = '"RUBY_LIB_VERSION"' % R["ruby_version"] = '"RUBY_LIB_VERSION"'
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index b47b6e1..0b99408 100755 index e9110a17ca..76a1f0a315 100755
--- a/tool/rbinstall.rb --- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb +++ b/tool/rbinstall.rb
@@ -343,6 +343,7 @@ def CONFIG.[](name, mandatory = false) @@ -348,6 +348,7 @@ def CONFIG.[](name, mandatory = false)
vendorlibdir = CONFIG["vendorlibdir"] vendorlibdir = CONFIG["vendorlibdir"]
vendorarchlibdir = CONFIG["vendorarchdir"] vendorarchlibdir = CONFIG["vendorarchdir"]
end end
@ -75,7 +75,7 @@ index b47b6e1..0b99408 100755
mandir = CONFIG["mandir", true] mandir = CONFIG["mandir", true]
docdir = CONFIG["docdir", true] docdir = CONFIG["docdir", true]
enable_shared = CONFIG["ENABLE_SHARED"] == 'yes' enable_shared = CONFIG["ENABLE_SHARED"] == 'yes'
@@ -570,7 +571,16 @@ def stub @@ -580,7 +581,16 @@ def stub
install?(:local, :comm, :lib) do install?(:local, :comm, :lib) do
prepare "library scripts", rubylibdir prepare "library scripts", rubylibdir
noinst = %w[*.txt *.rdoc *.gemspec] noinst = %w[*.txt *.rdoc *.gemspec]

View File

@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac
index 80b137e380..63cd3b4f8b 100644 index 80b137e380..63cd3b4f8b 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -3704,9 +3704,6 @@ AS_CASE(["$target_os"], @@ -3803,9 +3803,6 @@ AS_CASE(["$target_os"],
rubyw_install_name='$(RUBYW_INSTALL_NAME)' rubyw_install_name='$(RUBYW_INSTALL_NAME)'
]) ])
@ -30,7 +30,7 @@ index 80b137e380..63cd3b4f8b 100644
rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'} rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'}
AC_ARG_WITH(rubyarchprefix, AC_ARG_WITH(rubyarchprefix,
AS_HELP_STRING([--with-rubyarchprefix=DIR], AS_HELP_STRING([--with-rubyarchprefix=DIR],
@@ -3729,56 +3726,62 @@ AC_ARG_WITH(ridir, @@ -3828,56 +3825,62 @@ AC_ARG_WITH(ridir,
AC_SUBST(ridir) AC_SUBST(ridir)
AC_SUBST(RI_BASE_NAME) AC_SUBST(RI_BASE_NAME)
@ -120,7 +120,7 @@ index 80b137e380..63cd3b4f8b 100644
AS_IF([test "${LOAD_RELATIVE+set}"], [ AS_IF([test "${LOAD_RELATIVE+set}"], [
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
@@ -3795,6 +3798,7 @@ AC_SUBST(sitearchincludedir)dnl @@ -3894,6 +3897,7 @@ AC_SUBST(sitearchincludedir)dnl
AC_SUBST(arch)dnl AC_SUBST(arch)dnl
AC_SUBST(sitearch)dnl AC_SUBST(sitearch)dnl
AC_SUBST(ruby_version)dnl AC_SUBST(ruby_version)dnl
@ -165,13 +165,13 @@ index 970cb91..5bf8230 100644
- version = RbConfig::CONFIG['ruby_version'] - version = RbConfig::CONFIG['ruby_version']
+ version = RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + version = RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']
BASE = if RbConfig::CONFIG.key? 'ridir' then BASE = File.join RbConfig::CONFIG['ridir'], version
File.join RbConfig::CONFIG['ridir'], version
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index d4c110e..d39c9a6 100755 index d4c110e..d39c9a6 100755
--- a/tool/rbinstall.rb --- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb +++ b/tool/rbinstall.rb
@@ -433,7 +433,7 @@ def CONFIG.[](name, mandatory = false) @@ -438,7 +438,7 @@ def CONFIG.[](name, mandatory = false)
install?(:doc, :rdoc) do install?(:doc, :rdoc) do
if $rdocdir if $rdocdir
@ -198,33 +198,33 @@ diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
index d4ff4a262c..3f9a5bf590 100644 index d4ff4a262c..3f9a5bf590 100644
--- a/lib/rubygems/defaults.rb --- a/lib/rubygems/defaults.rb
+++ b/lib/rubygems/defaults.rb +++ b/lib/rubygems/defaults.rb
@@ -32,13 +32,13 @@ def self.default_dir @@ -38,13 +38,13 @@ def self.default_dir
[ [
File.dirname(RbConfig::CONFIG['sitedir']), File.dirname(RbConfig::CONFIG['sitedir']),
'Gems', 'Gems',
- RbConfig::CONFIG['ruby_version'] - RbConfig::CONFIG['ruby_version'],
+ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']
] ]
else else
[ [
RbConfig::CONFIG['rubylibprefix'], RbConfig::CONFIG['rubylibprefix'],
'gems', 'gems',
- RbConfig::CONFIG['ruby_version'] - RbConfig::CONFIG['ruby_version'],
+ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']
] ]
end end
@@ -75,7 +75,8 @@ def self.default_specifications_dir @@ -117,7 +117,8 @@ def self.user_dir
gem_dir = File.join(Gem.user_home, ".gem")
def self.user_dir gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir)
parts = [Gem.user_home, '.gem', ruby_engine] parts = [gem_dir, ruby_engine]
- parts << RbConfig::CONFIG['ruby_version'] unless RbConfig::CONFIG['ruby_version'].empty? - 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'] + 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? + parts << ruby_version_dir_name unless ruby_version_dir_name.empty?
File.join parts File.join parts
end end
@@ -158,7 +159,7 @@ def self.vendor_dir # :nodoc: @@ -252,7 +253,7 @@ def self.vendor_dir # :nodoc:
return nil unless RbConfig::CONFIG.key? 'vendordir' return nil unless RbConfig::CONFIG.key? 'vendordir'
File.join RbConfig::CONFIG['vendordir'], 'gems', File.join RbConfig::CONFIG['vendordir'], 'gems',
@ -237,7 +237,7 @@ diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index b25068405d..e9fef4a311 100644 index b25068405d..e9fef4a311 100644
--- a/test/rubygems/test_gem.rb --- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb
@@ -1378,7 +1378,8 @@ def test_self_use_paths @@ -1452,7 +1452,8 @@ def test_self_use_paths
def test_self_user_dir def test_self_user_dir
parts = [@userhome, '.gem', Gem.ruby_engine] parts = [@userhome, '.gem', Gem.ruby_engine]
@ -245,9 +245,9 @@ index b25068405d..e9fef4a311 100644
+ ruby_version_dir_name = RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + 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? + parts << ruby_version_dir_name unless ruby_version_dir_name.empty?
assert_equal File.join(parts), Gem.user_dir FileUtils.mkdir_p File.join(parts)
end
@@ -1454,7 +1455,7 @@ def test_self_vendor_dir @@ -1530,7 +1531,7 @@ def test_self_vendor_dir
vendordir(File.join(@tempdir, 'vendor')) do vendordir(File.join(@tempdir, 'vendor')) do
expected = expected =
File.join RbConfig::CONFIG['vendordir'], 'gems', File.join RbConfig::CONFIG['vendordir'], 'gems',
@ -274,15 +274,15 @@ diff --git a/configure.ac b/configure.ac
index a00f2b6776..999e2d6d5d 100644 index a00f2b6776..999e2d6d5d 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -98,7 +98,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"` @@ -81,7 +81,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`
RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"` RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`
AC_SUBST(RUBY_BASE_NAME) AC_SUBST(RUBY_BASE_NAME)
AC_SUBST(RUBYW_BASE_NAME) AC_SUBST(RUBYW_BASE_NAME)
-AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version}') -AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version}')
+AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version_dir_name}') +AC_SUBST(RUBY_VERSION_NAME, '${RUBY_BASE_NAME}-${ruby_version_dir_name}')
AC_CANONICAL_TARGET dnl checks for alternative programs
test x"$target_alias" = x && AC_CANONICAL_BUILD
-- --
2.1.0 2.1.0

View File

@ -8,126 +8,20 @@ on Red Hat platforms.
This workaround rhbz#1361037 This workaround rhbz#1361037
--- ---
test/fiddle/helper.rb | 111 ------------------------------------------ test/fiddle/helper.rb | 3 +++
1 file changed, 111 deletions(-) 1 file changed, 3 insertions(+)
diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb
index 1da3d93..65148a1 100644 index 1da3d93..65148a1 100644
--- a/test/fiddle/helper.rb --- a/test/fiddle/helper.rb
+++ b/test/fiddle/helper.rb +++ b/test/fiddle/helper.rb
@@ -6,115 +6,6 @@ @@ -139,6 +139,9 @@
libc_so = libm_so = "/usr/lib/libSystem.B.dylib"
end
libc_so = libm_so = nil +# Just ignore the heuristic, because it is not reliable on all platforms.
+libc_so = libm_so = nil
-case RUBY_PLATFORM +
-when /cygwin/
- libc_so = "cygwin1.dll"
- libm_so = "cygwin1.dll"
-when /android/
- libdir = '/system/lib'
- if [0].pack('L!').size == 8
- libdir = '/system/lib64'
- end
- libc_so = File.join(libdir, "libc.so")
- libm_so = File.join(libdir, "libm.so")
-when /linux/
- libdir = '/lib'
- case RbConfig::SIZEOF['void*']
- when 4
- # 32-bit ruby
- case RUBY_PLATFORM
- when /armv\w+-linux/
- # In the ARM 32-bit libc package such as libc6:armhf libc6:armel,
- # libc.so and libm.so are installed to /lib/arm-linux-gnu*.
- # It's not installed to /lib32.
- dirs = Dir.glob('/lib/arm-linux-gnu*')
- libdir = dirs[0] if dirs && File.directory?(dirs[0])
- else
- libdir = '/lib32' if File.directory? '/lib32'
- end
- when 8
- # 64-bit ruby
- libdir = '/lib64' if File.directory? '/lib64'
- end
- libc_so = File.join(libdir, "libc.so.6")
- libm_so = File.join(libdir, "libm.so.6")
-when /mingw/, /mswin/
- require "rbconfig"
- crtname = RbConfig::CONFIG["RUBY_SO_NAME"][/msvc\w+/] || 'ucrtbase'
- libc_so = libm_so = "#{crtname}.dll"
-when /darwin/
- libc_so = libm_so = "/usr/lib/libSystem.B.dylib"
-when /kfreebsd/
- libc_so = "/lib/libc.so.0.1"
- libm_so = "/lib/libm.so.1"
-when /gnu/ #GNU/Hurd
- libc_so = "/lib/libc.so.0.3"
- libm_so = "/lib/libm.so.6"
-when /mirbsd/
- libc_so = "/usr/lib/libc.so.41.10"
- libm_so = "/usr/lib/libm.so.7.0"
-when /freebsd/
- libc_so = "/lib/libc.so.7"
- libm_so = "/lib/libm.so.5"
-when /bsd|dragonfly/
- libc_so = "/usr/lib/libc.so"
- libm_so = "/usr/lib/libm.so"
-when /solaris/
- libdir = '/lib'
- case RbConfig::SIZEOF['void*']
- when 4
- # 32-bit ruby
- libdir = '/lib' if File.directory? '/lib'
- when 8
- # 64-bit ruby
- libdir = '/lib/64' if File.directory? '/lib/64'
- end
- libc_so = File.join(libdir, "libc.so")
- libm_so = File.join(libdir, "libm.so")
-when /aix/
- pwd=Dir.pwd
- libc_so = libm_so = "#{pwd}/libaixdltest.so"
- unless File.exist? libc_so
- cobjs=%w!strcpy.o!
- mobjs=%w!floats.o sin.o!
- funcs=%w!sin sinf strcpy strncpy!
- expfile='dltest.exp'
- require 'tmpdir'
- Dir.mktmpdir do |dir|
- begin
- Dir.chdir dir
- %x!/usr/bin/ar x /usr/lib/libc.a #{cobjs.join(' ')}!
- %x!/usr/bin/ar x /usr/lib/libm.a #{mobjs.join(' ')}!
- %x!echo "#{funcs.join("\n")}\n" > #{expfile}!
- require 'rbconfig'
- if RbConfig::CONFIG["GCC"] = 'yes'
- lflag='-Wl,'
- else
- lflag=''
- end
- flags="#{lflag}-bE:#{expfile} #{lflag}-bnoentry -lm"
- %x!#{RbConfig::CONFIG["LDSHARED"]} -o #{libc_so} #{(cobjs+mobjs).join(' ')} #{flags}!
- ensure
- Dir.chdir pwd
- end
- end
- end
-else
- libc_so = ARGV[0] if ARGV[0] && ARGV[0][0] == ?/
- libm_so = ARGV[1] if ARGV[1] && ARGV[1][0] == ?/
- if( !(libc_so && libm_so) )
- $stderr.puts("libc and libm not found: #{$0} <libc> <libm>")
- end
-end
-
-libc_so = nil if !libc_so || (libc_so[0] == ?/ && !File.file?(libc_so))
-libm_so = nil if !libm_so || (libm_so[0] == ?/ && !File.file?(libm_so))
-
-# macOS 11.0+ removed libSystem.B.dylib from /usr/lib. But It works with dlopen.
-if RUBY_PLATFORM =~ /darwin/
- libc_so = libm_so = "/usr/lib/libSystem.B.dylib"
-end
-
if !libc_so || !libm_so if !libc_so || !libm_so
ruby = EnvUtil.rubybin ruby = EnvUtil.rubybin
# When the ruby binary is 32-bit and the host is 64-bit, # When the ruby binary is 32-bit and the host is 64-bit,

View File

@ -15,7 +15,7 @@ To keep the things simple for now, load the ABRT hook via C.
[4]: https://github.com/ruby/ruby/pull/2735 [4]: https://github.com/ruby/ruby/pull/2735
[5]: https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/LH6L6YJOYQT4Y5ZNOO4SLIPTUWZ5V45Q/ [5]: https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/LH6L6YJOYQT4Y5ZNOO4SLIPTUWZ5V45Q/
--- ---
abrt.c | 12 ++++++++++++++ abrt.c | 12 ++++++++++++
common.mk | 3 ++- common.mk | 3 ++-
ruby.c | 4 ++++ ruby.c | 4 ++++
3 files changed, 18 insertions(+), 1 deletion(-) 3 files changed, 18 insertions(+), 1 deletion(-)
@ -57,7 +57,7 @@ diff --git a/ruby.c b/ruby.c
index 60c57d6259..1eec16f2c8 100644 index 60c57d6259..1eec16f2c8 100644
--- a/ruby.c --- a/ruby.c
+++ b/ruby.c +++ b/ruby.c
@@ -1451,10 +1451,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) @@ -1489,10 +1489,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt)
void Init_builtin_features(void); void Init_builtin_features(void);

View File

@ -1,32 +0,0 @@
From 6532dbecf36d1f24dab1f2143afd171e0b7699eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Wed, 4 Sep 2019 15:07:07 +0200
Subject: [PATCH] Remove RubyGems dependency.
Since `Process::RLIMIT_NOFILE` is platform specific, better to use Ruby
introspection than detecting platform.
---
.../vendor/net-http-persistent/lib/net/http/persistent.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
index a54be2a..06739f1 100644
--- a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
+++ b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
@@ -197,10 +197,10 @@ class Bundler::Persistent::Net::HTTP::Persistent
##
# The default connection pool size is 1/4 the allowed open files.
- if Gem.win_platform? then
- DEFAULT_POOL_SIZE = 256
- else
+ if Process.const_defined? :RLIMIT_NOFILE
DEFAULT_POOL_SIZE = Process.getrlimit(Process::RLIMIT_NOFILE).first / 4
+ else
+ DEFAULT_POOL_SIZE = 256
end
##
--
2.23.0

View File

@ -20,7 +20,7 @@ diff --git a/test/-ext-/bug_reporter/test_bug_reporter.rb b/test/-ext-/bug_repor
index 628fcd0340..2c677cc8a7 100644 index 628fcd0340..2c677cc8a7 100644
--- a/test/-ext-/bug_reporter/test_bug_reporter.rb --- a/test/-ext-/bug_reporter/test_bug_reporter.rb
+++ b/test/-ext-/bug_reporter/test_bug_reporter.rb +++ b/test/-ext-/bug_reporter/test_bug_reporter.rb
@@ -19,7 +19,7 @@ def test_bug_reporter_add @@ -21,7 +21,7 @@ def test_bug_reporter_add
args = ["--disable-gems", "-r-test-/bug_reporter", args = ["--disable-gems", "-r-test-/bug_reporter",
"-C", tmpdir] "-C", tmpdir]
stdin = "register_sample_bug_reporter(12345); Process.kill :SEGV, $$" stdin = "register_sample_bug_reporter(12345); Process.kill :SEGV, $$"

View File

@ -1,22 +0,0 @@
From 0689147586c6cb56b91bf0f368890f19d630ece1 Mon Sep 17 00:00:00 2001
From: nobletrout <nobletrout@gmail.com>
Date: Tue, 5 Feb 2019 08:14:02 -0500
Subject: [PATCH] remove unneeded gem require for ipaddr
ipaddr is a builtin class for ruby, that is occasionally merged. If the version isn't specified by the runtime dependency, then it will default to needing the latest gem rather than the version that ships with that version of ruby. That will lead to all kinds of potential dependency fails that are most likely unneeded since this gem already requires ruby > 2.3.0
---
ext/openssl/openssl.gemspec | 1 -
1 file changed, 1 deletion(-)
diff --git a/ext/openssl/openssl.gemspec b/ext/openssl/openssl.gemspec
index 7c17cd54..f721f247 100644
--- a/ext/openssl/openssl.gemspec
+++ b/ext/openssl/openssl.gemspec
@@ -21,7 +21,6 @@ Gem::Specification.new do |spec|
s.rubygems_version = "3.0.0.beta1"
s.summary = "OpenSSL provides SSL, TLS and general purpose cryptography."
- s.add_runtime_dependency("ipaddr", [">= 0"])
s.add_development_dependency("rake", [">= 0"])
s.add_development_dependency("rake-compiler", [">= 0"])
s.add_development_dependency("test-unit", ["~> 3.0"])

View File

@ -1,26 +0,0 @@
From 2becb920e431110c4afc4fa069b051c5940c2096 Mon Sep 17 00:00:00 2001
From: Jeremy Evans <code@jeremyevans.net>
Date: Fri, 29 May 2020 14:13:30 -0700
Subject: [PATCH] Convert ip addresses to canonical form in
Resolv::DNS::Requester::UnconnectedUDP#sender
Otherwise, if the IP address given is not in canonical form, it
won't match, and Resolv will ignore it.
Fixes [Bug #16439]
---
lib/resolv.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/resolv.rb b/lib/resolv.rb
index e7b45e785a85..d78531e174fd 100644
--- a/lib/resolv.rb
+++ b/lib/resolv.rb
@@ -767,6 +767,7 @@ def recv_reply(readable_socks)
end
def sender(msg, data, host, port=Port)
+ host = Addrinfo.ip(host).ip_address
lazy_initialize
sock = @socks_hash[host.index(':') ? "::" : "0.0.0.0"]
return nil if !sock

View File

@ -0,0 +1,217 @@
--- a/addr2line.c
+++ b/addr2line.c
@@ -159,11 +159,12 @@
struct dwarf_section debug_info;
struct dwarf_section debug_line;
struct dwarf_section debug_ranges;
+ struct dwarf_section debug_rnglists;
struct dwarf_section debug_str;
struct obj_info *next;
} obj_info_t;
-#define DWARF_SECTION_COUNT 5
+#define DWARF_SECTION_COUNT 6
static struct dwarf_section *
obj_dwarf_section_at(obj_info_t *obj, int n)
@@ -173,6 +174,7 @@
&obj->debug_info,
&obj->debug_line,
&obj->debug_ranges,
+ &obj->debug_rnglists,
&obj->debug_str
};
if (n < 0 || DWARF_SECTION_COUNT <= n) {
@@ -411,7 +413,7 @@
FILL_LINE();
break;
case DW_LNS_advance_pc:
- a = uleb128((char **)&p);
+ a = uleb128((char **)&p) * header.minimum_instruction_length;
addr += a;
break;
case DW_LNS_advance_line: {
@@ -450,7 +452,7 @@
/* isa = (unsigned int)*/(void)uleb128((char **)&p);
break;
case 0:
- a = *(unsigned char *)p++;
+ a = uleb128((char **)&p);
op = *p++;
switch (op) {
case DW_LNE_end_sequence:
@@ -807,6 +809,18 @@
DW_FORM_addrx4 = 0x2c
};
+/* Range list entry encodings */
+enum {
+ DW_RLE_end_of_list = 0x00,
+ DW_RLE_base_addressx = 0x01,
+ DW_RLE_startx_endx = 0x02,
+ DW_RLE_startx_length = 0x03,
+ DW_RLE_offset_pair = 0x04,
+ DW_RLE_base_address = 0x05,
+ DW_RLE_start_end = 0x06,
+ DW_RLE_start_length = 0x07
+};
+
enum {
VAL_none = 0,
VAL_cstr = 1,
@@ -961,6 +975,23 @@
}
static void
+di_skip_die_attributes(char **p)
+{
+ for (;;) {
+ uint64_t at = uleb128(p);
+ uint64_t form = uleb128(p);
+ if (!at && !form) break;
+ switch (form) {
+ default:
+ break;
+ case DW_FORM_implicit_const:
+ sleb128(p);
+ break;
+ }
+ }
+}
+
+static void
di_read_debug_abbrev_cu(DebugInfoReader *reader)
{
uint64_t prev = 0;
@@ -974,12 +1005,7 @@
prev = abbrev_number;
uleb128(&p); /* tag */
p++; /* has_children */
- /* skip content */
- for (;;) {
- uint64_t at = uleb128(&p);
- uint64_t form = uleb128(&p);
- if (!at && !form) break;
- }
+ di_skip_die_attributes(&p);
}
}
@@ -1243,12 +1269,7 @@
/* skip 255th record */
uleb128(&p); /* tag */
p++; /* has_children */
- /* skip content */
- for (;;) {
- uint64_t at = uleb128(&p);
- uint64_t form = uleb128(&p);
- if (!at && !form) break;
- }
+ di_skip_die_attributes(&p);
for (uint64_t n = uleb128(&p); abbrev_number != n; n = uleb128(&p)) {
if (n == 0) {
fprintf(stderr,"%d: Abbrev Number %"PRId64" not found\n",__LINE__, abbrev_number);
@@ -1256,12 +1277,7 @@
}
uleb128(&p); /* tag */
p++; /* has_children */
- /* skip content */
- for (;;) {
- uint64_t at = uleb128(&p);
- uint64_t form = uleb128(&p);
- if (!at && !form) break;
- }
+ di_skip_die_attributes(&p);
}
return p;
}
@@ -1389,6 +1405,21 @@
}
}
+static uint64_t
+read_dw_form_addr(DebugInfoReader *reader, char **ptr)
+{
+ char *p = *ptr;
+ *ptr = p + reader->format;
+ if (reader->format == 4) {
+ return read_uint32(&p);
+ } else if (reader->format == 8) {
+ return read_uint64(&p);
+ } else {
+ fprintf(stderr,"unknown address_size:%d", reader->address_size);
+ abort();
+ }
+}
+
static uintptr_t
ranges_include(DebugInfoReader *reader, ranges_t *ptr, uint64_t addr)
{
@@ -1402,8 +1433,50 @@
}
else if (ptr->ranges_set) {
/* TODO: support base address selection entry */
- char *p = reader->obj->debug_ranges.ptr + ptr->ranges;
+ char *p;
uint64_t base = ptr->low_pc_set ? ptr->low_pc : reader->current_low_pc;
+ if (reader->obj->debug_rnglists.ptr) {
+ p = reader->obj->debug_rnglists.ptr + ptr->ranges;
+ for (;;) {
+ uint8_t rle = read_uint8(&p);
+ uintptr_t base_address = 0;
+ uintptr_t from, to;
+ if (rle == DW_RLE_end_of_list) break;
+ switch (rle) {
+ case DW_RLE_base_addressx:
+ uleb128(&p);
+ break;
+ case DW_RLE_startx_endx:
+ uleb128(&p);
+ uleb128(&p);
+ break;
+ case DW_RLE_startx_length:
+ uleb128(&p);
+ uleb128(&p);
+ break;
+ case DW_RLE_offset_pair:
+ from = base_address + uleb128(&p);
+ to = base_address + uleb128(&p);
+ if (base + from <= addr && addr < base + to) {
+ return from;
+ }
+ break;
+ case DW_RLE_base_address:
+ base_address = read_dw_form_addr(reader, &p);
+ break;
+ case DW_RLE_start_end:
+ read_dw_form_addr(reader, &p);
+ read_dw_form_addr(reader, &p);
+ break;
+ case DW_RLE_start_length:
+ read_dw_form_addr(reader, &p);
+ uleb128(&p);
+ break;
+ }
+ }
+ return false;
+ }
+ p = reader->obj->debug_ranges.ptr + ptr->ranges;
for (;;) {
uintptr_t from = read_uintptr(&p);
uintptr_t to = read_uintptr(&p);
@@ -1747,6 +1820,7 @@
".debug_info",
".debug_line",
".debug_ranges",
+ ".debug_rnglists",
".debug_str"
};
@@ -2003,6 +2077,7 @@
"__debug_info",
"__debug_line",
"__debug_ranges",
+ "__debug_rnglists",
"__debug_str"
};
struct LP(segment_command) *scmd = (struct LP(segment_command) *)lcmd;

56
ruby.rpmlintrc Normal file
View File

@ -0,0 +1,56 @@
# Keep matching patterns enough not to hide unintended errors and warnings.
# There is no way to implement this with `%{SOURCE0}` without `%{_sourcedir}`.
# The order in the .spec file could be possibly different.
addFilter(r'ruby\.(spec|src):20: E: use-of-RPM_SOURCE_DIR$')
# The used version is not obvious.
addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-build_assert\)$')
addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-check_type\)$')
addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-container_of\)$')
addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-list\)$')
# The template files do not have to have executable bits.
addFilter(r'^rubygem-bundler\.noarch: E: non-executable-script /usr/share/gems/gems/bundler-[\d\.]+/lib/bundler/templates/[\w/\.]+ 644 /usr/bin/env ')
# The bundled gem files permissions are overridden as 644 by `make install`.
# https://bugs.ruby-lang.org/issues/17840
# power_assert
# https://github.com/ruby/power_assert/issues/35
addFilter(r'^rubygem-power_assert\.noarch: E: non-executable-script /usr/share/gems/gems/power_assert-[\d\.]+/bin/console 644 ')
addFilter(r'^rubygem-power_assert\.noarch: E: non-executable-script /usr/share/gems/gems/power_assert-[\d\.]+/bin/setup 644 ')
# rake
# https://github.com/ruby/rake/issues/385
addFilter(r'^rubygem-rake\.noarch: E: non-executable-script /usr/share/gems/gems/rake-[\d\.]+/bin/bundle 644 ')
addFilter(r'^rubygem-rake\.noarch: E: non-executable-script /usr/share/gems/gems/rake-[\d\.]+/bin/console 644 ')
addFilter(r'^rubygem-rake\.noarch: E: non-executable-script /usr/share/gems/gems/rake-[\d\.]+/bin/rake 644 ')
addFilter(r'^rubygem-rake\.noarch: E: non-executable-script /usr/share/gems/gems/rake-[\d\.]+/bin/rdoc 644 ')
addFilter(r'^rubygem-rake\.noarch: E: non-executable-script /usr/share/gems/gems/rake-[\d\.]+/bin/rubocop 644 ')
addFilter(r'^rubygem-rake\.noarch: E: non-executable-script /usr/share/gems/gems/rake-[\d\.]+/bin/setup 644 ')
# rbs
# https://github.com/ruby/rbs/issues/673
addFilter(r'^rubygem-rbs\.noarch: E: non-executable-script /usr/share/gems/gems/rbs-[\d\.]+/bin/annotate-with-rdoc 644 ')
addFilter(r'^rubygem-rbs\.noarch: E: non-executable-script /usr/share/gems/gems/rbs-[\d\.]+/bin/console 644 ')
addFilter(r'^rubygem-rbs\.noarch: E: non-executable-script /usr/share/gems/gems/rbs-[\d\.]+/bin/query-rdoc 644 ')
addFilter(r'^rubygem-rbs\.noarch: E: non-executable-script /usr/share/gems/gems/rbs-[\d\.]+/bin/rbs-prof 644 ')
addFilter(r'^rubygem-rbs\.noarch: E: non-executable-script /usr/share/gems/gems/rbs-[\d\.]+/bin/setup 644 ')
addFilter(r'^rubygem-rbs\.noarch: E: non-executable-script /usr/share/gems/gems/rbs-[\d\.]+/bin/sort 644 ')
addFilter(r'^rubygem-rbs\.noarch: E: non-executable-script /usr/share/gems/gems/rbs-[\d\.]+/bin/steep 644 ')
addFilter(r'^rubygem-rbs\.noarch: E: non-executable-script /usr/share/gems/gems/rbs-[\d\.]+/bin/test_runner.rb 644 ')
# test-unit
addFilter(r'^rubygem-test-unit\.noarch: E: non-executable-script /usr/share/gems/gems/test-unit-[\d\.]+/test/run-test.rb 644 ')
# The function `chroot` without using `chdir` is detected by rpmlint with the
# following message. However it looks a false positive as the `chroot` in the
# `dir.c` is just used as a Ruby binding `Dir.chroot` for the function.
#
# ruby-libs.x86_64: E: missing-call-to-chdir-with-chroot /usr/lib64/libruby.so.3.0.1
# This executable appears to call chroot without using chdir to change the
# current directory. This is likely an error and permits an attacker to break
# out of the chroot by using fchdir. While that's not always a security issue,
# this has to be checked.
addFilter(r'^ruby-libs\.\w+: E: missing-call-to-chdir-with-chroot /usr/lib(64)?/libruby.so.[\d/.]+$')
# Nothing referred and no dependency information should be no problem.
# https://bugs.ruby-lang.org/issues/16558#note-2
addFilter(r'^ruby-libs\.\w+: E: shared-lib-without-dependency-information /usr/lib(64)?/ruby/enc/gb2312.so$')

548
ruby.spec
View File

@ -1,6 +1,6 @@
%global major_version 2 %global major_version 3
%global minor_version 7 %global minor_version 0
%global teeny_version 3 %global teeny_version 1
%global major_minor_version %{major_version}.%{minor_version} %global major_minor_version %{major_version}.%{minor_version}
%global ruby_version %{major_minor_version}.%{teeny_version} %global ruby_version %{major_minor_version}.%{teeny_version}
@ -9,20 +9,20 @@
# Specify the named version. It has precedense to revision. # Specify the named version. It has precedense to revision.
#%%global milestone rc1 #%%global milestone rc1
# Keep the revision enabled for pre-releases from SVN. # Keep the revision enabled for pre-releases from GIT.
#%%global revision af11efd377 #%%global revision 684649ea05
%global ruby_archive %{name}-%{ruby_version} %global ruby_archive %{name}-%{ruby_version}
# If revision and milestone are removed/commented out, the official release build is expected. # If revision and milestone are removed/commented out, the official release build is expected.
%if 0%{?milestone:1}%{?revision:1} != 0 %if 0%{?milestone:1}%{?revision:1} != 0
%global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision}} %global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision}}
%define ruby_archive_timestamp %(stat --printf='@%Y' %{ruby_archive}.tar.xz | date -f - +"%Y%m%d") %define ruby_archive_timestamp %(stat --printf='@%Y' %{_sourcedir}/%{ruby_archive}.tar.xz | date -f - +"%Y%m%d")
%define development_release %{?milestone}%{?!milestone:%{?revision:%{ruby_archive_timestamp}git%{revision}}} %define development_release %{?milestone}%{?!milestone:%{?revision:%{ruby_archive_timestamp}git%{revision}}}
%endif %endif
%global release 136 %global release 137
%{!?release_string:%define release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} %{!?release_string:%define release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}}
# The RubyGems library has to stay out of Ruby directory tree, since the # The RubyGems library has to stay out of Ruby directory tree, since the
@ -30,43 +30,42 @@
%global rubygems_dir %{_datadir}/rubygems %global rubygems_dir %{_datadir}/rubygems
# Bundled libraries versions # Bundled libraries versions
%global rubygems_version 3.1.6 %global rubygems_version 3.2.15
%global rubygems_molinillo_version 0.5.7 %global rubygems_molinillo_version 0.7.0
# Default gems. # Default gems.
%global bundler_version 2.1.4 %global bundler_version 2.2.15
%global bundler_connection_pool_version 2.2.2 %global bundler_connection_pool_version 2.2.2
%global bundler_fileutils_version 1.3.0 %global bundler_fileutils_version 1.4.1
%global bundler_molinillo_version 0.6.6 %global bundler_molinillo_version 0.7.0
%global bundler_net_http_persistent_version 3.1.0 %global bundler_net_http_persistent_version 4.0.0
%global bundler_thor_version 1.0.0 %global bundler_thor_version 1.1.0
%global bundler_tmpdir_version 0.1.0
%global bundler_uri_version 0.10.0
%global bigdecimal_version 2.0.0 %global bigdecimal_version 3.0.0
%global did_you_mean_version 1.4.0 %global did_you_mean_version 1.5.0
%global io_console_version 0.5.6 %global erb_version 2.2.0
%global irb_version 1.2.6 %global io_console_version 0.5.7
%global json_version 2.3.0 %global irb_version 1.3.5
%global net_telnet_version 0.2.0 %global json_version 2.5.1
%global openssl_version 2.1.2 %global openssl_version 2.2.0
%global psych_version 3.1.0 %global psych_version 3.3.0
%global racc_version 1.4.16 %global racc_version 1.5.1
%global rdoc_version 6.2.1 %global rdoc_version 6.3.0
%global xmlrpc_version 0.3.0
# Bundled gems. # Bundled gems.
%global minitest_version 5.13.0 %global minitest_version 5.14.2
%global power_assert_version 1.1.7 %global power_assert_version 1.2.0
%global rake_version 13.0.1 %global rake_version 13.0.3
%global test_unit_version 3.3.4 %global rbs_version 1.0.4
%global test_unit_version 3.3.7
%global rexml_version 3.2.5
%global rss_version 0.2.9
%global typeprof_version 0.12.0
# Might not be needed in the future, if we are lucky enough.
# https://bugzilla.redhat.com/show_bug.cgi?id=888262
%global tapset_root %{_datadir}/systemtap
%global tapset_dir %{tapset_root}/tapset
%global tapset_libdir %(echo %{_libdir} | sed 's/64//')* %global tapset_libdir %(echo %{_libdir} | sed 's/64//')*
%global _normalized_cpu %(echo %{_target_cpu} | sed 's/^ppc/powerpc/;s/i.86/i386/;s/sparcv./sparc/')
%if 0%{?fedora} >= 19 %if 0%{?fedora} >= 19
%bcond_without rubypick %bcond_without rubypick
%endif %endif
@ -81,6 +80,10 @@
%bcond_without hardening_test %bcond_without hardening_test
%endif %endif
# LTO appears to cause some issue to SEGV handler.
# https://bugs.ruby-lang.org/issues/17052
%define _lto_cflags %{nil}
Summary: An interpreter of object-oriented scripting language Summary: An interpreter of object-oriented scripting language
Name: ruby Name: ruby
Version: %{ruby_version} Version: %{ruby_version}
@ -90,7 +93,7 @@ Release: %{release_string}
# zlib: ext/digest/md5/md5.*, ext/nkf/nkf-utf8/nkf.c # zlib: ext/digest/md5/md5.*, ext/nkf/nkf-utf8/nkf.c
# UCD: some of enc/trans/**/*.src # UCD: some of enc/trans/**/*.src
License: (Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD License: (Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD
URL: http://ruby-lang.org/ URL: https://www.ruby-lang.org/
Source0: https://cache.ruby-lang.org/pub/%{name}/%{major_minor_version}/%{ruby_archive}.tar.xz Source0: https://cache.ruby-lang.org/pub/%{name}/%{major_minor_version}/%{ruby_archive}.tar.xz
Source1: operating_system.rb Source1: operating_system.rb
# TODO: Try to push SystemTap support upstream. # TODO: Try to push SystemTap support upstream.
@ -143,27 +146,18 @@ Patch6: ruby-2.7.0-Initialize-ABRT-hook.patch
# hardening features of glibc (rhbz#1361037). # hardening features of glibc (rhbz#1361037).
# https://bugs.ruby-lang.org/issues/12666 # https://bugs.ruby-lang.org/issues/12666
Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch
# Revert commit which breaks bundled net-http-persistent version check. # Fix DWARF5 support.
# https://github.com/drbrain/net-http-persistent/pull/109 # https://bugzilla.redhat.com/show_bug.cgi?id=1920533
Patch10: ruby-2.7.0-Remove-RubyGems-dependency.patch # https://bugs.ruby-lang.org/issues/17585
# Prevent issues with openssl loading when RubyGems are disabled. Patch15: ruby-dwarf5-avoid_crash-r1.patch
# https://github.com/ruby/openssl/pull/242
Patch13: ruby-2.8.0-remove-unneeded-gem-require-for-ipaddr.patch
# Avoid possible timeout errors in TestBugReporter#test_bug_reporter_add. # Avoid possible timeout errors in TestBugReporter#test_bug_reporter_add.
# https://bugs.ruby-lang.org/issues/16492 # https://bugs.ruby-lang.org/issues/16492
Patch19: ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch Patch19: ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch
# Resolv::DNS: timeouts if multiple IPv6 name servers are given and address
# contains leading zero
# https://bugzilla.redhat.com/show_bug.cgi?id=1944227
Patch20: ruby-3.0.0-Convert-ip-addresses-to-canonical-form.patch
Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Suggests: rubypick Suggests: rubypick
Recommends: ruby(rubygems) >= %{rubygems_version} Recommends: ruby(rubygems) >= %{rubygems_version}
Recommends: rubygem(bigdecimal) >= %{bigdecimal_version} Recommends: rubygem(bigdecimal) >= %{bigdecimal_version}
# Change this to requires, hopefully just as temporary measure.
# https://bugs.ruby-lang.org/issues/16431
Recommends: rubygem(openssl) >= %{openssl_version}
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: gdbm-devel BuildRequires: gdbm-devel
@ -183,6 +177,7 @@ BuildRequires: procps
%{?with_hostname:BuildRequires: %{_bindir}/hostname} %{?with_hostname:BuildRequires: %{_bindir}/hostname}
BuildRequires: multilib-rpm-config BuildRequires: multilib-rpm-config
BuildRequires: gcc BuildRequires: gcc
BuildRequires: make
BuildRequires: zlib-devel BuildRequires: zlib-devel
# This package provides %%{_bindir}/ruby-mri therefore it is marked by this # This package provides %%{_bindir}/ruby-mri therefore it is marked by this
@ -202,6 +197,9 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
# This would not be needed if ~50 packages depending on -devel used # This would not be needed if ~50 packages depending on -devel used
# --disable-gems # --disable-gems
Requires: rubygems Requires: rubygems
# Users need CFLAGS from /usr/lib/rpm/redhat/redhat-hardened-cc1
# for building gems with binary extensions (rhbz#1905222).
Recommends: redhat-rpm-config
%description devel %description devel
Header files and libraries for building an extension library for the Header files and libraries for building an extension library for the
@ -221,15 +219,9 @@ Provides: bundled(ccan-list)
# StdLib default gems. # StdLib default gems.
Provides: bundled(rubygem-did_you_mean) = %{did_you_mean_version} Provides: bundled(rubygem-did_you_mean) = %{did_you_mean_version}
Provides: bundled(rubygem-openssl) = %{openssl_version}
Provides: bundled(rubygem-racc) = %{racc_version} Provides: bundled(rubygem-racc) = %{racc_version}
# Tcl/Tk support was removed from stdlib in Ruby 2.4, i.e. F27 timeframe
# so lets obsolete it. This is not the best place, but we don't have
# better, unless https://fedorahosted.org/fpc/ticket/645 provides some
# generic solution.
Obsoletes: ruby-tcltk < 2.4.0
%description libs %description libs
This package includes the libruby, necessary to run Ruby. This package includes the libruby, necessary to run Ruby.
@ -243,7 +235,6 @@ Requires: ruby(release)
Recommends: rubygem(bundler) >= %{bundler_version} Recommends: rubygem(bundler) >= %{bundler_version}
Recommends: rubygem(rdoc) >= %{rdoc_version} Recommends: rubygem(rdoc) >= %{rdoc_version}
Recommends: rubygem(io-console) >= %{io_console_version} Recommends: rubygem(io-console) >= %{io_console_version}
Requires: rubygem(openssl) >= %{openssl_version}
Requires: rubygem(psych) >= %{psych_version} Requires: rubygem(psych) >= %{psych_version}
Provides: gem = %{version}-%{release} Provides: gem = %{version}-%{release}
Provides: ruby(rubygems) = %{version}-%{release} Provides: ruby(rubygems) = %{version}-%{release}
@ -276,12 +267,17 @@ Macros and development tools for packaging RubyGems.
# with disabled RubyGems. # with disabled RubyGems.
%package default-gems %package default-gems
Summary: Default gems which are part of Ruby StdLib. Summary: Default gems which are part of Ruby StdLib
Requires: ruby(rubygems) >= %{rubygems_version} Requires: ruby(rubygems) >= %{rubygems_version}
Supplements: ruby(rubygems) Supplements: ruby(rubygems)
# Include the io-console dependency for reline.
Requires: rubygem(io-console)
# Obsoleted by Ruby 2.7 in F32 timeframe. # Obsoleted by Ruby 2.7 in F32 timeframe.
Obsoletes: rubygem-did_you_mean < 1.4.0-130 Obsoletes: rubygem-did_you_mean < 1.4.0-130
Obsoletes: rubygem-racc < 1.4.16-130 Obsoletes: rubygem-racc < 1.4.16-130
# Obsoleted by Ruby 3.0 in F34 timeframe.
Obsoletes: rubygem-openssl < 2.2.0-145
Provides: rubygem(openssl) = %{openssl_version}-%{release}
BuildArch: noarch BuildArch: noarch
%description default-gems %description default-gems
@ -317,7 +313,6 @@ Version: %{rdoc_version}
License: GPLv2 and Ruby and MIT and OFL License: GPLv2 and Ruby and MIT and OFL
Requires: ruby(release) Requires: ruby(release)
Requires: ruby(rubygems) >= %{rubygems_version} Requires: ruby(rubygems) >= %{rubygems_version}
Requires: rubygem(irb) >= %{irb_version}
Requires: rubygem(io-console) >= %{io_console_version} Requires: rubygem(io-console) >= %{io_console_version}
Requires: rubygem(json) >= %{json_version} Requires: rubygem(json) >= %{json_version}
Provides: rdoc = %{version}-%{release} Provides: rdoc = %{version}-%{release}
@ -389,19 +384,6 @@ data to disk or transmit it over a network rather than use a verbose
markup language. markup language.
%package -n rubygem-openssl
Summary: OpenSSL provides SSL, TLS and general purpose cryptography
Version: %{openssl_version}
License: Ruby or BSD
Requires: ruby(release)
Requires: ruby(rubygems) >= %{rubygems_version}
Provides: rubygem(openssl) = %{version}-%{release}
%description -n rubygem-openssl
OpenSSL provides SSL, TLS and general purpose cryptography. It wraps the
OpenSSL library.
%package -n rubygem-psych %package -n rubygem-psych
Summary: A libyaml wrapper for Ruby Summary: A libyaml wrapper for Ruby
Version: %{psych_version} Version: %{psych_version}
@ -426,11 +408,13 @@ Requires: ruby(rubygems) >= %{rubygems_version}
Requires: rubygem(io-console) Requires: rubygem(io-console)
Provides: rubygem(bundler) = %{version}-%{release} Provides: rubygem(bundler) = %{version}-%{release}
# https://github.com/bundler/bundler/issues/3647 # https://github.com/bundler/bundler/issues/3647
Provides: bundled(connection_pool) = %{bundler_connection_pool_version} Provides: bundled(rubygem-connection_pool) = %{bundler_connection_pool_version}
Provides: bundled(rubygem-fileutils) = %{bundler_fileutils_version} Provides: bundled(rubygem-fileutils) = %{bundler_fileutils_version}
Provides: bundled(rubygem-molinillo) = %{bundler_molinillo_version} Provides: bundled(rubygem-molinillo) = %{bundler_molinillo_version}
Provides: bundled(rubygem-net-http-persisntent) = %{bundler_net_http_persistent_version} Provides: bundled(rubygem-net-http-persisntent) = %{bundler_net_http_persistent_version}
Provides: bundled(rubygem-thor) = %{bundler_thor_version} Provides: bundled(rubygem-thor) = %{bundler_thor_version}
Provides: bundled(rubygem-tmpdir) = %{bundler_tmpdir_version}
Provides: bundled(rubygem-uri) = %{bundler_uri_version}
BuildArch: noarch BuildArch: noarch
%description -n rubygem-bundler %description -n rubygem-bundler
@ -497,23 +481,18 @@ Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
specified in standard Ruby syntax. specified in standard Ruby syntax.
%package -n rubygem-net-telnet %package -n rubygem-rbs
Summary: Provides telnet client functionality Summary: Type signature for Ruby
Version: %{net_telnet_version} Version: %{rbs_version}
License: Ruby or BSD
Requires: ruby(release) Requires: ruby(release)
Requires: ruby(rubygems) >= %{rubygems_version} Requires: ruby(rubygems) >= %{rubygems_version}
Provides: rubygem(net-telnet) = %{version}-%{release} Provides: rubygem(rbs) = %{version}-%{release}
BuildArch: noarch BuildArch: noarch
%description -n rubygem-net-telnet %description -n rubygem-rbs
Provides telnet client functionality. RBS is the language for type signatures for Ruby and standard library
definitions.
This class also has, through delegation, all the methods of a socket object
(by default, a TCPSocket, but can be set by the Proxy option to new()). This
provides methods such as close() to end the session and sysread() to read data
directly from the host, instead of via the waitfor() mechanism. Note that if
you do use sysread() directly when in telnet mode, you should probably pass
the output through preprocess() to extract telnet command sequences.
%package -n rubygem-test-unit %package -n rubygem-test-unit
@ -535,18 +514,62 @@ programming software development methodology, for Smalltalk's SUnit. It allows
writing tests, checking results and automated testing in Ruby. writing tests, checking results and automated testing in Ruby.
%package -n rubygem-xmlrpc %package -n rubygem-rexml
Summary: XMLRPC is a lightweight protocol that enables remote procedure calls over HTTP Summary: An XML toolkit for Ruby
Version: %{xmlrpc_version} Version: %{rexml_version}
License: Ruby or BSD License: BSD
URL: https://github.com/ruby/rexml
Requires: ruby(release) Requires: ruby(release)
Requires: ruby(rubygems) >= %{rubygems_version} Requires: ruby(rubygems) >= %{rubygems_version}
Provides: rubygem(xmlrpc) = %{version}-%{release} Provides: rubygem(rexml) = %{version}-%{release}
BuildArch: noarch BuildArch: noarch
%description -n rubygem-xmlrpc %description -n rubygem-rexml
XMLRPC is a lightweight protocol that enables remote procedure calls over REXML was inspired by the Electric XML library for Java, which features an
HTTP. easy-to-use API, small size, and speed. Hopefully, REXML, designed with the same
philosophy, has these same features. I've tried to keep the API as intuitive as
possible, and have followed the Ruby methodology for method naming and code
flow, rather than mirroring the Java API.
REXML supports both tree and stream document parsing. Stream parsing is faster
(about 1.5 times as fast). However, with stream parsing, you don't get access to
features such as XPath.
%package -n rubygem-rss
Summary: Family of libraries that support various formats of XML "feeds"
Version: %{rss_version}
License: BSD
URL: https://github.com/ruby/rss
Requires: ruby(release)
Requires: ruby(rubygems) >= %{rubygems_version}
Provides: rubygem(rss) = %{version}-%{release}
BuildArch: noarch
%description -n rubygem-rss
Really Simple Syndication (RSS) is a family of formats that describe 'feeds',
specially constructed XML documents that allow an interested person to subscribe
and receive updates from a particular web service. This library provides tooling
to read and create these feeds.
%package -n rubygem-typeprof
Summary: TypeProf is a type analysis tool for Ruby code based on abstract interpretation
Version: %{typeprof_version}
License: MIT
URL: https://github.com/ruby/typeprof
Requires: ruby(release)
Requires: ruby(rubygems) >= %{rubygems_version}
Requires: rubygem(rbs) >= %{rbs_version}
Provides: rubygem(typeprof) = %{version}-%{release}
BuildArch: noarch
%description -n rubygem-typeprof
TypeProf performs a type analysis of non-annotated Ruby code.
It abstractly executes input Ruby code in a level of types instead of values,
gathers what types are passed to and returned by methods, and prints the
analysis result in RBS format, a standard type description format for Ruby
3.0.
%prep %prep
@ -564,10 +587,8 @@ rm -rf ext/fiddle/libffi*
%patch5 -p1 %patch5 -p1
%patch6 -p1 %patch6 -p1
%patch9 -p1 %patch9 -p1
%patch10 -p1 %patch15 -p1
%patch13 -p1
%patch19 -p1 %patch19 -p1
%patch20 -p1
# Provide an example of usage of the tapset: # Provide an example of usage of the tapset:
cp -a %{SOURCE3} . cp -a %{SOURCE3} .
@ -597,11 +618,13 @@ autoconf
# Q= makes the build output more verbose and allows to check Fedora # Q= makes the build output more verbose and allows to check Fedora
# compiler options. # compiler options.
make %{?_smp_mflags} COPY="cp -p" Q= %make_build COPY="cp -p" Q=
%install %install
rm -rf %{buildroot} rm -rf %{buildroot}
make install DESTDIR=%{buildroot} %make_install
# TODO: Regenerate RBS parser in lib/rbs/parser.rb
# Rename ruby/config.h to ruby/config-<arch>.h to avoid file conflicts on # Rename ruby/config.h to ruby/config-<arch>.h to avoid file conflicts on
# multilib systems and install config.h wrapper # multilib systems and install config.h wrapper
@ -619,15 +642,14 @@ sed -i 's/Version: \${ruby_version}/Version: %{ruby_version}/' %{buildroot}%{_li
# Kill bundled certificates, as they should be part of ca-certificates. # Kill bundled certificates, as they should be part of ca-certificates.
for cert in \ for cert in \
rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem \ rubygems.org/GlobalSignRootCA.pem \
rubygems.org/AddTrustExternalCARoot.pem \ rubygems.org/GlobalSignRootCA_R3.pem
index.rubygems.org/GlobalSignRootCA.pem
do do
rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert 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 done
# Ensure there is not forgotten any certificate. # Ensure there is not forgotten any certificate.
test ! "$(ls -A %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/ 2>/dev/null)" 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 # Move macros file into proper place and replace the %%{name} macro, since it
# would be wrongly evaluated during build of other packages. # would be wrongly evaluated during build of other packages.
@ -663,13 +685,7 @@ mkdir -p %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib
mv %{buildroot}%{ruby_libdir}/irb* %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib mv %{buildroot}%{ruby_libdir}/irb* %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib
mv %{buildroot}%{gem_dir}/specifications/default/irb-%{irb_version}.gemspec %{buildroot}%{gem_dir}/specifications mv %{buildroot}%{gem_dir}/specifications/default/irb-%{irb_version}.gemspec %{buildroot}%{gem_dir}/specifications
ln -s %{gem_dir}/gems/irb-%{irb_version}/lib/irb.rb %{buildroot}%{ruby_libdir}/irb.rb ln -s %{gem_dir}/gems/irb-%{irb_version}/lib/irb.rb %{buildroot}%{ruby_libdir}/irb.rb
# TODO: This should be possible to replaced by simple directory symlink ln -s %{gem_dir}/gems/irb-%{irb_version}/lib/irb %{buildroot}%{ruby_libdir}/irb
# after ~ F31 EOL (rhbz#1691039).
mkdir -p %{buildroot}%{ruby_libdir}/irb
pushd %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib
find irb -type d -mindepth 1 -exec mkdir %{buildroot}%{ruby_libdir}/'{}' \;
find irb -type f -exec ln -s %{gem_dir}/gems/irb-%{irb_version}/lib/'{}' %{buildroot}%{ruby_libdir}/'{}' \;
popd
mkdir -p %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib mkdir -p %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib
mv %{buildroot}%{ruby_libdir}/rdoc* %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib mv %{buildroot}%{ruby_libdir}/rdoc* %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib
@ -679,6 +695,7 @@ mkdir -p %{buildroot}%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib
mkdir -p %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal mkdir -p %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal
mv %{buildroot}%{ruby_libdir}/bigdecimal %{buildroot}%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib mv %{buildroot}%{ruby_libdir}/bigdecimal %{buildroot}%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib
mv %{buildroot}%{ruby_libarchdir}/bigdecimal.so %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version} mv %{buildroot}%{ruby_libarchdir}/bigdecimal.so %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}
touch %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/gem.build_complete
mv %{buildroot}%{gem_dir}/specifications/default/bigdecimal-%{bigdecimal_version}.gemspec %{buildroot}%{gem_dir}/specifications mv %{buildroot}%{gem_dir}/specifications/default/bigdecimal-%{bigdecimal_version}.gemspec %{buildroot}%{gem_dir}/specifications
ln -s %{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib/bigdecimal %{buildroot}%{ruby_libdir}/bigdecimal ln -s %{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib/bigdecimal %{buildroot}%{ruby_libdir}/bigdecimal
ln -s %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal.so %{buildroot}%{ruby_libarchdir}/bigdecimal.so ln -s %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal.so %{buildroot}%{ruby_libarchdir}/bigdecimal.so
@ -694,6 +711,7 @@ mkdir -p %{buildroot}%{gem_dir}/gems/io-console-%{io_console_version}/lib
mkdir -p %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/io mkdir -p %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/io
mv %{buildroot}%{ruby_libdir}/io %{buildroot}%{gem_dir}/gems/io-console-%{io_console_version}/lib mv %{buildroot}%{ruby_libdir}/io %{buildroot}%{gem_dir}/gems/io-console-%{io_console_version}/lib
mv %{buildroot}%{ruby_libarchdir}/io/console.so %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/io mv %{buildroot}%{ruby_libarchdir}/io/console.so %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/io
touch %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/gem.build_complete
mv %{buildroot}%{gem_dir}/specifications/default/io-console-%{io_console_version}.gemspec %{buildroot}%{gem_dir}/specifications mv %{buildroot}%{gem_dir}/specifications/default/io-console-%{io_console_version}.gemspec %{buildroot}%{gem_dir}/specifications
ln -s %{gem_dir}/gems/io-console-%{io_console_version}/lib/io %{buildroot}%{ruby_libdir}/io ln -s %{gem_dir}/gems/io-console-%{io_console_version}/lib/io %{buildroot}%{ruby_libdir}/io
ln -s %{_libdir}/gems/%{name}/io-console-%{io_console_version}/io/console.so %{buildroot}%{ruby_libarchdir}/io/console.so ln -s %{_libdir}/gems/%{name}/io-console-%{io_console_version}/io/console.so %{buildroot}%{ruby_libarchdir}/io/console.so
@ -702,29 +720,17 @@ mkdir -p %{buildroot}%{gem_dir}/gems/json-%{json_version}/lib
mkdir -p %{buildroot}%{_libdir}/gems/%{name}/json-%{json_version} mkdir -p %{buildroot}%{_libdir}/gems/%{name}/json-%{json_version}
mv %{buildroot}%{ruby_libdir}/json* %{buildroot}%{gem_dir}/gems/json-%{json_version}/lib mv %{buildroot}%{ruby_libdir}/json* %{buildroot}%{gem_dir}/gems/json-%{json_version}/lib
mv %{buildroot}%{ruby_libarchdir}/json/ %{buildroot}%{_libdir}/gems/%{name}/json-%{json_version}/ mv %{buildroot}%{ruby_libarchdir}/json/ %{buildroot}%{_libdir}/gems/%{name}/json-%{json_version}/
touch %{buildroot}%{_libdir}/gems/%{name}/json-%{json_version}/gem.build_complete
mv %{buildroot}%{gem_dir}/specifications/default/json-%{json_version}.gemspec %{buildroot}%{gem_dir}/specifications mv %{buildroot}%{gem_dir}/specifications/default/json-%{json_version}.gemspec %{buildroot}%{gem_dir}/specifications
ln -s %{gem_dir}/gems/json-%{json_version}/lib/json.rb %{buildroot}%{ruby_libdir}/json.rb ln -s %{gem_dir}/gems/json-%{json_version}/lib/json.rb %{buildroot}%{ruby_libdir}/json.rb
ln -s %{gem_dir}/gems/json-%{json_version}/lib/json %{buildroot}%{ruby_libdir}/json ln -s %{gem_dir}/gems/json-%{json_version}/lib/json %{buildroot}%{ruby_libdir}/json
ln -s %{_libdir}/gems/%{name}/json-%{json_version}/json/ %{buildroot}%{ruby_libarchdir}/json ln -s %{_libdir}/gems/%{name}/json-%{json_version}/json/ %{buildroot}%{ruby_libarchdir}/json
mkdir -p %{buildroot}%{gem_dir}/gems/openssl-%{openssl_version}/lib
mkdir -p %{buildroot}%{_libdir}/gems/%{name}/openssl-%{openssl_version}
mv %{buildroot}%{ruby_libdir}/openssl* %{buildroot}%{gem_dir}/gems/openssl-%{openssl_version}/lib
mv %{buildroot}%{ruby_libarchdir}/openssl.so %{buildroot}%{_libdir}/gems/%{name}/openssl-%{openssl_version}/
mv %{buildroot}%{gem_dir}/specifications/default/openssl-%{openssl_version}.gemspec %{buildroot}%{gem_dir}/specifications
# This used to be directory when OpenSSL was integral part of StdLib => Keep
# it as directory and link everything in it to prevent directory => symlink
# conversion RPM issues.
mkdir -p %{buildroot}%{ruby_libdir}/openssl
find %{buildroot}%{gem_dir}/gems/openssl-%{openssl_version}/lib/openssl -maxdepth 1 -type f -exec \
sh -c 'ln -s %{gem_dir}/gems/openssl-%{openssl_version}/lib/openssl/`basename {}` %{buildroot}%{ruby_libdir}/openssl' \;
ln -s %{gem_dir}/gems/openssl-%{openssl_version}/lib/openssl.rb %{buildroot}%{ruby_libdir}/openssl.rb
ln -s %{_libdir}/gems/%{name}/openssl-%{openssl_version}/openssl.so %{buildroot}%{ruby_libarchdir}/openssl.so
mkdir -p %{buildroot}%{gem_dir}/gems/psych-%{psych_version}/lib mkdir -p %{buildroot}%{gem_dir}/gems/psych-%{psych_version}/lib
mkdir -p %{buildroot}%{_libdir}/gems/%{name}/psych-%{psych_version} mkdir -p %{buildroot}%{_libdir}/gems/%{name}/psych-%{psych_version}
mv %{buildroot}%{ruby_libdir}/psych* %{buildroot}%{gem_dir}/gems/psych-%{psych_version}/lib mv %{buildroot}%{ruby_libdir}/psych* %{buildroot}%{gem_dir}/gems/psych-%{psych_version}/lib
mv %{buildroot}%{ruby_libarchdir}/psych.so %{buildroot}%{_libdir}/gems/%{name}/psych-%{psych_version}/ mv %{buildroot}%{ruby_libarchdir}/psych.so %{buildroot}%{_libdir}/gems/%{name}/psych-%{psych_version}/
touch %{buildroot}%{_libdir}/gems/%{name}/psych-%{psych_version}/gem.build_complete
mv %{buildroot}%{gem_dir}/specifications/default/psych-%{psych_version}.gemspec %{buildroot}%{gem_dir}/specifications mv %{buildroot}%{gem_dir}/specifications/default/psych-%{psych_version}.gemspec %{buildroot}%{gem_dir}/specifications
ln -s %{gem_dir}/gems/psych-%{psych_version}/lib/psych %{buildroot}%{ruby_libdir}/psych ln -s %{gem_dir}/gems/psych-%{psych_version}/lib/psych %{buildroot}%{ruby_libdir}/psych
ln -s %{gem_dir}/gems/psych-%{psych_version}/lib/psych.rb %{buildroot}%{ruby_libdir}/psych.rb ln -s %{gem_dir}/gems/psych-%{psych_version}/lib/psych.rb %{buildroot}%{ruby_libdir}/psych.rb
@ -737,15 +743,19 @@ find %{buildroot}%{gem_dir}/extensions/*-%{_target_os}/%{ruby_version}/* -maxdep
|| echo "No gem binary extensions to move." || echo "No gem binary extensions to move."
# Move man pages into proper location # Move man pages into proper location
mkdir -p %{buildroot}%{_mandir}/man{1,5}
mv %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/doc/rake.1 %{buildroot}%{_mandir}/man1 mv %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/doc/rake.1 %{buildroot}%{_mandir}/man1
# https://bugs.ruby-lang.org/issues/17778
cp -a %{buildroot}%{gem_dir}/gems/bundler-%{bundler_version}/lib/bundler/man/*.1 %{buildroot}%{_mandir}/man1
cp -a %{buildroot}%{gem_dir}/gems/bundler-%{bundler_version}/lib/bundler/man/*.5 %{buildroot}%{_mandir}/man5
%if %{with systemtap} %if %{with systemtap}
# Install a tapset and fix up the path to the library. # Install a tapset and fix up the path to the library.
mkdir -p %{buildroot}%{tapset_dir} mkdir -p %{buildroot}%{_systemtap_tapsetdir}
sed -e "s|@LIBRARY_PATH@|%{tapset_libdir}/libruby.so.%{major_minor_version}|" \ sed -e "s|@LIBRARY_PATH@|%{tapset_libdir}/libruby.so.%{major_minor_version}|" \
%{SOURCE2} > %{buildroot}%{tapset_dir}/libruby.so.%{major_minor_version}.stp %{SOURCE2} > %{buildroot}%{_systemtap_tapsetdir}/libruby.so.%{major_minor_version}.stp
# Escape '*/' in comment. # Escape '*/' in comment.
sed -i -r "s|( \*.*\*)\/(.*)|\1\\\/\2|" %{buildroot}%{tapset_dir}/libruby.so.%{major_minor_version}.stp sed -i -r "s|( \*.*\*)\/(.*)|\1\\\/\2|" %{buildroot}%{_systemtap_tapsetdir}/libruby.so.%{major_minor_version}.stp
%endif %endif
# Prepare -doc subpackage file lists. # Prepare -doc subpackage file lists.
@ -764,10 +774,6 @@ sed -i 's/^/%lang(ja) /' .ruby-doc.ja
# https://github.com/ruby/rake/pull/333 # https://github.com/ruby/rake/pull/333
rm -rf %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.github rm -rf %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.github
# Remove accidentaly added files
# https://bugs.ruby-lang.org/issues/17784
rm -rf %{buildroot}%{ruby_libdir}/exe/
%check %check
%if 0%{?with_hardening_test} %if 0%{?with_hardening_test}
# Check Ruby hardening. # Check Ruby hardening.
@ -799,7 +805,7 @@ checksec --file=libruby.so.%{ruby_version} | \
# FileUtils. # FileUtils.
[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ [ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \
module Bundler; end; \ module Bundler; end; \
require 'bundler/vendor/fileutils/lib/fileutils/version'; \ require 'bundler/vendor/fileutils/lib/fileutils'; \
puts Bundler::FileUtils::VERSION\\\"\" | tail -1`" \ puts Bundler::FileUtils::VERSION\\\"\" | tail -1`" \
== '%{bundler_fileutils_version}' ] == '%{bundler_fileutils_version}' ]
@ -825,6 +831,17 @@ checksec --file=libruby.so.%{ruby_version} | \
puts Bundler::Thor::VERSION\\\"\" | tail -1`" \ puts Bundler::Thor::VERSION\\\"\" | tail -1`" \
== '%{bundler_thor_version}' ] == '%{bundler_thor_version}' ]
# tmpdir.
# TODO: There is no version in bundled tmpdir yet.
#%%{global bundler_tmpdir_version}
# URI.
[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \
module Bundler; end; \
require 'bundler/vendor/uri/lib/uri/version'; \
puts Bundler::URI::VERSION\\\"\" | tail -1`" \
== '%{bundler_uri_version}' ]
# test_debug(TestRubyOptions) fails due to LoadError reported in debug mode, # test_debug(TestRubyOptions) fails due to LoadError reported in debug mode,
# when abrt.rb cannot be required (seems to be easier way then customizing # when abrt.rb cannot be required (seems to be easier way then customizing
@ -844,40 +861,6 @@ MSPECOPTS=""
# Avoid `hostname' dependency. # Avoid `hostname' dependency.
%{!?with_hostname:MSPECOPTS="-P 'Socket.gethostname returns the host name'"} %{!?with_hostname:MSPECOPTS="-P 'Socket.gethostname returns the host name'"}
# Disable "File.utime allows Time instances in the far future to set
# mtime and atime".
# https://bugs.ruby-lang.org/issues/16410
MSPECOPTS="$MSPECOPTS -P 'File.utime allows Time instances in the far future to set mtime and atime'"
# Disable File.lchmod specs, which fails when building against glibc 2.31.9000.
# https://bugs.ruby-lang.org/issues/16749
MSPECOPTS="$MSPECOPTS -P 'File.lchmod changes the file mode of the link and not of the file'"
# For now, disable JIT tests in RHEL 8.
# https://bugzilla.redhat.com/show_bug.cgi?id=1721553
mv test/ruby/test_jit.rb{,.disabled}
sed \
-e '/^ def test_pause$/,/^ end$/ s/^/#/' \
-e '/^ def test_pause_waits_until_compaction$/,/^ end$/ s/^/#/' \
-i test/ruby/test_rubyvm_mjit.rb
%ifarch s390x
# Increase timeout for Fiddle::TestFunction#test_nogvl_poll test, which fails
# sometimes.
sed -i '/^ def test_nogvl_poll$/,/^ end$/ s/ 180,/ 1000,/' \
test/fiddle/test_function.rb
# Skip tests which fail sometimes due to timeout.
sed -i '/^ def test_status_quit$/,/^ end$/ s/^/#/' \
test/ruby/test_process.rb
sed \
-e '/^ def test_segv_test$/,/^ end$/ s/^/#/' \
-e '/^ def test_segv_loaded_features$/,/^ end$/ s/^/#/' \
-e '/^ def test_segv_setproctitle$/,/^ end$/ s/^/#/' \
-i test/ruby/test_rubyoptions.rb
sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
test/ruby/test_signal.rb
%endif
# Give an option to increase the timeout in tests. # Give an option to increase the timeout in tests.
# https://bugs.ruby-lang.org/issues/16921 # https://bugs.ruby-lang.org/issues/16921
%{?test_timeout_scale:RUBY_TEST_TIMEOUT_SCALE="%{test_timeout_scale}"} \ %{?test_timeout_scale:RUBY_TEST_TIMEOUT_SCALE="%{test_timeout_scale}"} \
@ -890,7 +873,6 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%license GPL %license GPL
%license LEGAL %license LEGAL
%{_bindir}/erb %{_bindir}/erb
%{_bindir}/racc
%{_bindir}/%{name}%{?with_rubypick:-mri} %{_bindir}/%{name}%{?with_rubypick:-mri}
%{_mandir}/man1/erb* %{_mandir}/man1/erb*
%{_mandir}/man1/ruby* %{_mandir}/man1/ruby*
@ -914,7 +896,7 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%license GPL %license GPL
%license LEGAL %license LEGAL
%doc README.md %doc README.md
%doc NEWS %doc NEWS.md
# Exclude /usr/local directory since it is supposed to be managed by # Exclude /usr/local directory since it is supposed to be managed by
# local system administrator. # local system administrator.
%exclude %{ruby_sitelibdir} %exclude %{ruby_sitelibdir}
@ -928,7 +910,6 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%exclude %{ruby_libdir}/bigdecimal* %exclude %{ruby_libdir}/bigdecimal*
%exclude %{ruby_libdir}/irb* %exclude %{ruby_libdir}/irb*
%exclude %{ruby_libdir}/json* %exclude %{ruby_libdir}/json*
%exclude %{ruby_libdir}/openssl*
%exclude %{ruby_libdir}/psych* %exclude %{ruby_libdir}/psych*
%{ruby_libdir}/abbrev.rb %{ruby_libdir}/abbrev.rb
%{ruby_libdir}/base64.rb %{ruby_libdir}/base64.rb
@ -958,6 +939,7 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%{ruby_libdir}/monitor.rb %{ruby_libdir}/monitor.rb
%{ruby_libdir}/mutex_m.rb %{ruby_libdir}/mutex_m.rb
%{ruby_libdir}/net %{ruby_libdir}/net
%{ruby_libdir}/objspace.rb
%{ruby_libdir}/observer* %{ruby_libdir}/observer*
%{ruby_libdir}/open-uri.rb %{ruby_libdir}/open-uri.rb
%{ruby_libdir}/open3* %{ruby_libdir}/open3*
@ -973,12 +955,10 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%{ruby_libdir}/reline* %{ruby_libdir}/reline*
%{ruby_libdir}/resolv.rb %{ruby_libdir}/resolv.rb
%{ruby_libdir}/resolv-replace.rb %{ruby_libdir}/resolv-replace.rb
%{ruby_libdir}/rexml
%{ruby_libdir}/rinda %{ruby_libdir}/rinda
%{ruby_libdir}/ripper* %{ruby_libdir}/ripper*
%{ruby_libdir}/rss*
%{ruby_libdir}/securerandom.rb %{ruby_libdir}/securerandom.rb
%{ruby_libdir}/set.rb %{ruby_libdir}/set*
%{ruby_libdir}/shellwords.rb %{ruby_libdir}/shellwords.rb
%{ruby_libdir}/singleton* %{ruby_libdir}/singleton*
%{ruby_libdir}/socket.rb %{ruby_libdir}/socket.rb
@ -993,7 +973,6 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%{ruby_libdir}/un.rb %{ruby_libdir}/un.rb
%{ruby_libdir}/uri* %{ruby_libdir}/uri*
%{ruby_libdir}/weakref* %{ruby_libdir}/weakref*
%{ruby_libdir}/webrick*
%{ruby_libdir}/yaml* %{ruby_libdir}/yaml*
# Platform specific libraries. # Platform specific libraries.
@ -1093,7 +1072,6 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%{ruby_libarchdir}/rbconfig/sizeof.so %{ruby_libarchdir}/rbconfig/sizeof.so
%{ruby_libarchdir}/readline.so %{ruby_libarchdir}/readline.so
%{ruby_libarchdir}/ripper.so %{ruby_libarchdir}/ripper.so
%{ruby_libarchdir}/sdbm.so
%{ruby_libarchdir}/socket.so %{ruby_libarchdir}/socket.so
%{ruby_libarchdir}/stringio.so %{ruby_libarchdir}/stringio.so
%{ruby_libarchdir}/strscan.so %{ruby_libarchdir}/strscan.so
@ -1102,11 +1080,13 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
# Default gems # Default gems
%{ruby_libdir}/did_you_mean* %{ruby_libdir}/did_you_mean*
%{ruby_libdir}/openssl*
%{ruby_libarchdir}/openssl.so
%{ruby_libdir}/racc* %{ruby_libdir}/racc*
%dir %{ruby_libarchdir}/racc %dir %{ruby_libarchdir}/racc
%{ruby_libarchdir}/racc/cparse.so %{ruby_libarchdir}/racc/cparse.so
%{?with_systemtap:%{tapset_root}} %{?with_systemtap:%{_systemtap_datadir}}
%files -n rubygems %files -n rubygems
%{_bindir}/gem %{_bindir}/gem
@ -1122,6 +1102,7 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%dir %{gem_dir}/doc %dir %{gem_dir}/doc
%dir %{gem_dir}/extensions %dir %{gem_dir}/extensions
%dir %{gem_dir}/gems %dir %{gem_dir}/gems
%dir %{gem_dir}/plugins
%dir %{gem_dir}/specifications %dir %{gem_dir}/specifications
%dir %{gem_dir}/specifications/default %dir %{gem_dir}/specifications/default
%dir %{_exec_prefix}/lib*/gems %dir %{_exec_prefix}/lib*/gems
@ -1137,54 +1118,86 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%{_rpmconfigdir}/rubygems.con %{_rpmconfigdir}/rubygems.con
%files default-gems %files default-gems
%{gem_dir}/specifications/default/benchmark-0.1.0.gemspec %{gem_dir}/specifications/default/english-0.7.1.gemspec
%{gem_dir}/specifications/default/cgi-0.1.0.gemspec %{gem_dir}/specifications/default/abbrev-0.1.0.gemspec
%{gem_dir}/specifications/default/csv-3.1.2.gemspec %{gem_dir}/specifications/default/base64-0.1.0.gemspec
%{gem_dir}/specifications/default/date-3.0.0.gemspec %{gem_dir}/specifications/default/benchmark-0.1.1.gemspec
%{gem_dir}/specifications/default/cgi-0.2.0.gemspec
%{gem_dir}/specifications/default/csv-3.1.9.gemspec
%{gem_dir}/specifications/default/date-3.1.0.gemspec
%{gem_dir}/specifications/default/dbm-1.1.0.gemspec %{gem_dir}/specifications/default/dbm-1.1.0.gemspec
%{gem_dir}/specifications/default/delegate-0.1.0.gemspec %{gem_dir}/specifications/default/debug-0.1.0.gemspec
%{gem_dir}/specifications/default/delegate-0.2.0.gemspec
%{gem_dir}/specifications/default/did_you_mean-%{did_you_mean_version}.gemspec %{gem_dir}/specifications/default/did_you_mean-%{did_you_mean_version}.gemspec
%{gem_dir}/specifications/default/etc-1.1.0.gemspec %{gem_dir}/specifications/default/digest-3.0.0.gemspec
%{gem_dir}/specifications/default/drb-2.0.4.gemspec
%{gem_dir}/specifications/default/erb-%{erb_version}.gemspec
%{gem_dir}/specifications/default/etc-1.2.0.gemspec
%{gem_dir}/specifications/default/fcntl-1.0.0.gemspec %{gem_dir}/specifications/default/fcntl-1.0.0.gemspec
%{gem_dir}/specifications/default/fiddle-1.0.0.gemspec %{gem_dir}/specifications/default/fiddle-1.0.6.gemspec
%{gem_dir}/specifications/default/fileutils-1.4.1.gemspec %{gem_dir}/specifications/default/fileutils-1.5.0.gemspec
%{gem_dir}/specifications/default/forwardable-1.3.1.gemspec %{gem_dir}/specifications/default/find-0.1.0.gemspec
%{gem_dir}/specifications/default/forwardable-1.3.2.gemspec
%{gem_dir}/specifications/default/gdbm-2.1.0.gemspec %{gem_dir}/specifications/default/gdbm-2.1.0.gemspec
%{gem_dir}/specifications/default/getoptlong-0.1.0.gemspec %{gem_dir}/specifications/default/getoptlong-0.1.1.gemspec
%{gem_dir}/specifications/default/io-nonblock-0.1.0.gemspec
%{gem_dir}/specifications/default/io-wait-0.1.0.gemspec
%{gem_dir}/specifications/default/ipaddr-1.2.2.gemspec %{gem_dir}/specifications/default/ipaddr-1.2.2.gemspec
%{gem_dir}/specifications/default/logger-1.4.2.gemspec %{gem_dir}/specifications/default/logger-1.4.3.gemspec
%{gem_dir}/specifications/default/matrix-0.2.0.gemspec %{gem_dir}/specifications/default/matrix-0.3.1.gemspec
%{gem_dir}/specifications/default/mutex_m-0.1.0.gemspec %{gem_dir}/specifications/default/mutex_m-0.1.1.gemspec
%{gem_dir}/specifications/default/net-pop-0.1.0.gemspec %{gem_dir}/specifications/default/net-ftp-0.1.1.gemspec
%{gem_dir}/specifications/default/net-smtp-0.1.0.gemspec %{gem_dir}/specifications/default/net-http-0.1.1.gemspec
%{gem_dir}/specifications/default/observer-0.1.0.gemspec %{gem_dir}/specifications/default/net-imap-0.1.1.gemspec
%{gem_dir}/specifications/default/open3-0.1.0.gemspec %{gem_dir}/specifications/default/net-pop-0.1.1.gemspec
%{gem_dir}/specifications/default/ostruct-0.2.0.gemspec %{gem_dir}/specifications/default/net-protocol-0.1.0.gemspec
%{gem_dir}/specifications/default/prime-0.1.1.gemspec %{gem_dir}/specifications/default/net-smtp-0.2.1.gemspec
%{gem_dir}/specifications/default/pstore-0.1.0.gemspec %{gem_dir}/specifications/default/nkf-0.1.0.gemspec
%{gem_dir}/specifications/default/observer-0.1.1.gemspec
%{gem_dir}/specifications/default/open3-0.1.1.gemspec
%{gem_dir}/specifications/default/open-uri-0.1.0.gemspec
%{gem_dir}/specifications/default/optparse-0.1.0.gemspec
%{gem_dir}/specifications/default/openssl-%{openssl_version}.gemspec
%{gem_dir}/specifications/default/ostruct-0.3.1.gemspec
%{gem_dir}/specifications/default/pathname-0.1.0.gemspec
%{gem_dir}/specifications/default/pp-0.1.0.gemspec
%{gem_dir}/specifications/default/prettyprint-0.1.0.gemspec
%{gem_dir}/specifications/default/prime-0.1.2.gemspec
%{gem_dir}/specifications/default/pstore-0.1.1.gemspec
%{gem_dir}/specifications/default/racc-%{racc_version}.gemspec %{gem_dir}/specifications/default/racc-%{racc_version}.gemspec
%{gem_dir}/specifications/default/readline-0.0.2.gemspec %{gem_dir}/specifications/default/readline-0.0.2.gemspec
%{gem_dir}/specifications/default/readline-ext-0.1.0.gemspec %{gem_dir}/specifications/default/readline-ext-0.1.1.gemspec
%{gem_dir}/specifications/default/reline-0.1.5.gemspec %{gem_dir}/specifications/default/reline-0.2.5.gemspec
%{gem_dir}/specifications/default/rexml-3.2.3.1.gemspec %{gem_dir}/specifications/default/resolv-0.2.0.gemspec
%{gem_dir}/specifications/default/rss-0.2.8.gemspec %{gem_dir}/specifications/default/resolv-replace-0.1.0.gemspec
%{gem_dir}/specifications/default/sdbm-1.0.0.gemspec %{gem_dir}/specifications/default/rinda-0.1.0.gemspec
%{gem_dir}/specifications/default/singleton-0.1.0.gemspec %{gem_dir}/specifications/default/securerandom-0.1.0.gemspec
%{gem_dir}/specifications/default/stringio-0.1.0.gemspec %{gem_dir}/specifications/default/set-1.0.1.gemspec
%{gem_dir}/specifications/default/strscan-1.0.3.gemspec %{gem_dir}/specifications/default/shellwords-0.1.0.gemspec
%{gem_dir}/specifications/default/timeout-0.1.0.gemspec %{gem_dir}/specifications/default/singleton-0.1.1.gemspec
%{gem_dir}/specifications/default/tracer-0.1.0.gemspec %{gem_dir}/specifications/default/stringio-3.0.0.gemspec
%{gem_dir}/specifications/default/uri-0.10.0.gemspec %{gem_dir}/specifications/default/strscan-3.0.0.gemspec
%{gem_dir}/specifications/default/webrick-1.6.1.gemspec %{gem_dir}/specifications/default/syslog-0.1.0.gemspec
%{gem_dir}/specifications/default/yaml-0.1.0.gemspec %{gem_dir}/specifications/default/tempfile-0.1.1.gemspec
%{gem_dir}/specifications/default/time-0.1.0.gemspec
%{gem_dir}/specifications/default/timeout-0.1.1.gemspec
%{gem_dir}/specifications/default/tmpdir-0.1.2.gemspec
%{gem_dir}/specifications/default/tsort-0.1.0.gemspec
%{gem_dir}/specifications/default/tracer-0.1.1.gemspec
%{gem_dir}/specifications/default/un-0.1.0.gemspec
%{gem_dir}/specifications/default/uri-0.10.1.gemspec
%{gem_dir}/specifications/default/weakref-0.1.1.gemspec
#%%{gem_dir}/specifications/default/win32ole-1.8.8.gemspec
%{gem_dir}/specifications/default/yaml-0.1.1.gemspec
%{gem_dir}/specifications/default/zlib-1.1.0.gemspec %{gem_dir}/specifications/default/zlib-1.1.0.gemspec
# These have wrong shebangs. Exclude them for now and let's see what upstream %{gem_dir}/gems/erb-%{erb_version}
# thinks about them. # Use standalone rubygem-racc if Racc binary is required. Shipping this
# https://bugs.ruby-lang.org/issues/15982 # executable in both packages might possibly cause conflicts. The situation
%exclude %{_bindir}/{racc2y,y2racc} # could be better if Ruby generated these files:
%exclude %{gem_dir}/gems/racc-%{racc_version}/bin/{racc2y,y2racc} # https://github.com/ruby/ruby/pull/2545
%{gem_dir}/gems/racc-%{racc_version} %exclude %{_bindir}/racc
%exclude %{gem_dir}/gems/racc-%{racc_version}/bin
%files -n rubygem-irb %files -n rubygem-irb
%{_bindir}/irb %{_bindir}/irb
@ -1227,14 +1240,6 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%{gem_dir}/gems/json-%{json_version} %{gem_dir}/gems/json-%{json_version}
%{gem_dir}/specifications/json-%{json_version}.gemspec %{gem_dir}/specifications/json-%{json_version}.gemspec
%files -n rubygem-openssl
%{ruby_libdir}/openssl
%{ruby_libdir}/openssl.rb
%{ruby_libarchdir}/openssl.so
%{_libdir}/gems/%{name}/openssl-%{openssl_version}
%{gem_dir}/gems/openssl-%{openssl_version}
%{gem_dir}/specifications/openssl-%{openssl_version}.gemspec
%files -n rubygem-psych %files -n rubygem-psych
%{ruby_libdir}/psych %{ruby_libdir}/psych
%{ruby_libdir}/psych.rb %{ruby_libdir}/psych.rb
@ -1256,11 +1261,6 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%exclude %{gem_dir}/gems/minitest-%{minitest_version}/.* %exclude %{gem_dir}/gems/minitest-%{minitest_version}/.*
%{gem_dir}/specifications/minitest-%{minitest_version}.gemspec %{gem_dir}/specifications/minitest-%{minitest_version}.gemspec
%files -n rubygem-net-telnet
%{gem_dir}/gems/net-telnet-%{net_telnet_version}
%exclude %{gem_dir}/gems/net-telnet-%{net_telnet_version}/.*
%{gem_dir}/specifications/net-telnet-%{net_telnet_version}.gemspec
%files -n rubygem-power_assert %files -n rubygem-power_assert
%{gem_dir}/gems/power_assert-%{power_assert_version} %{gem_dir}/gems/power_assert-%{power_assert_version}
%exclude %{gem_dir}/gems/power_assert-%{power_assert_version}/.* %exclude %{gem_dir}/gems/power_assert-%{power_assert_version}/.*
@ -1272,24 +1272,94 @@ sed -i '/^ def test_ignored_interrupt$/,/^ end$/ s/^/#/' \
%{gem_dir}/specifications/rake-%{rake_version}.gemspec %{gem_dir}/specifications/rake-%{rake_version}.gemspec
%{_mandir}/man1/rake.1* %{_mandir}/man1/rake.1*
%files -n rubygem-rbs
%{_bindir}/rbs
%dir %{gem_dir}/gems/rbs-%{rbs_version}
%exclude %{gem_dir}/gems/rbs-%{rbs_version}/.*
%license %{gem_dir}/gems/rbs-%{rbs_version}/BSDL
%doc %{gem_dir}/gems/rbs-%{rbs_version}/CHANGELOG.md
%license %{gem_dir}/gems/rbs-%{rbs_version}/COPYING
%{gem_dir}/gems/rbs-%{rbs_version}/Gemfile
%doc %{gem_dir}/gems/rbs-%{rbs_version}/README.md
%{gem_dir}/gems/rbs-%{rbs_version}/Rakefile
%{gem_dir}/gems/rbs-%{rbs_version}/Steepfile
%{gem_dir}/gems/rbs-%{rbs_version}/bin
%{gem_dir}/gems/rbs-%{rbs_version}/core
%doc %{gem_dir}/gems/rbs-%{rbs_version}/docs
%{gem_dir}/gems/rbs-%{rbs_version}/exe
%{gem_dir}/gems/rbs-%{rbs_version}/goodcheck.yml
%{gem_dir}/gems/rbs-%{rbs_version}/lib
%{gem_dir}/gems/rbs-%{rbs_version}/schema
%{gem_dir}/gems/rbs-%{rbs_version}/sig
%{gem_dir}/gems/rbs-%{rbs_version}/stdlib
%{gem_dir}/gems/rbs-%{rbs_version}/steep
%{gem_dir}/specifications/rbs-%{rbs_version}.gemspec
%files -n rubygem-test-unit %files -n rubygem-test-unit
%{gem_dir}/gems/test-unit-%{test_unit_version} %{gem_dir}/gems/test-unit-%{test_unit_version}
%{gem_dir}/specifications/test-unit-%{test_unit_version}.gemspec %{gem_dir}/specifications/test-unit-%{test_unit_version}.gemspec
%files -n rubygem-xmlrpc %files -n rubygem-rexml
%license %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/LICENSE.txt %dir %{gem_dir}/gems/rexml-%{rexml_version}
%dir %{gem_dir}/gems/xmlrpc-%{xmlrpc_version} %license %{gem_dir}/gems/rexml-%{rexml_version}/LICENSE.txt
%exclude %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/.* %doc %{gem_dir}/gems/rexml-%{rexml_version}/NEWS.md
%{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/Gemfile %doc %{gem_dir}/gems/rexml-%{rexml_version}/doc
%{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/Rakefile %{gem_dir}/gems/rexml-%{rexml_version}/lib
%doc %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/README.md %{gem_dir}/specifications/rexml-%{rexml_version}.gemspec
%{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/bin %doc %{gem_dir}/gems/rexml-%{rexml_version}/README.md
%{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/lib
%{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/xmlrpc.gemspec %files -n rubygem-rss
%{gem_dir}/specifications/xmlrpc-%{xmlrpc_version}.gemspec %dir %{gem_dir}/gems/rss-%{rss_version}
%exclude %{gem_dir}/gems/rss-%{rss_version}/.*
%license %{gem_dir}/gems/rss-%{rss_version}/LICENSE.txt
%doc %{gem_dir}/gems/rss-%{rss_version}/NEWS.md
%{gem_dir}/gems/rss-%{rss_version}/lib
%{gem_dir}/specifications/rss-%{rss_version}.gemspec
%doc %{gem_dir}/gems/rss-%{rss_version}/Gemfile
%doc %{gem_dir}/gems/rss-%{rss_version}/README.md
%doc %{gem_dir}/gems/rss-%{rss_version}/Rakefile
%doc %{gem_dir}/gems/rss-%{rss_version}/test
%files -n rubygem-typeprof
%dir %{gem_dir}/gems/typeprof-%{typeprof_version}
%{_bindir}/typeprof
%exclude %{gem_dir}/gems/typeprof-%{typeprof_version}/.*
%license %{gem_dir}/gems/typeprof-%{typeprof_version}/LICENSE
%{gem_dir}/gems/typeprof-%{typeprof_version}/exe
%{gem_dir}/gems/typeprof-%{typeprof_version}/lib
%doc %{gem_dir}/gems/typeprof-%{typeprof_version}/smoke
%doc %{gem_dir}/gems/typeprof-%{typeprof_version}/tools
%{gem_dir}/specifications/typeprof-%{typeprof_version}.gemspec
%doc %{gem_dir}/gems/typeprof-%{typeprof_version}/Gemfile*
%doc %{gem_dir}/gems/typeprof-%{typeprof_version}/README.md
%doc %{gem_dir}/gems/typeprof-%{typeprof_version}/Rakefile
%doc %{gem_dir}/gems/typeprof-%{typeprof_version}/doc
%lang(ja) %doc %{gem_dir}/gems/typeprof-%{typeprof_version}/doc/doc.ja.md
%doc %{gem_dir}/gems/typeprof-%{typeprof_version}/testbed
%changelog %changelog
* Mon Jun 07 2021 Jarek Prokop <jprokop@redhat.com> - 3.0.1-137
- Upgrade to Ruby 3.0.1 by merging Fedora rawhide branch (commit: 6b2ff68).
* Add missing `rubygem-` prefix for bundled provide of 'connection_pool'.
* Pass ldflags to gem install via CONFIGURE_ARGS
* Remove IRB dependency from rubygem-rdoc.
* Fix flaky excon test suite.
* Properly support DWARF5 debug information.
Related: rhbz#1920533
* Bundle OpenSSL into StdLib.
* Fix SEGFAULT in rubygem-shoulda-matchers test suite.
* Provide `gem.build_complete` file for binary gems.
* Re-enable test suite.
* ruby-default-gems have to depend on rubygem(io-console) due to reline.
* Fix SEGFAULT preventing rubygem-unicode to build on armv7hl.
* Add support for reworked RubyGems plugins.
* Use proper path for plugin wrappers.
* Extract RSS and REXML into separate subpackages, because they were moved from
default gems to bundled gems.
* Drop Net::Telnet and XMLRPC packages, because they were dropped from Ruby.
Resolves: rhbz#1938942
* Wed Apr 07 2021 Pavel Valena <pvalena@redhat.com> - 2.7.3-136 * Wed Apr 07 2021 Pavel Valena <pvalena@redhat.com> - 2.7.3-136
- Upgrade to Ruby 2.7.3. - Upgrade to Ruby 2.7.3.
Resolves: rhbz#1947938 Resolves: rhbz#1947938

View File

@ -1 +1 @@
SHA512 (ruby-2.7.3.tar.xz) = b755d418b3bab2f9f6a8893afd13869269f17065643dde78b9e85ae3538a6d0617893db6e9c3908e00a40c7577a5c912a7c822d8f245cdcfb857be76dfb66c1e SHA512 (ruby-3.0.1.tar.xz) = 97d2e883656060846b304368d9d836e2f3ef39859c36171c9398a0573818e4ed75bfd7460f901a9553f7f53518c505327a66e74f83704a881469f5ac61fe13d7