Upgrade to Ruby 4.0.0.

* Define different expected archives macros for development.

When revision was defined, there was also timestamp appended.
That does not seem necessary for preview tarballs from upstream.

Instead split it into their own separate conditionals.

* irb and rdoc are now a bundled gem
Don't ship the %ruby_libdir parts and the symlinking for irb and rdoc.
The rdoc rubygems plugin should now be correctly present. Remove the
additional source.

* Multiple gems are now bundled gems.
Add them to ruby-bundled-gems subpackage instead of their own separate
packages.

* Split the rdoc support for ruby version directory from
  ruby-2.3.0-ruby_version.patch.
After Ruby moved RDoc to bundled gems from default gems, the directory
in which RDoc is in the upstream tarball is not in the upstream source,
necessitating a patch split for the Ruby version patch.
It cannot be fully re-created including the rdoc part in a single patch
with upstream ruby/ruby github.

Instead the part is created from ruby/rdoc github.

Add bundled provides for rubygem-json + the source into comments.
Source is as described in upstream commits and in the LEGAL file
upstream. Add the respective licenses for the subpackage.

RDoc includes a new doc generator that is under the MIT license,
update the license to reflect it.

Resolves: rhbz#2425358
This commit is contained in:
Jarek Prokop 2025-09-19 09:53:56 +02:00
commit c670682a97
11 changed files with 311 additions and 370 deletions

View file

