Upgrade to Ruby 3.3.0.
Resolves: rhbz#2255918
This commit is contained in:
parent
f195b6a3c8
commit
05a6c9c8f3
@ -2,14 +2,31 @@
|
|||||||
%gem_dir %{_datadir}/gems
|
%gem_dir %{_datadir}/gems
|
||||||
%gem_archdir %{_libdir}/gems
|
%gem_archdir %{_libdir}/gems
|
||||||
|
|
||||||
|
# %gem_name_version - Provides gem_name-version string.
|
||||||
|
#
|
||||||
|
# Usage: %gem_name_version [custom_gem_name]
|
||||||
|
#
|
||||||
|
# Prints gem_name-version string, by default joining %gem_name, %version and
|
||||||
|
# %prerelease macros. When [custom_gem_name] is provided, the
|
||||||
|
# custom_gem_name is joined with %custom_gem_name_version macro which needs
|
||||||
|
# to be predefined. Please note that for the version macros are the dashes
|
||||||
|
# replaced by underscores.
|
||||||
|
#
|
||||||
|
%gem_name_version() %{?1}%{!?1:%{gem_name}}-%{?1:%{expand:%{%{gsub %{1} - _}_version}}}%{!?1:%{version}}%{?prerelease}
|
||||||
|
|
||||||
# Common gem locations and files.
|
# Common gem locations and files.
|
||||||
%gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}%{?prerelease}
|
#
|
||||||
%gem_extdir_mri %{gem_archdir}/%{name}/%{gem_name}-%{version}%{?prerelease}
|
# These macros leverages %gem_name_version macro and accepts custom gem_name.
|
||||||
%gem_libdir %{gem_instdir}/lib
|
#
|
||||||
%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}%{?prerelease}.gem
|
# -d Use default gem install location.
|
||||||
%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}%{?prerelease}.gemspec
|
#
|
||||||
%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}%{?prerelease}
|
%gem_instdir() %{gem_dir}/gems/%{gem_name_version %{?1}}
|
||||||
%gem_plugin %{gem_dir}/plugins/%{gem_name}_plugin.rb
|
%gem_extdir_mri() %{gem_archdir}/%{name}/%{gem_name_version %{?1}}
|
||||||
|
%gem_libdir() %{gem_instdir %{?1}}/lib
|
||||||
|
%gem_cache() %{gem_dir}/cache/%{gem_name_version %{?1}}.gem
|
||||||
|
%gem_spec(d) %{gem_dir}/specifications%{?-d:/default}/%{gem_name_version %{?1}}.gemspec
|
||||||
|
%gem_docdir() %{gem_dir}/doc/%{gem_name_version %{?1}}
|
||||||
|
%gem_plugin() %{gem_dir}/plugins/%{?1}%{!?1:%{gem_name}}_plugin.rb
|
||||||
|
|
||||||
|
|
||||||
# %gem_install - Install gem into appropriate directory.
|
# %gem_install - Install gem into appropriate directory.
|
||||||
|
@ -87,41 +87,51 @@ module Gem
|
|||||||
# Remove methods we are going to override. This avoids "method redefined;"
|
# Remove methods we are going to override. This avoids "method redefined;"
|
||||||
# warnings otherwise issued by Ruby.
|
# warnings otherwise issued by Ruby.
|
||||||
|
|
||||||
remove_method :operating_system_defaults if method_defined? :operating_system_defaults
|
|
||||||
remove_method :default_dir if method_defined? :default_dir
|
remove_method :default_dir if method_defined? :default_dir
|
||||||
|
remove_method :default_specifications_dir if method_defined? :default_specifications_dir
|
||||||
remove_method :default_path if method_defined? :default_path
|
remove_method :default_path if method_defined? :default_path
|
||||||
|
remove_method :default_bindir if method_defined? :default_bindir
|
||||||
remove_method :default_ext_dir_for if method_defined? :default_ext_dir_for
|
remove_method :default_ext_dir_for if method_defined? :default_ext_dir_for
|
||||||
|
|
||||||
##
|
|
||||||
# Regular user installs into user directory, root manages /usr/local.
|
|
||||||
|
|
||||||
def operating_system_defaults
|
|
||||||
unless opt_build_root?
|
|
||||||
options = if Process.uid == 0
|
|
||||||
"--install-dir=#{Gem.default_dirs[:local][:gem_dir]} --bindir #{Gem.default_dirs[:local][:bin_dir]}"
|
|
||||||
else
|
|
||||||
"--user-install --bindir #{File.join [Dir.home, 'bin']}"
|
|
||||||
end
|
|
||||||
|
|
||||||
{"gem" => options}
|
|
||||||
else
|
|
||||||
{}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# RubyGems default overrides.
|
# RubyGems default overrides.
|
||||||
|
|
||||||
def default_dir
|
def default_dir
|
||||||
@default_dir ||= Gem.default_dirs[:system][:gem_dir]
|
if opt_build_root?
|
||||||
|
Gem.default_dirs[:system][:gem_dir]
|
||||||
|
elsif Process.uid == 0
|
||||||
|
Gem.default_dirs[:local][:gem_dir]
|
||||||
|
else
|
||||||
|
Gem.user_dir
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Path to specification files of default gems.
|
||||||
|
|
||||||
|
def default_specifications_dir
|
||||||
|
@default_specifications_dir ||= File.join(Gem.default_dirs[:system][:gem_dir], "specifications", "default")
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Default gem load path
|
||||||
|
|
||||||
def default_path
|
def default_path
|
||||||
path = default_dirs.collect {|location, paths| paths[:gem_dir]}
|
path = default_dirs.collect {|location, paths| paths[:gem_dir]}
|
||||||
path.unshift Gem.user_dir if File.exist? Gem.user_home
|
path.unshift Gem.user_dir if File.exist? Gem.user_home
|
||||||
path
|
path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def default_bindir
|
||||||
|
if opt_build_root?
|
||||||
|
Gem.default_dirs[:system][:bin_dir]
|
||||||
|
elsif Process.uid == 0
|
||||||
|
Gem.default_dirs[:local][:bin_dir]
|
||||||
|
else
|
||||||
|
File.join [Dir.home, 'bin']
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def default_ext_dir_for base_dir
|
def default_ext_dir_for base_dir
|
||||||
dir = if rpmbuild?
|
dir = if rpmbuild?
|
||||||
build_dir = base_dir.chomp Gem.default_dirs[:system][:gem_dir]
|
build_dir = base_dir.chomp Gem.default_dirs[:system][:gem_dir]
|
||||||
|
@ -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
|
||||||
@@ -3411,6 +3411,11 @@ AS_IF([test ${multiarch+set}], [
|
@@ -3470,6 +3470,11 @@ AS_IF([test ${multiarch+set}], [
|
||||||
])
|
])
|
||||||
|
|
||||||
archlibdir='${libdir}/${arch}'
|
archlibdir='${libdir}/${arch}'
|
||||||
|
@ -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
|
||||||
@@ -4196,7 +4196,8 @@ AS_CASE(["$ruby_version_dir_name"],
|
@@ -4309,7 +4309,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
|
||||||
|
@ -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
|
||||||
@@ -4260,6 +4260,8 @@ AC_SUBST(vendorarchdir)dnl
|
@@ -4373,6 +4373,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
|
||||||
|
|
||||||
|
@ -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
|
||||||
@@ -4232,6 +4232,10 @@ AC_ARG_WITH(vendorarchdir,
|
@@ -4345,6 +4345,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=''
|
||||||
@@ -4256,6 +4260,7 @@ AC_SUBST(sitearchdir)dnl
|
@@ -4369,6 +4373,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
|
||||||
|
@ -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
|
||||||
@@ -4146,9 +4146,6 @@ AS_CASE(["$target_os"],
|
@@ -4259,9 +4259,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],
|
||||||
@@ -4171,57 +4168,63 @@ AC_ARG_WITH(ridir,
|
@@ -4284,57 +4281,63 @@ AC_ARG_WITH(ridir,
|
||||||
AC_SUBST(ridir)
|
AC_SUBST(ridir)
|
||||||
AC_SUBST(RI_BASE_NAME)
|
AC_SUBST(RI_BASE_NAME)
|
||||||
|
|
||||||
@ -122,7 +122,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)
|
||||||
@@ -4238,6 +4241,7 @@ AC_SUBST(sitearchincludedir)dnl
|
@@ -4351,6 +4354,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
|
||||||
@ -195,7 +195,7 @@ 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
|
||||||
@@ -34,7 +34,7 @@ def self.default_spec_cache_dir
|
@@ -35,7 +35,7 @@ def self.default_spec_cache_dir
|
||||||
# specified in the environment
|
# specified in the environment
|
||||||
|
|
||||||
def self.default_dir
|
def self.default_dir
|
||||||
@ -204,7 +204,7 @@ index d4ff4a262c..3f9a5bf590 100644
|
|||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -103,7 +103,8 @@ def self.user_dir
|
@@ -104,7 +104,8 @@ def self.user_dir
|
||||||
gem_dir = File.join(Gem.user_home, ".gem")
|
gem_dir = File.join(Gem.user_home, ".gem")
|
||||||
gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir)
|
gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir)
|
||||||
parts = [gem_dir, ruby_engine]
|
parts = [gem_dir, ruby_engine]
|
||||||
@ -214,7 +214,7 @@ index d4ff4a262c..3f9a5bf590 100644
|
|||||||
File.join parts
|
File.join parts
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -248,7 +249,7 @@ def self.vendor_dir # :nodoc:
|
@@ -265,7 +266,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",
|
||||||
@ -227,7 +227,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
|
||||||
@@ -1337,7 +1337,8 @@ def test_self_use_paths
|
@@ -1351,7 +1351,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]
|
||||||
@ -237,7 +237,7 @@ index b25068405d..e9fef4a311 100644
|
|||||||
|
|
||||||
FileUtils.mkdir_p File.join(parts)
|
FileUtils.mkdir_p File.join(parts)
|
||||||
|
|
||||||
@@ -1413,7 +1414,7 @@ def test_self_vendor_dir
|
@@ -1427,7 +1428,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",
|
||||||
@ -262,7 +262,7 @@ 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
|
||||||
@@ -124,7 +124,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`
|
@@ -135,7 +135,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)
|
||||||
|
@ -15,10 +15,11 @@ 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(-)
|
spec/ruby/core/kernel/require_spec.rb | 2 ++
|
||||||
|
4 files changed, 20 insertions(+), 1 deletion(-)
|
||||||
create mode 100644 abrt.c
|
create mode 100644 abrt.c
|
||||||
|
|
||||||
diff --git a/abrt.c b/abrt.c
|
diff --git a/abrt.c b/abrt.c
|
||||||
@ -43,9 +44,9 @@ diff --git a/common.mk b/common.mk
|
|||||||
index b2e5b2b6d0..f39f81da5c 100644
|
index b2e5b2b6d0..f39f81da5c 100644
|
||||||
--- a/common.mk
|
--- a/common.mk
|
||||||
+++ b/common.mk
|
+++ b/common.mk
|
||||||
@@ -86,7 +86,8 @@ ENC_MK = enc.mk
|
@@ -111,7 +111,8 @@ PRISM_FILES = prism/api_node.$(OBJEXT) \
|
||||||
MAKE_ENC = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \
|
prism/prism.$(OBJEXT) \
|
||||||
RUBY="$(BOOTSTRAPRUBY)" MINIRUBY="$(BOOTSTRAPRUBY)" $(mflags)
|
prism_init.$(OBJEXT)
|
||||||
|
|
||||||
-COMMONOBJS = array.$(OBJEXT) \
|
-COMMONOBJS = array.$(OBJEXT) \
|
||||||
+COMMONOBJS = abrt.$(OBJEXT) \
|
+COMMONOBJS = abrt.$(OBJEXT) \
|
||||||
@ -57,7 +58,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
|
||||||
@@ -1572,10 +1572,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt)
|
@@ -1724,10 +1724,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt)
|
||||||
|
|
||||||
void Init_builtin_features(void);
|
void Init_builtin_features(void);
|
||||||
|
|
||||||
@ -72,3 +73,16 @@ index 60c57d6259..1eec16f2c8 100644
|
|||||||
rb_const_remove(rb_cObject, rb_intern_const("TMP_RUBY_PREFIX"));
|
rb_const_remove(rb_cObject, rb_intern_const("TMP_RUBY_PREFIX"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/spec/ruby/core/kernel/require_spec.rb b/spec/ruby/core/kernel/require_spec.rb
|
||||||
|
index 60c57d6259..1eec16f2c8 100644
|
||||||
|
--- a/spec/ruby/core/kernel/require_spec.rb
|
||||||
|
+++ b/spec/ruby/core/kernel/require_spec.rb
|
||||||
|
@@ -25,6 +25,8 @@
|
||||||
|
out = ruby_exe("puts $LOADED_FEATURES", options: '--disable-gems --disable-did-you-mean')
|
||||||
|
features = out.lines.map { |line| File.basename(line.chomp, '.*') }
|
||||||
|
|
||||||
|
+ # Ignore ABRT
|
||||||
|
+ features -= %w[abrt]
|
||||||
|
# Ignore CRuby internals
|
||||||
|
features -= %w[encdb transdb windows_1252]
|
||||||
|
features.reject! { |feature| feature.end_with?('-fake') }
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
From 9b42fce32bff25e0569581f76f532b9d57865aef Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Mon, 27 Jul 2020 14:56:05 +0200
|
|
||||||
Subject: [PATCH] Timeout the test_bug_reporter_add witout raising error.
|
|
||||||
|
|
||||||
While timeouting the threads might be still good idea, it does not seems
|
|
||||||
the timeout impacts the TestBugReporter#test_bug_reporter_add result,
|
|
||||||
because the output of the child process has been already collected
|
|
||||||
earlier.
|
|
||||||
|
|
||||||
It seems that when the system is under heavy load, the thread might not
|
|
||||||
be sheduled to finish its processing. Even finishing the child process
|
|
||||||
might take tens of seconds and therefore the test case finish might take
|
|
||||||
a while.
|
|
||||||
---
|
|
||||||
test/-ext-/bug_reporter/test_bug_reporter.rb | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/test/-ext-/bug_reporter/test_bug_reporter.rb b/test/-ext-/bug_reporter/test_bug_reporter.rb
|
|
||||||
index 628fcd0340..2c677cc8a7 100644
|
|
||||||
--- a/test/-ext-/bug_reporter/test_bug_reporter.rb
|
|
||||||
+++ b/test/-ext-/bug_reporter/test_bug_reporter.rb
|
|
||||||
@@ -28,7 +28,7 @@ def test_bug_reporter_add
|
|
||||||
"-C", tmpdir]
|
|
||||||
args.push("--yjit") if yjit_enabled? # We want the printed description to match this process's RUBY_DESCRIPTION
|
|
||||||
stdin = "#{no_core}register_sample_bug_reporter(12345); Process.kill :SEGV, $$"
|
|
||||||
- assert_in_out_err(args, stdin, [], expected_stderr, encoding: "ASCII-8BIT")
|
|
||||||
+ assert_in_out_err(args, stdin, [], expected_stderr, encoding: "ASCII-8BIT", timeout_error: nil)
|
|
||||||
ensure
|
|
||||||
FileUtils.rm_rf(tmpdir) if tmpdir
|
|
||||||
end
|
|
@ -1,40 +0,0 @@
|
|||||||
From 0ade5611df9f981005eed32b369d1e699e520221 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Thu, 10 Feb 2022 13:26:44 +0100
|
|
||||||
Subject: [PATCH] Don't query `RubyVM::FrozenCore` for class path.
|
|
||||||
|
|
||||||
The `RubyVM::FrozenCore` class path is corrupted during GC cycle and
|
|
||||||
returns random garbage, which might result in segfault.
|
|
||||||
|
|
||||||
But since it is easy to detect the `RubyVM::FrozenCore`, just provide
|
|
||||||
the class path explicitly as a workaround.
|
|
||||||
|
|
||||||
Other possibility would be to ignore `RubyVM::FrozenCore` simlarly as
|
|
||||||
TracePoint API does:
|
|
||||||
|
|
||||||
https://github.com/ruby/ruby/blob/46f6575157d4c2f6bbd5693896e26a65037e5552/vm_trace.c#L411
|
|
||||||
---
|
|
||||||
vm.c | 10 +++++++++-
|
|
||||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/vm.c b/vm.c
|
|
||||||
index 8ce8b279d4..3d189fa63a 100644
|
|
||||||
--- a/vm.c
|
|
||||||
+++ b/vm.c
|
|
||||||
@@ -547,7 +547,15 @@ rb_dtrace_setup(rb_execution_context_t *ec, VALUE klass, ID id,
|
|
||||||
}
|
|
||||||
type = BUILTIN_TYPE(klass);
|
|
||||||
if (type == T_CLASS || type == T_ICLASS || type == T_MODULE) {
|
|
||||||
- VALUE name = rb_class_path(klass);
|
|
||||||
+ VALUE name = Qnil;
|
|
||||||
+ /*
|
|
||||||
+ * Special treatment for rb_mRubyVMFrozenCore wchi is broken by GC.
|
|
||||||
+ * https://bugs.ruby-lang.org/issues/18257
|
|
||||||
+ */
|
|
||||||
+ if (klass == rb_mRubyVMFrozenCore)
|
|
||||||
+ name = rb_str_new_cstr("RubyVM::FrozenCore");
|
|
||||||
+ else
|
|
||||||
+ name = rb_class_path(klass);
|
|
||||||
const char *classname, *filename;
|
|
||||||
const char *methodname = rb_id2name(id);
|
|
||||||
if (methodname && (filename = rb_source_location_cstr(&args->line_no)) != 0) {
|
|
@ -1,73 +0,0 @@
|
|||||||
From 5e2f8761b2342ee58f9689a7d62d48ec031e59c0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Mon, 2 Jan 2023 14:30:13 +0100
|
|
||||||
Subject: [PATCH] Revert "Fix test-syntax-suggest order"
|
|
||||||
|
|
||||||
This reverts commit 18c1ca8f4c0748905d5cedb6c044df507ea8ad6a.
|
|
||||||
---
|
|
||||||
common.mk | 12 ++++--------
|
|
||||||
defs/gmake.mk | 2 +-
|
|
||||||
2 files changed, 5 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common.mk b/common.mk
|
|
||||||
index d0558697d7..e73841aae7 100644
|
|
||||||
--- a/common.mk
|
|
||||||
+++ b/common.mk
|
|
||||||
@@ -767,7 +767,8 @@ clean-spec: PHONY
|
|
||||||
-$(Q) $(RMDIRS) $(RUBYSPEC_CAPIEXT) 2> $(NULL) || $(NULLCMD)
|
|
||||||
-$(Q) $(RMALL) rubyspec_temp
|
|
||||||
|
|
||||||
-check: main $(DOT_WAIT) test $(DOT_WAIT) test-tool $(DOT_WAIT) test-all
|
|
||||||
+check: main $(DOT_WAIT) test $(DOT_WAIT) test-tool $(DOT_WAIT) test-all \
|
|
||||||
+ $(DOT_WAIT) test-spec $(DOT_WAIT) test-syntax-suggest
|
|
||||||
$(ECHO) check succeeded
|
|
||||||
-$(Q) : : "run only on sh"; \
|
|
||||||
if [ x"$(GIT)" != x ] && $(CHDIR) "$(srcdir)" && \
|
|
||||||
@@ -903,8 +904,6 @@ yes-test-spec: test-spec-precheck
|
|
||||||
$(ACTIONS_ENDGROUP)
|
|
||||||
no-test-spec:
|
|
||||||
|
|
||||||
-check: $(DOT_WAIT) test-spec
|
|
||||||
-
|
|
||||||
RUNNABLE = $(LIBRUBY_RELATIVE:no=un)-runnable
|
|
||||||
runnable: $(RUNNABLE) prog $(tooldir)/mkrunnable.rb PHONY
|
|
||||||
$(Q) $(MINIRUBY) $(tooldir)/mkrunnable.rb -v $(EXTOUT)
|
|
||||||
@@ -1456,7 +1455,6 @@ test-syntax-suggest-precheck: $(TEST_RUNNABLE)-test-syntax-suggest-precheck
|
|
||||||
no-test-syntax-suggest-precheck:
|
|
||||||
yes-test-syntax-suggest-precheck: main
|
|
||||||
|
|
||||||
-test-syntax-suggest-prepare: $(TEST_RUNNABLE)-test-syntax-suggest-prepare
|
|
||||||
no-test-syntax-suggest-prepare: no-test-syntax-suggest-precheck
|
|
||||||
yes-test-syntax-suggest-prepare: yes-test-syntax-suggest-precheck
|
|
||||||
$(ACTIONS_GROUP)
|
|
||||||
@@ -1466,15 +1464,13 @@ yes-test-syntax-suggest-prepare: yes-test-syntax-suggest-precheck
|
|
||||||
|
|
||||||
RSPECOPTS =
|
|
||||||
SYNTAX_SUGGEST_SPECS =
|
|
||||||
-PREPARE_SYNTAX_SUGGEST = test-syntax-suggest-prepare
|
|
||||||
+PREPARE_SYNTAX_SUGGEST = yes-test-syntax-suggest-prepare
|
|
||||||
test-syntax-suggest: $(TEST_RUNNABLE)-test-syntax-suggest
|
|
||||||
-yes-test-syntax-suggest: yes-$(PREPARE_SYNTAX_SUGGEST)
|
|
||||||
+yes-test-syntax-suggest: $(PREPARE_SYNTAX_SUGGEST)
|
|
||||||
$(XRUBY) -C $(srcdir) -Ispec/syntax_suggest .bundle/bin/rspec \
|
|
||||||
--require spec_helper $(RSPECOPTS) spec/syntax_suggest/$(SYNTAX_SUGGEST_SPECS)
|
|
||||||
no-test-syntax-suggest:
|
|
||||||
|
|
||||||
-check: $(DOT_WAIT) $(TEST_RUNNABLE)-$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest
|
|
||||||
-
|
|
||||||
test-bundler-precheck: $(TEST_RUNNABLE)-test-bundler-precheck
|
|
||||||
no-test-bundler-precheck:
|
|
||||||
yes-test-bundler-precheck: main $(arch)-fake.rb
|
|
||||||
diff --git a/defs/gmake.mk b/defs/gmake.mk
|
|
||||||
index 54fef6685f..0aa403a4eb 100644
|
|
||||||
--- a/defs/gmake.mk
|
|
||||||
+++ b/defs/gmake.mk
|
|
||||||
@@ -84,7 +84,7 @@ endif
|
|
||||||
ORDERED_TEST_TARGETS := $(filter $(TEST_TARGETS), \
|
|
||||||
btest-ruby test-knownbug test-basic \
|
|
||||||
test-testframework test-tool test-ruby test-all \
|
|
||||||
- test-spec test-syntax-suggest-prepare test-syntax-suggest \
|
|
||||||
+ test-spec test-syntax-suggest \
|
|
||||||
test-bundler-prepare test-bundler test-bundler-parallel \
|
|
||||||
test-bundled-gems-precheck test-bundled-gems-fetch \
|
|
||||||
test-bundled-gems-prepare test-bundled-gems-run \
|
|
@ -1,67 +0,0 @@
|
|||||||
From cf60e383a9c98da5cd75012f2aabfa4a2774aade Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Mon, 2 Jan 2023 14:16:39 +0100
|
|
||||||
Subject: [PATCH] Revert "Test syntax_suggest by `make check`"
|
|
||||||
|
|
||||||
This reverts commit cae53842735237ccf71a13873fd0d1ae7f165582.
|
|
||||||
---
|
|
||||||
common.mk | 6 ++----
|
|
||||||
defs/gmake.mk | 6 ++----
|
|
||||||
2 files changed, 4 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/common.mk b/common.mk
|
|
||||||
index 27f6a9d89d..8021f03a58 100644
|
|
||||||
--- a/common.mk
|
|
||||||
+++ b/common.mk
|
|
||||||
@@ -767,8 +767,7 @@ clean-spec: PHONY
|
|
||||||
-$(Q) $(RMDIRS) $(RUBYSPEC_CAPIEXT) 2> $(NULL) || $(NULLCMD)
|
|
||||||
-$(Q) $(RMALL) rubyspec_temp
|
|
||||||
|
|
||||||
-check: main $(DOT_WAIT) test $(DOT_WAIT) test-tool $(DOT_WAIT) test-all \
|
|
||||||
- $(DOT_WAIT) test-spec $(DOT_WAIT) test-syntax-suggest
|
|
||||||
+check: main $(DOT_WAIT) test $(DOT_WAIT) test-tool $(DOT_WAIT) test-all $(DOT_WAIT) test-spec
|
|
||||||
$(ECHO) check succeeded
|
|
||||||
-$(Q) : : "run only on sh"; \
|
|
||||||
if [ x"$(GIT)" != x ] && $(CHDIR) "$(srcdir)" && \
|
|
||||||
@@ -1464,9 +1463,8 @@ yes-test-syntax-suggest-prepare: yes-test-syntax-suggest-precheck
|
|
||||||
|
|
||||||
RSPECOPTS =
|
|
||||||
SYNTAX_SUGGEST_SPECS =
|
|
||||||
-PREPARE_SYNTAX_SUGGEST = yes-test-syntax-suggest-prepare
|
|
||||||
test-syntax-suggest: $(TEST_RUNNABLE)-test-syntax-suggest
|
|
||||||
-yes-test-syntax-suggest: $(PREPARE_SYNTAX_SUGGEST)
|
|
||||||
+yes-test-syntax-suggest: yes-test-syntax-suggest-prepare
|
|
||||||
$(XRUBY) -C $(srcdir) -Ispec/syntax_suggest .bundle/bin/rspec \
|
|
||||||
--require spec_helper $(RSPECOPTS) spec/syntax_suggest/$(SYNTAX_SUGGEST_SPECS)
|
|
||||||
no-test-syntax-suggest:
|
|
||||||
diff --git a/defs/gmake.mk b/defs/gmake.mk
|
|
||||||
index 0aa403a4eb..dc9d31f49e 100644
|
|
||||||
--- a/defs/gmake.mk
|
|
||||||
+++ b/defs/gmake.mk
|
|
||||||
@@ -27,7 +27,7 @@ TEST_DEPENDS := $(filter-out commit $(TEST_TARGETS),$(MAKECMDGOALS))
|
|
||||||
TEST_TARGETS := $(patsubst great,exam,$(TEST_TARGETS))
|
|
||||||
TEST_DEPENDS := $(filter-out great $(TEST_TARGETS),$(TEST_DEPENDS))
|
|
||||||
TEST_TARGETS := $(patsubst exam,check,$(TEST_TARGETS))
|
|
||||||
-TEST_TARGETS := $(patsubst check,test-syntax-suggest test-spec test-all test-tool test-short,$(TEST_TARGETS))
|
|
||||||
+TEST_TARGETS := $(patsubst check,test-spec test-all test-tool test-short,$(TEST_TARGETS))
|
|
||||||
TEST_TARGETS := $(patsubst test-rubyspec,test-spec,$(TEST_TARGETS))
|
|
||||||
TEST_DEPENDS := $(filter-out exam check test-spec $(TEST_TARGETS),$(TEST_DEPENDS))
|
|
||||||
TEST_TARGETS := $(patsubst love,check,$(TEST_TARGETS))
|
|
||||||
@@ -40,7 +40,6 @@ TEST_TARGETS := $(patsubst test-short,btest-ruby test-knownbug test-basic,$(TEST
|
|
||||||
TEST_TARGETS := $(patsubst test-bundled-gems,test-bundled-gems-run,$(TEST_TARGETS))
|
|
||||||
TEST_TARGETS := $(patsubst test-bundled-gems-run,test-bundled-gems-run $(PREPARE_BUNDLED_GEMS),$(TEST_TARGETS))
|
|
||||||
TEST_TARGETS := $(patsubst test-bundled-gems-prepare,test-bundled-gems-prepare $(PRECHECK_BUNDLED_GEMS) test-bundled-gems-fetch,$(TEST_TARGETS))
|
|
||||||
-TEST_TARGETS := $(patsubst test-syntax-suggest,test-syntax-suggest $(PREPARE_SYNTAX_SUGGEST),$(TEST_TARGETS))
|
|
||||||
TEST_DEPENDS := $(filter-out test-short $(TEST_TARGETS),$(TEST_DEPENDS))
|
|
||||||
TEST_DEPENDS += $(if $(filter great exam love check,$(MAKECMDGOALS)),all exts)
|
|
||||||
endif
|
|
||||||
@@ -84,8 +83,7 @@ endif
|
|
||||||
ORDERED_TEST_TARGETS := $(filter $(TEST_TARGETS), \
|
|
||||||
btest-ruby test-knownbug test-basic \
|
|
||||||
test-testframework test-tool test-ruby test-all \
|
|
||||||
- test-spec test-syntax-suggest \
|
|
||||||
- test-bundler-prepare test-bundler test-bundler-parallel \
|
|
||||||
+ test-spec test-bundler-prepare test-bundler test-bundler-parallel \
|
|
||||||
test-bundled-gems-precheck test-bundled-gems-fetch \
|
|
||||||
test-bundled-gems-prepare test-bundled-gems-run \
|
|
||||||
)
|
|
@ -1,39 +0,0 @@
|
|||||||
From 9b9825d6cdda053fea49eb2f613bc62bde465e89 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
|
||||||
Date: Wed, 4 Jan 2023 17:23:35 +0100
|
|
||||||
Subject: [PATCH] Use SHA256 instead of SHA1
|
|
||||||
|
|
||||||
Systems such as CentOS 9 / RHEL 9 are moving away from SHA1 disabling it
|
|
||||||
by default via a system-wide crypto policy. This replaces SHA1 with
|
|
||||||
SHA256 in similar way as [[1]].
|
|
||||||
|
|
||||||
[1]: https://github.com/ruby/openssl/pull/554
|
|
||||||
---
|
|
||||||
spec/ruby/library/openssl/x509/name/verify_spec.rb | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/spec/ruby/library/openssl/x509/name/verify_spec.rb b/spec/ruby/library/openssl/x509/name/verify_spec.rb
|
|
||||||
index a8bf865bd..6dcfc9946 100644
|
|
||||||
--- a/spec/ruby/library/openssl/x509/name/verify_spec.rb
|
|
||||||
+++ b/spec/ruby/library/openssl/x509/name/verify_spec.rb
|
|
||||||
@@ -12,7 +12,7 @@ describe "OpenSSL::X509::Name.verify" do
|
|
||||||
cert.public_key = key.public_key
|
|
||||||
cert.not_before = Time.now - 10
|
|
||||||
cert.not_after = cert.not_before + 365 * 24 * 60 * 60
|
|
||||||
- cert.sign key, OpenSSL::Digest.new('SHA1')
|
|
||||||
+ cert.sign key, OpenSSL::Digest.new('SHA256')
|
|
||||||
store = OpenSSL::X509::Store.new
|
|
||||||
store.add_cert(cert)
|
|
||||||
[store.verify(cert), store.error, store.error_string].should == [true, 0, "ok"]
|
|
||||||
@@ -28,7 +28,7 @@ describe "OpenSSL::X509::Name.verify" do
|
|
||||||
cert.public_key = key.public_key
|
|
||||||
cert.not_before = Time.now - 10
|
|
||||||
cert.not_after = Time.now - 5
|
|
||||||
- cert.sign key, OpenSSL::Digest.new('SHA1')
|
|
||||||
+ cert.sign key, OpenSSL::Digest.new('SHA256')
|
|
||||||
store = OpenSSL::X509::Store.new
|
|
||||||
store.add_cert(cert)
|
|
||||||
store.verify(cert).should == false
|
|
||||||
--
|
|
||||||
2.38.1
|
|
||||||
|
|
23
ruby-3.3.0-Disable-syntax-suggest-test-case.patch
Normal file
23
ruby-3.3.0-Disable-syntax-suggest-test-case.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
From 6365d1b79e10330fced83d00d4cb950380a3b0fe 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.
|
||||||
|
|
||||||
|
This requires internet connection.
|
||||||
|
---
|
||||||
|
common.mk | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/common.mk b/common.mk
|
||||||
|
index d55d1788aa..73755f6ccd 100644
|
||||||
|
--- a/common.mk
|
||||||
|
+++ b/common.mk
|
||||||
|
@@ -1601,8 +1601,6 @@ yes-test-syntax-suggest: $(PREPARE_SYNTAX_SUGGEST)
|
||||||
|
$(ACTIONS_ENDGROUP)
|
||||||
|
no-test-syntax-suggest:
|
||||||
|
|
||||||
|
-check: $(DOT_WAIT) $(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest
|
||||||
|
-
|
||||||
|
test-bundler-precheck: $(TEST_RUNNABLE)-test-bundler-precheck
|
||||||
|
no-test-bundler-precheck:
|
||||||
|
yes-test-bundler-precheck: main $(arch)-fake.rb
|
@ -0,0 +1,92 @@
|
|||||||
|
From 8944a064d0fd7947b8c2b6c761be3e3a0c9073af Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Fri, 22 Dec 2023 14:16:48 +0100
|
||||||
|
Subject: [PATCH 1/2] Revert "compare_by_identity: remove alloc for non-empty
|
||||||
|
Hash"
|
||||||
|
|
||||||
|
This reverts commit 11fa76b1b521072c200c78ea023960221ff426d6.
|
||||||
|
---
|
||||||
|
hash.c | 13 ++++---------
|
||||||
|
1 file changed, 4 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hash.c b/hash.c
|
||||||
|
index 78e9d9a2d6..f6525ba4a5 100644
|
||||||
|
--- a/hash.c
|
||||||
|
+++ b/hash.c
|
||||||
|
@@ -4377,16 +4377,13 @@ rb_hash_compare_by_id(VALUE hash)
|
||||||
|
if (hash_iterating_p(hash)) {
|
||||||
|
rb_raise(rb_eRuntimeError, "compare_by_identity during iteration");
|
||||||
|
}
|
||||||
|
+ ar_force_convert_table(hash, __FILE__, __LINE__);
|
||||||
|
+ HASH_ASSERT(RHASH_ST_TABLE_P(hash));
|
||||||
|
|
||||||
|
if (RHASH_TABLE_EMPTY_P(hash)) {
|
||||||
|
// Fast path: There's nothing to rehash, so we don't need a `tmp` table.
|
||||||
|
- // We're most likely an AR table, so this will need an allocation.
|
||||||
|
- ar_force_convert_table(hash, __FILE__, __LINE__);
|
||||||
|
- HASH_ASSERT(RHASH_ST_TABLE_P(hash));
|
||||||
|
-
|
||||||
|
RHASH_ST_TABLE(hash)->type = &identhash;
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
+ } else {
|
||||||
|
// Slow path: Need to rehash the members of `self` into a new
|
||||||
|
// `tmp` table using the new `identhash` compare/hash functions.
|
||||||
|
tmp = hash_alloc(0);
|
||||||
|
@@ -4394,10 +4391,8 @@ rb_hash_compare_by_id(VALUE hash)
|
||||||
|
identtable = RHASH_ST_TABLE(tmp);
|
||||||
|
|
||||||
|
rb_hash_foreach(hash, rb_hash_rehash_i, (VALUE)tmp);
|
||||||
|
- rb_hash_free(hash);
|
||||||
|
|
||||||
|
- // We know for sure `identtable` is an st table,
|
||||||
|
- // so we can skip `ar_force_convert_table` here.
|
||||||
|
+ rb_hash_free(hash);
|
||||||
|
RHASH_ST_TABLE_SET(hash, identtable);
|
||||||
|
RHASH_ST_CLEAR(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
From f5c415300ffe63e41e46c6b88b8634a3bad0c7c2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Fri, 22 Dec 2023 14:17:14 +0100
|
||||||
|
Subject: [PATCH 2/2] Revert "compare_by_identity: remove alloc for empty Hash"
|
||||||
|
|
||||||
|
This reverts commit b5c6c0122f5b010cb5f43e7a236c4ba2b1d56a2a.
|
||||||
|
---
|
||||||
|
hash.c | 21 +++++++--------------
|
||||||
|
1 file changed, 7 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hash.c b/hash.c
|
||||||
|
index f6525ba4a5..cf83675c70 100644
|
||||||
|
--- a/hash.c
|
||||||
|
+++ b/hash.c
|
||||||
|
@@ -4380,22 +4380,15 @@ rb_hash_compare_by_id(VALUE hash)
|
||||||
|
ar_force_convert_table(hash, __FILE__, __LINE__);
|
||||||
|
HASH_ASSERT(RHASH_ST_TABLE_P(hash));
|
||||||
|
|
||||||
|
- if (RHASH_TABLE_EMPTY_P(hash)) {
|
||||||
|
- // Fast path: There's nothing to rehash, so we don't need a `tmp` table.
|
||||||
|
- RHASH_ST_TABLE(hash)->type = &identhash;
|
||||||
|
- } else {
|
||||||
|
- // Slow path: Need to rehash the members of `self` into a new
|
||||||
|
- // `tmp` table using the new `identhash` compare/hash functions.
|
||||||
|
- tmp = hash_alloc(0);
|
||||||
|
- hash_st_table_init(tmp, &identhash, RHASH_SIZE(hash));
|
||||||
|
- identtable = RHASH_ST_TABLE(tmp);
|
||||||
|
+ tmp = hash_alloc(0);
|
||||||
|
+ hash_st_table_init(tmp, &identhash, RHASH_SIZE(hash));
|
||||||
|
+ identtable = RHASH_ST_TABLE(tmp);
|
||||||
|
|
||||||
|
- rb_hash_foreach(hash, rb_hash_rehash_i, (VALUE)tmp);
|
||||||
|
+ rb_hash_foreach(hash, rb_hash_rehash_i, (VALUE)tmp);
|
||||||
|
|
||||||
|
- rb_hash_free(hash);
|
||||||
|
- RHASH_ST_TABLE_SET(hash, identtable);
|
||||||
|
- RHASH_ST_CLEAR(tmp);
|
||||||
|
- }
|
||||||
|
+ rb_hash_free(hash);
|
||||||
|
+ RHASH_ST_TABLE_SET(hash, identtable);
|
||||||
|
+ RHASH_ST_CLEAR(tmp);
|
||||||
|
|
||||||
|
return hash;
|
||||||
|
}
|
@ -1,32 +0,0 @@
|
|||||||
From f0b254f1f6610294821bbfc06b414d2af452db5b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jun Aruga <jaruga@redhat.com>
|
|
||||||
Date: Thu, 13 Apr 2023 17:28:27 +0200
|
|
||||||
Subject: [PATCH] [ruby/openssl] Drop a common logic disabling the FIPS mode in
|
|
||||||
the tests.
|
|
||||||
|
|
||||||
We want to run the unit tests in the FIPS mode too.
|
|
||||||
|
|
||||||
https://github.com/ruby/openssl/commit/ab92baff34
|
|
||||||
---
|
|
||||||
test/openssl/utils.rb | 5 -----
|
|
||||||
1 file changed, 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/test/openssl/utils.rb b/test/openssl/utils.rb
|
|
||||||
index 4ebcb9837b..8a0be0d154 100644
|
|
||||||
--- a/test/openssl/utils.rb
|
|
||||||
+++ b/test/openssl/utils.rb
|
|
||||||
@@ -1,11 +1,6 @@
|
|
||||||
# frozen_string_literal: true
|
|
||||||
begin
|
|
||||||
require "openssl"
|
|
||||||
-
|
|
||||||
- # Disable FIPS mode for tests for installations
|
|
||||||
- # where FIPS mode would be enabled by default.
|
|
||||||
- # Has no effect on all other installations.
|
|
||||||
- OpenSSL.fips_mode=false
|
|
||||||
rescue LoadError
|
|
||||||
end
|
|
||||||
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
|||||||
From b6d7cdc2bad0eadbca73f3486917f0ec7a475814 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kazuki Yamaguchi <k@rhe.jp>
|
|
||||||
Date: Tue, 29 Aug 2023 19:46:02 +0900
|
|
||||||
Subject: [PATCH] [ruby/openssl] ssl: use ffdhe2048 from RFC 7919 as the
|
|
||||||
default DH group parameters
|
|
||||||
|
|
||||||
In TLS 1.2 or before, if DH group parameters for DHE are not supplied
|
|
||||||
with SSLContext#tmp_dh= or #tmp_dh_callback=, we currently use the
|
|
||||||
self-generated parameters added in commit https://github.com/ruby/openssl/commit/bb3399a61c03 ("support 2048
|
|
||||||
bit length DH-key", 2016-01-15) as the fallback.
|
|
||||||
|
|
||||||
While there is no known weakness in the current parameters, it would be
|
|
||||||
a good idea to switch to pre-defined, more well audited parameters.
|
|
||||||
|
|
||||||
This also allows the fallback to work in the FIPS mode.
|
|
||||||
|
|
||||||
The PEM encoding was derived with:
|
|
||||||
|
|
||||||
# RFC 7919 Appendix A.1. ffdhe2048
|
|
||||||
print OpenSSL::PKey.read(OpenSSL::ASN1::Sequence([OpenSSL::ASN1::Integer((<<-END).split.join.to_i(16)), OpenSSL::ASN1::Integer(2)]).to_der).to_pem
|
|
||||||
FFFFFFFF FFFFFFFF ADF85458 A2BB4A9A AFDC5620 273D3CF1
|
|
||||||
D8B9C583 CE2D3695 A9E13641 146433FB CC939DCE 249B3EF9
|
|
||||||
7D2FE363 630C75D8 F681B202 AEC4617A D3DF1ED5 D5FD6561
|
|
||||||
2433F51F 5F066ED0 85636555 3DED1AF3 B557135E 7F57C935
|
|
||||||
984F0C70 E0E68B77 E2A689DA F3EFE872 1DF158A1 36ADE735
|
|
||||||
30ACCA4F 483A797A BC0AB182 B324FB61 D108A94B B2C8E3FB
|
|
||||||
B96ADAB7 60D7F468 1D4F42A3 DE394DF4 AE56EDE7 6372BB19
|
|
||||||
0B07A7C8 EE0A6D70 9E02FCE1 CDF7E2EC C03404CD 28342F61
|
|
||||||
9172FE9C E98583FF 8E4F1232 EEF28183 C3FE3B1B 4C6FAD73
|
|
||||||
3BB5FCBC 2EC22005 C58EF183 7D1683B2 C6F34A26 C1B2EFFA
|
|
||||||
886B4238 61285C97 FFFFFFFF FFFFFFFF
|
|
||||||
END
|
|
||||||
|
|
||||||
https://github.com/ruby/openssl/commit/a5527cb4f4
|
|
||||||
---
|
|
||||||
ext/openssl/lib/openssl/ssl.rb | 18 +++++++++---------
|
|
||||||
1 file changed, 9 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ext/openssl/lib/openssl/ssl.rb b/ext/openssl/lib/openssl/ssl.rb
|
|
||||||
index ea8bb2a18e533..94be6ba80b894 100644
|
|
||||||
--- a/ext/openssl/lib/openssl/ssl.rb
|
|
||||||
+++ b/ext/openssl/lib/openssl/ssl.rb
|
|
||||||
@@ -34,21 +34,21 @@ class SSLContext
|
|
||||||
}
|
|
||||||
|
|
||||||
if defined?(OpenSSL::PKey::DH)
|
|
||||||
- DEFAULT_2048 = OpenSSL::PKey::DH.new <<-_end_of_pem_
|
|
||||||
+ DH_ffdhe2048 = OpenSSL::PKey::DH.new <<-_end_of_pem_
|
|
||||||
-----BEGIN DH PARAMETERS-----
|
|
||||||
-MIIBCAKCAQEA7E6kBrYiyvmKAMzQ7i8WvwVk9Y/+f8S7sCTN712KkK3cqd1jhJDY
|
|
||||||
-JbrYeNV3kUIKhPxWHhObHKpD1R84UpL+s2b55+iMd6GmL7OYmNIT/FccKhTcveab
|
|
||||||
-VBmZT86BZKYyf45hUF9FOuUM9xPzuK3Vd8oJQvfYMCd7LPC0taAEljQLR4Edf8E6
|
|
||||||
-YoaOffgTf5qxiwkjnlVZQc3whgnEt9FpVMvQ9eknyeGB5KHfayAc3+hUAvI3/Cr3
|
|
||||||
-1bNveX5wInh5GDx1FGhKBZ+s1H+aedudCm7sCgRwv8lKWYGiHzObSma8A86KG+MD
|
|
||||||
-7Lo5JquQ3DlBodj3IDyPrxIv96lvRPFtAwIBAg==
|
|
||||||
+MIIBCAKCAQEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz
|
|
||||||
++8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a
|
|
||||||
+87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7
|
|
||||||
+YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi
|
|
||||||
+7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaD
|
|
||||||
+ssbzSibBsu/6iGtCOGEoXJf//////////wIBAg==
|
|
||||||
-----END DH PARAMETERS-----
|
|
||||||
_end_of_pem_
|
|
||||||
- private_constant :DEFAULT_2048
|
|
||||||
+ private_constant :DH_ffdhe2048
|
|
||||||
|
|
||||||
DEFAULT_TMP_DH_CALLBACK = lambda { |ctx, is_export, keylen| # :nodoc:
|
|
||||||
warn "using default DH parameters." if $VERBOSE
|
|
||||||
- DEFAULT_2048
|
|
||||||
+ DH_ffdhe2048
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
@ -1,160 +0,0 @@
|
|||||||
From 40451afa279c52ce7a508f8a9ec553cfe7a76a10 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jun Aruga <jaruga@redhat.com>
|
|
||||||
Date: Wed, 12 Apr 2023 17:15:21 +0200
|
|
||||||
Subject: [PATCH] Fix OpenSSL::PKey.read in OpenSSL 3 FIPS module.
|
|
||||||
|
|
||||||
This is a combination of the following 2 commits. Because the combined patch is
|
|
||||||
easy to merge.
|
|
||||||
|
|
||||||
This is the 1st commit message:
|
|
||||||
|
|
||||||
[ruby/openssl] Workaround: Fix OpenSSL::PKey.read that cannot parse PKey in the FIPS mode.
|
|
||||||
|
|
||||||
This commit is a workaround to avoid the error below that the
|
|
||||||
`OpenSSL::PKey.read` fails with the OpenSSL 3.0 FIPS mode.
|
|
||||||
|
|
||||||
```
|
|
||||||
$ openssl genrsa -out key.pem 4096
|
|
||||||
|
|
||||||
$ ruby -e "require 'openssl'; OpenSSL::PKey.read(File.read('key.pem'))"
|
|
||||||
-e:1:in `read': Could not parse PKey (OpenSSL::PKey::PKeyError)
|
|
||||||
from -e:1:in `<main>'
|
|
||||||
```
|
|
||||||
|
|
||||||
The root cause is on the OpenSSL side. The `OSSL_DECODER_CTX_set_selection`
|
|
||||||
doesn't apply the selection value properly if there are multiple providers, and
|
|
||||||
a provider (e.g. "base" provider) handles the decoder implementation, and
|
|
||||||
another provider (e.g. "fips" provider) handles the keys.
|
|
||||||
|
|
||||||
The workaround is to create `OSSL_DECODER_CTX` variable each time without using
|
|
||||||
the `OSSL_DECODER_CTX_set_selection`.
|
|
||||||
|
|
||||||
https://github.com/ruby/openssl/commit/5ff4a31621
|
|
||||||
|
|
||||||
This is the commit message #2:
|
|
||||||
|
|
||||||
[ruby/openssl] ossl_pkey.c: Workaround: Decode with non-zero selections.
|
|
||||||
|
|
||||||
This is a workaround for the decoding issue in ossl_pkey_read_generic().
|
|
||||||
The issue happens in the case that a key management provider is different from
|
|
||||||
a decoding provider.
|
|
||||||
|
|
||||||
Try all the non-zero selections in order, instead of selection 0 for OpenSSL 3
|
|
||||||
to avoid the issue.
|
|
||||||
|
|
||||||
https://github.com/ruby/openssl/commit/db688fa739
|
|
||||||
---
|
|
||||||
ext/openssl/ossl_pkey.c | 78 ++++++++++++++++++++++++++++++++++++++---
|
|
||||||
1 file changed, 73 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ext/openssl/ossl_pkey.c b/ext/openssl/ossl_pkey.c
|
|
||||||
index 476256679b..419422958e 100644
|
|
||||||
--- a/ext/openssl/ossl_pkey.c
|
|
||||||
+++ b/ext/openssl/ossl_pkey.c
|
|
||||||
@@ -82,18 +82,20 @@ ossl_pkey_new(EVP_PKEY *pkey)
|
|
||||||
#if OSSL_OPENSSL_PREREQ(3, 0, 0)
|
|
||||||
# include <openssl/decoder.h>
|
|
||||||
|
|
||||||
-EVP_PKEY *
|
|
||||||
-ossl_pkey_read_generic(BIO *bio, VALUE pass)
|
|
||||||
+static EVP_PKEY *
|
|
||||||
+ossl_pkey_read(BIO *bio, const char *input_type, int selection, VALUE pass)
|
|
||||||
{
|
|
||||||
void *ppass = (void *)pass;
|
|
||||||
OSSL_DECODER_CTX *dctx;
|
|
||||||
EVP_PKEY *pkey = NULL;
|
|
||||||
int pos = 0, pos2;
|
|
||||||
|
|
||||||
- dctx = OSSL_DECODER_CTX_new_for_pkey(&pkey, "DER", NULL, NULL, 0, NULL, NULL);
|
|
||||||
+ dctx = OSSL_DECODER_CTX_new_for_pkey(&pkey, input_type, NULL, NULL,
|
|
||||||
+ selection, NULL, NULL);
|
|
||||||
if (!dctx)
|
|
||||||
goto out;
|
|
||||||
- if (OSSL_DECODER_CTX_set_pem_password_cb(dctx, ossl_pem_passwd_cb, ppass) != 1)
|
|
||||||
+ if (OSSL_DECODER_CTX_set_pem_password_cb(dctx, ossl_pem_passwd_cb,
|
|
||||||
+ ppass) != 1)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
/* First check DER */
|
|
||||||
@@ -151,11 +153,77 @@ ossl_pkey_read_generic(BIO *bio, VALUE pass)
|
|
||||||
ossl_clear_error();
|
|
||||||
pos = pos2;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
out:
|
|
||||||
+ OSSL_BIO_reset(bio);
|
|
||||||
OSSL_DECODER_CTX_free(dctx);
|
|
||||||
return pkey;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+EVP_PKEY *
|
|
||||||
+ossl_pkey_read_generic(BIO *bio, VALUE pass)
|
|
||||||
+{
|
|
||||||
+ EVP_PKEY *pkey = NULL;
|
|
||||||
+ /* First check DER, then check PEM. */
|
|
||||||
+ const char *input_types[] = {"DER", "PEM"};
|
|
||||||
+ int input_type_num = (int)(sizeof(input_types) / sizeof(char *));
|
|
||||||
+ /*
|
|
||||||
+ * Non-zero selections to try to decode.
|
|
||||||
+ *
|
|
||||||
+ * See EVP_PKEY_fromdata(3) - Selections to see all the selections.
|
|
||||||
+ *
|
|
||||||
+ * This is a workaround for the decoder failing to decode or returning
|
|
||||||
+ * bogus keys with selection 0, if a key management provider is different
|
|
||||||
+ * from a decoder provider. The workaround is to avoid using selection 0.
|
|
||||||
+ *
|
|
||||||
+ * Affected OpenSSL versions: >= 3.1.0, <= 3.1.2, or >= 3.0.0, <= 3.0.10
|
|
||||||
+ * Fixed OpenSSL versions: 3.2, next release of the 3.1.z and 3.0.z
|
|
||||||
+ *
|
|
||||||
+ * See https://github.com/openssl/openssl/pull/21519 for details.
|
|
||||||
+ *
|
|
||||||
+ * First check for private key formats (EVP_PKEY_KEYPAIR). This is to keep
|
|
||||||
+ * compatibility with ruby/openssl < 3.0 which decoded the following as a
|
|
||||||
+ * private key.
|
|
||||||
+ *
|
|
||||||
+ * $ openssl ecparam -name prime256v1 -genkey -outform PEM
|
|
||||||
+ * -----BEGIN EC PARAMETERS-----
|
|
||||||
+ * BggqhkjOPQMBBw==
|
|
||||||
+ * -----END EC PARAMETERS-----
|
|
||||||
+ * -----BEGIN EC PRIVATE KEY-----
|
|
||||||
+ * MHcCAQEEIAG8ugBbA5MHkqnZ9ujQF93OyUfL9tk8sxqM5Wv5tKg5oAoGCCqGSM49
|
|
||||||
+ * AwEHoUQDQgAEVcjhJfkwqh5C7kGuhAf8XaAjVuG5ADwb5ayg/cJijCgs+GcXeedj
|
|
||||||
+ * 86avKpGH84DXUlB23C/kPt+6fXYlitUmXQ==
|
|
||||||
+ * -----END EC PRIVATE KEY-----
|
|
||||||
+ *
|
|
||||||
+ * While the first PEM block is a proper encoding of ECParameters, thus
|
|
||||||
+ * OSSL_DECODER_from_bio() would pick it up, ruby/openssl used to return
|
|
||||||
+ * the latter instead. Existing applications expect this behavior.
|
|
||||||
+ *
|
|
||||||
+ * Note that normally, the input is supposed to contain a single decodable
|
|
||||||
+ * PEM block only, so this special handling should not create a new problem.
|
|
||||||
+ *
|
|
||||||
+ * Note that we need to create the OSSL_DECODER_CTX variable each time when
|
|
||||||
+ * we use the different selection as a workaround.
|
|
||||||
+ * See https://github.com/openssl/openssl/issues/20657 for details.
|
|
||||||
+ */
|
|
||||||
+ int selections[] = {
|
|
||||||
+ EVP_PKEY_KEYPAIR,
|
|
||||||
+ EVP_PKEY_KEY_PARAMETERS,
|
|
||||||
+ EVP_PKEY_PUBLIC_KEY
|
|
||||||
+ };
|
|
||||||
+ int selection_num = (int)(sizeof(selections) / sizeof(int));
|
|
||||||
+ int i, j;
|
|
||||||
+
|
|
||||||
+ for (i = 0; i < input_type_num; i++) {
|
|
||||||
+ for (j = 0; j < selection_num; j++) {
|
|
||||||
+ pkey = ossl_pkey_read(bio, input_types[i], selections[j], pass);
|
|
||||||
+ if (pkey) {
|
|
||||||
+ goto out;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ out:
|
|
||||||
+ return pkey;
|
|
||||||
+}
|
|
||||||
#else
|
|
||||||
EVP_PKEY *
|
|
||||||
ossl_pkey_read_generic(BIO *bio, VALUE pass)
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
@ -1,142 +0,0 @@
|
|||||||
From 29920ec109751459a65c6478525f2e59c644891f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jun Aruga <jaruga@redhat.com>
|
|
||||||
Date: Thu, 16 Mar 2023 21:36:43 +0100
|
|
||||||
Subject: [PATCH] [ruby/openssl] Implement FIPS functions on OpenSSL 3.
|
|
||||||
|
|
||||||
This commit is to implement the `OpenSSL::OPENSSL_FIPS`, `ossl_fips_mode_get`
|
|
||||||
and `ossl_fips_mode_set` to pass the test `test/openssl/test_fips.rb`.
|
|
||||||
|
|
||||||
It seems that the `OPENSSL_FIPS` macro is not used on the FIPS mode case any
|
|
||||||
more, and some FIPS related APIs also were removed in OpenSSL 3.
|
|
||||||
|
|
||||||
See the document <https://github.com/openssl/openssl/blob/master/doc/man7/migration_guide.pod#removed-fips_mode-and-fips_mode_set>
|
|
||||||
the section OPENSSL 3.0 > Main Changes from OpenSSL 1.1.1 >
|
|
||||||
Other notable deprecations and changes - Removed FIPS_mode() and FIPS_mode_set() .
|
|
||||||
|
|
||||||
The `OpenSSL::OPENSSL_FIPS` returns always true in OpenSSL 3 because the used
|
|
||||||
functions `EVP_default_properties_enable_fips` and `EVP_default_properties_is_fips_enabled`
|
|
||||||
works with the OpenSSL installed without FIPS option.
|
|
||||||
|
|
||||||
The `TEST_RUBY_OPENSSL_FIPS_ENABLED` is set on the FIPS mode case on the CI.
|
|
||||||
Because I want to test that the `OpenSSL.fips_mode` returns the `true` or
|
|
||||||
'false' surely in the CI. You can test the FIPS mode case by setting
|
|
||||||
`TEST_RUBY_OPENSSL_FIPS_ENABLED` on local too. Right now I don't find a better
|
|
||||||
way to get the status of the FIPS mode enabled or disabled for this purpose. I
|
|
||||||
am afraid of the possibility that the FIPS test case is unintentionally skipped.
|
|
||||||
|
|
||||||
I also replaced the ambiguous "returns" with "should return" in the tests.
|
|
||||||
|
|
||||||
https://github.com/ruby/openssl/commit/c5b2bc1268
|
|
||||||
---
|
|
||||||
ext/openssl/ossl.c | 25 +++++++++++++++++++++----
|
|
||||||
test/openssl/test_fips.rb | 32 ++++++++++++++++++++++++++++----
|
|
||||||
2 files changed, 49 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c
|
|
||||||
index 6c532aca94..fcf3744c65 100644
|
|
||||||
--- a/ext/openssl/ossl.c
|
|
||||||
+++ b/ext/openssl/ossl.c
|
|
||||||
@@ -418,7 +418,11 @@ static VALUE
|
|
||||||
ossl_fips_mode_get(VALUE self)
|
|
||||||
{
|
|
||||||
|
|
||||||
-#ifdef OPENSSL_FIPS
|
|
||||||
+#if OSSL_OPENSSL_PREREQ(3, 0, 0)
|
|
||||||
+ VALUE enabled;
|
|
||||||
+ enabled = EVP_default_properties_is_fips_enabled(NULL) ? Qtrue : Qfalse;
|
|
||||||
+ return enabled;
|
|
||||||
+#elif OPENSSL_FIPS
|
|
||||||
VALUE enabled;
|
|
||||||
enabled = FIPS_mode() ? Qtrue : Qfalse;
|
|
||||||
return enabled;
|
|
||||||
@@ -442,8 +446,18 @@ ossl_fips_mode_get(VALUE self)
|
|
||||||
static VALUE
|
|
||||||
ossl_fips_mode_set(VALUE self, VALUE enabled)
|
|
||||||
{
|
|
||||||
-
|
|
||||||
-#ifdef OPENSSL_FIPS
|
|
||||||
+#if OSSL_OPENSSL_PREREQ(3, 0, 0)
|
|
||||||
+ if (RTEST(enabled)) {
|
|
||||||
+ if (!EVP_default_properties_enable_fips(NULL, 1)) {
|
|
||||||
+ ossl_raise(eOSSLError, "Turning on FIPS mode failed");
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ if (!EVP_default_properties_enable_fips(NULL, 0)) {
|
|
||||||
+ ossl_raise(eOSSLError, "Turning off FIPS mode failed");
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return enabled;
|
|
||||||
+#elif OPENSSL_FIPS
|
|
||||||
if (RTEST(enabled)) {
|
|
||||||
int mode = FIPS_mode();
|
|
||||||
if(!mode && !FIPS_mode_set(1)) /* turning on twice leads to an error */
|
|
||||||
@@ -1198,7 +1212,10 @@ Init_openssl(void)
|
|
||||||
* Boolean indicating whether OpenSSL is FIPS-capable or not
|
|
||||||
*/
|
|
||||||
rb_define_const(mOSSL, "OPENSSL_FIPS",
|
|
||||||
-#ifdef OPENSSL_FIPS
|
|
||||||
+/* OpenSSL 3 is FIPS-capable even when it is installed without fips option */
|
|
||||||
+#if OSSL_OPENSSL_PREREQ(3, 0, 0)
|
|
||||||
+ Qtrue
|
|
||||||
+#elif OPENSSL_FIPS
|
|
||||||
Qtrue
|
|
||||||
#else
|
|
||||||
Qfalse
|
|
||||||
diff --git a/test/openssl/test_fips.rb b/test/openssl/test_fips.rb
|
|
||||||
index 8cd474f9a3..56a12a94ce 100644
|
|
||||||
--- a/test/openssl/test_fips.rb
|
|
||||||
+++ b/test/openssl/test_fips.rb
|
|
||||||
@@ -4,22 +4,46 @@
|
|
||||||
if defined?(OpenSSL)
|
|
||||||
|
|
||||||
class OpenSSL::TestFIPS < OpenSSL::TestCase
|
|
||||||
+ def test_fips_mode_get_is_true_on_fips_mode_enabled
|
|
||||||
+ unless ENV["TEST_RUBY_OPENSSL_FIPS_ENABLED"]
|
|
||||||
+ omit "Only for FIPS mode environment"
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
+ assert_separately([{ "OSSL_MDEBUG" => nil }, "-ropenssl"], <<~"end;")
|
|
||||||
+ assert OpenSSL.fips_mode == true, ".fips_mode should return true on FIPS mode enabled"
|
|
||||||
+ end;
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
+ def test_fips_mode_get_is_false_on_fips_mode_disabled
|
|
||||||
+ if ENV["TEST_RUBY_OPENSSL_FIPS_ENABLED"]
|
|
||||||
+ omit "Only for non-FIPS mode environment"
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
+ assert_separately([{ "OSSL_MDEBUG" => nil }, "-ropenssl"], <<~"end;")
|
|
||||||
+ message = ".fips_mode should return false on FIPS mode disabled. " \
|
|
||||||
+ "If you run the test on FIPS mode, please set " \
|
|
||||||
+ "TEST_RUBY_OPENSSL_FIPS_ENABLED=true"
|
|
||||||
+ assert OpenSSL.fips_mode == false, message
|
|
||||||
+ end;
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
def test_fips_mode_is_reentrant
|
|
||||||
OpenSSL.fips_mode = false
|
|
||||||
OpenSSL.fips_mode = false
|
|
||||||
end
|
|
||||||
|
|
||||||
- def test_fips_mode_get
|
|
||||||
- return unless OpenSSL::OPENSSL_FIPS
|
|
||||||
+ def test_fips_mode_get_with_fips_mode_set
|
|
||||||
+ omit('OpenSSL is not FIPS-capable') unless OpenSSL::OPENSSL_FIPS
|
|
||||||
+
|
|
||||||
assert_separately([{ "OSSL_MDEBUG" => nil }, "-ropenssl"], <<~"end;")
|
|
||||||
require #{__FILE__.dump}
|
|
||||||
|
|
||||||
begin
|
|
||||||
OpenSSL.fips_mode = true
|
|
||||||
- assert OpenSSL.fips_mode == true, ".fips_mode returns true when .fips_mode=true"
|
|
||||||
+ assert OpenSSL.fips_mode == true, ".fips_mode should return true when .fips_mode=true"
|
|
||||||
|
|
||||||
OpenSSL.fips_mode = false
|
|
||||||
- assert OpenSSL.fips_mode == false, ".fips_mode returns false when .fips_mode=false"
|
|
||||||
+ assert OpenSSL.fips_mode == false, ".fips_mode should return false when .fips_mode=false"
|
|
||||||
rescue OpenSSL::OpenSSLError
|
|
||||||
pend "Could not set FIPS mode (OpenSSL::OpenSSLError: \#$!); skipping"
|
|
||||||
end
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
256
ruby-3.4.0-ruby-net-http-Renew-test-certificates.patch
Normal file
256
ruby-3.4.0-ruby-net-http-Renew-test-certificates.patch
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
From d3933fc753187a055a4904af82f5f3794c88c416 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sorah Fukumori <her@sorah.jp>
|
||||||
|
Date: Mon, 1 Jan 2024 20:45:54 +0900
|
||||||
|
Subject: [PATCH] [ruby/net-http] Renew test certificates
|
||||||
|
|
||||||
|
The private key is replaced with a public known test key published at
|
||||||
|
[RFC 9500].
|
||||||
|
|
||||||
|
Also lifetime has been extended to 10 years from 4 years.
|
||||||
|
|
||||||
|
[RFC 9500]: https://www.rfc-editor.org/rfc/rfc9500.html
|
||||||
|
|
||||||
|
https://github.com/ruby/net-http/commit/4ab6c4a500
|
||||||
|
---
|
||||||
|
test/net/fixtures/Makefile | 6 +--
|
||||||
|
test/net/fixtures/cacert.pem | 44 ++++++++--------
|
||||||
|
test/net/fixtures/server.crt | 99 +++++++-----------------------------
|
||||||
|
test/net/fixtures/server.key | 55 ++++++++++----------
|
||||||
|
4 files changed, 71 insertions(+), 133 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test/net/fixtures/Makefile b/test/net/fixtures/Makefile
|
||||||
|
index b2bc9c7368ee2..88c232e3b6c16 100644
|
||||||
|
--- a/test/net/fixtures/Makefile
|
||||||
|
+++ b/test/net/fixtures/Makefile
|
||||||
|
@@ -5,11 +5,11 @@ regen_certs:
|
||||||
|
make server.crt
|
||||||
|
|
||||||
|
cacert.pem: server.key
|
||||||
|
- openssl req -new -x509 -days 1825 -key server.key -out cacert.pem -text -subj "/C=JP/ST=Shimane/L=Matz-e city/O=Ruby Core Team/CN=Ruby Test CA/emailAddress=security@ruby-lang.org"
|
||||||
|
+ openssl req -new -x509 -days 3650 -key server.key -out cacert.pem -subj "/C=JP/ST=Shimane/L=Matz-e city/O=Ruby Core Team/CN=Ruby Test CA/emailAddress=security@ruby-lang.org"
|
||||||
|
|
||||||
|
server.csr:
|
||||||
|
- openssl req -new -key server.key -out server.csr -text -subj "/C=JP/ST=Shimane/O=Ruby Core Team/OU=Ruby Test/CN=localhost"
|
||||||
|
+ openssl req -new -key server.key -out server.csr -subj "/C=JP/ST=Shimane/O=Ruby Core Team/OU=Ruby Test/CN=localhost"
|
||||||
|
|
||||||
|
server.crt: server.csr cacert.pem
|
||||||
|
- openssl x509 -days 1825 -CA cacert.pem -CAkey server.key -set_serial 00 -in server.csr -req -text -out server.crt
|
||||||
|
+ openssl x509 -days 3650 -CA cacert.pem -CAkey server.key -set_serial 00 -in server.csr -req -out server.crt
|
||||||
|
rm server.csr
|
||||||
|
diff --git a/test/net/fixtures/cacert.pem b/test/net/fixtures/cacert.pem
|
||||||
|
index f623bd62ed375..24c83f1c65225 100644
|
||||||
|
--- a/test/net/fixtures/cacert.pem
|
||||||
|
+++ b/test/net/fixtures/cacert.pem
|
||||||
|
@@ -1,24 +1,24 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
-MIID7TCCAtWgAwIBAgIJAIltvxrFAuSnMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYD
|
||||||
|
-VQQGEwJKUDEQMA4GA1UECAwHU2hpbWFuZTEUMBIGA1UEBwwLTWF0ei1lIGNpdHkx
|
||||||
|
-FzAVBgNVBAoMDlJ1YnkgQ29yZSBUZWFtMRUwEwYDVQQDDAxSdWJ5IFRlc3QgQ0Ex
|
||||||
|
-JTAjBgkqhkiG9w0BCQEWFnNlY3VyaXR5QHJ1YnktbGFuZy5vcmcwHhcNMTkwMTAy
|
||||||
|
-MDI1ODI4WhcNMjQwMTAxMDI1ODI4WjCBjDELMAkGA1UEBhMCSlAxEDAOBgNVBAgM
|
||||||
|
-B1NoaW1hbmUxFDASBgNVBAcMC01hdHotZSBjaXR5MRcwFQYDVQQKDA5SdWJ5IENv
|
||||||
|
-cmUgVGVhbTEVMBMGA1UEAwwMUnVieSBUZXN0IENBMSUwIwYJKoZIhvcNAQkBFhZz
|
||||||
|
-ZWN1cml0eUBydWJ5LWxhbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||||
|
-CgKCAQEAznlbjRVhz1NlutHVrhcGnK8W0qug2ujKXv1njSC4U6nJF6py7I9EeehV
|
||||||
|
-SaKePyv+I9z3K1LnfUHOtUbdwdKC77yN66A6q2aqzu5q09/NSykcZGOIF0GuItYI
|
||||||
|
-3nvW3IqBddff2ffsyR+9pBjfb5AIPP08WowF9q4s1eGULwZc4w2B8PFhtxYANd7d
|
||||||
|
-BvGLXFlcufv9tDtzyRi4t7eqxCRJkZQIZNZ6DHHIJrNxejOILfHLarI12yk8VK6L
|
||||||
|
-2LG4WgGqyeePiRyd1o1MbuiAFYqAwpXNUbRKg5NaZGwBHZk8UZ+uFKt1QMBURO5R
|
||||||
|
-WFy1c349jbWszTqFyL4Lnbg9HhAowQIDAQABo1AwTjAdBgNVHQ4EFgQU9tEiKdU9
|
||||||
|
-I9derQyc5nWPnc34nVMwHwYDVR0jBBgwFoAU9tEiKdU9I9derQyc5nWPnc34nVMw
|
||||||
|
-DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAxj7F/u3C3fgq24N7hGRA
|
||||||
|
-of7ClFQxGmo/IGT0AISzW3HiVYiFaikKhbO1NwD9aBpD8Zwe62sCqMh8jGV/b0+q
|
||||||
|
-aOORnWYNy2R6r9FkASAglmdF6xn3bhgGD5ls4pCvcG9FynGnGc24g6MrjFNrBYUS
|
||||||
|
-2iIZsg36i0IJswo/Dy6HLphCms2BMCD3DeWtfjePUiTmQHJo6HsQIKP/u4N4Fvee
|
||||||
|
-uMBInei2M4VU74fLXbmKl1F9AEX7JDP3BKSZG19Ch5pnUo4uXM1uNTGsi07P4Y0s
|
||||||
|
-K44+SKBC0bYEFbDK0eQWMrX3kIhkPxyIWhxdq9/NqPYjShuSEAhA6CSpmRg0pqc+
|
||||||
|
-mA==
|
||||||
|
+MIID+zCCAuOgAwIBAgIUGMvHl3EhtKPKcgc3NQSAYfFuC+8wDQYJKoZIhvcNAQEL
|
||||||
|
+BQAwgYwxCzAJBgNVBAYTAkpQMRAwDgYDVQQIDAdTaGltYW5lMRQwEgYDVQQHDAtN
|
||||||
|
+YXR6LWUgY2l0eTEXMBUGA1UECgwOUnVieSBDb3JlIFRlYW0xFTATBgNVBAMMDFJ1
|
||||||
|
+YnkgVGVzdCBDQTElMCMGCSqGSIb3DQEJARYWc2VjdXJpdHlAcnVieS1sYW5nLm9y
|
||||||
|
+ZzAeFw0yNDAxMDExMTQ3MjNaFw0zMzEyMjkxMTQ3MjNaMIGMMQswCQYDVQQGEwJK
|
||||||
|
+UDEQMA4GA1UECAwHU2hpbWFuZTEUMBIGA1UEBwwLTWF0ei1lIGNpdHkxFzAVBgNV
|
||||||
|
+BAoMDlJ1YnkgQ29yZSBUZWFtMRUwEwYDVQQDDAxSdWJ5IFRlc3QgQ0ExJTAjBgkq
|
||||||
|
+hkiG9w0BCQEWFnNlY3VyaXR5QHJ1YnktbGFuZy5vcmcwggEiMA0GCSqGSIb3DQEB
|
||||||
|
+AQUAA4IBDwAwggEKAoIBAQCw+egZQ6eumJKq3hfKfED4dE/tL4FI5sjqont9ABVI
|
||||||
|
++1GSqyi1bFBgsRjM0THllIdMbKmJtWwnKW8J+5OgNN8y6Xxv8JmM/Y5vQt2lis0f
|
||||||
|
+qXmG8UTz0VTWdlAXXmhUs6lSADvAaIe4RVrCsZ97L3ZQTryY7JRVcbB4khUN3Gp0
|
||||||
|
+yg+801SXzoFTTa+UGIRLE66jH51aa5VXu99hnv1OiH8tQrjdi8mH6uG/icq4XuIe
|
||||||
|
+NWMF32wHqIOOPvQcWV3M5D2vxJEj702Ku6k9OQXkAo17qRSEonWW4HtLbtmS8He1
|
||||||
|
+JNPc/n3dVUm+fM6NoDXPoLP7j55G9zKyqGtGAWXAj1MTAgMBAAGjUzBRMB0GA1Ud
|
||||||
|
+DgQWBBSJGVleDvFp9cu9R+E0/OKYzGkwkTAfBgNVHSMEGDAWgBSJGVleDvFp9cu9
|
||||||
|
+R+E0/OKYzGkwkTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBl
|
||||||
|
+8GLB8skAWlkSw/FwbUmEV3zyqu+p7PNP5YIYoZs0D74e7yVulGQ6PKMZH5hrZmHo
|
||||||
|
+orFSQU+VUUirG8nDGj7Rzce8WeWBxsaDGC8CE2dq6nC6LuUwtbdMnBrH0LRWAz48
|
||||||
|
+jGFF3jHtVz8VsGfoZTZCjukWqNXvU6hETT9GsfU+PZqbqcTVRPH52+XgYayKdIbD
|
||||||
|
+r97RM4X3+aXBHcUW0b76eyyi65RR/Xtvn8ioZt2AdX7T2tZzJyXJN3Hupp77s6Ui
|
||||||
|
+AZR35SToHCZeTZD12YBvLBdaTPLZN7O/Q/aAO9ZiJaZ7SbFOjz813B2hxXab4Fob
|
||||||
|
+2uJX6eMWTVxYK5D4M9lm
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
diff --git a/test/net/fixtures/server.crt b/test/net/fixtures/server.crt
|
||||||
|
index 5ca78a6d146a0..5d2923795dabc 100644
|
||||||
|
--- a/test/net/fixtures/server.crt
|
||||||
|
+++ b/test/net/fixtures/server.crt
|
||||||
|
@@ -1,82 +1,21 @@
|
||||||
|
-Certificate:
|
||||||
|
- Data:
|
||||||
|
- Version: 3 (0x2)
|
||||||
|
- Serial Number: 2 (0x2)
|
||||||
|
- Signature Algorithm: sha256WithRSAEncryption
|
||||||
|
- Issuer: C=JP, ST=Shimane, L=Matz-e city, O=Ruby Core Team, CN=Ruby Test CA/emailAddress=security@ruby-lang.org
|
||||||
|
- Validity
|
||||||
|
- Not Before: Jan 2 03:27:13 2019 GMT
|
||||||
|
- Not After : Jan 1 03:27:13 2024 GMT
|
||||||
|
- Subject: C=JP, ST=Shimane, O=Ruby Core Team, OU=Ruby Test, CN=localhost
|
||||||
|
- Subject Public Key Info:
|
||||||
|
- Public Key Algorithm: rsaEncryption
|
||||||
|
- Public-Key: (2048 bit)
|
||||||
|
- Modulus:
|
||||||
|
- 00:e8:da:9c:01:2e:2b:10:ec:49:cd:5e:07:13:07:
|
||||||
|
- 9c:70:9e:c6:74:bc:13:c2:e1:6f:c6:82:fd:e3:48:
|
||||||
|
- e0:2c:a5:68:c7:9e:42:de:60:54:65:e6:6a:14:57:
|
||||||
|
- 7a:30:d0:cc:b5:b6:d9:c3:d2:df:c9:25:97:54:67:
|
||||||
|
- cf:f6:be:5e:cb:8b:ee:03:c5:e1:e2:f9:e7:f7:d1:
|
||||||
|
- 0c:47:f0:b8:da:33:5a:ad:41:ad:e7:b5:a2:7b:b7:
|
||||||
|
- bf:30:da:60:f8:e3:54:a2:bc:3a:fd:1b:74:d9:dc:
|
||||||
|
- 74:42:e9:29:be:df:ac:b4:4f:eb:32:f4:06:f1:e1:
|
||||||
|
- 8c:4b:a8:8b:fb:29:e7:b1:bf:1d:01:ee:73:0f:f9:
|
||||||
|
- 40:dc:d5:15:79:d9:c6:73:d0:c0:dd:cb:e4:da:19:
|
||||||
|
- 47:80:c6:14:04:72:fd:9a:7c:8f:11:82:76:49:04:
|
||||||
|
- 79:cc:f2:5c:31:22:95:13:3e:5d:40:a6:4d:e0:a3:
|
||||||
|
- 02:26:7d:52:3b:bb:ed:65:a1:0f:ed:6b:b0:3c:d4:
|
||||||
|
- de:61:15:5e:d3:dd:68:09:9f:4a:57:a5:c2:a9:6d:
|
||||||
|
- 86:92:c5:f4:a4:d4:b7:13:3b:52:63:24:05:e2:cc:
|
||||||
|
- e3:8a:3c:d4:35:34:2b:10:bb:58:72:e7:e1:8d:1d:
|
||||||
|
- 74:8c:61:16:20:3d:d0:1c:4e:8f:6e:fd:fe:64:10:
|
||||||
|
- 4f:41
|
||||||
|
- Exponent: 65537 (0x10001)
|
||||||
|
- X509v3 extensions:
|
||||||
|
- X509v3 Basic Constraints:
|
||||||
|
- CA:FALSE
|
||||||
|
- Netscape Comment:
|
||||||
|
- OpenSSL Generated Certificate
|
||||||
|
- X509v3 Subject Key Identifier:
|
||||||
|
- ED:28:C2:7E:AB:4B:C8:E8:FE:55:6D:66:95:31:1C:2D:60:F9:02:36
|
||||||
|
- X509v3 Authority Key Identifier:
|
||||||
|
- keyid:F6:D1:22:29:D5:3D:23:D7:5E:AD:0C:9C:E6:75:8F:9D:CD:F8:9D:53
|
||||||
|
-
|
||||||
|
- Signature Algorithm: sha256WithRSAEncryption
|
||||||
|
- 1d:b8:c5:8b:72:41:20:65:ad:27:6f:15:63:06:26:12:8d:9c:
|
||||||
|
- ad:ca:f4:db:97:b4:90:cb:ff:35:94:bb:2a:a7:a1:ab:1e:35:
|
||||||
|
- 2d:a5:3f:c9:24:b0:1a:58:89:75:3e:81:0a:2c:4f:98:f9:51:
|
||||||
|
- fb:c0:a3:09:d0:0a:9b:e7:a2:b7:c3:60:40:c8:f4:6d:b2:6a:
|
||||||
|
- 56:12:17:4c:00:24:31:df:9c:60:ae:b1:68:54:a9:e6:b5:4a:
|
||||||
|
- 04:e6:92:05:86:d9:5a:dc:96:30:a5:58:de:14:99:0f:e5:15:
|
||||||
|
- 89:3e:9b:eb:80:e3:bd:83:c3:ea:33:35:4b:3e:2f:d3:0d:64:
|
||||||
|
- 93:67:7f:8d:f5:3f:0c:27:bc:37:5a:cc:d6:47:16:af:5a:62:
|
||||||
|
- d2:da:51:f8:74:06:6b:24:ad:28:68:08:98:37:7d:ed:0e:ab:
|
||||||
|
- 1e:82:61:05:d0:ba:75:a0:ab:21:b0:9a:fd:2b:54:86:1d:0d:
|
||||||
|
- 1f:c2:d4:77:1f:72:26:5e:ad:8a:9f:09:36:6d:44:be:74:c2:
|
||||||
|
- 5a:3e:ff:5c:9d:75:d6:38:7b:c5:39:f9:44:6e:a1:d1:8e:ff:
|
||||||
|
- 63:db:c4:bb:c6:91:92:ca:5c:60:9b:1d:eb:0a:de:08:ee:bf:
|
||||||
|
- da:76:03:65:62:29:8b:f8:7f:c7:86:73:1e:f6:1f:2d:89:69:
|
||||||
|
- fd:be:bd:6e
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
-MIID4zCCAsugAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UEBhMCSlAx
|
||||||
|
-EDAOBgNVBAgMB1NoaW1hbmUxFDASBgNVBAcMC01hdHotZSBjaXR5MRcwFQYDVQQK
|
||||||
|
-DA5SdWJ5IENvcmUgVGVhbTEVMBMGA1UEAwwMUnVieSBUZXN0IENBMSUwIwYJKoZI
|
||||||
|
-hvcNAQkBFhZzZWN1cml0eUBydWJ5LWxhbmcub3JnMB4XDTE5MDEwMjAzMjcxM1oX
|
||||||
|
-DTI0MDEwMTAzMjcxM1owYDELMAkGA1UEBhMCSlAxEDAOBgNVBAgMB1NoaW1hbmUx
|
||||||
|
-FzAVBgNVBAoMDlJ1YnkgQ29yZSBUZWFtMRIwEAYDVQQLDAlSdWJ5IFRlc3QxEjAQ
|
||||||
|
-BgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||||
|
-AOjanAEuKxDsSc1eBxMHnHCexnS8E8Lhb8aC/eNI4CylaMeeQt5gVGXmahRXejDQ
|
||||||
|
-zLW22cPS38kll1Rnz/a+XsuL7gPF4eL55/fRDEfwuNozWq1Bree1onu3vzDaYPjj
|
||||||
|
-VKK8Ov0bdNncdELpKb7frLRP6zL0BvHhjEuoi/sp57G/HQHucw/5QNzVFXnZxnPQ
|
||||||
|
-wN3L5NoZR4DGFARy/Zp8jxGCdkkEeczyXDEilRM+XUCmTeCjAiZ9Uju77WWhD+1r
|
||||||
|
-sDzU3mEVXtPdaAmfSlelwqlthpLF9KTUtxM7UmMkBeLM44o81DU0KxC7WHLn4Y0d
|
||||||
|
-dIxhFiA90BxOj279/mQQT0ECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhC
|
||||||
|
-AQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFO0o
|
||||||
|
-wn6rS8jo/lVtZpUxHC1g+QI2MB8GA1UdIwQYMBaAFPbRIinVPSPXXq0MnOZ1j53N
|
||||||
|
-+J1TMA0GCSqGSIb3DQEBCwUAA4IBAQAduMWLckEgZa0nbxVjBiYSjZytyvTbl7SQ
|
||||||
|
-y/81lLsqp6GrHjUtpT/JJLAaWIl1PoEKLE+Y+VH7wKMJ0Aqb56K3w2BAyPRtsmpW
|
||||||
|
-EhdMACQx35xgrrFoVKnmtUoE5pIFhtla3JYwpVjeFJkP5RWJPpvrgOO9g8PqMzVL
|
||||||
|
-Pi/TDWSTZ3+N9T8MJ7w3WszWRxavWmLS2lH4dAZrJK0oaAiYN33tDqsegmEF0Lp1
|
||||||
|
-oKshsJr9K1SGHQ0fwtR3H3ImXq2Knwk2bUS+dMJaPv9cnXXWOHvFOflEbqHRjv9j
|
||||||
|
-28S7xpGSylxgmx3rCt4I7r/adgNlYimL+H/HhnMe9h8tiWn9vr1u
|
||||||
|
+MIIDYTCCAkkCAQAwDQYJKoZIhvcNAQELBQAwgYwxCzAJBgNVBAYTAkpQMRAwDgYD
|
||||||
|
+VQQIDAdTaGltYW5lMRQwEgYDVQQHDAtNYXR6LWUgY2l0eTEXMBUGA1UECgwOUnVi
|
||||||
|
+eSBDb3JlIFRlYW0xFTATBgNVBAMMDFJ1YnkgVGVzdCBDQTElMCMGCSqGSIb3DQEJ
|
||||||
|
+ARYWc2VjdXJpdHlAcnVieS1sYW5nLm9yZzAeFw0yNDAxMDExMTQ3MjNaFw0zMzEy
|
||||||
|
+MjkxMTQ3MjNaMGAxCzAJBgNVBAYTAkpQMRAwDgYDVQQIDAdTaGltYW5lMRcwFQYD
|
||||||
|
+VQQKDA5SdWJ5IENvcmUgVGVhbTESMBAGA1UECwwJUnVieSBUZXN0MRIwEAYDVQQD
|
||||||
|
+DAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCw+egZ
|
||||||
|
+Q6eumJKq3hfKfED4dE/tL4FI5sjqont9ABVI+1GSqyi1bFBgsRjM0THllIdMbKmJ
|
||||||
|
+tWwnKW8J+5OgNN8y6Xxv8JmM/Y5vQt2lis0fqXmG8UTz0VTWdlAXXmhUs6lSADvA
|
||||||
|
+aIe4RVrCsZ97L3ZQTryY7JRVcbB4khUN3Gp0yg+801SXzoFTTa+UGIRLE66jH51a
|
||||||
|
+a5VXu99hnv1OiH8tQrjdi8mH6uG/icq4XuIeNWMF32wHqIOOPvQcWV3M5D2vxJEj
|
||||||
|
+702Ku6k9OQXkAo17qRSEonWW4HtLbtmS8He1JNPc/n3dVUm+fM6NoDXPoLP7j55G
|
||||||
|
+9zKyqGtGAWXAj1MTAgMBAAEwDQYJKoZIhvcNAQELBQADggEBACtGNdj5TEtnJBYp
|
||||||
|
+M+LhBeU3oNteldfycEm993gJp6ghWZFg23oX8fVmyEeJr/3Ca9bAgDqg0t9a0npN
|
||||||
|
+oWKEY6wVKqcHgu3gSvThF5c9KhGbeDDmlTSVVNQmXWX0K2d4lS2cwZHH8mCm2mrY
|
||||||
|
+PDqlEkSc7k4qSiqigdS8i80Yk+lDXWsm8CjsiC93qaRM7DnS0WPQR0c16S95oM6G
|
||||||
|
+VklFKUSDAuFjw9aVWA/nahOucjn0w5fVW6lyIlkBslC1ChlaDgJmvhz+Ol3iMsE0
|
||||||
|
+kAmFNu2KKPVrpMWaBID49QwQTDyhetNLaVVFM88iUdA9JDoVMEuP1mm39JqyzHTu
|
||||||
|
+uBrdP4Q=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
diff --git a/test/net/fixtures/server.key b/test/net/fixtures/server.key
|
||||||
|
index 7f2380e71e637..6a83d5bcf4a52 100644
|
||||||
|
--- a/test/net/fixtures/server.key
|
||||||
|
+++ b/test/net/fixtures/server.key
|
||||||
|
@@ -1,28 +1,27 @@
|
||||||
|
------BEGIN PRIVATE KEY-----
|
||||||
|
-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDo2pwBLisQ7EnN
|
||||||
|
-XgcTB5xwnsZ0vBPC4W/Ggv3jSOAspWjHnkLeYFRl5moUV3ow0My1ttnD0t/JJZdU
|
||||||
|
-Z8/2vl7Li+4DxeHi+ef30QxH8LjaM1qtQa3ntaJ7t78w2mD441SivDr9G3TZ3HRC
|
||||||
|
-6Sm+36y0T+sy9Abx4YxLqIv7Keexvx0B7nMP+UDc1RV52cZz0MDdy+TaGUeAxhQE
|
||||||
|
-cv2afI8RgnZJBHnM8lwxIpUTPl1Apk3gowImfVI7u+1loQ/ta7A81N5hFV7T3WgJ
|
||||||
|
-n0pXpcKpbYaSxfSk1LcTO1JjJAXizOOKPNQ1NCsQu1hy5+GNHXSMYRYgPdAcTo9u
|
||||||
|
-/f5kEE9BAgMBAAECggEBAOHkwhc7DLh8IhTDNSW26oMu5OP2WU1jmiYAigDmf+OQ
|
||||||
|
-DBgrZj+JQBci8qINQxL8XLukSZn5hvQCLc7Kbyu1/wyEEUFDxSGGwwzclodr9kho
|
||||||
|
-LX2LDASPZrOSzD2+fPi2wTKmXKuS6Uc44OjQfZkYMNkz9r4Vkm8xGgOD3VipjIYX
|
||||||
|
-QXlhhdqkXZcNABsihCV52GKkDFSVm8jv95YJc5xhoYCy/3a4/qPdF0aT2R7oYUej
|
||||||
|
-hKrxVDskyooe8Zg/JTydZNV5GQEDmW01/K3r6XGT26oPi1AqMU1gtv/jkW56CRQQ
|
||||||
|
-1got8smnqM+AV7Slf9R6DauIPdQJ2S8wsr/o8ISBsOECgYEA9YrqEP2gAYSGFXRt
|
||||||
|
-liw0WI2Ant8BqXS6yvq1jLo/qWhLw/ph4Di73OQ2mpycVTpgfGr2wFPQR1XJ+0Fd
|
||||||
|
-U+Ir/C3Q7FK4VIGHK7B0zNvZr5tEjlFfeRezo2JMVw5YWeSagIFcSwK+KqCTH9qc
|
||||||
|
-pw/Eb8nB/4XNcpTZu7Fg0Wc+ooUCgYEA8sVaicn1Wxkpb45a4qfrA6wOr5xdJ4cC
|
||||||
|
-A5qs7vjX2OdPIQOmoQhdI7bCWFXZzF33wA4YCws6j5wRaySLIJqdms8Gl9QnODy1
|
||||||
|
-ZlA5gwKToBC/jqPmWAXSKb8EH7cHilaxU9OKnQ7CfwlGLHqjMtjrhR7KHlt3CVRs
|
||||||
|
-oRmvsjZVXI0CgYAmPedslAO6mMhFSSfULrhMXmV82OCqYrrA6EEkVNGbcdnzAOkD
|
||||||
|
-gfKIWabDd8bFY10po4Mguy0CHzNhBXIioWQWV5BlbhC1YKMLw+S9DzSdLAKGY9gJ
|
||||||
|
-xQ4+UQ3wtRQ/k+IYR413RUsW2oFvgZ3KSyNeAb9MK6uuv84VdG/OzVSs/QKBgQDn
|
||||||
|
-kap//l2EbObiWyaERunckdVcW0lcN+KK75J/TGwPoOwQsLvTpPe65kxRGGrtDsEQ
|
||||||
|
-uCDk/+v3KkZPLgdrrTAih9FhJ+PVN8tMcb+6IM4SA4fFFr/UPJEwct0LJ3oQ0grJ
|
||||||
|
-y+HPWFHb/Uurh7t99/4H98uR02sjQh1wOeEmm78mzQKBgQDm+LzGH0se6CXQ6cdZ
|
||||||
|
-g1JRZeXkDEsrW3hfAsW62xJQmXcWxBoblP9OamMY+A06rM5og3JbDk5Zm6JsOaA8
|
||||||
|
-wS2gw4ilp46jors4eQey8ux7kB9LzdBoDBBElnsbjLO8oBNZlVcYXg+6BOl/CUi7
|
||||||
|
-2whRF0FEjKA8ehrNhAq+VFfFNw==
|
||||||
|
------END PRIVATE KEY-----
|
||||||
|
+-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
+MIIEowIBAAKCAQEAsPnoGUOnrpiSqt4XynxA+HRP7S+BSObI6qJ7fQAVSPtRkqso
|
||||||
|
+tWxQYLEYzNEx5ZSHTGypibVsJylvCfuToDTfMul8b/CZjP2Ob0LdpYrNH6l5hvFE
|
||||||
|
+89FU1nZQF15oVLOpUgA7wGiHuEVawrGfey92UE68mOyUVXGweJIVDdxqdMoPvNNU
|
||||||
|
+l86BU02vlBiESxOuox+dWmuVV7vfYZ79Toh/LUK43YvJh+rhv4nKuF7iHjVjBd9s
|
||||||
|
+B6iDjj70HFldzOQ9r8SRI+9NirupPTkF5AKNe6kUhKJ1luB7S27ZkvB3tSTT3P59
|
||||||
|
+3VVJvnzOjaA1z6Cz+4+eRvcysqhrRgFlwI9TEwIDAQABAoIBAEEYiyDP29vCzx/+
|
||||||
|
+dS3LqnI5BjUuJhXUnc6AWX/PCgVAO+8A+gZRgvct7PtZb0sM6P9ZcLrweomlGezI
|
||||||
|
+FrL0/6xQaa8bBr/ve/a8155OgcjFo6fZEw3Dz7ra5fbSiPmu4/b/kvrg+Br1l77J
|
||||||
|
+aun6uUAs1f5B9wW+vbR7tzbT/mxaUeDiBzKpe15GwcvbJtdIVMa2YErtRjc1/5B2
|
||||||
|
+BGVXyvlJv0SIlcIEMsHgnAFOp1ZgQ08aDzvilLq8XVMOahAhP1O2A3X8hKdXPyrx
|
||||||
|
+IVWE9bS9ptTo+eF6eNl+d7htpKGEZHUxinoQpWEBTv+iOoHsVunkEJ3vjLP3lyI/
|
||||||
|
+fY0NQ1ECgYEA3RBXAjgvIys2gfU3keImF8e/TprLge1I2vbWmV2j6rZCg5r/AS0u
|
||||||
|
+pii5CvJ5/T5vfJPNgPBy8B/yRDs+6PJO1GmnlhOkG9JAIPkv0RBZvR0PMBtbp6nT
|
||||||
|
+Y3yo1lwamBVBfY6rc0sLTzosZh2aGoLzrHNMQFMGaauORzBFpY5lU50CgYEAzPHl
|
||||||
|
+u5DI6Xgep1vr8QvCUuEesCOgJg8Yh1UqVoY/SmQh6MYAv1I9bLGwrb3WW/7kqIoD
|
||||||
|
+fj0aQV5buVZI2loMomtU9KY5SFIsPV+JuUpy7/+VE01ZQM5FdY8wiYCQiVZYju9X
|
||||||
|
+Wz5LxMNoz+gT7pwlLCsC4N+R8aoBk404aF1gum8CgYAJ7VTq7Zj4TFV7Soa/T1eE
|
||||||
|
+k9y8a+kdoYk3BASpCHJ29M5R2KEA7YV9wrBklHTz8VzSTFTbKHEQ5W5csAhoL5Fo
|
||||||
|
+qoHzFFi3Qx7MHESQb9qHyolHEMNx6QdsHUn7rlEnaTTyrXh3ifQtD6C0yTmFXUIS
|
||||||
|
+CW9wKApOrnyKJ9nI0HcuZQKBgQCMtoV6e9VGX4AEfpuHvAAnMYQFgeBiYTkBKltQ
|
||||||
|
+XwozhH63uMMomUmtSG87Sz1TmrXadjAhy8gsG6I0pWaN7QgBuFnzQ/HOkwTm+qKw
|
||||||
|
+AsrZt4zeXNwsH7QXHEJCFnCmqw9QzEoZTrNtHJHpNboBuVnYcoueZEJrP8OnUG3r
|
||||||
|
+UjmopwKBgAqB2KYYMUqAOvYcBnEfLDmyZv9BTVNHbR2lKkMYqv5LlvDaBxVfilE0
|
||||||
|
+2riO4p6BaAdvzXjKeRrGNEKoHNBpOSfYCOM16NjL8hIZB1CaV3WbT5oY+jp7Mzd5
|
||||||
|
+7d56RZOE+ERK2uz/7JX9VSsM/LbH9pJibd4e8mikDS9ntciqOH/3
|
||||||
|
+-----END RSA PRIVATE KEY-----
|
@ -31,18 +31,11 @@ addFilter(r'^ruby-libs\.\w+: W: crypto-policy-non-compliance-openssl /usr/lib(64
|
|||||||
# https://bugs.ruby-lang.org/issues/17944
|
# https://bugs.ruby-lang.org/issues/17944
|
||||||
addFilter(r'^ruby-libs\.\w+: W: binary-or-shlib-calls-gethostbyname /usr/lib(64)?/ruby/socket.so$')
|
addFilter(r'^ruby-libs\.\w+: W: binary-or-shlib-calls-gethostbyname /usr/lib(64)?/ruby/socket.so$')
|
||||||
|
|
||||||
# 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-library-without-dependency-information /usr/lib(64)?/ruby/enc/gb2312.so$')
|
|
||||||
|
|
||||||
# These are Ruby plugins, where Ruby always load glibc prior the library.
|
|
||||||
addFilter(r'^ruby-libs\.\w+: W: library-not-linked-against-libc /usr/lib(64)?/ruby/.*.so$')
|
|
||||||
|
|
||||||
# Rake ships some examples.
|
# Rake ships some examples.
|
||||||
addFilter(r'^rubygem-rake.noarch: W: devel-file-in-non-devel-package /usr/share/gems/gems/rake-[\d\.]+/doc/example/\w+.c$')
|
addFilter(r'^rubygem-rake.noarch: W: devel-file-in-non-devel-package /usr/share/gems/gems/rake-[\d\.]+/doc/example/\w+.c$')
|
||||||
|
|
||||||
# Some executables don't have their manual pages. Is it worth of use help2man?
|
# Some executables don't have their manual pages. Is it worth of use help2man?
|
||||||
addFilter(r'^.+: W: no-manual-page-for-binary (bundler|gem|rbs|rdbg|rdoc|ruby-mri|typeprof)$')
|
addFilter(r'^.+: W: no-manual-page-for-binary (bundler|gem|racc|rbs|rdbg|rdoc|ruby-mri|syntax_suggest|typeprof)$')
|
||||||
|
|
||||||
# Default gems does not come with any documentation.
|
# Default gems does not come with any documentation.
|
||||||
addFilter(r'^rubygem-(bigdecimal|io-console|json|psych)\.\w+: W: no-documentation$')
|
addFilter(r'^rubygem-(bigdecimal|io-console|json|psych)\.\w+: W: no-documentation$')
|
||||||
@ -50,3 +43,19 @@ addFilter(r'^rubygem-(bigdecimal|io-console|json|psych)\.\w+: W: no-documentatio
|
|||||||
# rubygems-devel ships only RPM macros and generators. Their placement is given
|
# rubygems-devel ships only RPM macros and generators. Their placement is given
|
||||||
# by RPM and can't be modified.
|
# by RPM and can't be modified.
|
||||||
addFilter(r'rubygems-devel.noarch: W: only-non-binary-in-usr-lib$')
|
addFilter(r'rubygems-devel.noarch: W: only-non-binary-in-usr-lib$')
|
||||||
|
|
||||||
|
# Ignore some spelling false positives.
|
||||||
|
# Ignore spelling of technical terms
|
||||||
|
addFilter(r'^ruby-default-gems.noarch: E: spelling-error \(\'gemspec\'')
|
||||||
|
addFilter(r'^ruby-libs.x86_64: E: spelling-error \(\'libruby\'')
|
||||||
|
addFilter(r'^rubygem-test-unit.noarch: E: spelling-error \(\'xUnit\'')
|
||||||
|
addFilter(r'^rubygem-psych.x86_64: E: spelling-error \(\'libyaml\'')
|
||||||
|
addFilter(r'^rubygem-io-console.x86_64: E: spelling-error \(\'readline\'')
|
||||||
|
# `pyaml` is part of URL
|
||||||
|
addFilter(r'^rubygem-psych.x86_64: E: spelling-error \(\'pyyaml\'')
|
||||||
|
# `de-` is actually prefix
|
||||||
|
addFilter(r'^rubygem-psych.x86_64: E: spelling-error \(\'de\'')
|
||||||
|
|
||||||
|
# It does not seemt to be worth of changing rubygems to archful package due to
|
||||||
|
# single directory, unless it causes some real troubles.
|
||||||
|
addFilter(r'^rubygems.noarch: E: noarch-with-lib64$')
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (ruby-3.2.2.tar.xz) = a29f24cd80f563f6368952d06d6273f7241a409fa9ab2f60e03dde2ac58ca06bee1750715b6134caebf4c061d3503446dc37a6059e19860bb0010eef34951935
|
SHA512 (ruby-3.3.0.tar.xz) = 7959c5753bfa0bfc4d6d74060869aabbe9815c1c97930659da11b917ee0803ddbbd80e869e00c48b8694b4ba48709c3b6493fd045568e36e902616c35ababf01
|
||||||
|
Loading…
Reference in New Issue
Block a user