@ -1,4 +1,4 @@
From 07c666ba5c3360dd6f43605a8ac7c85c99c1721f Mon Sep 17 00:00:00 2001
From e1293f665128b0d9c5bfa0b5beeab4afebf07e6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Tue, 1 Oct 2013 12:22:40 +0200
Subject: [PATCH] Allow to configure libruby.so placement.
@ -8,10 +8,10 @@ Subject: [PATCH] Allow to configure libruby.so placement.
1 file changed, 5 insertions(+)
diff --git a/configure.ac b/configure.ac
index d261ea57b5..3c13076b82 100644
index a64358fada..b3bdfad1eb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3518,6 +3518,11 @@ AS_IF([test ${multiarch+set}], [
@@ -3556,6 +3556,11 @@ AS_IF([test ${multiarch+set}], [
])
archlibdir='${libdir}/${arch}'

View file

@ -1,4 +1,4 @@
From e24d97c938c481450ed80ec83e5399595946c1ae Mon Sep 17 00:00:00 2001
From 6062f4976c5b51f8b952b9f6745175be7b1c5ff9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Fri, 8 Feb 2013 22:48:41 +0100
Subject: [PATCH] Prevent duplicated paths when empty version string is
@ -11,10 +11,10 @@ Subject: [PATCH] Prevent duplicated paths when empty version string is
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index c42436c23d..d261ea57b5 100644
index 2bc5153141..a64358fada 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4365,7 +4365,8 @@ AS_CASE(["$ruby_version_dir_name"],
@@ -4472,7 +4472,8 @@ AS_CASE(["$ruby_version_dir_name"],
ruby_version_dir=/'${ruby_version_dir_name}'
if test -z "${ruby_version_dir_name}"; then
@ -25,7 +25,7 @@ index c42436c23d..d261ea57b5 100644
rubylibdir='${rubylibprefix}'${ruby_version_dir}
diff --git a/loadpath.c b/loadpath.c
index 9160031..0d4d953 100644
index b8969e6998..bbfd4daa78 100644
--- a/loadpath.c
+++ b/loadpath.c
@@ -65,21 +65,33 @@ const char ruby_initial_load_paths[] =
@ -63,10 +63,10 @@ index 9160031..0d4d953 100644
RUBY_LIB "\0"
diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
index 07076d4..35e6c3c 100755
index db74115730..2b01796abf 100755
--- a/tool/mkconfig.rb
+++ b/tool/mkconfig.rb
@@ -116,7 +116,7 @@
@@ -114,7 +114,7 @@
val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump
case name
when /^prefix$/

View file

@ -1,4 +1,4 @@
From 2089cab72b38d6d5e7ba2b596e41014209acad30 Mon Sep 17 00:00:00 2001
From 9e70f6e4b8771965a30ecfb6d1c6015df350ca55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Mon, 19 Nov 2012 14:37:28 +0100
Subject: [PATCH] Always use i386.
@ -8,10 +8,10 @@ Subject: [PATCH] Always use i386.
1 file changed, 2 insertions(+)
diff --git a/configure.ac b/configure.ac
index 3c13076b82..93af30321d 100644
index b3bdfad1eb..411322a27f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4429,6 +4429,8 @@ AC_SUBST(vendorarchdir)dnl
@@ -4536,6 +4536,8 @@ AC_SUBST(vendorarchdir)dnl
AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl
AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl

View file

@ -1,4 +1,4 @@
From 94da59aafacc6a9efe829529eb51385588d6f149 Mon Sep 17 00:00:00 2001
From c7952996ac9738a14bea0a1a971fea13460a6c94 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Fri, 11 Nov 2011 13:14:45 +0100
Subject: [PATCH] Allow to install RubyGems into custom location, outside of
@ -12,10 +12,10 @@ Subject: [PATCH] Allow to install RubyGems into custom location, outside of
4 files changed, 22 insertions(+)
diff --git a/configure.ac b/configure.ac
index 93af30321d..bc13397e0e 100644
index 411322a27f..b5f842a512 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4401,6 +4401,10 @@ AC_ARG_WITH(vendorarchdir,
@@ -4508,6 +4508,10 @@ AC_ARG_WITH(vendorarchdir,
[vendorarchdir=$withval],
[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}"], [
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
RUBY_EXEC_PREFIX=''
@@ -4425,6 +4429,7 @@ AC_SUBST(sitearchdir)dnl
@@ -4532,6 +4536,7 @@ AC_SUBST(sitearchdir)dnl
AC_SUBST(vendordir)dnl
AC_SUBST(vendorlibdir)dnl
AC_SUBST(vendorarchdir)dnl
@ -35,7 +35,7 @@ index 93af30321d..bc13397e0e 100644
AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl
AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl
diff --git a/loadpath.c b/loadpath.c
index 623dc9d..74c5d9e 100644
index bbfd4daa78..69677a9297 100644
--- a/loadpath.c
+++ b/loadpath.c
@@ -94,6 +94,10 @@ const char ruby_initial_load_paths[] =
@ -50,7 +50,7 @@ index 623dc9d..74c5d9e 100644
#ifdef RUBY_THINARCH
RUBY_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
diff --git a/template/verconf.h.tmpl b/template/verconf.h.tmpl
index 79c003e..34f2382 100644
index 9ba2bd6de5..4ec4ce9353 100644
--- a/template/verconf.h.tmpl
+++ b/template/verconf.h.tmpl
@@ -36,6 +36,9 @@
@ -64,10 +64,10 @@ index 79c003e..34f2382 100644
% R = {}
% R["ruby_version"] = '"RUBY_LIB_VERSION"'
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index e9110a17ca..76a1f0a315 100755
index a9e6365b27..7117e65e82 100755
--- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb
@@ -382,6 +382,7 @@ def CONFIG.[](name, mandatory = false)
@@ -393,6 +393,7 @@ def CONFIG.[](name, mandatory = false)
vendorlibdir = CONFIG["vendorlibdir"]
vendorarchlibdir = CONFIG["vendorarchdir"]
end
@ -75,7 +75,7 @@ index e9110a17ca..76a1f0a315 100755
mandir = CONFIG["mandir", true]
docdir = CONFIG["docdir", true]
enable_shared = CONFIG["ENABLE_SHARED"] == 'yes'
@@ -974,7 +975,16 @@ def (bins = []).add(name)
@@ -1082,7 +1083,16 @@ def (bins = []).add(name)
install?(:local, :comm, :lib) do
prepare "library scripts", rubylibdir
noinst = %w[*.txt *.rdoc *.gemspec]

View file

@ -0,0 +1,22 @@
From f833e213596b0bcfad8264a555eb5093303fb5f2 Mon Sep 17 00:00:00 2001
From: Jarek Prokop <jprokop@redhat.com>
Date: Thu, 25 Sep 2025 12:26:39 +0200
Subject: [PATCH] Add ruby_version_dir_name support for RDoc.
---
lib/rdoc/ri/paths.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/rdoc/ri/paths.rb b/lib/rdoc/ri/paths.rb
index 8e89b04e..731f9e36 100644
--- a/lib/rdoc/ri/paths.rb
+++ b/lib/rdoc/ri/paths.rb
@@ -10,7 +10,7 @@ module RDoc::RI::Paths
#:stopdoc:
require 'rbconfig'
- version = RbConfig::CONFIG['ruby_version']
+ version = RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']
BASE = File.join RbConfig::CONFIG['ridir'], version

View file

@ -1,4 +1,4 @@
From 4fc1be3af3f58621bb751c9e63c208b15c0e8d16 Mon Sep 17 00:00:00 2001
From 5406ea4b4b13db747e5c1f8341bb257b4da04435 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Tue, 31 Mar 2015 16:21:04 +0200
Subject: [PATCH 1/4] Use ruby_version_dir_name for versioned directories.
@ -17,10 +17,10 @@ string.
2 files changed, 36 insertions(+), 31 deletions(-)
diff --git a/configure.ac b/configure.ac
index 80b137e380..63cd3b4f8b 100644
index 2bbce78fd0..9d8662369c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4315,9 +4315,6 @@ AS_CASE(["$target_os"],
@@ -4422,9 +4422,6 @@ AS_CASE(["$target_os"],
rubyw_install_name='$(RUBYW_INSTALL_NAME)'
])
@ -30,7 +30,7 @@ index 80b137e380..63cd3b4f8b 100644
rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'}
AC_ARG_WITH(rubyarchprefix,
AS_HELP_STRING([--with-rubyarchprefix=DIR],
@@ -4340,57 +4337,63 @@ AC_ARG_WITH(ridir,
@@ -4447,57 +4444,63 @@ AC_ARG_WITH(ridir,
AC_SUBST(ridir)
AC_SUBST(RI_BASE_NAME)
@ -122,7 +122,7 @@ index 80b137e380..63cd3b4f8b 100644
AS_IF([test "${LOAD_RELATIVE+set}"], [
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
@@ -4407,6 +4410,7 @@ AC_SUBST(sitearchincludedir)dnl
@@ -4514,6 +4517,7 @@ AC_SUBST(sitearchincludedir)dnl
AC_SUBST(arch)dnl
AC_SUBST(sitearch)dnl
AC_SUBST(ruby_version)dnl
@ -131,7 +131,7 @@ index 80b137e380..63cd3b4f8b 100644
AC_SUBST(rubyarchdir)dnl
AC_SUBST(sitedir)dnl
diff --git a/template/ruby.pc.in b/template/ruby.pc.in
index 8a2c066..c81b211 100644
index 6901ec2320..9b7b787208 100644
--- a/template/ruby.pc.in
+++ b/template/ruby.pc.in
@@ -2,6 +2,7 @@ MAJOR=@MAJOR@
@ -143,35 +143,20 @@ index 8a2c066..c81b211 100644
RUBY_PROGRAM_VERSION=@RUBY_PROGRAM_VERSION@
arch=@arch@
From 518850aba6eee76de7715aae8d37330e34b01983 Mon Sep 17 00:00:00 2001
From baff562149499973123d2187620201be641c6538 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:26 +0200
Subject: [PATCH 2/4] Add ruby_version_dir_name support for RDoc.
---
lib/rdoc/ri/paths.rb | 2 +-
tool/rbinstall.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
tool/rbinstall.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/rdoc/ri/paths.rb b/lib/rdoc/ri/paths.rb
index 970cb91..5bf8230 100644
--- a/lib/rdoc/ri/paths.rb
+++ b/lib/rdoc/ri/paths.rb
@@ -10,7 +10,7 @@ module RDoc::RI::Paths
#:stopdoc:
require 'rbconfig'
- version = RbConfig::CONFIG['ruby_version']
+ version = RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']
BASE = File.join RbConfig::CONFIG['ridir'], version
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index d4c110e..d39c9a6 100755
index 874c3ef1d9..a9e6365b27 100755
--- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb
@@ -945,7 +945,7 @@ def (bins = []).add(name)
@@ -1053,7 +1053,7 @@ def (bins = []).add(name)
install?(:doc, :rdoc) do
if $rdocdir
@ -181,7 +166,7 @@ index d4c110e..d39c9a6 100755
install_recursive($rdocdir, ridatadir, :no_install => rdoc_noinst, :mode => $data_mode)
end
From 9f0ec0233f618cbb862629816b22491c3df79578 Mon Sep 17 00:00:00 2001
From 7cf872a9a34f38d71cd2ca04ac114b4ea85cc56c 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.
@ -192,7 +177,7 @@ Subject: [PATCH 3/4] Add ruby_version_dir_name support for RubyGems.
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
index d4ff4a262c..3f9a5bf590 100644
index 90f09fc191..f6b8a03b95 100644
--- a/lib/rubygems/defaults.rb
+++ b/lib/rubygems/defaults.rb
@@ -35,7 +35,7 @@ def self.default_spec_cache_dir
@ -224,10 +209,10 @@ index d4ff4a262c..3f9a5bf590 100644
##
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index b25068405d..e9fef4a311 100644
index 74c8953904..1f3bd91d51 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -1365,7 +1365,8 @@ def test_self_use_paths
@@ -1339,7 +1339,8 @@ def test_self_use_paths
def test_self_user_dir
parts = [@userhome, ".gem", Gem.ruby_engine]
@ -237,7 +222,7 @@ index b25068405d..e9fef4a311 100644
FileUtils.mkdir_p File.join(parts)
@@ -1441,7 +1442,7 @@ def test_self_vendor_dir
@@ -1415,7 +1416,7 @@ def test_self_vendor_dir
vendordir(File.join(@tempdir, "vendor")) do
expected =
File.join RbConfig::CONFIG["vendordir"], "gems",
@ -247,8 +232,7 @@ index b25068405d..e9fef4a311 100644
assert_equal expected, Gem.vendor_dir
end
From 88c38a030c22dbf9422ece847bdfbf87d6659313 Mon Sep 17 00:00:00 2001
From 17cb98b7b78f8bfc511feffbe061747f676055b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Wed, 1 Apr 2015 14:55:37 +0200
Subject: [PATCH 4/4] Let headers directories follow the configured version
@ -259,10 +243,10 @@ Subject: [PATCH 4/4] Let headers directories follow the configured version
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index a00f2b6776..999e2d6d5d 100644
index 9d8662369c..2bc5153141 100644
--- a/configure.ac
+++ b/configure.ac
@@ -143,7 +143,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`
@@ -151,7 +151,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`
RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`
AC_SUBST(RUBY_BASE_NAME)
AC_SUBST(RUBYW_BASE_NAME)

View file

@ -1,4 +1,4 @@
From eca084e4079c77c061045df9c21b219175b05228 Mon Sep 17 00:00:00 2001
From 03b44a86b574dc0b63fd57c5f9b52b56ad3ced37 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Mon, 6 Jan 2020 13:56:04 +0100
Subject: [PATCH] Initialize ABRT hook.
@ -16,15 +16,15 @@ To keep the things simple for now, load the ABRT hook via C.
[5]: https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/LH6L6YJOYQT4Y5ZNOO4SLIPTUWZ5V45Q/
---
abrt.c | 12 ++++++++++++
common.mk | 3 ++-
common.mk | 1 +
ruby.c | 4 ++++
spec/ruby/core/kernel/require_spec.rb | 2 ++
4 files changed, 20 insertions(+), 1 deletion(-)
4 files changed, 19 insertions(+)
create mode 100644 abrt.c
diff --git a/abrt.c b/abrt.c
new file mode 100644
index 0000000000..74b0bd5c0f
index 0000000000..e99cb432e6
--- /dev/null
+++ b/abrt.c
@@ -0,0 +1,12 @@
@ -41,24 +41,22 @@ index 0000000000..74b0bd5c0f
+ );
+}
diff --git a/common.mk b/common.mk
index b2e5b2b6d0..f39f81da5c 100644
index 08fee9119a..dae7d9dc00 100644
--- a/common.mk
+++ b/common.mk
@@ -110,7 +110,8 @@ PRISM_FILES = prism/api_node.$(OBJEXT) \
prism/prism.$(OBJEXT) \
@@ -116,6 +116,7 @@ PRISM_FILES = prism/api_node.$(OBJEXT) \
prism_init.$(OBJEXT)
-COMMONOBJS = array.$(OBJEXT) \
+COMMONOBJS = abrt.$(OBJEXT) \
+ array.$(OBJEXT) \
COMMONOBJS = \
+ abrt.$(OBJEXT) \
array.$(OBJEXT) \
ast.$(OBJEXT) \
bignum.$(OBJEXT) \
class.$(OBJEXT) \
diff --git a/ruby.c b/ruby.c
index 60c57d6259..1eec16f2c8 100644
index b00fc1502d..32b88f7496 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1744,10 +1744,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt)
@@ -1773,10 +1773,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt)
void Init_builtin_features(void);
@ -70,14 +68,14 @@ index 60c57d6259..1eec16f2c8 100644
{
Init_builtin_features();
+ Init_abrt();
rb_const_remove(rb_cObject, rb_intern_const("TMP_RUBY_PREFIX"));
}
void rb_call_builtin_inits(void);
diff --git a/spec/ruby/core/kernel/require_spec.rb b/spec/ruby/core/kernel/require_spec.rb
index 60c57d6259..1eec16f2c8 100644
index 60d17242fe..a8f93b0db4 100644
--- a/spec/ruby/core/kernel/require_spec.rb
+++ b/spec/ruby/core/kernel/require_spec.rb
@@ -25,6 +25,8 @@
@@ -26,6 +26,8 @@
out = ruby_exe("puts $LOADED_FEATURES", options: '--disable-gems --disable-did-you-mean')
features = out.lines.map { |line| File.basename(line.chomp, '.*') }

View file

@ -1,4 +1,4 @@
From 6365d1b79e10330fced83d00d4cb950380a3b0fe Mon Sep 17 00:00:00 2001
From 9b7cb6a40d73bb86ee0de34360068e90e80f4e7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
Date: Thu, 7 Sep 2023 13:13:02 +0200
Subject: [PATCH] Disable syntax-suggest test case.
@ -9,10 +9,10 @@ This requires internet connection.
1 file changed, 2 deletions(-)
diff --git a/common.mk b/common.mk
index d55d1788aa..73755f6ccd 100644
index dae7d9dc00..111e859d1b 100644
--- a/common.mk
+++ b/common.mk
@@ -1668,8 +1668,6 @@ no-test-bundled-gems-spec:
@@ -1619,8 +1619,6 @@ no-test-bundled-gems-spec:
test-syntax-suggest:

View file

@ -1,136 +0,0 @@
From e0e771b76fbede656fe51c8bf18ce810f4afeee0 Mon Sep 17 00:00:00 2001
From: Jun Aruga <jaruga@redhat.com>
Date: Tue, 8 Apr 2025 15:03:06 +0200
Subject: [PATCH] Fix the tests using SHA-1 Probabilistic Signature Scheme
(PSS) parameters.
Fedora OpenSSL 3.5 on rawhide stopped accepting SHA-1 PSS[1] parameters.
This is different from the SHA-1 signatures which Fedora OpenSSL stopped
accepting since Fedora 41.[2]
This commit fixes the following test failures related to the SHA-1 PSS
parameters with Fedora OpenSSL 3.5.
Note these failures are the downstream Fedora OpenSSL RPM specific. The tests
pass without this commit with the upstream OpenSSL 3.5.
```
$ rpm -q openssl-libs openssl-devel
openssl-libs-3.5.0-2.fc43.x86_64
openssl-devel-3.5.0-2.fc43.x86_64
$ bundle exec rake test
...
E
===============================================================================================
Error: test_sign_verify_options(OpenSSL::TestPKeyRSA): OpenSSL::PKey::PKeyError: EVP_PKEY_CTX_ctrl_str(ctx, "rsa_mgf1_md", "SHA1"): digest not allowed (digest=SHA1)
/mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:113:in 'Hash#each'
/mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:113:in 'OpenSSL::PKey::PKey#sign'
/mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:113:in 'OpenSSL::TestPKeyRSA#test_sign_verify_options'
110: "rsa_pss_saltlen" => 20,
111: "rsa_mgf1_md" => "SHA1"
112: }
=> 113: sig_pss = key.sign("SHA256", data, pssopts)
114: assert_equal 256, sig_pss.bytesize
115: assert_equal true, key.verify("SHA256", sig_pss, data, pssopts)
116: assert_equal true, key.verify_pss("SHA256", sig_pss, data,
===============================================================================================
E
===============================================================================================
Error: test_sign_verify_pss(OpenSSL::TestPKeyRSA): OpenSSL::PKey::RSAError: digest not allowed (digest=SHA1)
/mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:191:in 'OpenSSL::PKey::RSA#sign_pss'
/mnt/git/ruby/openssl/test/openssl/test_pkey_rsa.rb:191:in 'OpenSSL::TestPKeyRSA#test_sign_verify_pss'
188: data = "Sign me!"
189: invalid_data = "Sign me?"
190:
=> 191: signature = key.sign_pss("SHA256", data, salt_length: 20, mgf1_hash: "SHA1")
192: assert_equal 256, signature.bytesize
193: assert_equal true,
194: key.verify_pss("SHA256", signature, data, salt_length: 20, mgf1_hash: "SHA1")
===============================================================================================
...
577 tests, 4186 assertions, 0 failures, 2 errors, 0 pendings, 3 omissions, 0 notifications
```
[1] https://en.wikipedia.org/wiki/Probabilistic_signature_scheme
[2] https://fedoraproject.org/wiki/Changes/OpenSSLDistrustSHA1SigVer
---
test/openssl/test_pkey_rsa.rb | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/test/openssl/test_pkey_rsa.rb b/test/openssl/test_pkey_rsa.rb
index 360309b..850c16a 100644
--- a/test/openssl/test_pkey_rsa.rb
+++ b/test/openssl/test_pkey_rsa.rb
@@ -108,13 +108,13 @@ def test_sign_verify_options
pssopts = {
"rsa_padding_mode" => "pss",
"rsa_pss_saltlen" => 20,
- "rsa_mgf1_md" => "SHA1"
+ "rsa_mgf1_md" => "SHA256"
}
sig_pss = key.sign("SHA256", data, pssopts)
assert_equal 256, sig_pss.bytesize
assert_equal true, key.verify("SHA256", sig_pss, data, pssopts)
assert_equal true, key.verify_pss("SHA256", sig_pss, data,
- salt_length: 20, mgf1_hash: "SHA1")
+ salt_length: 20, mgf1_hash: "SHA256")
# Defaults to PKCS #1 v1.5 padding => verification failure
assert_equal false, key.verify("SHA256", sig_pss, data)
@@ -188,22 +188,22 @@ def test_sign_verify_pss
data = "Sign me!"
invalid_data = "Sign me?"
- signature = key.sign_pss("SHA256", data, salt_length: 20, mgf1_hash: "SHA1")
+ signature = key.sign_pss("SHA256", data, salt_length: 20, mgf1_hash: "SHA256")
assert_equal 256, signature.bytesize
assert_equal true,
- key.verify_pss("SHA256", signature, data, salt_length: 20, mgf1_hash: "SHA1")
+ key.verify_pss("SHA256", signature, data, salt_length: 20, mgf1_hash: "SHA256")
assert_equal true,
- key.verify_pss("SHA256", signature, data, salt_length: :auto, mgf1_hash: "SHA1")
+ key.verify_pss("SHA256", signature, data, salt_length: :auto, mgf1_hash: "SHA256")
assert_equal false,
- key.verify_pss("SHA256", signature, invalid_data, salt_length: 20, mgf1_hash: "SHA1")
+ key.verify_pss("SHA256", signature, invalid_data, salt_length: 20, mgf1_hash: "SHA256")
- signature = key.sign_pss("SHA256", data, salt_length: :digest, mgf1_hash: "SHA1")
+ signature = key.sign_pss("SHA256", data, salt_length: :digest, mgf1_hash: "SHA256")
assert_equal true,
- key.verify_pss("SHA256", signature, data, salt_length: 32, mgf1_hash: "SHA1")
+ key.verify_pss("SHA256", signature, data, salt_length: 32, mgf1_hash: "SHA256")
assert_equal true,
- key.verify_pss("SHA256", signature, data, salt_length: :auto, mgf1_hash: "SHA1")
+ key.verify_pss("SHA256", signature, data, salt_length: :auto, mgf1_hash: "SHA256")
assert_equal false,
- key.verify_pss("SHA256", signature, data, salt_length: 20, mgf1_hash: "SHA1")
+ key.verify_pss("SHA256", signature, data, salt_length: 20, mgf1_hash: "SHA256")
# The sign_pss with `salt_length: :max` raises the "invalid salt length"
# error in FIPS. We need to skip the tests in FIPS.
@@ -213,18 +213,18 @@ def test_sign_verify_pss
# FIPS 186-5 section 5.4 PKCS #1
# https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf
unless OpenSSL.fips_mode
- signature = key.sign_pss("SHA256", data, salt_length: :max, mgf1_hash: "SHA1")
+ signature = key.sign_pss("SHA256", data, salt_length: :max, mgf1_hash: "SHA256")
# Should verify on the following salt_length (sLen).
# sLen <= emLen (octat) - 2 - hLen (octet) = 2048 / 8 - 2 - 256 / 8 = 222
# https://datatracker.ietf.org/doc/html/rfc8017#section-9.1.1
assert_equal true,
- key.verify_pss("SHA256", signature, data, salt_length: 222, mgf1_hash: "SHA1")
+ key.verify_pss("SHA256", signature, data, salt_length: 222, mgf1_hash: "SHA256")
assert_equal true,
- key.verify_pss("SHA256", signature, data, salt_length: :auto, mgf1_hash: "SHA1")
+ key.verify_pss("SHA256", signature, data, salt_length: :auto, mgf1_hash: "SHA256")
end
assert_raise(OpenSSL::PKey::RSAError) {
- key.sign_pss("SHA256", data, salt_length: 223, mgf1_hash: "SHA1")
+ key.sign_pss("SHA256", data, salt_length: 223, mgf1_hash: "SHA256")
}
end
--
2.48.1

389
ruby.spec
View file

@ -1,6 +1,6 @@
%global major_version 3
%global minor_version 4
%global teeny_version 8
%global major_version 4
%global minor_version 0
%global teeny_version 0
%global major_minor_version %{major_version}.%{minor_version}
%global ruby_version %{major_minor_version}.%{teeny_version}
@ -10,15 +10,22 @@
%dnl %global milestone preview2
# Keep the revision enabled for pre-releases from GIT.
%dnl %global revision 48d4efcb85
%dnl %global revision d428d086c2
%global ruby_archive %{name}-%{ruby_version}
# If revision and milestone are removed/commented out, the official release build is expected.
%if 0%{?milestone:1}%{?revision:1} != 0
%global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision}}
%if 0%{?milestone:1} != 0
%global ruby_archive %{ruby_archive}-%{?milestone}
%endif
%if 0%{?revision:1} != 0
%global ruby_archive %{ruby_archive}-%{?revision}
%define ruby_archive_timestamp %(stat --printf='@%Y' %{_sourcedir}/%{ruby_archive}.tar.xz | date -f - +"%Y%m%d")
%define development_release ~%{ruby_archive_timestamp}%{?milestone}%{?!milestone:%{?revision:git%{revision}}}
%endif
%if 0%{?milestone:1}%{?revision:1} != 0
%define development_release ~%{?ruby_archive_timestamp}%{?milestone}%{?!milestone:%{?revision:git%{revision}}}
%endif
@ -29,118 +36,115 @@
## BUNDLED_GEMS_VERSIONS
# Bundled libraries versions
%global rubygems_version 3.6.9
%global rubygems_version 4.0.3
%global rubygems_molinillo_version 0.8.0
%global rubygems_net_http_version 0.6.0
%global rubygems_net_http_version 0.7.0
%global rubygems_net_protocol_version 0.2.2
%global rubygems_optparse_version 0.6.0
%global rubygems_resolv_version 0.6.0
%global rubygems_optparse_version 0.8.0
%global rubygems_resolv_version 0.6.2
%global rubygems_securerandom_version 0.4.1
%global rubygems_timeout_version 0.4.3
%global rubygems_timeout_version 0.4.4
%global rubygems_tsort_version 0.2.0
%global rubygems_uri_version 1.0.4
%global rubygems_uri_version 1.1.1
# Default gems.
%global bundler_version 2.6.9
%global bundler_connection_pool_version 2.5.0
%global bundler_fileutils_version 1.7.3
%global bundler_net_http_persistent_version 4.0.4
%global bundler_version 4.0.3
%global bundler_connection_pool_version 2.5.4
%global bundler_fileutils_version 1.8.0
%global bundler_net_http_persistent_version 4.0.6
%global bundler_pub_grub_version 0.5.0
%global bundler_securerandom_version 0.4.1
%global bundler_thor_version 1.3.2
%global bundler_thor_version 1.4.0
%global bundler_tsort_version 0.2.0
%global bundler_uri_version 1.0.4
%global bundler_uri_version 1.1.1
%global benchmark_version 0.4.0
%global cgi_version 0.4.2
%global date_version 3.4.1
%global delegate_version 0.4.0
%global date_version 3.5.1
%global delegate_version 0.6.1
%global did_you_mean_version 2.0.0
%global digest_version 3.2.0
%global english_version 0.8.0
%global erb_version 4.0.4
%global error_highlight_version 0.7.0
%global digest_version 3.2.1
%global english_version 0.8.1
%global erb_version 6.0.1
%global error_highlight_version 0.7.1
%global etc_version 1.4.6
%global fcntl_version 1.2.0
%global fiddle_version 1.1.6
%global fileutils_version 1.7.3
%global fcntl_version 1.3.0
%global fileutils_version 1.8.0
%global find_version 0.2.0
%global forwardable_version 1.3.3
%global io_console_version 0.8.1
%global forwardable_version 1.4.0
%global io_console_version 0.8.2
%global io_nonblock_version 0.3.2
%global io_wait_version 0.3.2
%global ipaddr_version 1.2.7
%global irb_version 1.14.3
%global json_version 2.9.1
%global logger_version 1.6.4
%global net_http_version 0.6.0
%global io_wait_version 0.4.0
%global ipaddr_version 1.2.8
%global json_version 2.18.0
%global net_http_version 0.9.1
%global net_protocol_version 0.2.2
%global open_uri_version 0.5.0
%global open3_version 0.2.1
%global openssl_version 3.3.1
%global optparse_version 0.6.0
%global ostruct_version 0.6.1
%global pathname_version 0.4.0
%global pp_version 0.6.2
%global openssl_version 4.0.0
%global optparse_version 0.8.1
%global pp_version 0.6.3
%global prettyprint_version 0.2.0
%global prism_version 1.5.2
%global pstore_version 0.1.4
%global psych_version 5.2.2
%global rdoc_version 6.14.0
%global readline_version 0.0.4
%global reline_version 0.6.0
%global resolv_version 0.6.2
%global prism_version 1.7.0
%global psych_version 5.3.1
%global resolv_version 0.7.0
%global ruby2_keywords_version 0.0.5
%global securerandom_version 0.4.1
%global set_version 1.1.1
%global shellwords_version 0.2.2
%global singleton_version 0.3.0
%global stringio_version 3.1.2
%global strscan_version 3.1.2
%global stringio_version 3.2.0
%global strscan_version 3.1.6
%global syntax_suggest_version 2.0.2
%global tempfile_version 0.3.1
%global time_version 0.4.1
%global timeout_version 0.4.3
%global time_version 0.4.2
%global timeout_version 0.6.0
%global tmpdir_version 0.3.1
%global tsort_version 0.2.0
%global un_version 0.3.0
%global uri_version 1.0.4
%global weakref_version 0.1.3
%global win32_registry_version 0.1.0
%global win32ole_version 1.9.1
%global uri_version 1.1.1
%global weakref_version 0.1.4
%global win32_registry_version 0.1.2
%global yaml_version 0.4.0
%global zlib_version 3.2.1
%global zlib_version 3.2.2
# Bundled gems.
%global abbrev_version 0.1.2
%global base64_version 0.2.0
%global bigdecimal_version 3.1.8
%global csv_version 3.3.2
%global debug_version 1.11.0
%global drb_version 2.2.1
%global base64_version 0.3.0
%global benchmark_version 0.5.0
%global bigdecimal_version 4.0.1
%global csv_version 3.3.5
%global debug_version 1.11.1
%global drb_version 2.2.3
%global fiddle_version 1.1.8
%global getoptlong_version 0.2.1
%global matrix_version 0.4.2
%global minitest_version 5.25.4
%global irb_version 1.16.0
%global logger_version 1.7.0
%global matrix_version 0.4.3
%global minitest_version 6.0.0
%global mutex_m_version 0.3.0
%global net_ftp_version 0.3.8
%global net_imap_version 0.5.8
%global net_ftp_version 0.3.9
%global net_imap_version 0.6.2
%global net_pop_version 0.1.2
%global net_smtp_version 0.5.1
%global nkf_version 0.2.0
%global observer_version 0.1.2
%global power_assert_version 2.0.5
%global prime_version 0.1.3
%global ostruct_version 0.6.3
%global power_assert_version 3.0.1
%global prime_version 0.1.4
%global pstore_version 0.2.0
%global racc_version 1.8.1
%global rake_version 13.2.1
%global rbs_version 3.8.0
%global repl_type_completor_version 0.1.9
%global rake_version 13.3.1
%global rbs_version 3.10.0
%global rdoc_version 7.0.3
%global readline_version 0.0.4
%global reline_version 0.6.3
%global repl_type_completor_version 0.1.12
%global resolv_replace_version 0.1.1
%global rexml_version 3.4.4
%global rinda_version 0.2.0
%global rss_version 0.3.1
%global syslog_version 0.2.0
%global test_unit_version 3.6.7
%global typeprof_version 0.30.1
%global rss_version 0.3.2
%global syslog_version 0.3.0
%global test_unit_version 3.7.5
%global typeprof_version 0.31.1
%global win32ole_version 1.9.2
## END_BUNDLED_GEMS_VERSIONS
@ -178,7 +182,7 @@
Summary: An interpreter of object-oriented scripting language
Name: ruby
Version: %{ruby_version}%{?development_release}
Release: 29%{?dist}
Release: 30%{?dist}
# Licenses, which are likely not included in binary RPMs:
# Apache-2.0:
# benchmark/gc/redblack.rb
@ -236,10 +240,6 @@ Source16: rpm_test_helper.rb
Source17: test_rubygems_req.rb
Source18: test_rubygems_prov.rb
Source19: test_rubygems_con.rb
# This file is available in official RDoc 6.9+, while it is missing from
# default RDoc gem as shipped in Ruby tarball. This should not be needed for
# Ruby 3.5+.
Source20: https://github.com/ruby/rdoc/blob/master/lib/rubygems_plugin.rb
# The load directive is supported since RPM 4.12, i.e. F21+. The build process
# fails on older Fedoras.
@ -255,18 +255,23 @@ Source20: https://github.com/ruby/rdoc/blob/master/lib/rubygems_plugin.rb
# Fix ruby_version abuse.
# https://bugs.ruby-lang.org/issues/11002
Patch0: ruby-2.3.0-ruby_version.patch
# Fix ruby_version abuse for rdoc.
# Since rdoc is bundled gem, the patch is split from ruby-2.3.0-ruby_version.patch
# re-made in ruby/rdoc git source and will be applied in correct path in the
# specfile where we have the exact rdoc version that is part of the path.
Patch1: ruby-2.3.0-ruby_version-Add-ruby_version_dir_name-support-for-RDoc.patch
# http://bugs.ruby-lang.org/issues/7807
Patch1: ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch
Patch2: ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch
# Allows to override libruby.so placement. Hopefully we will be able to return
# to plain --with-rubyarchprefix.
# http://bugs.ruby-lang.org/issues/8973
Patch2: ruby-2.1.0-Enable-configuration-of-archlibdir.patch
Patch3: ruby-2.1.0-Enable-configuration-of-archlibdir.patch
# Force multiarch directories for i.86 to be always named i386. This solves
# some differencies in build between Fedora and RHEL.
Patch3: ruby-2.1.0-always-use-i386.patch
Patch4: ruby-2.1.0-always-use-i386.patch
# Allows to install RubyGems into custom directory, outside of Ruby's tree.
# http://bugs.ruby-lang.org/issues/5617
Patch4: ruby-2.1.0-custom-rubygems-location.patch
Patch5: ruby-2.1.0-custom-rubygems-location.patch
# The ABRT hook used to be initialized by preludes via following patches:
# https://bugs.ruby-lang.org/issues/8566
# https://bugs.ruby-lang.org/issues/15306
@ -279,9 +284,6 @@ Patch6: ruby-2.7.0-Initialize-ABRT-hook.patch
# Disable syntax_suggest test suite, which tries to download its dependencies.
# https://bugs.ruby-lang.org/issues/19297
Patch9: ruby-3.3.0-Disable-syntax-suggest-test-case.patch
# Fix the tests using SHA-1 Probabilistic Signature Scheme (PSS) parameters.
# https://github.com/ruby/openssl/pull/879
Patch10: ruby-3.4.2-openssl-Fix-SHA-1-PSS-tests.patch
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%{?with_rubypick:Suggests: rubypick}
@ -411,6 +413,7 @@ Provides: bundled(rubygem-resolv) = %{rubygems_resolv_version}
Provides: bundled(rubygem-securerandom) = %{rubygems_securerandom_version}
Provides: bundled(rubygem-timeout) = %{rubygems_timeout_version}
Provides: bundled(rubygem-tsort) = %{rubygems_tsort_version}
Provides: bundled(rubygem-uri) = %{rubygems_uri_version}
BuildArch: noarch
@ -475,11 +478,13 @@ Version: %{rdoc_version}
# BSD-3-Clause: lib/rdoc/generator/darkfish.rb
# CC-BY-2.5: lib/rdoc/generator/template/darkfish/images/loadingAnimation.gif
# OFL-1.1-RFN: lib/rdoc/generator/template/darkfish/css/fonts.css
# MIT: lib/rdoc/generator/aliki.rb
# MIT: lib/rdoc/generator/template/aliki/*
# Note that RDoc now embeds Racc parser:
# https://github.com/ruby/rdoc/pull/1019
# Luckily, this should have no license impact:
# https://github.com/ruby/racc/blob/5eb07b28bfb3e193a1cac07798fe7be7e1e246c4/lib/racc/parser.rb#L8-L10
License: GPL-2.0-only AND Ruby AND BSD-3-Clause AND CC-BY-2.5 AND OFL-1.1-RFN
License: GPL-2.0-only AND Ruby AND BSD-3-Clause AND CC-BY-2.5 AND OFL-1.1-RFN AND MIT
Requires: rubygem(io-console)
Requires: rubygem(json) >= %{json_version}
Provides: rdoc = %{version}-%{release}
@ -536,8 +541,18 @@ provide higher layer features, such like curses and readline.
%package -n rubygem-json
Summary: This is a JSON implementation as a Ruby extension in C
Version: %{json_version}
License: Ruby OR BSD-2-Clause
# Apache-2.0 OR BSL-1.0: ext/json/vendor/ryu.h
# MIT: ext/json/vendor/jeaiii-ltoa.h
# BSL-1.0: ext/json/vendor/fpconv.c
License: (Ruby OR BSD-2-Clause) AND (Apache-2.0 OR BSL-1.0) AND MIT AND BSL-1.0
Provides: bundled(rubygem-json) = %{json_version}
# https://github.com/ulfjack/ryu
Provides: bundled(ryu)
# jeaiii-ltoa.h
# https://github.com/jeaiii/itoa
Provides: bundled(itoa)
# https://github.com/night-shift/fpconv
Provides: bundled(fpconv)
%description -n rubygem-json
This is a implementation of the JSON specification according to RFC 4627.
@ -600,10 +615,13 @@ many machines, systematically and repeatably.
Summary: Bundled gems which are part of Ruby StdLib
Provides: bundled(rubygem-abbrev) = %{abbrev_version}
Provides: bundled(rubygem-base64) = %{base64_version}
Provides: bundled(rubygem-benchmark) = %{benchmark_version}
Provides: bundled(rubygem-csv) = %{csv_version}
Provides: bundled(rubygem-debug) = %{debug_version}
Provides: bundled(rubygem-drb) = %{drb_version}
Provides: bundled(rubygem-getoptlong) = %{getoptlong_version}
Provides: bundled(rubygem-fiddle) = %{fiddle_version}
Provides: bundled(rubygem-logger) = %{logger_version}
Provides: bundled(rubygem-matrix) = %{matrix_version}
Provides: bundled(rubygem-mutex_m) = %{mutex_m_version}
Provides: bundled(rubygem-net-ftp) = %{net_ftp_version}
@ -611,8 +629,12 @@ Provides: bundled(rubygem-net-imap) = %{net_imap_version}
Provides: bundled(rubygem-net-pop) = %{net_pop_version}
Provides: bundled(rubygem-net-smtp) = %{net_smtp_version}
Provides: bundled(rubygem-nkf) = %{nkf_version}
Provides: bundled(rubygem-prime) = %{prime_version}
Provides: bundled(rubygem-observer) = %{observer_version}
Provides: bundled(rubygem-ostruct) = %{ostruct_version}
Provides: bundled(rubygem-prime) = %{prime_version}
Provides: bundled(rubygem-pstore) = %{pstore_version}
Provides: bundled(rubygem-readline) = %{readline_version}
Provides: bundled(rubygem-reline) = %{reline_version}
Provides: bundled(rubygem-repl_type_completor) = %{repl_type_completor_version}
Provides: bundled(rubygem-resolv-replace) = %{resolv_replace_version}
Provides: bundled(rubygem-rinda) = %{rinda_version}
@ -636,16 +658,13 @@ Provides: bundled(rubygem-minitest) = %{minitest_version}
BuildArch: noarch
%description -n rubygem-minitest
minitest/unit is a small and incredibly fast unit testing framework.
minitest/test is a small and incredibly fast unit testing framework.
minitest/spec is a functionally complete spec engine.
minitest/benchmark is an awesome way to assert the performance of your
algorithms in a repeatable manner.
minitest/mock by Steven Baker, is a beautifully tiny mock object
framework.
minitest/pride shows pride in testing and adds coloring to your test
output.
@ -769,13 +788,17 @@ analysis result in RBS format, a standard type description format for Ruby
%setup -q -n %{ruby_archive}
%patch 0 -p1
pushd .bundle/gems/rdoc-%{rdoc_version}
%patch 1 -p1
popd
%patch 2 -p1
%patch 3 -p1
%patch 4 -p1
%patch 5 -p1
%patch 6 -p1
%patch 9 -p1
%patch 10 -p1
# Provide an example of usage of the tapset:
cp -a %{SOURCE3} .
@ -846,8 +869,7 @@ sed -i 's/Version: \${ruby_version}/Version: %{ruby_version}/' %{buildroot}%{_li
# Kill bundled certificates, as they should be part of ca-certificates.
for cert in \
rubygems.org/GlobalSignRootCA.pem \
rubygems.org/GlobalSignRootCA_R3.pem
rubygems.org/GlobalSign.pem
do
rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert
rm -d $(dirname %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert) || :
@ -885,32 +907,6 @@ mkdir -p %{buildroot}%{_exec_prefix}/lib{,64}/gems/%{name}
# Move bundled rubygems to %%gem_dir and %%gem_extdir_mri
# make symlinks for io-console, which is considered to be part of stdlib by other Gems
mkdir -p %{buildroot}%{gem_libdir irb}
mv %{buildroot}%{ruby_libdir}/irb* %{buildroot}%{gem_libdir irb}
mv %{buildroot}%{gem_spec -d irb} %{buildroot}%{gem_spec irb}
ln -s %{gem_libdir irb}/irb.rb %{buildroot}%{ruby_libdir}/irb.rb
# TODO: This should be possible to replaced by simple directory symlink
# 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_libdir irb}/'{}' %{buildroot}%{ruby_libdir}/'{}' \;
popd
mkdir -p %{buildroot}%{gem_libdir rdoc}
mv %{buildroot}%{ruby_libdir}/rdoc* %{buildroot}%{gem_libdir rdoc}
mv %{buildroot}%{gem_spec -d rdoc} %{buildroot}%{gem_spec rdoc}
# Default gem is missing the RubyGems plugin, using various sorts of
# heuristics to workadound this. Restore the plugin to let the documentaion
# generator work properly. This shold not be needed for Ruby 3.5+.
# https://github.com/ruby/rdoc/pull/1171
# https://github.com/rubygems/rubygems/pull/8340
# Make sure to not overwrite the file, because it should not exist.
test ! -e %{buildroot}%{gem_libdir rdoc}/%{basename:%{SOURCE20}}
mv %{SOURCE20} %{buildroot}%{gem_libdir rdoc}
echo "require_relative '../gems/rdoc-%{rdoc_version}/lib/rubygems_plugin.rb'" \
> %{buildroot}%{gem_plugin rdoc}
# TODO: Put help files into proper location.
# https://bugs.ruby-lang.org/issues/15359
mkdir -p %{buildroot}%{gem_libdir bundler}
@ -960,7 +956,9 @@ find %{buildroot}%{gem_dir}/gems/*/lib -name \*.so -delete
# Move man pages into proper location
mkdir -p %{buildroot}%{_mandir}/man{1,5}
mv %{buildroot}%{gem_instdir irb}/man/irb.1 %{buildroot}%{_mandir}/man1
mv %{buildroot}%{gem_instdir rake}/doc/rake.1 %{buildroot}%{_mandir}/man1
mv %{buildroot}%{gem_instdir rdoc}/man/ri.1 %{buildroot}%{_mandir}/man1
# https://bugs.ruby-lang.org/issues/17778
cp -a %{buildroot}%{gem_libdir bundler}/bundler/man/*.1 %{buildroot}%{_mandir}/man1
cp -a %{buildroot}%{gem_libdir bundler}/bundler/man/*.5 %{buildroot}%{_mandir}/man5
@ -980,7 +978,6 @@ echo 'doc/images' >> .ruby-doc.en
echo 'doc/syntax' >> .ruby-doc.en
find doc -maxdepth 1 -type f -name '*.ja*' > .ruby-doc.ja
echo 'doc/irb' >> .ruby-doc.ja
echo 'doc/pty' >> .ruby-doc.ja
sed -i 's/^/%doc /' .ruby-doc.*
@ -989,9 +986,9 @@ sed -i 's/^/%lang(ja) /' .ruby-doc.ja
%check
%if 0%{?with_hardening_test}
# Check Ruby hardening.
%define fortification_x86_64 fortified="12" fortify-able="29"
%define fortification_x86_64 fortified="10" fortify-able="26"
%define fortification_i686 fortified="10" fortify-able="26"
%define fortification_aarch64 fortified="12" fortify-able="29"
%define fortification_aarch64 fortified="11" fortify-able="28"
%define fortification_ppc64le fortified="7" fortify-able="24"
%define fortification_s390x fortified="10" fortify-able="24"
%define fortification_riscv64 fortified="10" fortify-able="26"
@ -1018,6 +1015,7 @@ make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \
# Net::HTTP.
make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \
module Gem; module Net; end; end; \
require 'rbconfig'; \
require 'rubygems/vendor/net-http/lib/net/http'; \
puts '%%{rubygems_net_http_version}: %{rubygems_net_http_version}'; \
puts %Q[Gem::Net::HTTP::VERSION: #{Gem::Net::HTTP::VERSION}]; \
@ -1045,6 +1043,7 @@ make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \
# Resolv.
make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \
module Gem; end; \
require 'rbconfig'; \
require 'rubygems/vendor/resolv/lib/resolv'; \
puts '%%{rubygems_resolv_version}: %{rubygems_resolv_version}'; \
puts %Q[Gem::Resolv::VERSION: #{Gem::Resolv::VERSION}]; \
@ -1120,6 +1119,7 @@ make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \
make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \
module Gem; end; \
module Bundler; end; \
require 'rbconfig'; \
require 'bundler/vendor/net-http-persistent/lib/net/http/persistent'; \
puts '%%{bundler_net_http_persistent_version}: %{bundler_net_http_persistent_version}'; \
puts %Q[Gem::Net::HTTP::Persistent::VERSION: #{Gem::Net::HTTP::Persistent::VERSION}]; \
@ -1261,10 +1261,8 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
# List all these files explicitly to prevent surprises
# Platform independent libraries.
%dir %{ruby_libdir}
%exclude %{ruby_libdir}/irb*
%exclude %{ruby_libdir}/json*
%exclude %{ruby_libdir}/psych*
%{ruby_libdir}/benchmark*
%{ruby_libdir}/bundled_gems.rb
%{ruby_libdir}/cgi*
%{ruby_libdir}/coverage.rb
@ -1275,12 +1273,10 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%{ruby_libdir}/erb*
%{ruby_libdir}/error_highlight*
%{ruby_libdir}/expect.rb
%{ruby_libdir}/fiddle*
%{ruby_libdir}/fileutils.rb
%{ruby_libdir}/find.rb
%{ruby_libdir}/forwardable*
%{ruby_libdir}/ipaddr.rb
%{ruby_libdir}/logger*
%{ruby_libdir}/mkmf.rb
%{ruby_libdir}/monitor.rb
%{ruby_libdir}/net
@ -1289,20 +1285,14 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%{ruby_libdir}/open3*
%{ruby_libdir}/optionparser.rb
%{ruby_libdir}/optparse*
%{ruby_libdir}/ostruct*
%{ruby_libdir}/pathname.rb
%{ruby_libdir}/pp.rb
%{ruby_libdir}/prettyprint.rb
%{ruby_libdir}/pstore*
%{ruby_libdir}/random
%{ruby_libdir}/readline.rb
%{ruby_libdir}/reline*
%{ruby_libdir}/resolv.rb
%{ruby_libdir}/ripper*
%dir %{ruby_libdir}/ruby_vm
%{ruby_libdir}/ruby_vm/rjit
%{ruby_libdir}/securerandom.rb
%{ruby_libdir}/set*
%{ruby_libdir}/set/subclass_compatible.rb
%{ruby_libdir}/shellwords.rb
%{ruby_libdir}/singleton*
%{ruby_libdir}/socket.rb
@ -1401,13 +1391,11 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%{ruby_libarchdir}/erb/escape.so
%{ruby_libarchdir}/etc.so
%{ruby_libarchdir}/fcntl.so
%{ruby_libarchdir}/fiddle.so
%dir %{ruby_libarchdir}/io
%{ruby_libarchdir}/io/nonblock.so
%{ruby_libarchdir}/io/wait.so
%{ruby_libarchdir}/monitor.so
%{ruby_libarchdir}/objspace.so
%{ruby_libarchdir}/pathname.so
%{ruby_libarchdir}/pty.so
%dir %{ruby_libarchdir}/rbconfig
%{ruby_libarchdir}/rbconfig.rb
@ -1455,8 +1443,6 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%{_rpmconfigdir}/rubygems.con
%files default-gems
%gem_spec -d benchmark
%gem_spec -d cgi
%gem_spec -d date
%gem_spec -d delegate
%gem_spec -d did_you_mean
@ -1469,31 +1455,23 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%gem_spec -d error_highlight
%gem_spec -d etc
%gem_spec -d fcntl
%gem_spec -d fiddle
%gem_spec -d fileutils
%gem_spec -d find
%gem_spec -d forwardable
%gem_spec -d io-nonblock
%gem_spec -d io-wait
%gem_spec -d ipaddr
%gem_spec -d logger
%gem_spec -d net-http
%gem_spec -d net-protocol
%gem_spec -d open3
%gem_spec -d open-uri
%gem_spec -d optparse
%gem_spec -d openssl
%gem_spec -d ostruct
%gem_spec -d pathname
%gem_spec -d pp
%gem_spec -d prettyprint
%gem_spec -d pstore
%gem_spec -d readline
%gem_spec -d reline
%gem_spec -d resolv
%gem_spec -d ruby2_keywords
%gem_spec -d securerandom
%gem_spec -d set
%gem_spec -d shellwords
%gem_spec -d singleton
%gem_spec -d stringio
@ -1517,9 +1495,17 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%files -n rubygem-irb
%{_bindir}/irb
%{ruby_libdir}/irb*
%{gem_instdir irb}
%dir %{gem_instdir irb}
%{gem_libdir irb}
%{gem_spec irb}
%{gem_instdir irb}/exe
%{gem_instdir irb}/Gemfile
%license %{gem_instdir irb}/LICENSE.txt
%doc %{gem_instdir irb}/doc
%doc %{gem_instdir irb}/README.md
%doc %{gem_instdir irb}/CONTRIBUTING.md
%doc %{gem_instdir irb}/EXTEND_IRB.md
%{_mandir}/man1/irb.1*
%files -n rubygem-rdoc
@ -1585,11 +1571,25 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
# base64
%dir %{gem_instdir base64}
%license %{gem_instdir base64}/LICENSE.txt
%license %{gem_instdir base64}/BSDL
%license %{gem_instdir base64}/COPYING
%license %{gem_instdir base64}/LEGAL
%{gem_instdir base64}/sig
%{gem_libdir base64}
%{gem_spec base64}
%doc %{gem_instdir base64}/README.md
# benchmark
%dir %{gem_instdir benchmark}
%license %{gem_instdir benchmark}/BSDL
%license %{gem_instdir benchmark}/COPYING
%doc %{gem_instdir benchmark}/README.md
%{gem_instdir benchmark}/Gemfile
%{gem_instdir benchmark}/Rakefile
%{gem_instdir benchmark}/bin
%{gem_libdir benchmark}
%{gem_spec benchmark}
# csv
%dir %{gem_instdir csv}
%license %{gem_instdir csv}/LICENSE.txt
@ -1603,6 +1603,7 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%dir %{gem_instdir drb}
%license %{gem_instdir drb}/LICENSE.txt
%{gem_libdir drb}
%{gem_instdir drb}/drb.gemspec
%{gem_spec drb}
# getoptlong
@ -1616,10 +1617,32 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%doc %{gem_instdir getoptlong}/README.md
%{gem_instdir getoptlong}/Rakefile
# fiddle
%dir %{gem_instdir fiddle}
%license %{gem_instdir fiddle}/LICENSE.txt
%doc %{gem_instdir fiddle}/README.md
%{gem_instdir fiddle}/Rakefile
%{gem_libdir fiddle}
%dir %{gem_extdir_mri fiddle}
%{gem_extdir_mri fiddle}/fiddle.so
%{gem_extdir_mri fiddle}/gem.build_complete
%{gem_instdir fiddle}/fiddle.gemspec
%{gem_spec fiddle}
# logger
%dir %{gem_instdir logger}
%license %{gem_instdir logger}/BSDL
%license %{gem_instdir logger}/COPYING
%doc %{gem_instdir logger}/README.md
%{gem_libdir logger}
%{gem_spec logger}
# matrix
%dir %{gem_instdir matrix}
%license %{gem_instdir matrix}/LICENSE.txt
%license %{gem_instdir matrix}/BSDL
%license %{gem_instdir matrix}/COPYING
%{gem_libdir matrix}
%{gem_instdir matrix}/matrix.gemspec
%{gem_spec matrix}
# mutex_m
@ -1695,6 +1718,18 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%doc %{gem_instdir observer}/README.md
%{gem_instdir observer}/Rakefile
# ostruct
%dir %{gem_instdir ostruct}
%license %{gem_instdir ostruct}/BSDL
%license %{gem_instdir ostruct}/COPYING
%doc %{gem_instdir ostruct}/README.md
%{gem_instdir ostruct}/Gemfile
%{gem_instdir ostruct}/Rakefile
%{gem_instdir ostruct}/bin
%{gem_libdir ostruct}
%{gem_instdir ostruct}/ostruct.gemspec
%{gem_spec ostruct}
# prime
%dir %{gem_instdir prime}
%license %{gem_instdir prime}/BSDL
@ -1703,8 +1738,20 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%{gem_instdir prime}/Rakefile
%{gem_libdir prime}
%{gem_instdir prime}/sig
%{gem_instdir prime}/prime.gemspec
%{gem_spec prime}
# pstore
%dir %{gem_instdir pstore}
%license %{gem_instdir pstore}/BSDL
%license %{gem_instdir pstore}/COPYING
%doc %{gem_instdir pstore}/README.md
%{gem_instdir pstore}/Gemfile
%{gem_instdir pstore}/Rakefile
%{gem_instdir pstore}/bin
%{gem_libdir pstore}
%{gem_spec pstore}
# rdbg
%{_bindir}/rdbg
%dir %{gem_extdir_mri debug}
@ -1724,6 +1771,23 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%{gem_instdir debug}/misc
%{gem_spec debug}
# readline
%dir %{gem_instdir readline}
%license %{gem_instdir readline}/BSDL
%license %{gem_instdir readline}/COPYING
%doc %{gem_instdir readline}/README.md
%{gem_libdir readline}
%{gem_spec readline}
# reline
%dir %{gem_instdir reline}
%license %{gem_instdir reline}/BSDL
%license %{gem_instdir reline}/COPYING
%license %{gem_instdir reline}/license_of_rb-readline
%doc %{gem_instdir reline}/README.md
%{gem_libdir reline}
%{gem_spec reline}
# repl_type_completor
%dir %{gem_instdir repl_type_completor}
%license %{gem_instdir repl_type_completor}/LICENSE.txt
@ -1758,7 +1822,8 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
# syslog
%dir %{gem_instdir syslog}
%{gem_extdir_mri syslog}
%license %{gem_instdir syslog}/LICENSE.txt
%license %{gem_instdir syslog}/BSDL
%license %{gem_instdir syslog}/COPYING
%{gem_instdir syslog}/bin
%{gem_libdir syslog}
%exclude %{gem_cache syslog}
@ -1768,10 +1833,12 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%{gem_instdir syslog}/Rakefile
%files -n rubygem-minitest
%{_bindir}/minitest
%dir %{gem_instdir minitest}
%exclude %{gem_instdir minitest}/.*
%{gem_instdir minitest}/Manifest.txt
%{gem_instdir minitest}/design_rationale.rb
%{gem_instdir minitest}/bin
%{gem_libdir minitest}
%{gem_spec minitest}
%doc %{gem_instdir minitest}/History.rdoc
@ -1820,16 +1887,17 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%{gem_instdir rbs}/sig
%{gem_instdir rbs}/src
%{gem_instdir rbs}/stdlib
%{gem_instdir rbs}/templates
%{gem_spec rbs}
%files -n rubygem-test-unit
%{_bindir}/test-unit
%dir %{gem_instdir test-unit}
%license %{gem_instdir test-unit}/BSDL
%license %{gem_instdir test-unit}/COPYING
%license %{gem_instdir test-unit}/PSFL
%{gem_libdir test-unit}
%{gem_instdir test-unit}/sample
%{gem_instdir test-unit}/bin
%{gem_spec test-unit}
%doc %{gem_instdir test-unit}/README.md
%{gem_instdir test-unit}/Rakefile
@ -1874,6 +1942,7 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%exclude %{gem_instdir typeprof}/.*
%license %{gem_instdir typeprof}/LICENSE
%{gem_instdir typeprof}/bin
%{gem_instdir typeprof}/typeprof.conf.jsonc
%doc %{gem_instdir typeprof}/doc
%{gem_libdir typeprof}
%{gem_spec typeprof}
@ -1881,6 +1950,10 @@ make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=" \
%changelog
* Fri Jan 02 2026 Jarek Prokop <jprokop@redhat.com> - 4.0.0-30
- Upgrade to Ruby 4.0.0.
Resolves: rhbz#2425358
* Wed Dec 17 2025 Vít Ondruch <vondruch@redhat.com> - 3.4.8-29
- Update to Ruby 3.4.8.
Resolves: rhbz#2422963

View file

@ -1 +1 @@
SHA512 (ruby-3.4.8.tar.xz) = b6289654685c2d381d15123cf07a131fd088edf13a5336966af5a2e8fad9adda42d14caa7bb0998331831af71e35c546091db55c82089e89b9508603ff5f92d6
SHA512 (ruby-4.0.0.tar.xz) = 2d5b2e566eaf70a5f3ea6ce6afc0611c0415de58a41336ef7a0b855c9a91eda9aa790a5f8b48e40a1eb9d50f8ea0f687216e617f16c8d040a08474f3116518a4