From 81c83d9ee6b0b0b12bbb540f9fe3ea12e3fff760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Fri, 16 Sep 2022 17:05:59 +0200 Subject: [PATCH 01/26] Upgrade to Ruby 3.2.0 (6ad6994457). --- ruby-1.9.3-mkmf-verbose.patch | 4 +- ...0-Enable-configuration-of-archlibdir.patch | 2 +- ...ed-paths-when-empty-version-string-i.patch | 2 +- ruby-2.1.0-always-use-i386.patch | 2 +- ruby-2.1.0-custom-rubygems-location.patch | 6 +- ruby-2.3.0-ruby_version.patch | 50 +- ruby-2.7.0-Initialize-ABRT-hook.patch | 6 +- ..._bug_reporter_add-witout-raising-err.patch | 6 +- ...ery-RubyVM-FrozenCore-for-class-path.patch | 29 +- ...-extension-libraries-in-bundled-gems.patch | 338 ------------ ...ct-compaction-support-during-runtime.patch | 293 ---------- ...paction-methods-as-rb_f_notimplement.patch | 402 -------------- ...c-compaction-methods_generated-files.patch | 502 ------------------ ...0-bundle-update-bundler-test-in-ruby.patch | 31 -- ruby-irb-1.4.1-drop-rdoc-hard-dep.patch | 24 - ruby-irb-1.4.1-set-rdoc-soft-dep.patch | 41 -- ...aned-up-error-with-temporary-gemhome.patch | 22 - ruby-spec-Fix-tests-on-tzdata-2022b.patch | 40 -- ruby.spec | 160 +++--- 19 files changed, 117 insertions(+), 1843 deletions(-) delete mode 100644 ruby-3.2.0-Build-extension-libraries-in-bundled-gems.patch delete mode 100644 ruby-3.2.0-Detect-compaction-support-during-runtime.patch delete mode 100644 ruby-3.2.0-define-unsupported-gc-compaction-methods-as-rb_f_notimplement.patch delete mode 100644 ruby-3.2.0-define-unsupported-gc-compaction-methods_generated-files.patch delete mode 100644 ruby-bundler-2.4.0-bundle-update-bundler-test-in-ruby.patch delete mode 100644 ruby-irb-1.4.1-drop-rdoc-hard-dep.patch delete mode 100644 ruby-irb-1.4.1-set-rdoc-soft-dep.patch delete mode 100644 ruby-rubygems-3.3.8-Resolve-cleaned-up-error-with-temporary-gemhome.patch delete mode 100644 ruby-spec-Fix-tests-on-tzdata-2022b.patch diff --git a/ruby-1.9.3-mkmf-verbose.patch b/ruby-1.9.3-mkmf-verbose.patch index 2113bea..03128be 100644 --- a/ruby-1.9.3-mkmf-verbose.patch +++ b/ruby-1.9.3-mkmf-verbose.patch @@ -11,11 +11,11 @@ diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 682eb46..e6b1445 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb -@@ -1974,7 +1974,7 @@ def configuration(srcdir) +@@ -1971,7 +1971,7 @@ def configuration(srcdir) SHELL = /bin/sh # V=0 quiet, V=1 verbose. other values don't work. --V = 0 +-V = #{CONFIG['MKMF_VERBOSE']} +V = 1 V0 = $(V:0=) Q1 = $(V:1=) diff --git a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index f82660f..502b47a 100644 --- a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch +++ b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index d261ea57b5..3c13076b82 100644 --- a/configure.ac +++ b/configure.ac -@@ -3368,6 +3368,11 @@ AS_IF([test ${multiarch+set}], [ +@@ -3374,6 +3374,11 @@ AS_IF([test ${multiarch+set}], [ ]) archlibdir='${libdir}/${arch}' diff --git a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index 041f475..6399a52 100644 --- a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac index c42436c23d..d261ea57b5 100644 --- a/configure.ac +++ b/configure.ac -@@ -4026,7 +4026,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -4105,7 +4105,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index dffeb91..72ebb7e 100644 --- a/ruby-2.1.0-always-use-i386.patch +++ b/ruby-2.1.0-always-use-i386.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index 3c13076b82..93af30321d 100644 --- a/configure.ac +++ b/configure.ac -@@ -4090,6 +4090,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -4169,6 +4169,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 diff --git a/ruby-2.1.0-custom-rubygems-location.patch b/ruby-2.1.0-custom-rubygems-location.patch index fdf0dfe..193df45 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac index 93af30321d..bc13397e0e 100644 --- a/configure.ac +++ b/configure.ac -@@ -4062,6 +4062,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -4141,6 +4141,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='' -@@ -4086,6 +4090,7 @@ AC_SUBST(sitearchdir)dnl +@@ -4165,6 +4169,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl @@ -75,7 +75,7 @@ index e9110a17ca..76a1f0a315 100755 mandir = CONFIG["mandir", true] docdir = CONFIG["docdir", true] enable_shared = CONFIG["ENABLE_SHARED"] == 'yes' -@@ -590,7 +591,16 @@ def stub +@@ -595,7 +596,16 @@ def stub install?(:local, :comm, :lib) do prepare "library scripts", rubylibdir noinst = %w[*.txt *.rdoc *.gemspec] diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index 1f42472..4d3dccb 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -12,15 +12,15 @@ ruby_version_dir_name now specifies custom version string for versioned directories, e.g. instead of default X.Y.Z, you can specify whatever string. --- - configure.ac | 64 ++++++++++++++++++++++++--------------------- + configure.ac | 66 ++++++++++++++++++++++++--------------------- template/ruby.pc.in | 1 + - 2 files changed, 35 insertions(+), 30 deletions(-) + 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/configure.ac b/configure.ac index 80b137e380..63cd3b4f8b 100644 --- a/configure.ac +++ b/configure.ac -@@ -3977,9 +3977,6 @@ AS_CASE(["$target_os"], +@@ -4055,9 +4055,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], -@@ -4002,56 +3999,62 @@ AC_ARG_WITH(ridir, +@@ -4080,57 +4077,63 @@ AC_ARG_WITH(ridir, AC_SUBST(ridir) AC_SUBST(RI_BASE_NAME) @@ -46,6 +46,7 @@ index 80b137e380..63cd3b4f8b 100644 -AS_IF([test ${RUBY_LIB_VERSION_STYLE+set}], [ - { - echo "#define RUBY_LIB_VERSION_STYLE $RUBY_LIB_VERSION_STYLE" +- echo '@%:@include "confdefs.h"' - echo '#define STRINGIZE(x) x' - test -f revision.h -o -f "${srcdir}/revision.h" || echo '#define RUBY_REVISION 0' - echo '#include "version.h"' @@ -61,6 +62,7 @@ index 80b137e380..63cd3b4f8b 100644 +RUBY_LIB_VERSION_STYLE='3 /* full */' +{ +echo "#define RUBY_LIB_VERSION_STYLE $RUBY_LIB_VERSION_STYLE" ++echo '@%:@include "confdefs.h"' +echo '#define STRINGIZE(x) x' +test -f revision.h -o -f "${srcdir}/revision.h" || echo '#define RUBY_REVISION 0' +echo '#include "version.h"' @@ -120,7 +122,7 @@ index 80b137e380..63cd3b4f8b 100644 AS_IF([test "${LOAD_RELATIVE+set}"], [ AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) -@@ -4068,6 +4071,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -4147,6 +4150,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl @@ -171,7 +173,7 @@ diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb index d4c110e..d39c9a6 100755 --- a/tool/rbinstall.rb +++ b/tool/rbinstall.rb -@@ -448,7 +448,7 @@ def CONFIG.[](name, mandatory = false) +@@ -453,7 +453,7 @@ def CONFIG.[](name, mandatory = false) install?(:doc, :rdoc) do if $rdocdir @@ -202,8 +204,8 @@ index d4ff4a262c..3f9a5bf590 100644 # specified in the environment def self.default_dir -- @default_dir ||= File.join(RbConfig::CONFIG['rubylibprefix'], 'gems', RbConfig::CONFIG['ruby_version']) -+ @default_dir ||= File.join(RbConfig::CONFIG['rubylibprefix'], 'gems', RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']) +- @default_dir ||= File.join(RbConfig::CONFIG["rubylibprefix"], "gems", RbConfig::CONFIG["ruby_version"]) ++ @default_dir ||= File.join(RbConfig::CONFIG["rubylibprefix"], "gems", RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"]) end ## @@ -211,18 +213,18 @@ index d4ff4a262c..3f9a5bf590 100644 gem_dir = File.join(Gem.user_home, ".gem") gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir) parts = [gem_dir, ruby_engine] -- parts << RbConfig::CONFIG['ruby_version'] unless RbConfig::CONFIG['ruby_version'].empty? -+ ruby_version_dir_name = RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] +- parts << RbConfig::CONFIG["ruby_version"] unless RbConfig::CONFIG["ruby_version"].empty? ++ ruby_version_dir_name = RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"] + parts << ruby_version_dir_name unless ruby_version_dir_name.empty? File.join parts end @@ -234,7 +235,7 @@ def self.vendor_dir # :nodoc: - return nil unless RbConfig::CONFIG.key? 'vendordir' + return nil unless RbConfig::CONFIG.key? "vendordir" - File.join RbConfig::CONFIG['vendordir'], 'gems', -- RbConfig::CONFIG['ruby_version'] -+ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + File.join RbConfig::CONFIG["vendordir"], "gems", +- RbConfig::CONFIG["ruby_version"] ++ RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"] end ## @@ -230,22 +232,22 @@ diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index b25068405d..e9fef4a311 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb -@@ -1410,7 +1410,8 @@ def test_self_use_paths +@@ -1394,7 +1394,8 @@ def test_self_use_paths def test_self_user_dir - parts = [@userhome, '.gem', Gem.ruby_engine] -- parts << RbConfig::CONFIG['ruby_version'] unless RbConfig::CONFIG['ruby_version'].empty? -+ ruby_version_dir_name = RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + parts = [@userhome, ".gem", Gem.ruby_engine] +- parts << RbConfig::CONFIG["ruby_version"] unless RbConfig::CONFIG["ruby_version"].empty? ++ ruby_version_dir_name = RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"] + parts << ruby_version_dir_name unless ruby_version_dir_name.empty? FileUtils.mkdir_p File.join(parts) -@@ -1486,7 +1487,7 @@ def test_self_vendor_dir - vendordir(File.join(@tempdir, 'vendor')) do +@@ -1470,7 +1471,7 @@ def test_self_vendor_dir + vendordir(File.join(@tempdir, "vendor")) do expected = - File.join RbConfig::CONFIG['vendordir'], 'gems', -- RbConfig::CONFIG['ruby_version'] -+ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + File.join RbConfig::CONFIG["vendordir"], "gems", +- RbConfig::CONFIG["ruby_version"] ++ RbConfig::CONFIG["ruby_version_dir_name"] || RbConfig::CONFIG["ruby_version"] assert_equal expected, Gem.vendor_dir end @@ -267,7 +269,7 @@ diff --git a/configure.ac b/configure.ac index a00f2b6776..999e2d6d5d 100644 --- a/configure.ac +++ b/configure.ac -@@ -108,7 +108,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"` +@@ -123,7 +123,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) diff --git a/ruby-2.7.0-Initialize-ABRT-hook.patch b/ruby-2.7.0-Initialize-ABRT-hook.patch index fc2bd08..b37c992 100644 --- a/ruby-2.7.0-Initialize-ABRT-hook.patch +++ b/ruby-2.7.0-Initialize-ABRT-hook.patch @@ -43,9 +43,9 @@ diff --git a/common.mk b/common.mk index b2e5b2b6d0..f39f81da5c 100644 --- a/common.mk +++ b/common.mk -@@ -82,7 +82,8 @@ ENC_MK = enc.mk +@@ -84,7 +84,8 @@ ENC_MK = enc.mk MAKE_ENC = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \ - RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(mflags) + RUBY="$(BOOTSTRAPRUBY)" MINIRUBY="$(BOOTSTRAPRUBY)" $(mflags) -COMMONOBJS = array.$(OBJEXT) \ +COMMONOBJS = abrt.$(OBJEXT) \ @@ -57,7 +57,7 @@ diff --git a/ruby.c b/ruby.c index 60c57d6259..1eec16f2c8 100644 --- a/ruby.c +++ b/ruby.c -@@ -1611,10 +1611,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) +@@ -1524,10 +1524,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) void Init_builtin_features(void); diff --git a/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch b/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch index 5c7afe8..90dd4f1 100644 --- a/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch +++ b/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch @@ -20,10 +20,10 @@ diff --git a/test/-ext-/bug_reporter/test_bug_reporter.rb b/test/-ext-/bug_repor index 628fcd0340..2c677cc8a7 100644 --- a/test/-ext-/bug_reporter/test_bug_reporter.rb +++ b/test/-ext-/bug_reporter/test_bug_reporter.rb -@@ -22,7 +22,7 @@ def test_bug_reporter_add - args = ["--disable-gems", "-r-test-/bug_reporter", +@@ -28,7 +28,7 @@ def test_bug_reporter_add "-C", tmpdir] - stdin = "register_sample_bug_reporter(12345); Process.kill :SEGV, $$" + 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 diff --git a/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch b/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch index 973fe72..582bb5d 100644 --- a/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch +++ b/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch @@ -21,23 +21,20 @@ diff --git a/vm.c b/vm.c index 8ce8b279d4..3d189fa63a 100644 --- a/vm.c +++ b/vm.c -@@ -479,7 +479,15 @@ rb_dtrace_setup(rb_execution_context_t *ec, VALUE klass, ID id, +@@ -581,7 +581,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. +- 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) { --- -2.34.1 - ++ */ ++ 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) { diff --git a/ruby-3.2.0-Build-extension-libraries-in-bundled-gems.patch b/ruby-3.2.0-Build-extension-libraries-in-bundled-gems.patch deleted file mode 100644 index de8d4d3..0000000 --- a/ruby-3.2.0-Build-extension-libraries-in-bundled-gems.patch +++ /dev/null @@ -1,338 +0,0 @@ -From 111f8422427d78becc9183ae149b2105a16bf327 Mon Sep 17 00:00:00 2001 -From: Nobuyoshi Nakada -Date: Tue, 5 Apr 2022 23:24:00 +0900 -Subject: [PATCH 1/5] Bundled gems are expanded under `.bundle/gems` now - ---- - ext/extmk.rb | 13 +++++++------ - template/exts.mk.tmpl | 2 +- - 2 files changed, 8 insertions(+), 7 deletions(-) - -diff --git a/ext/extmk.rb b/ext/extmk.rb -index 4a087f294ac9..1da9e2704521 100755 ---- a/ext/extmk.rb -+++ b/ext/extmk.rb -@@ -146,7 +146,7 @@ def extmake(target, basedir = 'ext', maybestatic = true) - top_srcdir = $top_srcdir - topdir = $topdir - hdrdir = $hdrdir -- prefix = "../" * (target.count("/")+1) -+ prefix = "../" * (basedir.count("/")+target.count("/")+1) - $top_srcdir = relative_from(top_srcdir, prefix) - $hdrdir = relative_from(hdrdir, prefix) - $topdir = prefix + $topdir -@@ -460,10 +460,11 @@ def $mflags.defined?(var) - end unless $extstatic - - @gemname = nil --if ARGV[0] -- ext_prefix, exts = ARGV.shift.split('/', 2) -+if exts = ARGV.shift -+ ext_prefix = exts[%r[\A(?>\.bundle/)?[^/]+(?:/(?=(.+)?)|\z)]] -+ exts = $1 - $extension = [exts] if exts -- if ext_prefix == 'gems' -+ if ext_prefix.start_with?('.') - @gemname = exts - elsif exts - $static_ext.delete_if {|t, *| !File.fnmatch(t, exts)} -@@ -515,7 +516,7 @@ def $mflags.defined?(var) - exts.delete_if {|d| File.fnmatch?("-*", d)} - end - end --ext_prefix = File.basename(ext_prefix) -+ext_prefix = ext_prefix[$top_srcdir.size+1..-2] - - extend Module.new { - def timestamp_file(name, target_prefix = nil) -@@ -634,7 +635,7 @@ def initialize(src) - end - } - --Dir.chdir ".." -+Dir.chdir dir - unless $destdir.to_s.empty? - $mflags.defined?("DESTDIR") or $mflags << "DESTDIR=#{$destdir}" - end -diff --git a/template/exts.mk.tmpl b/template/exts.mk.tmpl -index 2f37f4480ac5..964939e365a1 100644 ---- a/template/exts.mk.tmpl -+++ b/template/exts.mk.tmpl -@@ -25,7 +25,7 @@ macros["old_extensions"] = [] - - contpat = /(?>(?>[^\\\n]|\\.)*\\\n)*(?>[^\\\n]|\\.)*/ - Dir.glob("{ext,.bundle/gems}/*/exts.mk") do |e| -- gem = /\Agems(?=\/)/ =~ e -+ gem = e.start_with?(".bundle/gems/") - s = File.read(e) - s.scan(/^(extensions|SUBMAKEOPTS|EXT[A-Z]+|MFLAGS|NOTE_[A-Z]+)[ \t]*=[ \t]*(#{contpat})$/o) do |n, v| - v.gsub!(/\\\n[ \t]*/, ' ') - -From 6ea34cac22131d28a9cc50e7875e854aed9bdb88 Mon Sep 17 00:00:00 2001 -From: Nobuyoshi Nakada -Date: Wed, 6 Apr 2022 20:25:53 +0900 -Subject: [PATCH 2/5] Retrieve configured gems info - ---- - template/configure-ext.mk.tmpl | 2 +- - template/exts.mk.tmpl | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/template/configure-ext.mk.tmpl b/template/configure-ext.mk.tmpl -index 6636a7759c54..8ba6b963e3ec 100644 ---- a/template/configure-ext.mk.tmpl -+++ b/template/configure-ext.mk.tmpl -@@ -27,7 +27,7 @@ SCRIPT_ARGS = <%=script_args.gsub("#", "\\#")%> - EXTMK_ARGS = $(SCRIPT_ARGS) --gnumake=$(gnumake) --extflags="$(EXTLDFLAGS)" \ - --make-flags="MINIRUBY='$(MINIRUBY)'" - --all: exts # gems -+all: exts gems - exts: - gems: - -diff --git a/template/exts.mk.tmpl b/template/exts.mk.tmpl -index 964939e365a1..e544c4c88bd7 100644 ---- a/template/exts.mk.tmpl -+++ b/template/exts.mk.tmpl -@@ -19,7 +19,7 @@ opt = OptionParser.new do |o| - o.on('--configure-exts=FILE') {|v| confexts = v} - o.order!(ARGV) - end --confexts &&= File.read(confexts).scan(/^exts: (.*\.mk)/).flatten rescue nil -+confexts &&= File.read(confexts).scan(/^(?:ext|gem)s: (.*\.mk)/).flatten rescue nil - confexts ||= [] - macros["old_extensions"] = [] - -@@ -30,7 +30,7 @@ Dir.glob("{ext,.bundle/gems}/*/exts.mk") do |e| - s.scan(/^(extensions|SUBMAKEOPTS|EXT[A-Z]+|MFLAGS|NOTE_[A-Z]+)[ \t]*=[ \t]*(#{contpat})$/o) do |n, v| - v.gsub!(/\\\n[ \t]*/, ' ') - next if v.empty? -- next if gem and n != "extensions" -+ next if n != "extensions" - n = "old_extensions" if n == "extensions" and !confexts.include?(e) - v = v.split - m = macros[n] ||= [] - -From be9d00ee7c72766551ba8c3530f1538034498a6a Mon Sep 17 00:00:00 2001 -From: Nobuyoshi Nakada -Date: Wed, 6 Apr 2022 20:28:00 +0900 -Subject: [PATCH 3/5] Move the target directory of bundled gems like as - rubygems - ---- - ext/extmk.rb | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/ext/extmk.rb b/ext/extmk.rb -index 1da9e2704521..a440af27fc5d 100755 ---- a/ext/extmk.rb -+++ b/ext/extmk.rb -@@ -2,6 +2,9 @@ - # -*- mode: ruby; coding: us-ascii -*- - # frozen_string_literal: false - -+module Gem; end # only needs Gem::Platform -+require 'rubygems/platform' -+ - # :stopdoc: - $extension = nil - $extstatic = nil -@@ -535,11 +538,12 @@ def create_makefile(*args, &block) - super(*args) do |conf| - conf.find do |s| - s.sub!(/^(TARGET_SO_DIR *= *)\$\(RUBYARCHDIR\)/) { -- "TARGET_GEM_DIR = $(extout)/gems/$(arch)/#{@gemname}\n"\ -+ "TARGET_GEM_DIR = $(topdir)/.bundle/extensions/$(gem_platform)/$(ruby_version)/#{@gemname}\n"\ - "#{$1}$(TARGET_GEM_DIR)$(target_prefix)" - } - end - conf.any? {|s| /^TARGET *= *\S/ =~ s} and conf << %{ -+gem_platform = #{Gem::Platform.local} - - # default target - all: - -From c4daf8e445925695c34bab8bf5135dcd1e8575a3 Mon Sep 17 00:00:00 2001 -From: Nobuyoshi Nakada -Date: Wed, 6 Apr 2022 22:57:01 +0900 -Subject: [PATCH 4/5] Obey spec file locations to rubygems - ---- - common.mk | 3 ++- - defs/gmake.mk | 2 +- - tool/gem-unpack.rb | 5 +++-- - 3 files changed, 6 insertions(+), 4 deletions(-) - -diff --git a/common.mk b/common.mk -index 7c552cba1e04..b4adb2729c0e 100644 ---- a/common.mk -+++ b/common.mk -@@ -1359,10 +1359,11 @@ extract-gems$(gnumake:yes=-nongnumake): PHONY - $(Q) $(RUNRUBY) -C "$(srcdir)" \ - -Itool -rgem-unpack -answ \ - -e 'BEGIN {FileUtils.mkdir_p(d = ".bundle/gems")}' \ -+ -e 'BEGIN {FileUtils.mkdir_p(s = ".bundle/specifications")}' \ - -e 'gem, ver = *$$F' \ - -e 'next if !ver or /^#/=~gem' \ - -e 'g = "#{gem}-#{ver}"' \ -- -e 'File.directory?("#{d}/#{g}") or Gem.unpack("gems/#{g}.gem", d)' \ -+ -e 'File.directory?("#{d}/#{g}") or Gem.unpack("gems/#{g}.gem", d, s)' \ - gems/bundled_gems - - update-bundled_gems: PHONY -diff --git a/defs/gmake.mk b/defs/gmake.mk -index a625379a6804..27e3e21cc4d6 100644 ---- a/defs/gmake.mk -+++ b/defs/gmake.mk -@@ -290,7 +290,7 @@ extract-gems: | $(patsubst %,.bundle/gems/%,$(bundled-gems)) - $(ECHO) Extracting bundle gem $*... - $(Q) $(BASERUBY) -C "$(srcdir)" \ - -Itool -rgem-unpack \ -- -e 'Gem.unpack("gems/$(@F).gem", ".bundle/gems")' -+ -e 'Gem.unpack("gems/$(@F).gem", ".bundle/gems", ".bundle/specifications")' - - $(srcdir)/.bundle/gems: - $(MAKEDIRS) $@ -diff --git a/tool/gem-unpack.rb b/tool/gem-unpack.rb -index cb05719463f2..fe10b0e420fa 100644 ---- a/tool/gem-unpack.rb -+++ b/tool/gem-unpack.rb -@@ -5,13 +5,14 @@ - # This library is used by "make extract-gems" to - # unpack bundled gem files. - --def Gem.unpack(file, dir = nil) -+def Gem.unpack(file, dir = nil, spec_dir = nil) - pkg = Gem::Package.new(file) - spec = pkg.spec - target = spec.full_name - target = File.join(dir, target) if dir - pkg.extract_files target -- spec_file = File.join(target, "#{spec.name}-#{spec.version}.gemspec") -+ FileUtils.mkdir_p(spec_dir ||= target) -+ spec_file = File.join(spec_dir, "#{spec.name}-#{spec.version}.gemspec") - open(spec_file, 'wb') do |f| - f.print spec.to_ruby - end - -From 3de652d8198be9cd2998c095903889a80e738275 Mon Sep 17 00:00:00 2001 -From: Nobuyoshi Nakada -Date: Thu, 7 Apr 2022 01:44:43 +0900 -Subject: [PATCH 5/5] Install built gem extension binaries - ---- - tool/rbinstall.rb | 56 ++++++++++++++--------------------------------- - 1 file changed, 16 insertions(+), 40 deletions(-) - -diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb -index 9d9b672be472..624961b4eee6 100755 ---- a/tool/rbinstall.rb -+++ b/tool/rbinstall.rb -@@ -858,6 +858,9 @@ class UnpackedInstaller < GemInstaller - def write_cache_file - end - -+ def build_extensions -+ end -+ - def shebang(bin_file_name) - path = File.join(gem_dir, spec.bindir, bin_file_name) - first_line = File.open(path, "rb") {|file| file.gets} -@@ -940,13 +943,12 @@ def ensure_writable_dir(dir) - install_default_gem('ext', srcdir, bindir) - end - --def load_gemspec(file, expanded = false) -+def load_gemspec(file, base = nil) - file = File.realpath(file) - code = File.read(file, encoding: "utf-8:-") - code.gsub!(/(?:`git[^\`]*`|%x\[git[^\]]*\])\.split\([^\)]*\)/m) do - files = [] -- if expanded -- base = File.dirname(file) -+ if base - Dir.glob("**/*", File::FNM_DOTMATCH, base: base) do |n| - case File.basename(n); when ".", ".."; next; end - next if File.directory?(File.join(base, n)) -@@ -959,7 +961,7 @@ def load_gemspec(file, expanded = false) - unless Gem::Specification === spec - raise TypeError, "[#{file}] isn't a Gem::Specification (#{spec.class} instead)." - end -- spec.loaded_from = file -+ spec.loaded_from = base ? File.join(base, File.basename(file)) : file - spec.files.reject! {|n| n.end_with?(".gemspec") or n.start_with?(".git")} - - spec -@@ -1014,20 +1016,6 @@ def install_default_gem(dir, srcdir, bindir) - end - - install?(:ext, :comm, :gem, :'bundled-gems') do -- if CONFIG['CROSS_COMPILING'] == 'yes' -- # The following hacky steps set "$ruby = BASERUBY" in tool/fake.rb -- $hdrdir = '' -- $extmk = nil -- $ruby = nil # ... -- ruby_path = $ruby + " -I#{Dir.pwd}" # $baseruby + " -I#{Dir.pwd}" -- else -- # ruby_path = File.expand_path(with_destdir(File.join(bindir, ruby_install_name))) -- ENV['RUBYLIB'] = nil -- ENV['RUBYOPT'] = nil -- ruby_path = File.expand_path(with_destdir(File.join(bindir, ruby_install_name))) + " --disable=gems -I#{with_destdir(archlibdir)}" -- end -- Gem.instance_variable_set(:@ruby, ruby_path) if Gem.ruby != ruby_path -- - gem_dir = Gem.default_dir - install_dir = with_destdir(gem_dir) - prepare "bundled gems", gem_dir -@@ -1047,40 +1035,28 @@ def install_default_gem(dir, srcdir, bindir) - :wrappers => true, - :format_executable => true, - } -- gem_ext_dir = "#$extout/gems/#{CONFIG['arch']}" -- extensions_dir = with_destdir(Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir) -+ -+ extensions_dir = Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir -+ specifications_dir = File.join(gem_dir, "specifications") -+ build_dir = Gem::StubSpecification.gemspec_stub("", ".bundle", ".bundle").extensions_dir - - File.foreach("#{srcdir}/gems/bundled_gems") do |name| - next if /^\s*(?:#|$)/ =~ name - next unless /^(\S+)\s+(\S+).*/ =~ name - gem_name = "#$1-#$2" -- path = "#{srcdir}/.bundle/gems/#{gem_name}/#{gem_name}.gemspec" -- if File.exist?(path) -- spec = load_gemspec(path) -- else -- path = "#{srcdir}/.bundle/gems/#{gem_name}/#$1.gemspec" -- next unless File.exist?(path) -- spec = load_gemspec(path, true) -- end -+ path = "#{srcdir}/.bundle/specifications/#{gem_name}.gemspec" -+ next unless File.exist?(path) -+ spec = load_gemspec(path, "#{srcdir}/.bundle/gems/#{gem_name}") - next unless spec.platform == Gem::Platform::RUBY - next unless spec.full_name == gem_name -- if !spec.extensions.empty? && CONFIG["EXTSTATIC"] == "static" -- puts "skip installation of #{spec.name} #{spec.version}; bundled gem with an extension library is not supported on --with-static-linked-ext" -- next -- end - spec.extension_dir = "#{extensions_dir}/#{spec.full_name}" -- if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}") -- spec.extensions[0] ||= "-" -- end - package = RbInstall::DirPackage.new spec - ins = RbInstall::UnpackedInstaller.new(package, options) - puts "#{INDENT}#{spec.name} #{spec.version}" - ins.install -- unless $dryrun -- File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec")) -- end -- unless spec.extensions.empty? -- install_recursive(ext, spec.extension_dir) -+ install_recursive("#{build_dir}/#{gem_name}", "#{extensions_dir}/#{gem_name}") do |src, dest| -+ # puts "#{INDENT} #{dest[extensions_dir.size+gem_name.size+2..-1]}" -+ install src, dest, :mode => (File.executable?(src) ? $prog_mode : $data_mode) - end - installed_gems[spec.full_name] = true - end diff --git a/ruby-3.2.0-Detect-compaction-support-during-runtime.patch b/ruby-3.2.0-Detect-compaction-support-during-runtime.patch deleted file mode 100644 index fd8162f..0000000 --- a/ruby-3.2.0-Detect-compaction-support-during-runtime.patch +++ /dev/null @@ -1,293 +0,0 @@ -From 4d9cc9afa47981520d991d19fd78b322f1ba9f2a Mon Sep 17 00:00:00 2001 -From: Jarek Prokop -Date: Wed, 22 Jun 2022 01:03:49 +0200 -Subject: [PATCH] Detect compaction support during runtime. - -The patch is created by backporting 3 commits from -the upstream Ruby master branch in the chronological order below. - -https://github.com/ruby/ruby/commit/52d42e702375446746164a0251e1a10bce813b78 -https://github.com/ruby/ruby/commit/79eaaf2d0b641710613f16525e4b4c439dfe854e -https://github.com/ruby/ruby/commit/2c190863239bee3f54cfb74b16bb6ea4cae6ed20 - -== How to create this patch == - -Download Ruby source code. -``` -$ git clone https://github.com/ruby/ruby.git -$ cd ruby -``` - -First create a commit squashed from the 3 commits above. -Checkout the second commmit above, and create a temporary branch. -``` -$ git checkout 79eaaf2d0b641710613f16525e4b4c439dfe854e -$ git checkout -b wip/detect-compaction-runtime-tmp -``` - -Cherry pick the third commit on the second commit. -``` -$ git cherry-pick 2c190863239bee3f54cfb74b16bb6ea4cae6ed20 -``` - -Squash the last 3 commits on the branch. -``` -$ git rebase -i 2223eb082afa6d05321b69df783d4133b9aacba6 -``` - -Then checkout Ruby 3.1.2 branch. -Create a new branch. -Merge the Fedora Ruby's -ruby-3.2.0-define-unsupported-gc-compaction-methods-as-rb_f_notimplement.patch. -``` -$ git checkout v3_1_2 -$ git checkout -b wip/detect-compaction-runtime -$ patch -p1 < -~/fed/ruby/ruby-3.2.0-define-unsupported-gc-compaction-methods-as-rb_f_notimplement.patch -$ git add gc.c gc.rb test/ruby/test_gc_compact.rb -$ git commit -``` - -Merge the squashed one commit on the -`wip/detect-compaction-runtime-tmp` branch -into the `wip/detect-compaction-runtime` branch. -``` -$ git cherry-pick -``` - -Fix conflicts seeing the difference by `git show ` -on another terminal. -``` -$ vi gc.c -$ git add gc.c -$ git commit -``` - -== Notes for the patch == - -``` -+# define GC_COMPACTION_SUPPORTED (GC_CAN_COMPILE_COMPACTION && USE_MMAP_ALIGNED_ALLOC) -``` - -We use the USE_MMAP_ALIGNED_ALLOC instead of HEAP_PAGE_ALLOC_USE_MMAP on -the line above. Because while the Ruby on the master branch replaced the -USE_MMAP_ALIGNED_ALLOC with HEAP_PAGE_ALLOC_USE_MMAP, Ruby 3.1.2 doesn't. -See . - - -``` -+ rb_define_singleton_method(rb_mGC, "verify_compaction_references", gc_verify_compaction_references, -1); -``` - -We added the line in the case that GC_COMPACTION_SUPPORTED is true. -Because while the Ruby on the master branch defines the -GC.verify_compaction_references in the gc.rb in -the case that GC_COMPACTION_SUPPORTED is true, Ruby 3.1.2 -doesn't define it in the gc.rb. -See . - - -``` -+ OPT(GC_COMPACTION_SUPPORTED); -``` - -We added the line to expose the C macro to Ruby level. -In Ruby the macro existance can then be checked like so: -```Ruby -GC::OPTS.include?("GC_COMPACTION_SUPPORTED") -``` -It will return `true` if the GC_COMPACTION_SUPPORTED evaluates to `true` on the -C level, `false` otherwise. -See - -== Original commit messages == - -This is a combination of 3 commits. -This is the 1st commit message: -~~~ -Rename GC_COMPACTION_SUPPORTED - -Naming this macro GC_COMPACTION_SUPPORTED is misleading because it -only checks whether compaction is supported at compile time. - -[Bug #18829] -~~~ - -This is the commit message #2: -~~~ -Include runtime checks for compaction support - -Commit 0c36ba53192c5a0d245c9b626e4346a32d7d144e changed GC compaction -methods to not be implemented when not supported. However, that commit -only does compile time checks (which currently only checks for WASM), -but there are additional compaction support checks during run time. - -This commit changes it so that GC compaction methods aren't defined -during run time if the platform does not support GC compaction. - -[Bug #18829] -~~~ - -This is the commit message #3: -~~~ -Suppress code unused unless GC_CAN_COMPILE_COMPACTION -~~~ ---- - gc.c | 63 +++++++++++++++++++++++++++++++++++++++++------------------- - 1 file changed, 43 insertions(+), 20 deletions(-) - -diff --git a/gc.c b/gc.c -index 1c35856c44..bff0666a17 100644 ---- a/gc.c -+++ b/gc.c -@@ -4980,6 +4980,23 @@ gc_unprotect_pages(rb_objspace_t *objspace, rb_heap_t *heap) - static void gc_update_references(rb_objspace_t * objspace); - static void invalidate_moved_page(rb_objspace_t *objspace, struct heap_page *page); - -+#ifndef GC_CAN_COMPILE_COMPACTION -+#if defined(__wasi__) /* WebAssembly doesn't support signals */ -+# define GC_CAN_COMPILE_COMPACTION 0 -+#else -+# define GC_CAN_COMPILE_COMPACTION 1 -+#endif -+#endif -+ -+#if defined(__MINGW32__) || defined(_WIN32) -+# define GC_COMPACTION_SUPPORTED 1 -+#else -+/* If not MinGW, Windows, or does not have mmap, we cannot use mprotect for -+ * the read barrier, so we must disable compaction. */ -+# define GC_COMPACTION_SUPPORTED (GC_CAN_COMPILE_COMPACTION && USE_MMAP_ALIGNED_ALLOC) -+#endif -+ -+#if GC_CAN_COMPILE_COMPACTION - static void - read_barrier_handler(uintptr_t address) - { -@@ -5000,6 +5017,7 @@ read_barrier_handler(uintptr_t address) - } - RB_VM_LOCK_LEAVE(); - } -+#endif - - #if defined(_WIN32) - static LPTOP_LEVEL_EXCEPTION_FILTER old_handler; -@@ -9250,13 +9268,7 @@ gc_start_internal(rb_execution_context_t *ec, VALUE self, VALUE full_mark, VALUE - - /* For now, compact implies full mark / sweep, so ignore other flags */ - if (RTEST(compact)) { -- /* If not MinGW, Windows, or does not have mmap, we cannot use mprotect for -- * the read barrier, so we must disable compaction. */ --#if !defined(__MINGW32__) && !defined(_WIN32) -- if (!USE_MMAP_ALIGNED_ALLOC) { -- rb_raise(rb_eNotImpError, "Compaction isn't available on this platform"); -- } --#endif -+ GC_ASSERT(GC_COMPACTION_SUPPORTED); - - reason |= GPR_FLAG_COMPACT; - } -@@ -9421,7 +9433,7 @@ gc_move(rb_objspace_t *objspace, VALUE scan, VALUE free, size_t slot_size) - return (VALUE)src; - } - --#if GC_COMPACTION_SUPPORTED -+#if GC_CAN_COMPILE_COMPACTION - static int - compare_free_slots(const void *left, const void *right, void *dummy) - { -@@ -10149,7 +10161,7 @@ gc_update_references(rb_objspace_t *objspace) - gc_update_table_refs(objspace, finalizer_table); - } - --#if GC_COMPACTION_SUPPORTED -+#if GC_CAN_COMPILE_COMPACTION - /* - * call-seq: - * GC.latest_compact_info -> {:considered=>{:T_CLASS=>11}, :moved=>{:T_CLASS=>11}} -@@ -10190,7 +10202,7 @@ gc_compact_stats(VALUE self) - # define gc_compact_stats rb_f_notimplement - #endif - --#if GC_COMPACTION_SUPPORTED -+#if GC_CAN_COMPILE_COMPACTION - static void - root_obj_check_moved_i(const char *category, VALUE obj, void *data) - { -@@ -10269,7 +10281,7 @@ gc_compact(VALUE self) - # define gc_compact rb_f_notimplement - #endif - --#if GC_COMPACTION_SUPPORTED -+#if GC_CAN_COMPILE_COMPACTION - /* - * call-seq: - * GC.verify_compaction_references(toward: nil, double_heap: false) -> hash -@@ -10800,7 +10812,7 @@ gc_disable(rb_execution_context_t *ec, VALUE _) - return rb_gc_disable(); - } - --#if GC_COMPACTION_SUPPORTED -+#if GC_CAN_COMPILE_COMPACTION - /* - * call-seq: - * GC.auto_compact = flag -@@ -10814,8 +10826,7 @@ gc_disable(rb_execution_context_t *ec, VALUE _) - static VALUE - gc_set_auto_compact(VALUE _, VALUE v) - { -- /* If not MinGW, Windows, or does not have mmap, we cannot use mprotect for -- * the read barrier, so we must disable automatic compaction. */ -+ GC_ASSERT(GC_COMPACTION_SUPPORTED); - - ruby_enable_autocompact = RTEST(v); - return v; -@@ -10824,7 +10835,8 @@ gc_set_auto_compact(VALUE _, VALUE v) - # define gc_set_auto_compact rb_f_notimplement - #endif - --#if GC_COMPACTION_SUPPORTED -+ -+#if GC_CAN_COMPILE_COMPACTION - /* - * call-seq: - * GC.auto_compact -> true or false -@@ -13696,11 +13708,21 @@ Init_GC(void) - rb_define_singleton_method(rb_mGC, "malloc_allocated_size", gc_malloc_allocated_size, 0); - rb_define_singleton_method(rb_mGC, "malloc_allocations", gc_malloc_allocations, 0); - #endif -- rb_define_singleton_method(rb_mGC, "compact", gc_compact, 0); -- rb_define_singleton_method(rb_mGC, "auto_compact", gc_get_auto_compact, 0); -- rb_define_singleton_method(rb_mGC, "auto_compact=", gc_set_auto_compact, 1); -- rb_define_singleton_method(rb_mGC, "latest_compact_info", gc_compact_stats, 0); -- rb_define_singleton_method(rb_mGC, "verify_compaction_references", gc_verify_compaction_references, -1); -+ if (GC_COMPACTION_SUPPORTED) { -+ rb_define_singleton_method(rb_mGC, "compact", gc_compact, 0); -+ rb_define_singleton_method(rb_mGC, "auto_compact", gc_get_auto_compact, 0); -+ rb_define_singleton_method(rb_mGC, "auto_compact=", gc_set_auto_compact, 1); -+ rb_define_singleton_method(rb_mGC, "latest_compact_info", gc_compact_stats, 0); -+ rb_define_singleton_method(rb_mGC, "verify_compaction_references", gc_verify_compaction_references, -1); -+ } -+ else { -+ rb_define_singleton_method(rb_mGC, "compact", rb_f_notimplement, 0); -+ rb_define_singleton_method(rb_mGC, "auto_compact", rb_f_notimplement, 0); -+ rb_define_singleton_method(rb_mGC, "auto_compact=", rb_f_notimplement, 1); -+ rb_define_singleton_method(rb_mGC, "latest_compact_info", rb_f_notimplement, 0); -+ /* When !GC_COMPACTION_SUPPORTED, this method is not defined in gc.rb */ -+ rb_define_singleton_method(rb_mGC, "verify_compaction_references", rb_f_notimplement, -1); -+ } - - #if GC_DEBUG_STRESS_TO_CLASS - rb_define_singleton_method(rb_mGC, "add_stress_to_class", rb_gcdebug_add_stress_to_class, -1); -@@ -13724,6 +13746,7 @@ Init_GC(void) - OPT(MALLOC_ALLOCATED_SIZE); - OPT(MALLOC_ALLOCATED_SIZE_CHECK); - OPT(GC_PROFILE_DETAIL_MEMORY); -+ OPT(GC_COMPACTION_SUPPORTED); - #undef OPT - OBJ_FREEZE(opts); - } --- -2.36.1 - diff --git a/ruby-3.2.0-define-unsupported-gc-compaction-methods-as-rb_f_notimplement.patch b/ruby-3.2.0-define-unsupported-gc-compaction-methods-as-rb_f_notimplement.patch deleted file mode 100644 index 1e34def..0000000 --- a/ruby-3.2.0-define-unsupported-gc-compaction-methods-as-rb_f_notimplement.patch +++ /dev/null @@ -1,402 +0,0 @@ -commit 6d1ca6737f31b2e24664a093f1827dd74a121a9f -Author: Jarek Prokop -Date: Thu May 26 11:28:13 2022 +0200 - - Gc ppc64le fix - -diff --git a/gc.c b/gc.c -index ef9327df1f..1c35856c44 100644 ---- a/gc.c -+++ b/gc.c -@@ -9421,6 +9421,7 @@ gc_move(rb_objspace_t *objspace, VALUE scan, VALUE free, size_t slot_size) - return (VALUE)src; - } - -+#if GC_COMPACTION_SUPPORTED - static int - compare_free_slots(const void *left, const void *right, void *dummy) - { -@@ -9468,6 +9469,7 @@ gc_sort_heap_by_empty_slots(rb_objspace_t *objspace) - free(page_list); - } - } -+#endif - - static void - gc_ref_update_array(rb_objspace_t * objspace, VALUE v) -@@ -10147,8 +10149,21 @@ gc_update_references(rb_objspace_t *objspace) - gc_update_table_refs(objspace, finalizer_table); - } - -+#if GC_COMPACTION_SUPPORTED -+/* -+ * call-seq: -+ * GC.latest_compact_info -> {:considered=>{:T_CLASS=>11}, :moved=>{:T_CLASS=>11}} -+ * -+ * Returns information about object moved in the most recent GC compaction. -+ * -+ * The returned hash has two keys :considered and :moved. The hash for -+ * :considered lists the number of objects that were considered for movement -+ * by the compactor, and the :moved hash lists the number of objects that -+ * were actually moved. Some objects can't be moved (maybe they were pinned) -+ * so these numbers can be used to calculate compaction efficiency. -+ */ - static VALUE --gc_compact_stats(rb_execution_context_t *ec, VALUE self) -+gc_compact_stats(VALUE self) - { - size_t i; - rb_objspace_t *objspace = &rb_objspace; -@@ -10171,7 +10186,11 @@ gc_compact_stats(rb_execution_context_t *ec, VALUE self) - - return h; - } -+#else -+# define gc_compact_stats rb_f_notimplement -+#endif - -+#if GC_COMPACTION_SUPPORTED - static void - root_obj_check_moved_i(const char *category, VALUE obj, void *data) - { -@@ -10221,22 +10240,78 @@ heap_check_moved_i(void *vstart, void *vend, size_t stride, void *data) - return 0; - } - -+/* -+ * call-seq: -+ * GC.compact -+ * -+ * This function compacts objects together in Ruby's heap. It eliminates -+ * unused space (or fragmentation) in the heap by moving objects in to that -+ * unused space. This function returns a hash which contains statistics about -+ * which objects were moved. See `GC.latest_gc_info` for details about -+ * compaction statistics. -+ * -+ * This method is implementation specific and not expected to be implemented -+ * in any implementation besides MRI. -+ * -+ * To test whether GC compaction is supported, use the idiom: -+ * -+ * GC.respond_to?(:compact) -+ */ - static VALUE --gc_compact(rb_execution_context_t *ec, VALUE self) -+gc_compact(VALUE self) - { - /* Run GC with compaction enabled */ -- gc_start_internal(ec, self, Qtrue, Qtrue, Qtrue, Qtrue); -+ gc_start_internal(NULL, self, Qtrue, Qtrue, Qtrue, Qtrue); - -- return gc_compact_stats(ec, self); -+ return gc_compact_stats(self); - } -+#else -+# define gc_compact rb_f_notimplement -+#endif - -+#if GC_COMPACTION_SUPPORTED -+/* -+ * call-seq: -+ * GC.verify_compaction_references(toward: nil, double_heap: false) -> hash -+ * -+ * Verify compaction reference consistency. -+ * -+ * This method is implementation specific. During compaction, objects that -+ * were moved are replaced with T_MOVED objects. No object should have a -+ * reference to a T_MOVED object after compaction. -+ * -+ * This function doubles the heap to ensure room to move all objects, -+ * compacts the heap to make sure everything moves, updates all references, -+ * then performs a full GC. If any object contains a reference to a T_MOVED -+ * object, that object should be pushed on the mark stack, and will -+ * make a SEGV. -+ */ - static VALUE --gc_verify_compaction_references(rb_execution_context_t *ec, VALUE self, VALUE double_heap, VALUE toward_empty) -+gc_verify_compaction_references(int argc, VALUE *argv, VALUE self) - { - rb_objspace_t *objspace = &rb_objspace; -+ VALUE kwargs, double_heap = Qfalse, toward_empty = Qfalse; -+ static ID id_toward, id_double_heap, id_empty; -+ -+ if (!id_toward) { -+ id_toward = rb_intern("toward"); -+ id_double_heap = rb_intern("double_heap"); -+ id_empty = rb_intern("empty"); -+ } -+ -+ rb_scan_args(argc, argv, ":", &kwargs); -+ if (!NIL_P(kwargs)) { -+ if (rb_hash_has_key(kwargs, ID2SYM(id_toward))) { -+ VALUE toward = rb_hash_aref(kwargs, ID2SYM(id_toward)); -+ toward_empty = (toward == ID2SYM(id_empty)) ? Qtrue : Qfalse; -+ } -+ if (rb_hash_has_key(kwargs, ID2SYM(id_double_heap))) { -+ double_heap = rb_hash_aref(kwargs, ID2SYM(id_double_heap)); -+ } -+ } - - /* Clear the heap. */ -- gc_start_internal(ec, self, Qtrue, Qtrue, Qtrue, Qfalse); -+ gc_start_internal(NULL, self, Qtrue, Qtrue, Qtrue, Qfalse); - - RB_VM_LOCK_ENTER(); - { -@@ -10256,13 +10331,16 @@ gc_verify_compaction_references(rb_execution_context_t *ec, VALUE self, VALUE do - } - RB_VM_LOCK_LEAVE(); - -- gc_start_internal(ec, self, Qtrue, Qtrue, Qtrue, Qtrue); -+ gc_start_internal(NULL, self, Qtrue, Qtrue, Qtrue, Qtrue); - - objspace_reachable_objects_from_root(objspace, root_obj_check_moved_i, NULL); - objspace_each_objects(objspace, heap_check_moved_i, NULL, TRUE); - -- return gc_compact_stats(ec, self); -+ return gc_compact_stats(self); - } -+#else -+# define gc_verify_compaction_references rb_f_notimplement -+#endif - - VALUE - rb_gc_start(void) -@@ -10722,26 +10800,45 @@ gc_disable(rb_execution_context_t *ec, VALUE _) - return rb_gc_disable(); - } - -+#if GC_COMPACTION_SUPPORTED -+/* -+ * call-seq: -+ * GC.auto_compact = flag -+ * -+ * Updates automatic compaction mode. -+ * -+ * When enabled, the compactor will execute on every major collection. -+ * -+ * Enabling compaction will degrade performance on major collections. -+ */ - static VALUE --gc_set_auto_compact(rb_execution_context_t *ec, VALUE _, VALUE v) -+gc_set_auto_compact(VALUE _, VALUE v) - { - /* If not MinGW, Windows, or does not have mmap, we cannot use mprotect for - * the read barrier, so we must disable automatic compaction. */ --#if !defined(__MINGW32__) && !defined(_WIN32) -- if (!USE_MMAP_ALIGNED_ALLOC) { -- rb_raise(rb_eNotImpError, "Automatic compaction isn't available on this platform"); -- } --#endif - - ruby_enable_autocompact = RTEST(v); - return v; - } -+#else -+# define gc_set_auto_compact rb_f_notimplement -+#endif - -+#if GC_COMPACTION_SUPPORTED -+/* -+ * call-seq: -+ * GC.auto_compact -> true or false -+ * -+ * Returns whether or not automatic compaction has been enabled. -+ */ - static VALUE --gc_get_auto_compact(rb_execution_context_t *ec, VALUE _) -+gc_get_auto_compact(VALUE _) - { - return RBOOL(ruby_enable_autocompact); - } -+#else -+# define gc_get_auto_compact rb_f_notimplement -+#endif - - static int - get_envparam_size(const char *name, size_t *default_value, size_t lower_bound) -@@ -13599,6 +13696,11 @@ Init_GC(void) - rb_define_singleton_method(rb_mGC, "malloc_allocated_size", gc_malloc_allocated_size, 0); - rb_define_singleton_method(rb_mGC, "malloc_allocations", gc_malloc_allocations, 0); - #endif -+ rb_define_singleton_method(rb_mGC, "compact", gc_compact, 0); -+ rb_define_singleton_method(rb_mGC, "auto_compact", gc_get_auto_compact, 0); -+ rb_define_singleton_method(rb_mGC, "auto_compact=", gc_set_auto_compact, 1); -+ rb_define_singleton_method(rb_mGC, "latest_compact_info", gc_compact_stats, 0); -+ rb_define_singleton_method(rb_mGC, "verify_compaction_references", gc_verify_compaction_references, -1); - - #if GC_DEBUG_STRESS_TO_CLASS - rb_define_singleton_method(rb_mGC, "add_stress_to_class", rb_gcdebug_add_stress_to_class, -1); -diff --git a/test/ruby/test_gc_compact.rb b/test/ruby/test_gc_compact.rb -index 42ad028530..411d5eab69 100644 ---- a/test/ruby/test_gc_compact.rb -+++ b/test/ruby/test_gc_compact.rb -@@ -9,14 +9,7 @@ - end - - class TestGCCompact < Test::Unit::TestCase -- module SupportsCompact -- def setup -- skip "autocompact not supported on this platform" unless supports_auto_compact? -- super -- end -- -- private -- -+ module CompactionSupportInspector - def supports_auto_compact? - return true unless defined?(Etc::SC_PAGE_SIZE) - -@@ -30,10 +23,19 @@ def supports_auto_compact? - end - end - -- include SupportsCompact -+ module OmitUnlessCompactSupported -+ include CompactionSupportInspector -+ -+ def setup -+ omit "autocompact not supported on this platform" unless supports_auto_compact? -+ super -+ end -+ end -+ -+ include OmitUnlessCompactSupported - - class AutoCompact < Test::Unit::TestCase -- include SupportsCompact -+ include OmitUnlessCompactSupported - - def test_enable_autocompact - before = GC.auto_compact -@@ -87,13 +89,39 @@ def test_implicit_compaction_does_something - end - end - -- def os_page_size -- return true unless defined?(Etc::SC_PAGE_SIZE) -+ class CompactMethodsNotImplemented < Test::Unit::TestCase -+ include CompactionSupportInspector -+ -+ def assert_not_implemented(method, *args) -+ omit "autocompact is supported on this platform" if supports_auto_compact? -+ -+ assert_raise(NotImplementedError) { GC.send(method, *args) } -+ refute(GC.respond_to?(method), "GC.#{method} should be defined as rb_f_notimplement") -+ end -+ -+ def test_gc_compact_not_implemented -+ assert_not_implemented(:compact) -+ end -+ -+ def test_gc_auto_compact_get_not_implemented -+ assert_not_implemented(:auto_compact) -+ end -+ -+ def test_gc_auto_compact_set_not_implemented -+ assert_not_implemented(:auto_compact=, true) -+ end -+ -+ def test_gc_latest_compact_info_not_implemented -+ assert_not_implemented(:latest_compact_info) -+ end -+ -+ def test_gc_verify_compaction_references_not_implemented -+ assert_not_implemented(:verify_compaction_references) -+ end - end - -- def setup -- skip "autocompact not supported on this platform" unless supports_auto_compact? -- super -+ def os_page_size -+ return true unless defined?(Etc::SC_PAGE_SIZE) - end - - def test_gc_compact_stats -diff --git a/gc.rb b/gc.rb -index 72637f3796..9265dd7b57 100644 ---- a/gc.rb -+++ b/gc.rb -@@ -38,27 +38,6 @@ def garbage_collect full_mark: true, immediate_mark: true, immediate_sweep: true - Primitive.gc_start_internal full_mark, immediate_mark, immediate_sweep, false - end - -- # call-seq: -- # GC.auto_compact -> true or false -- # -- # Returns whether or not automatic compaction has been enabled. -- # -- def self.auto_compact -- Primitive.gc_get_auto_compact -- end -- -- # call-seq: -- # GC.auto_compact = flag -- # -- # Updates automatic compaction mode. -- # -- # When enabled, the compactor will execute on every major collection. -- # -- # Enabling compaction will degrade performance on major collections. -- def self.auto_compact=(flag) -- Primitive.gc_set_auto_compact(flag) -- end -- - # call-seq: - # GC.enable -> true or false - # -@@ -210,53 +189,6 @@ def self.latest_gc_info hash_or_key = nil - Primitive.gc_latest_gc_info hash_or_key - end - -- # call-seq: -- # GC.latest_compact_info -> {:considered=>{:T_CLASS=>11}, :moved=>{:T_CLASS=>11}} -- # -- # Returns information about object moved in the most recent GC compaction. -- # -- # The returned hash has two keys :considered and :moved. The hash for -- # :considered lists the number of objects that were considered for movement -- # by the compactor, and the :moved hash lists the number of objects that -- # were actually moved. Some objects can't be moved (maybe they were pinned) -- # so these numbers can be used to calculate compaction efficiency. -- def self.latest_compact_info -- Primitive.gc_compact_stats -- end -- -- # call-seq: -- # GC.compact -- # -- # This function compacts objects together in Ruby's heap. It eliminates -- # unused space (or fragmentation) in the heap by moving objects in to that -- # unused space. This function returns a hash which contains statistics about -- # which objects were moved. See `GC.latest_gc_info` for details about -- # compaction statistics. -- # -- # This method is implementation specific and not expected to be implemented -- # in any implementation besides MRI. -- def self.compact -- Primitive.gc_compact -- end -- -- # call-seq: -- # GC.verify_compaction_references(toward: nil, double_heap: false) -> hash -- # -- # Verify compaction reference consistency. -- # -- # This method is implementation specific. During compaction, objects that -- # were moved are replaced with T_MOVED objects. No object should have a -- # reference to a T_MOVED object after compaction. -- # -- # This function doubles the heap to ensure room to move all objects, -- # compacts the heap to make sure everything moves, updates all references, -- # then performs a full GC. If any object contains a reference to a T_MOVED -- # object, that object should be pushed on the mark stack, and will -- # make a SEGV. -- def self.verify_compaction_references(toward: nil, double_heap: false) -- Primitive.gc_verify_compaction_references(double_heap, toward == :empty) -- end -- - # call-seq: - # GC.using_rvargc? -> true or false - # diff --git a/ruby-3.2.0-define-unsupported-gc-compaction-methods_generated-files.patch b/ruby-3.2.0-define-unsupported-gc-compaction-methods_generated-files.patch deleted file mode 100644 index 240cc9c..0000000 --- a/ruby-3.2.0-define-unsupported-gc-compaction-methods_generated-files.patch +++ /dev/null @@ -1,502 +0,0 @@ ---- ruby-3.1.2/gc.rbinc 2022-04-12 13:11:17.000000000 +0200 -+++ ruby/gc.rbinc 2022-06-08 12:49:16.288024971 +0200 -@@ -9,27 +9,27 @@ - #include "builtin.h" /* for RB_BUILTIN_FUNCTION */ - struct rb_execution_context_struct; /* in vm_core.h */ - --static VALUE builtin_inline_class_277(struct rb_execution_context_struct *ec, const VALUE self) -+static VALUE builtin_inline_class_209(struct rb_execution_context_struct *ec, const VALUE self) - { - MAYBE_UNUSED(const VALUE) flag = rb_vm_lvar(ec, -3); --#line 277 "gc.rb" -+#line 209 "gc.rb" - - rb_objspace.flags.measure_gc = RTEST(flag) ? TRUE : FALSE; - return flag; - #line 20 "gc.rbinc" - } - --static VALUE builtin_inline_class_289(struct rb_execution_context_struct *ec, const VALUE self) -+static VALUE builtin_inline_class_221(struct rb_execution_context_struct *ec, const VALUE self) - { --#line 289 "gc.rb" -+#line 221 "gc.rb" - return - RBOOL(rb_objspace.flags.measure_gc); - #line 28 "gc.rbinc" - } - --static VALUE builtin_inline_class_299(struct rb_execution_context_struct *ec, const VALUE self) -+static VALUE builtin_inline_class_231(struct rb_execution_context_struct *ec, const VALUE self) - { --#line 299 "gc.rb" -+#line 231 "gc.rb" - return - ULL2NUM(rb_objspace.profile.total_time_ns); - #line 36 "gc.rbinc" -@@ -52,31 +52,6 @@ - } - - static void --mjit_compile_invokebuiltin_for_gc_get_auto_compact(FILE *f, long index, unsigned stack_size, bool inlinable_p) --{ -- fprintf(f, " VALUE self = GET_SELF();\n"); -- fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n"); -- fprintf(f, " func f = (func)%"PRIuVALUE"; /* == gc_get_auto_compact */\n", (VALUE)gc_get_auto_compact); -- fprintf(f, " val = f(ec, self);\n"); --} -- --static void --mjit_compile_invokebuiltin_for_gc_set_auto_compact(FILE *f, long index, unsigned stack_size, bool inlinable_p) --{ -- fprintf(f, " VALUE self = GET_SELF();\n"); -- fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE);\n"); -- if (index == -1) { -- fprintf(f, " const VALUE *argv = &stack[%d];\n", stack_size - 1); -- } -- else { -- fprintf(f, " const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n"); -- fprintf(f, " const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index); -- } -- fprintf(f, " func f = (func)%"PRIuVALUE"; /* == gc_set_auto_compact */\n", (VALUE)gc_set_auto_compact); -- fprintf(f, " val = f(ec, self, argv[0]);\n"); --} -- --static void - mjit_compile_invokebuiltin_for_gc_enable(FILE *f, long index, unsigned stack_size, bool inlinable_p) - { - fprintf(f, " VALUE self = GET_SELF();\n"); -@@ -161,40 +136,6 @@ - } - - static void --mjit_compile_invokebuiltin_for_gc_compact_stats(FILE *f, long index, unsigned stack_size, bool inlinable_p) --{ -- fprintf(f, " VALUE self = GET_SELF();\n"); -- fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n"); -- fprintf(f, " func f = (func)%"PRIuVALUE"; /* == gc_compact_stats */\n", (VALUE)gc_compact_stats); -- fprintf(f, " val = f(ec, self);\n"); --} -- --static void --mjit_compile_invokebuiltin_for_gc_compact(FILE *f, long index, unsigned stack_size, bool inlinable_p) --{ -- fprintf(f, " VALUE self = GET_SELF();\n"); -- fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n"); -- fprintf(f, " func f = (func)%"PRIuVALUE"; /* == gc_compact */\n", (VALUE)gc_compact); -- fprintf(f, " val = f(ec, self);\n"); --} -- --static void --mjit_compile_invokebuiltin_for_gc_verify_compaction_references(FILE *f, long index, unsigned stack_size, bool inlinable_p) --{ -- fprintf(f, " VALUE self = GET_SELF();\n"); -- fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE, VALUE);\n"); -- if (index == -1) { -- fprintf(f, " const VALUE *argv = &stack[%d];\n", stack_size - 2); -- } -- else { -- fprintf(f, " const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n"); -- fprintf(f, " const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index); -- } -- fprintf(f, " func f = (func)%"PRIuVALUE"; /* == gc_verify_compaction_references */\n", (VALUE)gc_verify_compaction_references); -- fprintf(f, " val = f(ec, self, argv[0], argv[1]);\n"); --} -- --static void - mjit_compile_invokebuiltin_for__bi0(FILE *f, long index, unsigned stack_size, bool inlinable_p) - { - fprintf(f, " VALUE self = GET_SELF();\n"); -@@ -202,7 +143,7 @@ - if (inlinable_p) { - fprintf(f, "%s", " {\n"); - fprintf(f, "%s", " MAYBE_UNUSED(const VALUE) flag = rb_vm_lvar(ec, -3);\n"); -- fprintf(f, "%s", "#line 277 \"gc.rb\"\n"); -+ fprintf(f, "%s", "#line 209 \"gc.rb\"\n"); - fprintf(f, "%s", " \n"); - fprintf(f, "%s", " rb_objspace.flags.measure_gc = RTEST(flag) ? TRUE : FALSE;\n"); - fprintf(f, "%s", " return flag;\n"); -@@ -211,7 +152,7 @@ - fprintf(f, "%s", " \n"); - return; - } -- fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_277 */\n", (VALUE)builtin_inline_class_277); -+ fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_209 */\n", (VALUE)builtin_inline_class_209); - fprintf(f, " val = f(ec, self);\n"); - } - -@@ -222,7 +163,7 @@ - fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n"); - if (inlinable_p) { - fprintf(f, "%s", " {\n"); -- fprintf(f, "%s", "#line 289 \"gc.rb\"\n"); -+ fprintf(f, "%s", "#line 221 \"gc.rb\"\n"); - fprintf(f, "%s", " return \n"); - fprintf(f, "%s", " RBOOL(rb_objspace.flags.measure_gc);\n"); - fprintf(f, "%s", "#line 52 \"gc.rbinc\"\n"); -@@ -230,7 +171,7 @@ - fprintf(f, "%s", " \n"); - return; - } -- fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_289 */\n", (VALUE)builtin_inline_class_289); -+ fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_221 */\n", (VALUE)builtin_inline_class_221); - fprintf(f, " val = f(ec, self);\n"); - } - -@@ -241,7 +182,7 @@ - fprintf(f, " typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n"); - if (inlinable_p) { - fprintf(f, "%s", " {\n"); -- fprintf(f, "%s", "#line 299 \"gc.rb\"\n"); -+ fprintf(f, "%s", "#line 231 \"gc.rb\"\n"); - fprintf(f, "%s", " return \n"); - fprintf(f, "%s", " ULL2NUM(rb_objspace.profile.total_time_ns);\n"); - fprintf(f, "%s", "#line 59 \"gc.rbinc\"\n"); -@@ -249,7 +190,7 @@ - fprintf(f, "%s", " \n"); - return; - } -- fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_299 */\n", (VALUE)builtin_inline_class_299); -+ fprintf(f, " func f = (func)%"PRIuVALUE"; /* == builtin_inline_class_231 */\n", (VALUE)builtin_inline_class_231); - fprintf(f, " val = f(ec, self);\n"); - } - -@@ -258,21 +199,16 @@ - // table definition - static const struct rb_builtin_function gc_table[] = { - RB_BUILTIN_FUNCTION(0, gc_start_internal, gc_start_internal, 4, mjit_compile_invokebuiltin_for_gc_start_internal), -- RB_BUILTIN_FUNCTION(1, gc_get_auto_compact, gc_get_auto_compact, 0, mjit_compile_invokebuiltin_for_gc_get_auto_compact), -- RB_BUILTIN_FUNCTION(2, gc_set_auto_compact, gc_set_auto_compact, 1, mjit_compile_invokebuiltin_for_gc_set_auto_compact), -- RB_BUILTIN_FUNCTION(3, gc_enable, gc_enable, 0, mjit_compile_invokebuiltin_for_gc_enable), -- RB_BUILTIN_FUNCTION(4, gc_disable, gc_disable, 0, mjit_compile_invokebuiltin_for_gc_disable), -- RB_BUILTIN_FUNCTION(5, gc_stress_get, gc_stress_get, 0, mjit_compile_invokebuiltin_for_gc_stress_get), -- RB_BUILTIN_FUNCTION(6, gc_stress_set_m, gc_stress_set_m, 1, mjit_compile_invokebuiltin_for_gc_stress_set_m), -- RB_BUILTIN_FUNCTION(7, gc_count, gc_count, 0, mjit_compile_invokebuiltin_for_gc_count), -- RB_BUILTIN_FUNCTION(8, gc_stat, gc_stat, 1, mjit_compile_invokebuiltin_for_gc_stat), -- RB_BUILTIN_FUNCTION(9, gc_latest_gc_info, gc_latest_gc_info, 1, mjit_compile_invokebuiltin_for_gc_latest_gc_info), -- RB_BUILTIN_FUNCTION(10, gc_compact_stats, gc_compact_stats, 0, mjit_compile_invokebuiltin_for_gc_compact_stats), -- RB_BUILTIN_FUNCTION(11, gc_compact, gc_compact, 0, mjit_compile_invokebuiltin_for_gc_compact), -- RB_BUILTIN_FUNCTION(12, gc_verify_compaction_references, gc_verify_compaction_references, 2, mjit_compile_invokebuiltin_for_gc_verify_compaction_references), -- RB_BUILTIN_FUNCTION(13, _bi0, builtin_inline_class_277, 0, mjit_compile_invokebuiltin_for__bi0), -- RB_BUILTIN_FUNCTION(14, _bi1, builtin_inline_class_289, 0, mjit_compile_invokebuiltin_for__bi1), -- RB_BUILTIN_FUNCTION(15, _bi2, builtin_inline_class_299, 0, mjit_compile_invokebuiltin_for__bi2), -+ RB_BUILTIN_FUNCTION(1, gc_enable, gc_enable, 0, mjit_compile_invokebuiltin_for_gc_enable), -+ RB_BUILTIN_FUNCTION(2, gc_disable, gc_disable, 0, mjit_compile_invokebuiltin_for_gc_disable), -+ RB_BUILTIN_FUNCTION(3, gc_stress_get, gc_stress_get, 0, mjit_compile_invokebuiltin_for_gc_stress_get), -+ RB_BUILTIN_FUNCTION(4, gc_stress_set_m, gc_stress_set_m, 1, mjit_compile_invokebuiltin_for_gc_stress_set_m), -+ RB_BUILTIN_FUNCTION(5, gc_count, gc_count, 0, mjit_compile_invokebuiltin_for_gc_count), -+ RB_BUILTIN_FUNCTION(6, gc_stat, gc_stat, 1, mjit_compile_invokebuiltin_for_gc_stat), -+ RB_BUILTIN_FUNCTION(7, gc_latest_gc_info, gc_latest_gc_info, 1, mjit_compile_invokebuiltin_for_gc_latest_gc_info), -+ RB_BUILTIN_FUNCTION(8, _bi0, builtin_inline_class_209, 0, mjit_compile_invokebuiltin_for__bi0), -+ RB_BUILTIN_FUNCTION(9, _bi1, builtin_inline_class_221, 0, mjit_compile_invokebuiltin_for__bi1), -+ RB_BUILTIN_FUNCTION(10, _bi2, builtin_inline_class_231, 0, mjit_compile_invokebuiltin_for__bi2), - RB_BUILTIN_FUNCTION(-1, NULL, NULL, 0, 0), - }; - -@@ -282,8 +218,6 @@ - COMPILER_WARNING_ERROR(-Wincompatible-pointer-types) - #endif - if (0) rb_builtin_function_check_arity4(gc_start_internal); -- if (0) rb_builtin_function_check_arity0(gc_get_auto_compact); -- if (0) rb_builtin_function_check_arity1(gc_set_auto_compact); - if (0) rb_builtin_function_check_arity0(gc_enable); - if (0) rb_builtin_function_check_arity0(gc_disable); - if (0) rb_builtin_function_check_arity0(gc_stress_get); -@@ -291,12 +225,9 @@ - if (0) rb_builtin_function_check_arity0(gc_count); - if (0) rb_builtin_function_check_arity1(gc_stat); - if (0) rb_builtin_function_check_arity1(gc_latest_gc_info); -- if (0) rb_builtin_function_check_arity0(gc_compact_stats); -- if (0) rb_builtin_function_check_arity0(gc_compact); -- if (0) rb_builtin_function_check_arity2(gc_verify_compaction_references); -- if (0) rb_builtin_function_check_arity0(builtin_inline_class_277); -- if (0) rb_builtin_function_check_arity0(builtin_inline_class_289); -- if (0) rb_builtin_function_check_arity0(builtin_inline_class_299); -+ if (0) rb_builtin_function_check_arity0(builtin_inline_class_209); -+ if (0) rb_builtin_function_check_arity0(builtin_inline_class_221); -+ if (0) rb_builtin_function_check_arity0(builtin_inline_class_231); - COMPILER_WARNING_POP - - // load ---- ruby-3.1.2/miniprelude.c 2022-04-12 13:11:17.000000000 +0200 -+++ ruby/miniprelude.c 2022-06-08 12:49:16.377024871 +0200 -@@ -545,11 +545,10 @@ - - static const char prelude_name2[] = ""; - static const struct { -- char L0[479]; /* 1..58 */ -- char L58[508]; /* 59..204 */ -- char L204[504]; /* 205..275 */ -- char L275[490]; /* 276..306 */ -- char L306[128]; /* 307..312 */ -+ char L0[492]; /* 1..70 */ -+ char L70[468]; /* 71..197 */ -+ char L197[470]; /* 198..237 */ -+ char L237[211]; /* 238..244 */ - } prelude_code2 = { - #line 1 "gc.rb" - ""/* for gc.c */ -@@ -593,29 +592,6 @@ - " end\n" - "\n" - "\n"/* call-seq: */ --"\n"/* GC.auto_compact -> true or false */ --"\n"/* */ --"\n"/* Returns whether or not automatic compaction has been enabled. */ --"\n"/* */ --" def self.auto_compact\n" --" Primitive.gc_get_auto_compact\n" --" end\n" --"\n" --"\n"/* call-seq: */ --"\n"/* GC.auto_compact = flag */ --"\n"/* */ --"\n"/* Updates automatic compaction mode. */ --"\n"/* */ --"\n"/* When enabled, the compactor will execute on every major collection. */ --"\n"/* */ --"\n"/* Enabling compaction will degrade performance on major collections. */ --" def self.auto_compact=(flag)\n" --, --#line 59 "gc.rb" --" Primitive.gc_set_auto_compact(flag)\n" --" end\n" --"\n" --"\n"/* call-seq: */ - "\n"/* GC.enable -> true or false */ - "\n"/* */ - "\n"/* Enables garbage collection, returning +true+ if garbage */ -@@ -645,6 +621,8 @@ - "\n"/* GC.stress -> integer, true or false */ - "\n"/* */ - "\n"/* Returns current status of GC stress mode. */ -+, -+#line 71 "gc.rb" - " def self.stress\n" - " Primitive.gc_stress_get\n" - " end\n" -@@ -758,8 +736,6 @@ - "\n"/* GC.latest_gc_info(:major_by) -> :malloc */ - "\n"/* */ - "\n"/* Returns information about the most recent garbage collection. */ --, --#line 205 "gc.rb" - "\n"/* */ - "\n"/* If the optional argument, hash, is given, */ - "\n"/* it is overwritten and returned. */ -@@ -768,59 +744,14 @@ - " Primitive.gc_latest_gc_info hash_or_key\n" - " end\n" - "\n" --"\n"/* call-seq: */ --"\n"/* GC.latest_compact_info -> {:considered=>{:T_CLASS=>11}, :moved=>{:T_CLASS=>11}} */ --"\n"/* */ --"\n"/* Returns information about object moved in the most recent GC compaction. */ --"\n"/* */ --"\n"/* The returned hash has two keys :considered and :moved. The hash for */ --"\n"/* :considered lists the number of objects that were considered for movement */ --"\n"/* by the compactor, and the :moved hash lists the number of objects that */ --"\n"/* were actually moved. Some objects can't be moved (maybe they were pinned) */ --"\n"/* so these numbers can be used to calculate compaction efficiency. */ --" def self.latest_compact_info\n" --" Primitive.gc_compact_stats\n" --" end\n" --"\n" --"\n"/* call-seq: */ --"\n"/* GC.compact */ --"\n"/* */ --"\n"/* This function compacts objects together in Ruby's heap. It eliminates */ --"\n"/* unused space (or fragmentation) in the heap by moving objects in to that */ --"\n"/* unused space. This function returns a hash which contains statistics about */ --"\n"/* which objects were moved. See `GC.latest_gc_info` for details about */ --"\n"/* compaction statistics. */ --"\n"/* */ --"\n"/* This method is implementation specific and not expected to be implemented */ --"\n"/* in any implementation besides MRI. */ --" def self.compact\n" --" Primitive.gc_compact\n" --" end\n" --"\n" --"\n"/* call-seq: */ --"\n"/* GC.verify_compaction_references(toward: nil, double_heap: false) -> hash */ --"\n"/* */ --"\n"/* Verify compaction reference consistency. */ --"\n"/* */ --"\n"/* This method is implementation specific. During compaction, objects that */ --"\n"/* were moved are replaced with T_MOVED objects. No object should have a */ --"\n"/* reference to a T_MOVED object after compaction. */ --"\n"/* */ --"\n"/* This function doubles the heap to ensure room to move all objects, */ --"\n"/* compacts the heap to make sure everything moves, updates all references, */ --"\n"/* then performs a full GC. If any object contains a reference to a T_MOVED */ --"\n"/* object, that object should be pushed on the mark stack, and will */ --"\n"/* make a SEGV. */ --" def self.verify_compaction_references(toward: nil, double_heap: false)\n" --" Primitive.gc_verify_compaction_references(double_heap, toward == :empty)\n" --" end\n" --"\n" - "\n"/* call-seq: */ - "\n"/* GC.using_rvargc? -> true or false */ - "\n"/* */ - "\n"/* Returns true if using experimental feature Variable Width Allocation, false */ - "\n"/* otherwise. */ - " def self.using_rvargc?\n"/* :nodoc: */ -+, -+#line 198 "gc.rb" - " GC::INTERNAL_CONSTANTS[:SIZE_POOL_COUNT] > 1\n" - " end\n" - "\n" -@@ -831,8 +762,6 @@ - "\n"/* Enable to measure GC time. */ - "\n"/* You can get the result with GC.stat(:time). */ - "\n"/* Note that GC time measurement can cause some performance overhead. */ --, --#line 276 "gc.rb" - " def self.measure_total_time=(flag)\n" - " Primitive.cstmt! %{\n" - " rb_objspace.flags.measure_gc = RTEST(flag) ? TRUE : FALSE;\n" -@@ -863,15 +792,15 @@ - "end\n" - "\n" - "module ObjectSpace\n" --" def garbage_collect full_mark: true, immediate_mark: true, immediate_sweep: true\n" - , --#line 307 "gc.rb" -+#line 238 "gc.rb" -+" def garbage_collect full_mark: true, immediate_mark: true, immediate_sweep: true\n" - " Primitive.gc_start_internal full_mark, immediate_mark, immediate_sweep, false\n" - " end\n" - "\n" - " module_function :garbage_collect\n" - "end\n" --#line 875 "miniprelude.c" -+#line 804 "miniprelude.c" - }; - - static const char prelude_name3[] = ""; -@@ -1223,7 +1152,7 @@ - " end\n" - "\n" - "end\n" --#line 1227 "miniprelude.c" -+#line 1156 "miniprelude.c" - }; - - static const char prelude_name4[] = ""; -@@ -1354,7 +1283,7 @@ - " Primitive.io_write_nonblock(buf, exception)\n" - " end\n" - "end\n" --#line 1358 "miniprelude.c" -+#line 1287 "miniprelude.c" - }; - - static const char prelude_name5[] = ""; -@@ -1402,7 +1331,7 @@ - " alias restore load\n" - " end\n" - "end\n" --#line 1406 "miniprelude.c" -+#line 1335 "miniprelude.c" - }; - - static const char prelude_name6[] = ""; -@@ -1724,7 +1653,7 @@ - " Primitive.pack_unpack1(fmt, offset)\n" - " end\n" - "end\n" --#line 1728 "miniprelude.c" -+#line 1657 "miniprelude.c" - }; - - static const char prelude_name7[] = ""; -@@ -2111,7 +2040,7 @@ - " Primitive.tracepoint_attr_instruction_sequence\n" - " end\n" - "end\n" --#line 2115 "miniprelude.c" -+#line 2044 "miniprelude.c" - }; - - static const char prelude_name8[] = ""; -@@ -2172,7 +2101,7 @@ - " Primitive.rb_warn_m(msgs, uplevel, category)\n" - " end\n" - "end\n" --#line 2176 "miniprelude.c" -+#line 2105 "miniprelude.c" - }; - - static const char prelude_name9[] = ""; -@@ -2249,7 +2178,7 @@ - " end\n" - " end\n" - "end\n" --#line 2253 "miniprelude.c" -+#line 2182 "miniprelude.c" - }; - - static const char prelude_name10[] = ""; -@@ -2438,7 +2367,7 @@ - " end\n" - " end\n" - "end\n" --#line 2442 "miniprelude.c" -+#line 2371 "miniprelude.c" - }; - - static const char prelude_name11[] = ""; -@@ -3305,7 +3234,7 @@ - " }\n" - " end\n" - "end\n" --#line 3309 "miniprelude.c" -+#line 3238 "miniprelude.c" - }; - - static const char prelude_name12[] = ""; -@@ -3628,7 +3557,7 @@ - " Primitive.time_init_args(year, mon, mday, hour, min, sec, zone)\n" - " end\n" - "end\n" --#line 3632 "miniprelude.c" -+#line 3561 "miniprelude.c" - }; - - static const char prelude_name13[] = ""; -@@ -3661,7 +3590,7 @@ - " return 0.0\n" - " end\n" - "end\n" --#line 3665 "miniprelude.c" -+#line 3594 "miniprelude.c" - }; - - static const char prelude_name14[] = ""; -@@ -3691,7 +3620,7 @@ - "\n" - " private :pp\n" - "end\n" --#line 3695 "miniprelude.c" -+#line 3624 "miniprelude.c" - }; - - static const char prelude_name15[] = ""; -@@ -3718,7 +3647,7 @@ - "rescue LoadError\n" - " warn \"`did_you_mean' was not loaded.\"\n" - "end if defined?(DidYouMean)\n" --#line 3722 "miniprelude.c" -+#line 3651 "miniprelude.c" - }; - - static const char prelude_name16[] = ""; -@@ -4059,7 +3988,7 @@ - " end\n" - " end\n" - "end\n" --#line 4063 "miniprelude.c" -+#line 3992 "miniprelude.c" - }; - - COMPILER_WARNING_POP diff --git a/ruby-bundler-2.4.0-bundle-update-bundler-test-in-ruby.patch b/ruby-bundler-2.4.0-bundle-update-bundler-test-in-ruby.patch deleted file mode 100644 index b208537..0000000 --- a/ruby-bundler-2.4.0-bundle-update-bundler-test-in-ruby.patch +++ /dev/null @@ -1,31 +0,0 @@ -From bfa2f72cfa3bfde34049d26dcb24976316074ad7 Mon Sep 17 00:00:00 2001 -From: Jun Aruga -Date: Mon, 21 Mar 2022 15:36:51 +0100 -Subject: [PATCH] Fix a test for `bin/bundle update --bundler` to pass on - ruby/ruby. - -Consider the case that the latest Bundler version on RubyGems is higher than -the `system_bundler_version` (= `Bundler::VERSION`) in `make test-bundler` on -ruby/ruby. - -See . ---- - spec/bundler/commands/binstubs_spec.rb | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/spec/bundler/commands/binstubs_spec.rb b/spec/bundler/commands/binstubs_spec.rb -index 198226207bc..2634f43417c 100644 ---- a/spec/bundler/commands/binstubs_spec.rb -+++ b/spec/bundler/commands/binstubs_spec.rb -@@ -226,7 +226,10 @@ - - it "calls through to the latest bundler version" do - sys_exec "bin/bundle update --bundler", :env => { "DEBUG" => "1" } -- expect(out).to include %(Using bundler #{system_bundler_version}\n) -+ using_bundler_line = /Using bundler ([\w\.]+)\n/.match(out) -+ expect(using_bundler_line).to_not be_nil -+ latest_version = using_bundler_line[1] -+ expect(Gem::Version.new(latest_version)).to be >= Gem::Version.new(system_bundler_version) - end - - it "calls through to the explicit bundler version" do diff --git a/ruby-irb-1.4.1-drop-rdoc-hard-dep.patch b/ruby-irb-1.4.1-drop-rdoc-hard-dep.patch deleted file mode 100644 index 711c514..0000000 --- a/ruby-irb-1.4.1-drop-rdoc-hard-dep.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 54c8df06ff9e161012f89d19a4e3aa2e0e37e1b0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?V=C3=ADt=20Ondruch?= -Date: Tue, 23 Aug 2022 10:41:28 +0200 -Subject: [PATCH] Drop hard dependency on RDoc. - -This has been introduced in 026700499dfd640b2072d7bf0370247a98d5ac40, -but it seems that this is just be mistake, otherwise the later handling -of `LoadError` would not be needed. ---- - lib/irb/input-method.rb | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/lib/irb/input-method.rb b/lib/irb/input-method.rb -index fd68239e..a8227caa 100644 ---- a/lib/irb/input-method.rb -+++ b/lib/irb/input-method.rb -@@ -14,7 +14,6 @@ - require_relative 'completion' - require 'io/console' - require 'reline' --require 'rdoc' - - module IRB - STDIN_FILE_NAME = "(line)" # :nodoc: diff --git a/ruby-irb-1.4.1-set-rdoc-soft-dep.patch b/ruby-irb-1.4.1-set-rdoc-soft-dep.patch deleted file mode 100644 index 0156fe0..0000000 --- a/ruby-irb-1.4.1-set-rdoc-soft-dep.patch +++ /dev/null @@ -1,41 +0,0 @@ -From b24852058fc87c940252c8a711c60ae2eb298082 Mon Sep 17 00:00:00 2001 -From: Jun Aruga -Date: Thu, 25 Aug 2022 20:11:34 +0200 -Subject: [PATCH] Require RDoc in `input-method.rb` again in a limited scope. - -RDoc is implemented as soft dependency in IRB. See how the rdoc is required in -the files. I reverted the commit below. - -``` -$ grep -ril rdoc lib/ -lib/irb/cmd/help.rb -lib/irb/completion.rb -lib/irb/easter-egg.rb -lib/irb/input-method.rb -``` - ---- - -Revert "Remove `require` in signal handler to avoid ThreadError" - -This reverts commit 5f749c613c895cf1b11b5e4cbd1205363bc58028. ---- - lib/irb/input-method.rb | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/lib/irb/input-method.rb b/lib/irb/input-method.rb -index a8227ca..b77fd32 100644 ---- a/lib/irb/input-method.rb -+++ b/lib/irb/input-method.rb -@@ -320,6 +320,11 @@ def auto_indent(&block) - [195, 164], # The "ä" that appears when Alt+d is pressed on xterm. - [226, 136, 130] # The "∂" that appears when Alt+d in pressed on iTerm2. - ] -+ begin -+ require 'rdoc' -+ rescue LoadError -+ return nil -+ end - - if just_cursor_moving and completion_journey_data.nil? - return nil diff --git a/ruby-rubygems-3.3.8-Resolve-cleaned-up-error-with-temporary-gemhome.patch b/ruby-rubygems-3.3.8-Resolve-cleaned-up-error-with-temporary-gemhome.patch deleted file mode 100644 index 66c3382..0000000 --- a/ruby-rubygems-3.3.8-Resolve-cleaned-up-error-with-temporary-gemhome.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 623162ad2bb3b589bddcc32616492a2bc4651726 Mon Sep 17 00:00:00 2001 -From: Hiroshi SHIBATA -Date: Tue, 22 Feb 2022 11:58:54 +0900 -Subject: [PATCH] Resolve cleaned-up error with temporary gemhome - ---- - test/rubygems/test_gem_commands_setup_command.rb | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/test/rubygems/test_gem_commands_setup_command.rb b/test/rubygems/test_gem_commands_setup_command.rb -index 5cf94a1dc99..934c76b1d1a 100644 ---- a/test/rubygems/test_gem_commands_setup_command.rb -+++ b/test/rubygems/test_gem_commands_setup_command.rb -@@ -274,6 +274,8 @@ def test_install_default_bundler_gem_with_destdir_flag - spec.executables.each do |e| - assert_path_exist File.join destdir, @gemhome.gsub(/^[a-zA-Z]:/, ''), 'gems', spec.full_name, spec.bindir, e - end -+ ensure -+ FileUtils.chmod "+w", @gemhome - end - - def test_install_default_bundler_gem_with_destdir_and_prefix_flags diff --git a/ruby-spec-Fix-tests-on-tzdata-2022b.patch b/ruby-spec-Fix-tests-on-tzdata-2022b.patch deleted file mode 100644 index 19386d9..0000000 --- a/ruby-spec-Fix-tests-on-tzdata-2022b.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7e9ec8a20b0f7469b415283d2ec0c22087f8eb2b Mon Sep 17 00:00:00 2001 -From: Jun Aruga -Date: Wed, 24 Aug 2022 12:02:56 +0200 -Subject: [PATCH] Fix tests with Europe/Amsterdam pre-1970 time on tzdata - version 2022b. - -The Time Zone Database (tzdata) changed the pre-1970 timestamps in some zones -including Europe/Amsterdam on tzdata version 2022b or later. -See . - -The tzdata RPM package maintainer on Fedora project suggested changing the Ruby -test, because the change is intentional. -See . - -We use post-1970 time test data to simplify the test. ---- - core/time/shared/local.rb | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/spec/ruby/core/time/shared/local.rb b/spec/ruby/core/time/shared/local.rb -index 43f331c4c..c4aa7a7ea 100644 ---- a/spec/ruby/core/time/shared/local.rb -+++ b/spec/ruby/core/time/shared/local.rb -@@ -8,10 +8,10 @@ describe :time_local, shared: true do - - platform_is_not :windows do - describe "timezone changes" do -- it "correctly adjusts the timezone change to 'CEST' on 'Europe/Amsterdam'" do -+ it "correctly adjusts the timezone change to 'CET' on 'Europe/Amsterdam'" do - with_timezone("Europe/Amsterdam") do -- Time.send(@method, 1940, 5, 16).to_a.should == -- [0, 40, 1, 16, 5, 1940, 4, 137, true, "CEST"] -+ Time.send(@method, 1970, 5, 16).to_a.should == -+ [0, 0, 0, 16, 5, 1970, 6, 136, false, "CET"] - end - end - end --- -2.36.1 - diff --git a/ruby.spec b/ruby.spec index 22f7e84..2058589 100644 --- a/ruby.spec +++ b/ruby.spec @@ -1,6 +1,6 @@ %global major_version 3 -%global minor_version 1 -%global teeny_version 2 +%global minor_version 2 +%global teeny_version 0 %global major_minor_version %{major_version}.%{minor_version} %global ruby_version %{major_minor_version}.%{teeny_version} @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -#%%global revision fb4df44d16 +%global revision 6ad6994457 %global ruby_archive %{name}-%{ruby_version} @@ -22,7 +22,7 @@ %endif -%global release 168 +%global release 1 %{!?release_string:%define release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} # The RubyGems library has to stay out of Ruby directory tree, since the @@ -30,35 +30,36 @@ %global rubygems_dir %{_datadir}/rubygems # Bundled libraries versions -%global rubygems_version 3.3.7 +%global rubygems_version 3.4.0.dev %global rubygems_molinillo_version 0.7.0 +%global rubygems_optparse_version 0.2.0 +%global rubygems_tsort_version 0.1.0 # Default gems. -%global bundler_version 2.3.7 +%global bundler_version 2.4.0.dev %global bundler_connection_pool_version 2.3.0 %global bundler_fileutils_version 1.4.1 -%global bundler_molinillo_version 0.7.0 -%global bundler_net_http_persistent_version 4.0.0 +%global bundler_molinillo_version 0.8.0 +%global bundler_net_http_persistent_version 4.0.1 %global bundler_thor_version 1.2.1 %global bundler_tmpdir_version 0.1.0 -# TODO: Check the version if/when available in library. %global bundler_tsort_version 0.1.1 %global bundler_uri_version 0.10.1 -%global bigdecimal_version 3.1.1 +%global bigdecimal_version 3.1.2 %global did_you_mean_version 1.6.1 %global erb_version 2.2.3 %global io_console_version 0.5.11 %global irb_version 1.4.1 -%global json_version 2.6.1 +%global json_version 2.6.2 %global openssl_version 3.0.0 -%global psych_version 4.0.3 +%global psych_version 5.0.0.dev %global racc_version 1.6.0 %global rdoc_version 6.4.0 -%global stringio_version 3.0.1 +%global stringio_version 3.0.3 # Bundled gems. -%global minitest_version 5.15.0 +%global minitest_version 5.16.3 %global power_assert_version 2.0.1 %global rake_version 13.0.6 %global test_unit_version 3.5.3 @@ -70,9 +71,9 @@ %global net_smtp_version 0.3.1 %global matrix_version 0.4.2 %global prime_version 0.1.2 -%global rbs_version 2.1.0 -%global typeprof_version 0.21.2 -%global debug_version 1.4.0 +%global rbs_version 2.6.0 +%global typeprof_version 0.21.3 +%global debug_version 1.6.2 %global tapset_libdir %(echo %{_libdir} | sed 's/64//')* @@ -162,52 +163,7 @@ Patch6: ruby-2.7.0-Initialize-ABRT-hook.patch Patch7: ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch # Avoid possible timeout errors in TestBugReporter#test_bug_reporter_add. # https://bugs.ruby-lang.org/issues/16492 -Patch19: ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch -# Fix a test for `bin/bundle update --bundler` in `make test-bundler`. -# https://bugs.ruby-lang.org/issues/18643 -# https://github.com/rubygems/rubygems/commit/bfa2f72cfa3bfde34049d26dcb24976316074ad7 -Patch20: ruby-bundler-2.4.0-bundle-update-bundler-test-in-ruby.patch -# Workaround gem binary extensions build and installation issues. -# https://bugs.ruby-lang.org/issues/18373 -# https://github.com/ruby/ruby/pull/5774 -Patch21: ruby-3.2.0-Build-extension-libraries-in-bundled-gems.patch -# If GC compaction is not supported on platform, define the -# corresponding GC methods as not implemented. -# https://bugs.ruby-lang.org/issues/18779 -# https://github.com/ruby/ruby/pull/5934 -Patch22: ruby-3.2.0-define-unsupported-gc-compaction-methods-as-rb_f_notimplement.patch -# To regenerate the patch you need to have ruby, autoconf, xz, tar and make installed: -# tar -Jxvf ./ruby-3.1.2.tar.xz -# git clone https://github.com/ruby/ruby.git -# cd ruby && git checkout v3_1_2 -# patch -p1 < ../ruby-3.2.0-define-unsupported-gc-compaction-methods-as-rb_f_notimplement.patch -# ./autogen.sh && ./configure -# make gc.rbinc miniprelude.c -# cd .. -# diff -u {ruby-3.1.2,ruby}/gc.rbinc > ruby-3.2.0-define-unsupported-gc-compaction-methods_generated-files.patch -# diff -u {ruby-3.1.2,ruby}/miniprelude.c >> ruby-3.2.0-define-unsupported-gc-compaction-methods_generated-files.patch -Patch23: ruby-3.2.0-define-unsupported-gc-compaction-methods_generated-files.patch -# Define the GC compaction support macro at run time. -# https://bugs.ruby-lang.org/issues/18829 -# https://github.com/ruby/ruby/pull/6019 -# https://github.com/ruby/ruby/commit/2c190863239bee3f54cfb74b16bb6ea4cae6ed20 -Patch24: ruby-3.2.0-Detect-compaction-support-during-runtime.patch -# RPM 4.18.0-beta1 or later versions remove the build directory automatically -# on successful build, the build then fails on removing temporary directories -# that are missing the 'w' bit. -# https://bugzilla.redhat.com/show_bug.cgi?id=2105393 -# https://github.com/rpm-software-management/rpm/pull/2080 -# https://github.com/rubygems/rubygems/pull/5372 -Patch25: ruby-rubygems-3.3.8-Resolve-cleaned-up-error-with-temporary-gemhome.patch -# Fix tests with Europe/Amsterdam pre-1970 time on tzdata version 2022b. -# https://github.com/ruby/spec/pull/939 -Patch26: ruby-spec-Fix-tests-on-tzdata-2022b.patch -# Drop hard dependency on RDoc in IRB. -# https://github.com/ruby/irb/pull/393 -Patch27: ruby-irb-1.4.1-drop-rdoc-hard-dep.patch -# Set soft dependency on RDoc in input-method.rb in IRB. -# https://github.com/ruby/irb/pull/395 -Patch28: ruby-irb-1.4.1-set-rdoc-soft-dep.patch +Patch8: ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch Requires: %{name}-libs%{?_isa} = %{version}-%{release} Suggests: rubypick @@ -674,22 +630,7 @@ rm -rf ext/fiddle/libffi* %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch19 -p1 -%patch20 -p1 - -# Once the upstream tarball contains the files on the right place, this code -# won't be necessary. This should happen at the same moment when the patch21 -# is not needed anymore. -mkdir .bundle/specifications -find .bundle/gems -name '*-[0-9]*.gemspec' -exec cp -t .bundle/specifications/ {} + -%patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 +%patch8 -p1 # Provide an example of usage of the tapset: cp -a %{SOURCE3} . @@ -906,6 +847,19 @@ checksec --file=libruby.so.%{ruby_version} | \ puts Gem::Resolver::Molinillo::VERSION\\\"\" | tail -1`" \ == '%{rubygems_molinillo_version}' ] +# OptParse. +[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ + module Gem; end; \ + require 'rubygems/optparse/lib/optparse'; \ + puts Gem::OptionParser::Version\\\"\" | tail -1`" \ + == '%{rubygems_optparse_version}' ] + +# tsort +# TODO: Provide some real version test if version is available. +make runruby TESTRUN_SCRIPT="-e \" \ + module Gem; end;\ + require 'rubygems/tsort/lib/tsort'\"" + # Check Bundler bundled dependencies versions. # connection_pool. @@ -950,6 +904,16 @@ checksec --file=libruby.so.%{ruby_version} | \ # tmpdir. # TODO: There is no version in bundled tmpdir yet. #%%{global bundler_tmpdir_version} +make runruby TESTRUN_SCRIPT="-e \" \ + module Bundler; end; \ + require 'bundler/vendor/tmpdir/lib/tmpdir' \"" + +# tsort +# TODO: Provide some real version test if version is available. +#%%{global bundler_tsort_version} +make runruby TESTRUN_SCRIPT="-e \" \ + module Bundler; end; \ + require 'bundler/vendor/tsort/lib/tsort' \"" # URI. [ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ @@ -1066,6 +1030,7 @@ mv test/fiddle/test_import.rb{,.disable} %{ruby_libdir}/ipaddr.rb %{ruby_libdir}/kconv.rb %{ruby_libdir}/logger* +%{ruby_libdir}/mjit %{ruby_libdir}/mkmf.rb %{ruby_libdir}/monitor.rb %{ruby_libdir}/mutex_m.rb @@ -1093,6 +1058,7 @@ mv test/fiddle/test_import.rb{,.disable} %{ruby_libdir}/shellwords.rb %{ruby_libdir}/singleton* %{ruby_libdir}/socket.rb +%{ruby_libdir}/syntax_suggest* %{ruby_libdir}/syslog %{ruby_libdir}/tempfile.rb %{ruby_libdir}/timeout* @@ -1248,37 +1214,37 @@ mv test/fiddle/test_import.rb{,.disable} %{gem_dir}/specifications/default/abbrev-0.1.0.gemspec %{gem_dir}/specifications/default/base64-0.1.1.gemspec %{gem_dir}/specifications/default/benchmark-0.2.0.gemspec -%{gem_dir}/specifications/default/cgi-0.3.1.gemspec +%{gem_dir}/specifications/default/cgi-0.3.2.gemspec %{gem_dir}/specifications/default/csv-3.2.2.gemspec -%{gem_dir}/specifications/default/date-3.2.2.gemspec +%{gem_dir}/specifications/default/date-3.2.3.gemspec %{gem_dir}/specifications/default/delegate-0.2.0.gemspec %{gem_dir}/specifications/default/did_you_mean-%{did_you_mean_version}.gemspec %{gem_dir}/specifications/default/digest-3.1.0.gemspec %{gem_dir}/specifications/default/drb-2.1.0.gemspec %{gem_dir}/specifications/default/english-0.7.1.gemspec %{gem_dir}/specifications/default/erb-%{erb_version}.gemspec -%{gem_dir}/specifications/default/error_highlight-0.3.0.gemspec -%{gem_dir}/specifications/default/etc-1.3.0.gemspec +%{gem_dir}/specifications/default/error_highlight-0.4.0.gemspec +%{gem_dir}/specifications/default/etc-1.4.0.gemspec %{gem_dir}/specifications/default/fcntl-1.0.1.gemspec %{gem_dir}/specifications/default/fiddle-1.1.0.gemspec %{gem_dir}/specifications/default/fileutils-1.6.0.gemspec %{gem_dir}/specifications/default/find-0.1.1.gemspec %{gem_dir}/specifications/default/forwardable-1.3.2.gemspec %{gem_dir}/specifications/default/getoptlong-0.1.1.gemspec -%{gem_dir}/specifications/default/io-nonblock-0.1.0.gemspec -%{gem_dir}/specifications/default/io-wait-0.2.1.gemspec +%{gem_dir}/specifications/default/io-nonblock-0.1.1.gemspec +%{gem_dir}/specifications/default/io-wait-0.3.0.pre.gemspec %{gem_dir}/specifications/default/ipaddr-1.2.4.gemspec -%{gem_dir}/specifications/default/logger-1.5.0.gemspec +%{gem_dir}/specifications/default/logger-1.5.1.gemspec %{gem_dir}/specifications/default/mutex_m-0.1.1.gemspec -%{gem_dir}/specifications/default/net-http-0.2.0.gemspec -%{gem_dir}/specifications/default/net-protocol-0.1.2.gemspec +%{gem_dir}/specifications/default/net-http-0.2.2.gemspec +%{gem_dir}/specifications/default/net-protocol-0.1.3.gemspec %{gem_dir}/specifications/default/nkf-0.1.1.gemspec %{gem_dir}/specifications/default/observer-0.1.1.gemspec %{gem_dir}/specifications/default/open3-0.1.1.gemspec %{gem_dir}/specifications/default/open-uri-0.2.0.gemspec %{gem_dir}/specifications/default/optparse-0.2.0.gemspec %{gem_dir}/specifications/default/openssl-%{openssl_version}.gemspec -%{gem_dir}/specifications/default/ostruct-0.5.2.gemspec +%{gem_dir}/specifications/default/ostruct-0.5.5.gemspec %{gem_dir}/specifications/default/pathname-0.2.0.gemspec %{gem_dir}/specifications/default/pp-0.3.0.gemspec %{gem_dir}/specifications/default/prettyprint-0.1.1.gemspec @@ -1286,21 +1252,22 @@ mv test/fiddle/test_import.rb{,.disable} %{gem_dir}/specifications/default/racc-%{racc_version}.gemspec %{gem_dir}/specifications/default/readline-0.0.3.gemspec %{gem_dir}/specifications/default/readline-ext-0.1.4.gemspec -%{gem_dir}/specifications/default/reline-0.3.0.gemspec +%{gem_dir}/specifications/default/reline-0.3.1.gemspec %{gem_dir}/specifications/default/resolv-0.2.1.gemspec %{gem_dir}/specifications/default/resolv-replace-0.1.0.gemspec %{gem_dir}/specifications/default/rinda-0.1.1.gemspec %{gem_dir}/specifications/default/ruby2_keywords-0.0.5.gemspec -%{gem_dir}/specifications/default/securerandom-0.1.1.gemspec -%{gem_dir}/specifications/default/set-1.0.2.gemspec +%{gem_dir}/specifications/default/securerandom-0.2.0.gemspec +%{gem_dir}/specifications/default/set-1.0.3.gemspec %{gem_dir}/specifications/default/shellwords-0.1.0.gemspec %{gem_dir}/specifications/default/singleton-0.1.1.gemspec %{gem_dir}/specifications/default/stringio-%{stringio_version}.gemspec %{gem_dir}/specifications/default/strscan-3.0.1.gemspec +%{gem_dir}/specifications/default/syntax_suggest-0.0.1.gemspec %{gem_dir}/specifications/default/syslog-0.1.0.gemspec %{gem_dir}/specifications/default/tempfile-0.1.2.gemspec %{gem_dir}/specifications/default/time-0.2.0.gemspec -%{gem_dir}/specifications/default/timeout-0.2.0.gemspec +%{gem_dir}/specifications/default/timeout-0.3.0.gemspec %{gem_dir}/specifications/default/tmpdir-0.1.2.gemspec %{gem_dir}/specifications/default/tsort-0.1.0.gemspec %{gem_dir}/specifications/default/un-0.2.0.gemspec @@ -1390,7 +1357,6 @@ mv test/fiddle/test_import.rb{,.disable} %doc %{gem_dir}/gems/debug-%{debug_version}/README.md %{gem_dir}/gems/debug-%{debug_version}/Rakefile %doc %{gem_dir}/gems/debug-%{debug_version}/TODO.md -%{gem_dir}/gems/debug-%{debug_version}/bin %{gem_dir}/gems/debug-%{debug_version}/exe %{gem_dir}/gems/debug-%{debug_version}/lib %{gem_dir}/gems/debug-%{debug_version}/misc @@ -1481,7 +1447,7 @@ mv test/fiddle/test_import.rb{,.disable} %license %{gem_dir}/gems/rbs-%{rbs_version}/BSDL %doc %{gem_dir}/gems/rbs-%{rbs_version}/CHANGELOG.md %license %{gem_dir}/gems/rbs-%{rbs_version}/COPYING -%{gem_dir}/gems/rbs-%{rbs_version}/Gemfile +%{gem_dir}/gems/rbs-%{rbs_version}/Gemfile* %doc %{gem_dir}/gems/rbs-%{rbs_version}/README.md %{gem_dir}/gems/rbs-%{rbs_version}/Rakefile %{gem_dir}/gems/rbs-%{rbs_version}/Steepfile @@ -1538,7 +1504,6 @@ mv test/fiddle/test_import.rb{,.disable} %{gem_dir}/gems/typeprof-%{typeprof_version}/lib %doc %{gem_dir}/gems/typeprof-%{typeprof_version}/tools %exclude %{gem_dir}/gems/typeprof-%{typeprof_version}/typeprof-lsp -%exclude %{gem_dir}/gems/typeprof-%{typeprof_version}/vscode %{gem_dir}/specifications/typeprof-%{typeprof_version}.gemspec %doc %{gem_dir}/gems/typeprof-%{typeprof_version}/Gemfile* %doc %{gem_dir}/gems/typeprof-%{typeprof_version}/README.md @@ -1546,6 +1511,9 @@ mv test/fiddle/test_import.rb{,.disable} %changelog +* Fri Sep 16 2022 Vít Ondruch - 3.2.0-1 +- Upgrade to Ruby 3.2.0 (6ad6994457). + * Mon Aug 29 2022 Jun Aruga - 3.1.2-168 - Make RDoc soft dependnecy in IRB. Resolves: rhbz#2119964 From 6a98c151e6205b6d5774d0436f6492d97c321eb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Fri, 16 Sep 2022 17:09:27 +0200 Subject: [PATCH 02/26] Use --enable-mkmf-verbose configuration opiton instead of patch. https://github.com/ruby/ruby/pull/5879 --- ruby-1.9.3-mkmf-verbose.patch | 25 ------------------------- ruby.spec | 4 +--- 2 files changed, 1 insertion(+), 28 deletions(-) delete mode 100644 ruby-1.9.3-mkmf-verbose.patch diff --git a/ruby-1.9.3-mkmf-verbose.patch b/ruby-1.9.3-mkmf-verbose.patch deleted file mode 100644 index 03128be..0000000 --- a/ruby-1.9.3-mkmf-verbose.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 28cc0749d6729aa2444661ee7b411e183fe220b0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?V=C3=ADt=20Ondruch?= -Date: Mon, 19 Nov 2012 15:14:51 +0100 -Subject: [PATCH] Verbose mkmf. - ---- - lib/mkmf.rb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/mkmf.rb b/lib/mkmf.rb -index 682eb46..e6b1445 100644 ---- a/lib/mkmf.rb -+++ b/lib/mkmf.rb -@@ -1971,7 +1971,7 @@ def configuration(srcdir) - SHELL = /bin/sh - - # V=0 quiet, V=1 verbose. other values don't work. --V = #{CONFIG['MKMF_VERBOSE']} -+V = 1 - V0 = $(V:0=) - Q1 = $(V:1=) - Q = $(Q1:0=@) --- -1.8.3.1 - diff --git a/ruby.spec b/ruby.spec index 2058589..f5cefbe 100644 --- a/ruby.spec +++ b/ruby.spec @@ -144,8 +144,6 @@ Patch3: 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 -# Make mkmf verbose by default -Patch5: ruby-1.9.3-mkmf-verbose.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 @@ -627,7 +625,6 @@ rm -rf ext/fiddle/libffi* %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 @@ -654,6 +651,7 @@ autoconf --with-ruby-pc='%{name}.pc' \ --with-compress-debug-sections=no \ --disable-rpath \ + --enable-mkmf-verbose \ --enable-shared \ --with-ruby-version='' \ --enable-multiarch \ From 768e5a37f81dcaecf921df93b8ddc781713f0f01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 29 Sep 2022 09:27:01 +0200 Subject: [PATCH 03/26] Re-enable package notes. The rhbz#2043092 is not resolved. Nevertheless, the generation of package notes should not break builds of rubygem- packages anymore. Nevertheless, the additional linker options will keep making issues for `gem install`ed gems. Nothing new here unfortunately. --- ruby.spec | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ruby.spec b/ruby.spec index f5cefbe..2177114 100644 --- a/ruby.spec +++ b/ruby.spec @@ -93,10 +93,6 @@ %bcond_without hardening_test %endif -# The additional linker flags break binary rubygem- packages. -# https://bugzilla.redhat.com/show_bug.cgi?id=2043092 -%undefine _package_note_flags - Summary: An interpreter of object-oriented scripting language Name: ruby Version: %{ruby_version} @@ -1512,6 +1508,9 @@ mv test/fiddle/test_import.rb{,.disable} * Fri Sep 16 2022 Vít Ondruch - 3.2.0-1 - Upgrade to Ruby 3.2.0 (6ad6994457). +* Thu Sep 29 2022 Vít Ondruch - 3.1.2-170 +- Re-enable package notes. + * Mon Aug 29 2022 Jun Aruga - 3.1.2-168 - Make RDoc soft dependnecy in IRB. Resolves: rhbz#2119964 From edfcaf8837ef9c32a46dffc3f4ed54ee153bdef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Wed, 12 Oct 2022 16:35:35 +0200 Subject: [PATCH 04/26] Upgrade to Ruby 3.2.0 (70bc8cc6c2). --- ruby.spec | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/ruby.spec b/ruby.spec index 2177114..34be4d8 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision 6ad6994457 +%global revision 70bc8cc6c2 %global ruby_archive %{name}-%{ruby_version} @@ -50,7 +50,7 @@ %global did_you_mean_version 1.6.1 %global erb_version 2.2.3 %global io_console_version 0.5.11 -%global irb_version 1.4.1 +%global irb_version 1.4.2 %global json_version 2.6.2 %global openssl_version 3.0.0 %global psych_version 5.0.0.dev @@ -62,16 +62,16 @@ %global minitest_version 5.16.3 %global power_assert_version 2.0.1 %global rake_version 13.0.6 -%global test_unit_version 3.5.3 +%global test_unit_version 3.5.5 %global rexml_version 3.2.5 %global rss_version 0.2.9 -%global net_ftp_version 0.1.3 -%global net_imap_version 0.2.3 -%global net_pop_version 0.1.1 -%global net_smtp_version 0.3.1 +%global net_ftp_version 0.2.0 +%global net_imap_version 0.3.1 +%global net_pop_version 0.1.2 +%global net_smtp_version 0.3.2 %global matrix_version 0.4.2 %global prime_version 0.1.2 -%global rbs_version 2.6.0 +%global rbs_version 2.7.0 %global typeprof_version 0.21.3 %global debug_version 1.6.2 @@ -1208,7 +1208,7 @@ mv test/fiddle/test_import.rb{,.disable} %{gem_dir}/specifications/default/abbrev-0.1.0.gemspec %{gem_dir}/specifications/default/base64-0.1.1.gemspec %{gem_dir}/specifications/default/benchmark-0.2.0.gemspec -%{gem_dir}/specifications/default/cgi-0.3.2.gemspec +%{gem_dir}/specifications/default/cgi-0.3.3.gemspec %{gem_dir}/specifications/default/csv-3.2.2.gemspec %{gem_dir}/specifications/default/date-3.2.3.gemspec %{gem_dir}/specifications/default/delegate-0.2.0.gemspec @@ -1361,7 +1361,6 @@ mv test/fiddle/test_import.rb{,.disable} %license %{gem_dir}/gems/net-ftp-%{net_ftp_version}/LICENSE.txt %doc %{gem_dir}/gems/net-ftp-%{net_ftp_version}/README.md %{gem_dir}/gems/net-ftp-%{net_ftp_version}/Rakefile -%{gem_dir}/gems/net-ftp-%{net_ftp_version}/bin %{gem_dir}/gems/net-ftp-%{net_ftp_version}/lib %{gem_dir}/specifications/net-ftp-%{net_ftp_version}.gemspec @@ -1378,7 +1377,6 @@ mv test/fiddle/test_import.rb{,.disable} %license %{gem_dir}/gems/net-pop-%{net_pop_version}/LICENSE.txt %doc %{gem_dir}/gems/net-pop-%{net_pop_version}/README.md %{gem_dir}/gems/net-pop-%{net_pop_version}/Rakefile -%{gem_dir}/gems/net-pop-%{net_pop_version}/bin %{gem_dir}/gems/net-pop-%{net_pop_version}/lib %{gem_dir}/specifications/net-pop-%{net_pop_version}.gemspec @@ -1505,8 +1503,8 @@ mv test/fiddle/test_import.rb{,.disable} %changelog -* Fri Sep 16 2022 Vít Ondruch - 3.2.0-1 -- Upgrade to Ruby 3.2.0 (6ad6994457). +* Wed Oct 12 2022 Vít Ondruch - 3.2.0-1 +- Upgrade to Ruby 3.2.0 (70bc8cc6c2). * Thu Sep 29 2022 Vít Ondruch - 3.1.2-170 - Re-enable package notes. From cbe746e311d5dbfd9c6d42fdfc4147220c0ad791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Fri, 29 Apr 2022 11:20:52 +0000 Subject: [PATCH 05/26] Out-of-source build. This should help when tinkering. Deleting one directory with build output is much easier then hunting the build output all around. This could also help with build of additional configurations, e.g. due to modified build flags. So far, go with `%{_vpath_builddir}` which is generally used for this purpose. If there is need for more build configuration, the macro can be modified or replaces. But for now, YAGNI. --- ruby.spec | 50 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/ruby.spec b/ruby.spec index 34be4d8..57eb455 100644 --- a/ruby.spec +++ b/ruby.spec @@ -631,6 +631,11 @@ cp -a %{SOURCE3} . %build autoconf +%global _configure %{_builddir}/%{buildsubdir}/configure + +mkdir -p %{_vpath_builddir} +pushd %{_vpath_builddir} + %configure \ --with-rubylibprefix='%{ruby_libdir}' \ --with-archlibdir='%{_libdir}' \ @@ -652,14 +657,16 @@ autoconf --with-ruby-version='' \ --enable-multiarch \ +popd + # V=1 in %%make_build outputs the compiler options more verbosely. # https://bugs.ruby-lang.org/issues/18756 -%make_build COPY="cp -p" +%make_build COPY="cp -p" -C %{_vpath_builddir} %install rm -rf %{buildroot} -%make_install +%make_install -C %{_vpath_builddir} # TODO: Regenerate RBS parser in lib/rbs/parser.rb @@ -825,24 +832,24 @@ rm -rf %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.github %check %if 0%{?with_hardening_test} # Check Ruby hardening. -checksec --file=libruby.so.%{ruby_version} | \ +checksec --file=%{_vpath_builddir}/libruby.so.%{ruby_version} | \ grep "Full RELRO.*Canary found.*NX enabled.*DSO.*No RPATH.*No RUNPATH.*Yes.*\d*.*\d*.*libruby.so.%{ruby_version}" %endif # Check RubyGems version. -[ "`make runruby TESTRUN_SCRIPT='bin/gem -v' | tail -1`" == '%{rubygems_version}' ] +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT='%{_builddir}/%{buildsubdir}/bin/gem -v' | tail -1`" == '%{rubygems_version}' ] # Check Rubygems bundled dependencies versions. # Molinillo. -[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ module Gem; module Resolver; end; end; \ require 'rubygems/resolver/molinillo/lib/molinillo/gem_metadata'; \ puts Gem::Resolver::Molinillo::VERSION\\\"\" | tail -1`" \ == '%{rubygems_molinillo_version}' ] # OptParse. -[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ module Gem; end; \ require 'rubygems/optparse/lib/optparse'; \ puts Gem::OptionParser::Version\\\"\" | tail -1`" \ @@ -850,28 +857,28 @@ checksec --file=libruby.so.%{ruby_version} | \ # tsort # TODO: Provide some real version test if version is available. -make runruby TESTRUN_SCRIPT="-e \" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Gem; end;\ require 'rubygems/tsort/lib/tsort'\"" # Check Bundler bundled dependencies versions. # connection_pool. -[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ module Bundler; end; \ require 'bundler/vendor/connection_pool/lib/connection_pool/version'; \ puts Bundler::ConnectionPool::VERSION\\\"\" | tail -1`" \ == '%{bundler_connection_pool_version}' ] # FileUtils. -[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ module Bundler; end; \ require 'bundler/vendor/fileutils/lib/fileutils'; \ puts Bundler::FileUtils::VERSION\\\"\" | tail -1`" \ == '%{bundler_fileutils_version}' ] # Molinillo. -[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ module Bundler; end; \ require 'bundler/vendor/molinillo/lib/molinillo/gem_metadata'; \ puts Bundler::Molinillo::VERSION\\\"\" | tail -1`" \ @@ -881,7 +888,7 @@ make runruby TESTRUN_SCRIPT="-e \" \ # Require `rubygems` to workaround the `': uninitialized # constant Gem (NameError) issue. # https://github.com/rubygems/rubygems/issues/5119 -[ "`make runruby TESTRUN_SCRIPT=\"-rrubygems -e \\\" \ +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-rrubygems -e \\\" \ module Bundler; module Persistent; module Net; module HTTP; \ end; end; end; end; \ require 'bundler/vendor/net-http-persistent/lib/net/http/persistent'; \ @@ -889,7 +896,7 @@ make runruby TESTRUN_SCRIPT="-e \" \ == '%{bundler_net_http_persistent_version}' ] # Thor. -[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ module Bundler; end; \ require 'bundler/vendor/thor/lib/thor/version'; \ puts Bundler::Thor::VERSION\\\"\" | tail -1`" \ @@ -898,19 +905,19 @@ make runruby TESTRUN_SCRIPT="-e \" \ # tmpdir. # TODO: There is no version in bundled tmpdir yet. #%%{global bundler_tmpdir_version} -make runruby TESTRUN_SCRIPT="-e \" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; end; \ require 'bundler/vendor/tmpdir/lib/tmpdir' \"" # tsort # TODO: Provide some real version test if version is available. #%%{global bundler_tsort_version} -make runruby TESTRUN_SCRIPT="-e \" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; end; \ require 'bundler/vendor/tsort/lib/tsort' \"" # URI. -[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ +[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ module Bundler; end; \ require 'bundler/vendor/uri/lib/uri/version'; \ puts Bundler::URI::VERSION\\\"\" | tail -1`" \ @@ -920,14 +927,17 @@ make runruby TESTRUN_SCRIPT="-e \" \ # test_debug(TestRubyOptions) fails due to LoadError reported in debug mode, # when abrt.rb cannot be required (seems to be easier way then customizing # the test suite). -touch abrt.rb +touch %{_vpath_builddir}/abrt.rb # Check if abrt hook is required (RubyGems are disabled by default when using # runruby, so re-enable them). -make runruby TESTRUN_SCRIPT="--enable-gems %{SOURCE13}" +make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT="--enable-gems %{SOURCE13}" # Check if systemtap is supported. -%{?with_systemtap:make runruby TESTRUN_SCRIPT=%{SOURCE14}} +%if %{with systemtap} +ln -sfr probes.d %{_vpath_builddir}/ +make -C %{_vpath_builddir} runruby TESTRUN_SCRIPT=%{SOURCE14} +%endif DISABLE_TESTS="" MSPECOPTS="" @@ -953,9 +963,9 @@ mv test/fiddle/test_import.rb{,.disable} # Give an option to increase the timeout in tests. # https://bugs.ruby-lang.org/issues/16921 %{?test_timeout_scale:RUBY_TEST_TIMEOUT_SCALE="%{test_timeout_scale}"} \ - make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" + make -C %{_vpath_builddir} check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" -%{?with_bundler_tests:make test-bundler-parallel} +%{?with_bundler_tests:make -C %{_vpath_builddir} test-bundler-parallel} %files %license BSDL From 296b35af32adda10aca24dcaa825194ba8f53ee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 13 Oct 2022 14:21:17 +0200 Subject: [PATCH 06/26] Upgrade to Ruby 3.2.0 (4b1504ae0a). --- ruby.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby.spec b/ruby.spec index 57eb455..1252d67 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision 70bc8cc6c2 +%global revision 4b1504ae0a %global ruby_archive %{name}-%{ruby_version} @@ -1514,7 +1514,7 @@ mv test/fiddle/test_import.rb{,.disable} %changelog * Wed Oct 12 2022 Vít Ondruch - 3.2.0-1 -- Upgrade to Ruby 3.2.0 (70bc8cc6c2). +- Upgrade to Ruby 3.2.0 (4b1504ae0a). * Thu Sep 29 2022 Vít Ondruch - 3.1.2-170 - Re-enable package notes. From 8c1f1ef278550358fb34284b09d7a74f079fd52e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Mon, 17 Oct 2022 16:17:21 +0200 Subject: [PATCH 07/26] Use Ruby for tests instead of Bash. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Why use Bash when we can use Ruby 🤔 --- ruby.spec | 64 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/ruby.spec b/ruby.spec index 1252d67..f94f2f4 100644 --- a/ruby.spec +++ b/ruby.spec @@ -842,18 +842,22 @@ checksec --file=%{_vpath_builddir}/libruby.so.%{ruby_version} | \ # Check Rubygems bundled dependencies versions. # Molinillo. -[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Gem; module Resolver; end; end; \ require 'rubygems/resolver/molinillo/lib/molinillo/gem_metadata'; \ - puts Gem::Resolver::Molinillo::VERSION\\\"\" | tail -1`" \ - == '%{rubygems_molinillo_version}' ] + puts '%%{rubygems_molinillo_version}: %{rubygems_molinillo_version}'; \ + puts %Q[Gem::Resolver::Molinillo::VERSION: #{Gem::Resolver::Molinillo::VERSION}]; \ + exit 1 if Gem::Resolver::Molinillo::VERSION != '%{rubygems_molinillo_version}'; \ +\"" # OptParse. -[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Gem; end; \ require 'rubygems/optparse/lib/optparse'; \ - puts Gem::OptionParser::Version\\\"\" | tail -1`" \ - == '%{rubygems_optparse_version}' ] + puts '%%{rubygems_optparse_version}: %{rubygems_optparse_version}'; \ + puts %Q[Gem::OptionParser::Version: #{Gem::OptionParser::Version}]; \ + exit 1 if Gem::OptionParser::Version != '%{rubygems_optparse_version}'; \ +\"" # tsort # TODO: Provide some real version test if version is available. @@ -864,43 +868,53 @@ make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ # Check Bundler bundled dependencies versions. # connection_pool. -[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; end; \ require 'bundler/vendor/connection_pool/lib/connection_pool/version'; \ - puts Bundler::ConnectionPool::VERSION\\\"\" | tail -1`" \ - == '%{bundler_connection_pool_version}' ] + puts '%%{bundler_connection_pool_version}; %{bundler_connection_pool_version}'; \ + puts %Q[Bundler::ConnectionPool::VERSION: #{Bundler::ConnectionPool::VERSION}]; \ + exit 1 if Bundler::ConnectionPool::VERSION != '%{bundler_connection_pool_version}'; \ +\"" # FileUtils. -[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; end; \ require 'bundler/vendor/fileutils/lib/fileutils'; \ - puts Bundler::FileUtils::VERSION\\\"\" | tail -1`" \ - == '%{bundler_fileutils_version}' ] + puts '%%{bundler_fileutils_version}: %{bundler_fileutils_version}'; \ + puts %Q[Bundler::FileUtils::VERSION: #{Bundler::FileUtils::VERSION}]; \ + exit 1 if Bundler::FileUtils::VERSION != '%{bundler_fileutils_version}'; \ +\"" # Molinillo. -[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; end; \ require 'bundler/vendor/molinillo/lib/molinillo/gem_metadata'; \ - puts Bundler::Molinillo::VERSION\\\"\" | tail -1`" \ - == '%{bundler_molinillo_version}' ] + puts '%%{bundler_molinillo_version}: %{bundler_molinillo_version}'; \ + puts %Q[Bundler::Molinillo::VERSION: #{Bundler::Molinillo::VERSION}]; \ + exit 1 if Bundler::Molinillo::VERSION != '%{bundler_molinillo_version}'; \ +\"" # Net::HTTP::Persistent. # Require `rubygems` to workaround the `': uninitialized # constant Gem (NameError) issue. # https://github.com/rubygems/rubygems/issues/5119 -[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-rrubygems -e \\\" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; module Persistent; module Net; module HTTP; \ end; end; end; end; \ require 'bundler/vendor/net-http-persistent/lib/net/http/persistent'; \ - puts Bundler::Persistent::Net::HTTP::Persistent::VERSION\\\"\" | tail -1`" \ - == '%{bundler_net_http_persistent_version}' ] + puts '%%{bundler_net_http_persistent_version}: %{bundler_net_http_persistent_version}'; \ + puts %Q[Bundler::Persistent::Net::HTTP::Persistent::VERSION: #{Bundler::Persistent::Net::HTTP::Persistent::VERSION}]; \ + exit 1 if Bundler::Persistent::Net::HTTP::Persistent::VERSION != '%{bundler_net_http_persistent_version}'; \ +\"" # Thor. -[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; end; \ require 'bundler/vendor/thor/lib/thor/version'; \ - puts Bundler::Thor::VERSION\\\"\" | tail -1`" \ - == '%{bundler_thor_version}' ] + puts '%%{bundler_thor_version}: %{bundler_thor_version}'; \ + puts %Q[Bundler::Thor::VERSION: #{Bundler::Thor::VERSION}]; \ + exit 1 if Bundler::Thor::VERSION != '%{bundler_thor_version}'; \ +\"" # tmpdir. # TODO: There is no version in bundled tmpdir yet. @@ -917,11 +931,13 @@ make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ require 'bundler/vendor/tsort/lib/tsort' \"" # URI. -[ "`make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT=\"-e \\\" \ +make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; end; \ require 'bundler/vendor/uri/lib/uri/version'; \ - puts Bundler::URI::VERSION\\\"\" | tail -1`" \ - == '%{bundler_uri_version}' ] + puts '%%{bundler_uri_version}: %{bundler_uri_version}'; \ + puts %Q[Bundler::URI::VERSION: #{Bundler::URI::VERSION}]; \ + exit 1 if Bundler::URI::VERSION != '%{bundler_uri_version}'; \ +\"" # test_debug(TestRubyOptions) fails due to LoadError reported in debug mode, From cef7a5d269b296783507cf4b003576ca44ab3316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 1 Nov 2022 12:49:03 +0100 Subject: [PATCH 08/26] Upgrade to Ruby 3.2.0 (4b1504ae0a). --- ...0-Enable-configuration-of-archlibdir.patch | 2 +- ...ed-paths-when-empty-version-string-i.patch | 2 +- ruby-2.1.0-always-use-i386.patch | 2 +- ruby-2.1.0-custom-rubygems-location.patch | 4 ++-- ruby-2.3.0-ruby_version.patch | 10 ++++----- ruby-2.7.0-Initialize-ABRT-hook.patch | 4 ++-- ...ery-RubyVM-FrozenCore-for-class-path.patch | 2 +- ruby.spec | 21 ++++++++----------- 8 files changed, 22 insertions(+), 25 deletions(-) diff --git a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index 502b47a..2fa82f2 100644 --- a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch +++ b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index d261ea57b5..3c13076b82 100644 --- a/configure.ac +++ b/configure.ac -@@ -3374,6 +3374,11 @@ AS_IF([test ${multiarch+set}], [ +@@ -3395,6 +3395,11 @@ AS_IF([test ${multiarch+set}], [ ]) archlibdir='${libdir}/${arch}' diff --git a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index 6399a52..6dcb796 100644 --- a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac index c42436c23d..d261ea57b5 100644 --- a/configure.ac +++ b/configure.ac -@@ -4105,7 +4105,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -4130,7 +4130,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index 72ebb7e..5e3d343 100644 --- a/ruby-2.1.0-always-use-i386.patch +++ b/ruby-2.1.0-always-use-i386.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index 3c13076b82..93af30321d 100644 --- a/configure.ac +++ b/configure.ac -@@ -4169,6 +4169,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -4194,6 +4194,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 diff --git a/ruby-2.1.0-custom-rubygems-location.patch b/ruby-2.1.0-custom-rubygems-location.patch index 193df45..9dd34b7 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac index 93af30321d..bc13397e0e 100644 --- a/configure.ac +++ b/configure.ac -@@ -4141,6 +4141,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -4166,6 +4166,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='' -@@ -4165,6 +4169,7 @@ AC_SUBST(sitearchdir)dnl +@@ -4190,6 +4194,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index 4d3dccb..11ada28 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac index 80b137e380..63cd3b4f8b 100644 --- a/configure.ac +++ b/configure.ac -@@ -4055,9 +4055,6 @@ AS_CASE(["$target_os"], +@@ -4080,9 +4080,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], -@@ -4080,57 +4077,63 @@ AC_ARG_WITH(ridir, +@@ -4105,57 +4102,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) -@@ -4147,6 +4150,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -4172,6 +4175,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl @@ -232,7 +232,7 @@ diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index b25068405d..e9fef4a311 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb -@@ -1394,7 +1394,8 @@ def test_self_use_paths +@@ -1395,7 +1395,8 @@ def test_self_use_paths def test_self_user_dir parts = [@userhome, ".gem", Gem.ruby_engine] @@ -242,7 +242,7 @@ index b25068405d..e9fef4a311 100644 FileUtils.mkdir_p File.join(parts) -@@ -1470,7 +1471,7 @@ def test_self_vendor_dir +@@ -1471,7 +1472,7 @@ def test_self_vendor_dir vendordir(File.join(@tempdir, "vendor")) do expected = File.join RbConfig::CONFIG["vendordir"], "gems", diff --git a/ruby-2.7.0-Initialize-ABRT-hook.patch b/ruby-2.7.0-Initialize-ABRT-hook.patch index b37c992..654df8d 100644 --- a/ruby-2.7.0-Initialize-ABRT-hook.patch +++ b/ruby-2.7.0-Initialize-ABRT-hook.patch @@ -43,7 +43,7 @@ diff --git a/common.mk b/common.mk index b2e5b2b6d0..f39f81da5c 100644 --- a/common.mk +++ b/common.mk -@@ -84,7 +84,8 @@ ENC_MK = enc.mk +@@ -86,7 +86,8 @@ ENC_MK = enc.mk MAKE_ENC = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \ RUBY="$(BOOTSTRAPRUBY)" MINIRUBY="$(BOOTSTRAPRUBY)" $(mflags) @@ -57,7 +57,7 @@ diff --git a/ruby.c b/ruby.c index 60c57d6259..1eec16f2c8 100644 --- a/ruby.c +++ b/ruby.c -@@ -1524,10 +1524,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) +@@ -1573,10 +1573,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) void Init_builtin_features(void); diff --git a/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch b/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch index 582bb5d..4b30773 100644 --- a/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch +++ b/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch @@ -21,7 +21,7 @@ diff --git a/vm.c b/vm.c index 8ce8b279d4..3d189fa63a 100644 --- a/vm.c +++ b/vm.c -@@ -581,7 +581,15 @@ rb_dtrace_setup(rb_execution_context_t *ec, VALUE klass, ID id, +@@ -574,7 +574,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) { diff --git a/ruby.spec b/ruby.spec index f94f2f4..527f2ff 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision 4b1504ae0a +%global revision 6bf458eefd %global ruby_archive %{name}-%{ruby_version} @@ -48,11 +48,11 @@ %global bigdecimal_version 3.1.2 %global did_you_mean_version 1.6.1 -%global erb_version 2.2.3 +%global erb_version 3.0.0 %global io_console_version 0.5.11 %global irb_version 1.4.2 %global json_version 2.6.2 -%global openssl_version 3.0.0 +%global openssl_version 3.1.0.pre %global psych_version 5.0.0.dev %global racc_version 1.6.0 %global rdoc_version 6.4.0 @@ -60,7 +60,7 @@ # Bundled gems. %global minitest_version 5.16.3 -%global power_assert_version 2.0.1 +%global power_assert_version 2.0.2 %global rake_version 13.0.6 %global test_unit_version 3.5.5 %global rexml_version 3.2.5 @@ -68,12 +68,12 @@ %global net_ftp_version 0.2.0 %global net_imap_version 0.3.1 %global net_pop_version 0.1.2 -%global net_smtp_version 0.3.2 +%global net_smtp_version 0.3.3 %global matrix_version 0.4.2 %global prime_version 0.1.2 %global rbs_version 2.7.0 %global typeprof_version 0.21.3 -%global debug_version 1.6.2 +%global debug_version 1.6.3 %global tapset_libdir %(echo %{_libdir} | sed 's/64//')* @@ -961,9 +961,6 @@ MSPECOPTS="" # Avoid `hostname' dependency. %{!?with_hostname:MSPECOPTS="-P 'Socket.gethostname returns the host name'"} -# https://bugs.ruby-lang.org/issues/18380 -DISABLE_TESTS="$DISABLE_TESTS -n !/TestAddressResolve#test_socket_getnameinfo_domain_blocking/" - %ifarch armv7hl # TestReadline#test_interrupt_in_other_thread fails on 32 bit arches according # to upstream, but the test is disabled just on Travis, not in test suite. @@ -1246,7 +1243,7 @@ mv test/fiddle/test_import.rb{,.disable} %{gem_dir}/specifications/default/error_highlight-0.4.0.gemspec %{gem_dir}/specifications/default/etc-1.4.0.gemspec %{gem_dir}/specifications/default/fcntl-1.0.1.gemspec -%{gem_dir}/specifications/default/fiddle-1.1.0.gemspec +%{gem_dir}/specifications/default/fiddle-1.1.1.gemspec %{gem_dir}/specifications/default/fileutils-1.6.0.gemspec %{gem_dir}/specifications/default/find-0.1.1.gemspec %{gem_dir}/specifications/default/forwardable-1.3.2.gemspec @@ -1256,7 +1253,7 @@ mv test/fiddle/test_import.rb{,.disable} %{gem_dir}/specifications/default/ipaddr-1.2.4.gemspec %{gem_dir}/specifications/default/logger-1.5.1.gemspec %{gem_dir}/specifications/default/mutex_m-0.1.1.gemspec -%{gem_dir}/specifications/default/net-http-0.2.2.gemspec +%{gem_dir}/specifications/default/net-http-0.3.0.gemspec %{gem_dir}/specifications/default/net-protocol-0.1.3.gemspec %{gem_dir}/specifications/default/nkf-0.1.1.gemspec %{gem_dir}/specifications/default/observer-0.1.1.gemspec @@ -1530,7 +1527,7 @@ mv test/fiddle/test_import.rb{,.disable} %changelog * Wed Oct 12 2022 Vít Ondruch - 3.2.0-1 -- Upgrade to Ruby 3.2.0 (4b1504ae0a). +- Upgrade to Ruby 3.2.0 (6bf458eefd). * Thu Sep 29 2022 Vít Ondruch - 3.1.2-170 - Re-enable package notes. From d91b12025ce13d5043e5ac9fff07ad3f0e01a26d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 22 Nov 2022 17:40:19 +0100 Subject: [PATCH 09/26] Revert "Re-enable package notes." This reverts commit 768e5a37f81dcaecf921df93b8ddc781713f0f01, because it causes additional issues: https://bugzilla.redhat.com/show_bug.cgi?id=2043092#c67 --- ruby.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ruby.spec b/ruby.spec index 527f2ff..f148b61 100644 --- a/ruby.spec +++ b/ruby.spec @@ -93,6 +93,10 @@ %bcond_without hardening_test %endif +# The additional linker flags break binary rubygem- packages. +# https://bugzilla.redhat.com/show_bug.cgi?id=2043092 +%undefine _package_note_flags + Summary: An interpreter of object-oriented scripting language Name: ruby Version: %{ruby_version} @@ -1529,9 +1533,6 @@ mv test/fiddle/test_import.rb{,.disable} * Wed Oct 12 2022 Vít Ondruch - 3.2.0-1 - Upgrade to Ruby 3.2.0 (6bf458eefd). -* Thu Sep 29 2022 Vít Ondruch - 3.1.2-170 -- Re-enable package notes. - * Mon Aug 29 2022 Jun Aruga - 3.1.2-168 - Make RDoc soft dependnecy in IRB. Resolves: rhbz#2119964 From aca80a24c138e1be87bca2c7172553b0b31e2c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 24 Nov 2022 12:57:52 +0100 Subject: [PATCH 10/26] Upgrade to Ruby 3.2.0 (66e5200ba4). --- ...0-Enable-configuration-of-archlibdir.patch | 2 +- ...ed-paths-when-empty-version-string-i.patch | 2 +- ruby-2.1.0-always-use-i386.patch | 2 +- ruby-2.1.0-custom-rubygems-location.patch | 4 +- ruby-2.3.0-ruby_version.patch | 10 ++--- ...ery-RubyVM-FrozenCore-for-class-path.patch | 2 +- ruby.spec | 38 ++++++++++++------- 7 files changed, 36 insertions(+), 24 deletions(-) diff --git a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index 2fa82f2..45b193d 100644 --- a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch +++ b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index d261ea57b5..3c13076b82 100644 --- a/configure.ac +++ b/configure.ac -@@ -3395,6 +3395,11 @@ AS_IF([test ${multiarch+set}], [ +@@ -3401,6 +3401,11 @@ AS_IF([test ${multiarch+set}], [ ]) archlibdir='${libdir}/${arch}' diff --git a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index 6dcb796..ef29e16 100644 --- a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac index c42436c23d..d261ea57b5 100644 --- a/configure.ac +++ b/configure.ac -@@ -4130,7 +4130,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -4178,7 +4178,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index 5e3d343..5e3fd66 100644 --- a/ruby-2.1.0-always-use-i386.patch +++ b/ruby-2.1.0-always-use-i386.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index 3c13076b82..93af30321d 100644 --- a/configure.ac +++ b/configure.ac -@@ -4194,6 +4194,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -4242,6 +4242,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 diff --git a/ruby-2.1.0-custom-rubygems-location.patch b/ruby-2.1.0-custom-rubygems-location.patch index 9dd34b7..ea9974d 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac index 93af30321d..bc13397e0e 100644 --- a/configure.ac +++ b/configure.ac -@@ -4166,6 +4166,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -4214,6 +4214,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='' -@@ -4190,6 +4194,7 @@ AC_SUBST(sitearchdir)dnl +@@ -4238,6 +4242,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index 11ada28..385e700 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac index 80b137e380..63cd3b4f8b 100644 --- a/configure.ac +++ b/configure.ac -@@ -4080,9 +4080,6 @@ AS_CASE(["$target_os"], +@@ -4128,9 +4128,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], -@@ -4105,57 +4102,63 @@ AC_ARG_WITH(ridir, +@@ -4153,57 +4150,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) -@@ -4172,6 +4175,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -4220,6 +4223,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl @@ -219,7 +219,7 @@ index d4ff4a262c..3f9a5bf590 100644 File.join parts end -@@ -234,7 +235,7 @@ def self.vendor_dir # :nodoc: +@@ -248,7 +249,7 @@ def self.vendor_dir # :nodoc: return nil unless RbConfig::CONFIG.key? "vendordir" File.join RbConfig::CONFIG["vendordir"], "gems", @@ -269,7 +269,7 @@ diff --git a/configure.ac b/configure.ac index a00f2b6776..999e2d6d5d 100644 --- a/configure.ac +++ b/configure.ac -@@ -123,7 +123,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"` +@@ -124,7 +124,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) diff --git a/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch b/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch index 4b30773..22b94e6 100644 --- a/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch +++ b/ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch @@ -21,7 +21,7 @@ diff --git a/vm.c b/vm.c index 8ce8b279d4..3d189fa63a 100644 --- a/vm.c +++ b/vm.c -@@ -574,7 +574,15 @@ rb_dtrace_setup(rb_execution_context_t *ec, VALUE klass, ID id, +@@ -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) { diff --git a/ruby.spec b/ruby.spec index f148b61..d0bcb0d 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision 6bf458eefd +%global revision 66e5200ba4 %global ruby_archive %{name}-%{ruby_version} @@ -39,7 +39,7 @@ %global bundler_version 2.4.0.dev %global bundler_connection_pool_version 2.3.0 %global bundler_fileutils_version 1.4.1 -%global bundler_molinillo_version 0.8.0 +%global bundler_pub_grub_version 0.5.0 %global bundler_net_http_persistent_version 4.0.1 %global bundler_thor_version 1.2.1 %global bundler_tmpdir_version 0.1.0 @@ -50,7 +50,7 @@ %global did_you_mean_version 1.6.1 %global erb_version 3.0.0 %global io_console_version 0.5.11 -%global irb_version 1.4.2 +%global irb_version 1.5.0 %global json_version 2.6.2 %global openssl_version 3.1.0.pre %global psych_version 5.0.0.dev @@ -434,7 +434,7 @@ Provides: rubygem(bundler) = %{version}-%{release} # https://github.com/bundler/bundler/issues/3647 Provides: bundled(rubygem-connection_pool) = %{bundler_connection_pool_version} Provides: bundled(rubygem-fileutils) = %{bundler_fileutils_version} -Provides: bundled(rubygem-molinillo) = %{bundler_molinillo_version} +Provides: bundled(rubygem-pub_grub) = %{bundler_pub_grub_version} Provides: bundled(rubygem-net-http-persisntent) = %{bundler_net_http_persistent_version} Provides: bundled(rubygem-thor) = %{bundler_thor_version} Provides: bundled(rubygem-tmpdir) = %{bundler_tmpdir_version} @@ -889,13 +889,13 @@ make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ exit 1 if Bundler::FileUtils::VERSION != '%{bundler_fileutils_version}'; \ \"" -# Molinillo. +# PubGrub make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ module Bundler; end; \ - require 'bundler/vendor/molinillo/lib/molinillo/gem_metadata'; \ - puts '%%{bundler_molinillo_version}: %{bundler_molinillo_version}'; \ - puts %Q[Bundler::Molinillo::VERSION: #{Bundler::Molinillo::VERSION}]; \ - exit 1 if Bundler::Molinillo::VERSION != '%{bundler_molinillo_version}'; \ + require 'bundler/vendor/pub_grub/lib/pub_grub/version'; \ + puts '%%{bundler_pub_grub_version}: %{bundler_pub_grub_version}'; \ + puts %Q[Bundler::PubGrub::VERSION: #{Bundler::PubGrub::VERSION}]; \ + exit 1 if Bundler::PubGrub::VERSION != '%{bundler_pub_grub_version}'; \ \"" # Net::HTTP::Persistent. @@ -972,6 +972,17 @@ MSPECOPTS="" DISABLE_TESTS="$DISABLE_TESTS -n !/TestReadline#test_interrupt_in_other_thread/" %endif +# Test timeouts for some reason. +# https://bugs.ruby-lang.org/issues/19145 +DISABLE_TESTS="$DISABLE_TESTS -n !/TestException#test_exception_in_message/" + +%ifarch i686 +# i686 specific failures. +# https://bugs.ruby-lang.org/issues/19147 +DISABLE_TESTS="$DISABLE_TESTS -n !/TestFileExhaustive#test_expand_path_for_existent_username/" +DISABLE_TESTS="$DISABLE_TESTS -n !/TestDir#test_home/" +%endif + # Several test broken by libffi-3.4.2. There should be fix in libffi, once # other components are fixed. # https://bugzilla.redhat.com/show_bug.cgi?id=2040380 @@ -1170,6 +1181,7 @@ mv test/fiddle/test_import.rb{,.disable} %{ruby_libarchdir}/enc/windows_1254.so %{ruby_libarchdir}/enc/windows_1257.so %{ruby_libarchdir}/enc/windows_31j.so +%{ruby_libarchdir}/erb.so %{ruby_libarchdir}/etc.so %{ruby_libarchdir}/fcntl.so %{ruby_libarchdir}/fiddle.so @@ -1235,7 +1247,7 @@ mv test/fiddle/test_import.rb{,.disable} %{gem_dir}/specifications/default/abbrev-0.1.0.gemspec %{gem_dir}/specifications/default/base64-0.1.1.gemspec %{gem_dir}/specifications/default/benchmark-0.2.0.gemspec -%{gem_dir}/specifications/default/cgi-0.3.3.gemspec +%{gem_dir}/specifications/default/cgi-0.3.5.gemspec %{gem_dir}/specifications/default/csv-3.2.2.gemspec %{gem_dir}/specifications/default/date-3.2.3.gemspec %{gem_dir}/specifications/default/delegate-0.2.0.gemspec @@ -1244,7 +1256,7 @@ mv test/fiddle/test_import.rb{,.disable} %{gem_dir}/specifications/default/drb-2.1.0.gemspec %{gem_dir}/specifications/default/english-0.7.1.gemspec %{gem_dir}/specifications/default/erb-%{erb_version}.gemspec -%{gem_dir}/specifications/default/error_highlight-0.4.0.gemspec +%{gem_dir}/specifications/default/error_highlight-0.5.1.gemspec %{gem_dir}/specifications/default/etc-1.4.0.gemspec %{gem_dir}/specifications/default/fcntl-1.0.1.gemspec %{gem_dir}/specifications/default/fiddle-1.1.1.gemspec @@ -1530,8 +1542,8 @@ mv test/fiddle/test_import.rb{,.disable} %changelog -* Wed Oct 12 2022 Vít Ondruch - 3.2.0-1 -- Upgrade to Ruby 3.2.0 (6bf458eefd). +* Thu Nov 24 2022 Vít Ondruch - 3.2.0-1 +- Upgrade to Ruby 3.2.0 (66e5200ba4). * Mon Aug 29 2022 Jun Aruga - 3.1.2-168 - Make RDoc soft dependnecy in IRB. From d2f29a04babce7e1dc00212c91575bdf500dea74 Mon Sep 17 00:00:00 2001 From: Jarek Prokop Date: Fri, 2 Sep 2022 10:21:43 +0200 Subject: [PATCH 11/26] Disable Fiddle test cases making use of FFI closure. Fiddle::Closure object is making use of FFI closure from libffi. When such object is created (instantiated) in Ruby, and then the process forks on an SELinux-enabled system, the memory will become corrupted. That is usually not a problem until the The garbage collector sweeps the object and tries to free it, in which case the Ruby process will fail with signal SIGABRT. Tests in test/fiddle/test_closure.rb, test/fiddle/test_func.rb, and test/fiddle/test_function.rb use the `Fiddle::Closure` class directly and fiddle/test_import.rb use the class indirectly through `bind_function` method, therefore they are disabled to prevent introducing the problematic object into the Ruby GC during test suite execution instead of relying on that fork and subsequent garbage collection will not happen. If an FFI closure object is allocated in Ruby and the `fork` function is used afterward, the memory pointing to the closure gets corrupted, and if Ruby GC tries to collect the object in that state, a SIGABRT error occurs. The minimal Ruby reproducer for the issue is the following: ~~~ $ cat fiddle_fork.rb require 'fiddle/closure' require 'fiddle/struct' Fiddle::Closure.new(Fiddle::TYPE_VOID, []) fork { } GC.start ~~~ We allocate an unused Closure object, so it is free for the GC to pick up. Before we call `GC.start` we fork the process as that corrupts the memory. Running this with ruby-3.1.2-167.fc37.x86_64 on SELinux enabled system: ~~~ $ ruby fiddle_fork.rb Aborted (core dumped) ~~~ Such issues may appear at random (depending on the use of forking and GC) in larger applications that use Fiddle::Closure but can be spotted by the following functions appearing in the coredump backtrace: ~~~ 0x00007f6284d3e5b3 in dlfree (mem=) at ../src/dlmalloc.c:4350 0x00007f6284d6d0b1 in dealloc () from /usr/lib64/ruby/fiddle.so 0x00007f6295e432ec in finalize_list () from /lib64/libruby.so.3.1 0x00007f6295e43420 in finalize_deferred.lto_priv () from /lib64/libruby.so.3.1 0x00007f6295e4ff1c in gc_start_internal.lto_priv () from /lib64/libruby.so.3.1 ~~~ Possible solutions to prevent Ruby from crashing: * Do not use Fiddle::Closure. * Use the Fiddle::Closure object only in isolated subprocess that will not fork further. * Enable static trampolines in libffi as noted in bugzilla comment: See related discussion on Ruby upstream ticket: Ruby Fiddle ticket: --- ruby.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ruby.spec b/ruby.spec index d0bcb0d..f35bb8a 100644 --- a/ruby.spec +++ b/ruby.spec @@ -987,6 +987,9 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/TestDir#test_home/" # other components are fixed. # https://bugzilla.redhat.com/show_bug.cgi?id=2040380 mv test/fiddle/test_import.rb{,.disable} +mv test/fiddle/test_closure.rb{,.disable} +DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunc#test_qsort1/" +DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" # Give an option to increase the timeout in tests. # https://bugs.ruby-lang.org/issues/16921 @@ -1545,6 +1548,10 @@ mv test/fiddle/test_import.rb{,.disable} * Thu Nov 24 2022 Vít Ondruch - 3.2.0-1 - Upgrade to Ruby 3.2.0 (66e5200ba4). +* Fri Sep 02 2022 Jarek Prokop - 3.1.2-169 +- Disable fiddle tests that use FFI closures. + Related: rhbz#2040380 + * Mon Aug 29 2022 Jun Aruga - 3.1.2-168 - Make RDoc soft dependnecy in IRB. Resolves: rhbz#2119964 From 2633741b6323a5e38db8fc5f29cfc28d563628b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 24 Nov 2022 13:03:36 +0100 Subject: [PATCH 12/26] Since Rawhide changelog. --- ruby.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ruby.spec b/ruby.spec index f35bb8a..eca26a5 100644 --- a/ruby.spec +++ b/ruby.spec @@ -1548,6 +1548,13 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" * Thu Nov 24 2022 Vít Ondruch - 3.2.0-1 - Upgrade to Ruby 3.2.0 (66e5200ba4). +* Tue Nov 22 2022 Vít Ondruch - 3.1.2-171 +- Re-disable package notes. It causes additional issues with installing binary + gems. + +* Thu Sep 29 2022 Vít Ondruch - 3.1.2-170 +- Re-enable package notes. + * Fri Sep 02 2022 Jarek Prokop - 3.1.2-169 - Disable fiddle tests that use FFI closures. Related: rhbz#2040380 From f1f5dc72867b0a1f600bd63585bc8b3927db4b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 1 Dec 2022 15:59:25 +0100 Subject: [PATCH 13/26] Upgrade to Ruby 3.2.0 (0436f1e15a). --- ...ed-paths-when-empty-version-string-i.patch | 2 +- ruby-2.1.0-always-use-i386.patch | 2 +- ruby-2.1.0-custom-rubygems-location.patch | 4 ++-- ruby-2.3.0-ruby_version.patch | 6 +++--- ruby.spec | 21 ++++++++----------- 5 files changed, 16 insertions(+), 19 deletions(-) diff --git a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index ef29e16..0465a7f 100644 --- a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac index c42436c23d..d261ea57b5 100644 --- a/configure.ac +++ b/configure.ac -@@ -4178,7 +4178,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -4186,7 +4186,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index 5e3fd66..f2b4ea6 100644 --- a/ruby-2.1.0-always-use-i386.patch +++ b/ruby-2.1.0-always-use-i386.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index 3c13076b82..93af30321d 100644 --- a/configure.ac +++ b/configure.ac -@@ -4242,6 +4242,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -4250,6 +4250,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 diff --git a/ruby-2.1.0-custom-rubygems-location.patch b/ruby-2.1.0-custom-rubygems-location.patch index ea9974d..f352da2 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac index 93af30321d..bc13397e0e 100644 --- a/configure.ac +++ b/configure.ac -@@ -4214,6 +4214,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -4222,6 +4222,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='' -@@ -4238,6 +4242,7 @@ AC_SUBST(sitearchdir)dnl +@@ -4246,6 +4250,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index 385e700..f36107a 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac index 80b137e380..63cd3b4f8b 100644 --- a/configure.ac +++ b/configure.ac -@@ -4128,9 +4128,6 @@ AS_CASE(["$target_os"], +@@ -4136,9 +4136,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], -@@ -4153,57 +4150,63 @@ AC_ARG_WITH(ridir, +@@ -4161,57 +4158,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) -@@ -4220,6 +4223,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -4228,6 +4231,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl diff --git a/ruby.spec b/ruby.spec index eca26a5..ae85da3 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision 66e5200ba4 +%global revision 0436f1e15a %global ruby_archive %{name}-%{ruby_version} @@ -48,9 +48,9 @@ %global bigdecimal_version 3.1.2 %global did_you_mean_version 1.6.1 -%global erb_version 3.0.0 +%global erb_version 4.0.2 %global io_console_version 0.5.11 -%global irb_version 1.5.0 +%global irb_version 1.5.1 %global json_version 2.6.2 %global openssl_version 3.1.0.pre %global psych_version 5.0.0.dev @@ -71,7 +71,7 @@ %global net_smtp_version 0.3.3 %global matrix_version 0.4.2 %global prime_version 0.1.2 -%global rbs_version 2.7.0 +%global rbs_version 2.8.1 %global typeprof_version 0.21.3 %global debug_version 1.6.3 @@ -972,15 +972,12 @@ MSPECOPTS="" DISABLE_TESTS="$DISABLE_TESTS -n !/TestReadline#test_interrupt_in_other_thread/" %endif -# Test timeouts for some reason. -# https://bugs.ruby-lang.org/issues/19145 -DISABLE_TESTS="$DISABLE_TESTS -n !/TestException#test_exception_in_message/" - %ifarch i686 # i686 specific failures. # https://bugs.ruby-lang.org/issues/19147 DISABLE_TESTS="$DISABLE_TESTS -n !/TestFileExhaustive#test_expand_path_for_existent_username/" DISABLE_TESTS="$DISABLE_TESTS -n !/TestDir#test_home/" +MSPECOPTS="$MSPECOPTS -P 'File.expand_path expands ~ENV..USER..* to.* the user.s home directory'" %endif # Several test broken by libffi-3.4.2. There should be fix in libffi, once @@ -1184,7 +1181,7 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %{ruby_libarchdir}/enc/windows_1254.so %{ruby_libarchdir}/enc/windows_1257.so %{ruby_libarchdir}/enc/windows_31j.so -%{ruby_libarchdir}/erb.so +%{ruby_libarchdir}/erb/escape.so %{ruby_libarchdir}/etc.so %{ruby_libarchdir}/fcntl.so %{ruby_libarchdir}/fiddle.so @@ -1250,7 +1247,7 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %{gem_dir}/specifications/default/abbrev-0.1.0.gemspec %{gem_dir}/specifications/default/base64-0.1.1.gemspec %{gem_dir}/specifications/default/benchmark-0.2.0.gemspec -%{gem_dir}/specifications/default/cgi-0.3.5.gemspec +%{gem_dir}/specifications/default/cgi-0.3.6.gemspec %{gem_dir}/specifications/default/csv-3.2.2.gemspec %{gem_dir}/specifications/default/date-3.2.3.gemspec %{gem_dir}/specifications/default/delegate-0.2.0.gemspec @@ -1299,7 +1296,7 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %{gem_dir}/specifications/default/singleton-0.1.1.gemspec %{gem_dir}/specifications/default/stringio-%{stringio_version}.gemspec %{gem_dir}/specifications/default/strscan-3.0.1.gemspec -%{gem_dir}/specifications/default/syntax_suggest-0.0.1.gemspec +%{gem_dir}/specifications/default/syntax_suggest-1.0.1.gemspec %{gem_dir}/specifications/default/syslog-0.1.0.gemspec %{gem_dir}/specifications/default/tempfile-0.1.2.gemspec %{gem_dir}/specifications/default/time-0.2.0.gemspec @@ -1546,7 +1543,7 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %changelog * Thu Nov 24 2022 Vít Ondruch - 3.2.0-1 -- Upgrade to Ruby 3.2.0 (66e5200ba4). +- Upgrade to Ruby 3.2.0 (0436f1e15a). * Tue Nov 22 2022 Vít Ondruch - 3.1.2-171 - Re-disable package notes. It causes additional issues with installing binary From 40b071b126aad4df859c6638e00fccfdc16339f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 1 Dec 2022 16:04:35 +0100 Subject: [PATCH 14/26] Drop git version from patches. It does not provide any benefit and just makes updates of the patches harder. --- ruby-2.1.0-Enable-configuration-of-archlibdir.patch | 3 --- ...-duplicated-paths-when-empty-version-string-i.patch | 3 --- ruby-2.1.0-always-use-i386.patch | 3 --- ruby-2.1.0-custom-rubygems-location.patch | 3 --- ruby-2.3.0-ruby_version.patch | 10 ---------- ruby-2.7.0-Initialize-ABRT-hook.patch | 3 --- ...-the-test_bug_reporter_add-witout-raising-err.patch | 3 --- 7 files changed, 28 deletions(-) diff --git a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index 45b193d..76695a6 100644 --- a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch +++ b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch @@ -23,6 +23,3 @@ index d261ea57b5..3c13076b82 100644 sitearchlibdir='${libdir}/${sitearch}' archincludedir='${includedir}/${arch}' sitearchincludedir='${includedir}/${sitearch}' --- -2.22.0 - diff --git a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index 0465a7f..2fae783 100644 --- a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -75,6 +75,3 @@ index 07076d4..35e6c3c 100755 when /^ARCH_FLAG$/ val = "arch_flag || #{val}" if universal when /^UNIVERSAL_ARCHNAMES$/ --- -1.9.0 - diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index f2b4ea6..2d65316 100644 --- a/ruby-2.1.0-always-use-i386.patch +++ b/ruby-2.1.0-always-use-i386.patch @@ -20,6 +20,3 @@ index 3c13076b82..93af30321d 100644 AS_IF([test "${universal_binary-no}" = yes ], [ arch="universal-${target_os}" AS_IF([test "${rb_cv_architecture_available}" = yes], [ --- -1.8.3.1 - diff --git a/ruby-2.1.0-custom-rubygems-location.patch b/ruby-2.1.0-custom-rubygems-location.patch index f352da2..b0b61dc 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -92,6 +92,3 @@ index e9110a17ca..76a1f0a315 100755 end install?(:local, :comm, :hdr, :'comm-hdr') do --- -1.8.3.1 - diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index f36107a..b6963a2 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -142,8 +142,6 @@ index 8a2c066..c81b211 100644 RUBY_API_VERSION=@RUBY_API_VERSION@ RUBY_PROGRAM_VERSION=@RUBY_PROGRAM_VERSION@ arch=@arch@ --- -2.1.0 From 518850aba6eee76de7715aae8d37330e34b01983 Mon Sep 17 00:00:00 2001 @@ -182,9 +180,6 @@ index d4c110e..d39c9a6 100755 prepare "rdoc", ridatadir install_recursive($rdocdir, ridatadir, :no_install => rdoc_noinst, :mode => $data_mode) end --- -2.23.0 - From 9f0ec0233f618cbb862629816b22491c3df79578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= @@ -251,8 +246,6 @@ index b25068405d..e9fef4a311 100644 assert_equal expected, Gem.vendor_dir end --- -2.1.0 From 88c38a030c22dbf9422ece847bdfbf87d6659313 Mon Sep 17 00:00:00 2001 @@ -278,6 +271,3 @@ index a00f2b6776..999e2d6d5d 100644 dnl checks for alternative programs AC_CANONICAL_BUILD --- -2.1.0 - diff --git a/ruby-2.7.0-Initialize-ABRT-hook.patch b/ruby-2.7.0-Initialize-ABRT-hook.patch index 654df8d..5c22bd1 100644 --- a/ruby-2.7.0-Initialize-ABRT-hook.patch +++ b/ruby-2.7.0-Initialize-ABRT-hook.patch @@ -72,6 +72,3 @@ index 60c57d6259..1eec16f2c8 100644 rb_const_remove(rb_cObject, rb_intern_const("TMP_RUBY_PREFIX")); } --- -2.24.1 - diff --git a/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch b/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch index 90dd4f1..b14971e 100644 --- a/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch +++ b/ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch @@ -29,6 +29,3 @@ index 628fcd0340..2c677cc8a7 100644 ensure FileUtils.rm_rf(tmpdir) if tmpdir end --- -2.27.0 - From fa665a95d97dc6da8175c682681e66a2e161a845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Fri, 2 Dec 2022 15:10:38 +0100 Subject: [PATCH 15/26] Use tilde in version for preleases. This is aligned with versioning guidelines, which suggests this: https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_snapshots --- ruby.spec | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/ruby.spec b/ruby.spec index ae85da3..3fb1405 100644 --- a/ruby.spec +++ b/ruby.spec @@ -18,13 +18,10 @@ %if 0%{?milestone:1}%{?revision:1} != 0 %global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision}} %define ruby_archive_timestamp %(stat --printf='@%Y' %{_sourcedir}/%{ruby_archive}.tar.xz | date -f - +"%Y%m%d") -%define development_release %{?milestone}%{?!milestone:%{?revision:%{ruby_archive_timestamp}git%{revision}}} +%define development_release ~%{ruby_archive_timestamp}%{?milestone}%{?!milestone:%{?revision:git%{revision}}} %endif -%global release 1 -%{!?release_string:%define release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} - # The RubyGems library has to stay out of Ruby directory tree, since the # RubyGems should be share by all Ruby implementations. %global rubygems_dir %{_datadir}/rubygems @@ -99,8 +96,8 @@ Summary: An interpreter of object-oriented scripting language Name: ruby -Version: %{ruby_version} -Release: %{release_string} +Version: %{ruby_version}%{?development_release} +Release: 173 # Public Domain for example for: include/ruby/st.h, strftime.c, missing/*, ... # MIT and CCO: ccan/* # zlib: ext/digest/md5/md5.*, ext/nkf/nkf-utf8/nkf.c @@ -1542,7 +1539,7 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %changelog -* Thu Nov 24 2022 Vít Ondruch - 3.2.0-1 +* Thu Nov 24 2022 Vít Ondruch - 3.2.0-173 - Upgrade to Ruby 3.2.0 (0436f1e15a). * Tue Nov 22 2022 Vít Ondruch - 3.1.2-171 From b5e456f1212391dd6e011035e0fd372af7609b21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 6 Dec 2022 16:52:08 +0100 Subject: [PATCH 16/26] Upgrade to Ruby 3.2.0-rc1. --- ...0-Enable-configuration-of-archlibdir.patch | 2 +- ...ed-paths-when-empty-version-string-i.patch | 2 +- ruby-2.1.0-always-use-i386.patch | 2 +- ruby-2.1.0-custom-rubygems-location.patch | 4 +- ruby-2.3.0-ruby_version.patch | 6 +- ruby.spec | 78 +++++++++---------- 6 files changed, 47 insertions(+), 47 deletions(-) diff --git a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index 76695a6..2771d9b 100644 --- a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch +++ b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index d261ea57b5..3c13076b82 100644 --- a/configure.ac +++ b/configure.ac -@@ -3401,6 +3401,11 @@ AS_IF([test ${multiarch+set}], [ +@@ -3404,6 +3404,11 @@ AS_IF([test ${multiarch+set}], [ ]) archlibdir='${libdir}/${arch}' diff --git a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index 2fae783..fe68a98 100644 --- a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac index c42436c23d..d261ea57b5 100644 --- a/configure.ac +++ b/configure.ac -@@ -4186,7 +4186,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -4189,7 +4189,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index 2d65316..0d33019 100644 --- a/ruby-2.1.0-always-use-i386.patch +++ b/ruby-2.1.0-always-use-i386.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index 3c13076b82..93af30321d 100644 --- a/configure.ac +++ b/configure.ac -@@ -4250,6 +4250,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -4253,6 +4253,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 diff --git a/ruby-2.1.0-custom-rubygems-location.patch b/ruby-2.1.0-custom-rubygems-location.patch index b0b61dc..432cf72 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac index 93af30321d..bc13397e0e 100644 --- a/configure.ac +++ b/configure.ac -@@ -4222,6 +4222,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -4225,6 +4225,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='' -@@ -4246,6 +4250,7 @@ AC_SUBST(sitearchdir)dnl +@@ -4249,6 +4253,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index b6963a2..931357d 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac index 80b137e380..63cd3b4f8b 100644 --- a/configure.ac +++ b/configure.ac -@@ -4136,9 +4136,6 @@ AS_CASE(["$target_os"], +@@ -4139,9 +4139,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], -@@ -4161,57 +4158,63 @@ AC_ARG_WITH(ridir, +@@ -4164,57 +4161,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) -@@ -4228,6 +4231,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -4231,6 +4234,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl diff --git a/ruby.spec b/ruby.spec index 3fb1405..3d500af 100644 --- a/ruby.spec +++ b/ruby.spec @@ -7,10 +7,10 @@ %global ruby_release %{ruby_version} # Specify the named version. It has precedense to revision. -#%%global milestone rc1 +%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision 0436f1e15a +#%%global revision 0436f1e15a %global ruby_archive %{name}-%{ruby_version} @@ -43,16 +43,16 @@ %global bundler_tsort_version 0.1.1 %global bundler_uri_version 0.10.1 -%global bigdecimal_version 3.1.2 -%global did_you_mean_version 1.6.1 +%global bigdecimal_version 3.1.3 +%global did_you_mean_version 1.6.2 %global erb_version 4.0.2 %global io_console_version 0.5.11 %global irb_version 1.5.1 %global json_version 2.6.2 %global openssl_version 3.1.0.pre -%global psych_version 5.0.0.dev -%global racc_version 1.6.0 -%global rdoc_version 6.4.0 +%global psych_version 5.0.0 +%global racc_version 1.6.1 +%global rdoc_version 6.5.0 %global stringio_version 3.0.3 # Bundled gems. @@ -70,7 +70,7 @@ %global prime_version 0.1.2 %global rbs_version 2.8.1 %global typeprof_version 0.21.3 -%global debug_version 1.6.3 +%global debug_version 1.7.0 %global tapset_libdir %(echo %{_libdir} | sed 's/64//')* @@ -1243,51 +1243,51 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %files default-gems %{gem_dir}/specifications/default/abbrev-0.1.0.gemspec %{gem_dir}/specifications/default/base64-0.1.1.gemspec -%{gem_dir}/specifications/default/benchmark-0.2.0.gemspec +%{gem_dir}/specifications/default/benchmark-0.2.1.gemspec %{gem_dir}/specifications/default/cgi-0.3.6.gemspec %{gem_dir}/specifications/default/csv-3.2.2.gemspec -%{gem_dir}/specifications/default/date-3.2.3.gemspec -%{gem_dir}/specifications/default/delegate-0.2.0.gemspec +%{gem_dir}/specifications/default/date-3.3.0.gemspec +%{gem_dir}/specifications/default/delegate-0.3.0.gemspec %{gem_dir}/specifications/default/did_you_mean-%{did_you_mean_version}.gemspec -%{gem_dir}/specifications/default/digest-3.1.0.gemspec -%{gem_dir}/specifications/default/drb-2.1.0.gemspec +%{gem_dir}/specifications/default/digest-3.1.1.gemspec +%{gem_dir}/specifications/default/drb-2.1.1.gemspec %{gem_dir}/specifications/default/english-0.7.1.gemspec %{gem_dir}/specifications/default/erb-%{erb_version}.gemspec %{gem_dir}/specifications/default/error_highlight-0.5.1.gemspec -%{gem_dir}/specifications/default/etc-1.4.0.gemspec -%{gem_dir}/specifications/default/fcntl-1.0.1.gemspec +%{gem_dir}/specifications/default/etc-1.4.1.gemspec +%{gem_dir}/specifications/default/fcntl-1.0.2.gemspec %{gem_dir}/specifications/default/fiddle-1.1.1.gemspec -%{gem_dir}/specifications/default/fileutils-1.6.0.gemspec +%{gem_dir}/specifications/default/fileutils-1.7.0.gemspec %{gem_dir}/specifications/default/find-0.1.1.gemspec -%{gem_dir}/specifications/default/forwardable-1.3.2.gemspec -%{gem_dir}/specifications/default/getoptlong-0.1.1.gemspec -%{gem_dir}/specifications/default/io-nonblock-0.1.1.gemspec +%{gem_dir}/specifications/default/forwardable-1.3.3.gemspec +%{gem_dir}/specifications/default/getoptlong-0.2.0.gemspec +%{gem_dir}/specifications/default/io-nonblock-0.2.0.gemspec %{gem_dir}/specifications/default/io-wait-0.3.0.pre.gemspec -%{gem_dir}/specifications/default/ipaddr-1.2.4.gemspec -%{gem_dir}/specifications/default/logger-1.5.1.gemspec -%{gem_dir}/specifications/default/mutex_m-0.1.1.gemspec -%{gem_dir}/specifications/default/net-http-0.3.0.gemspec -%{gem_dir}/specifications/default/net-protocol-0.1.3.gemspec -%{gem_dir}/specifications/default/nkf-0.1.1.gemspec +%{gem_dir}/specifications/default/ipaddr-1.2.5.gemspec +%{gem_dir}/specifications/default/logger-1.5.2.gemspec +%{gem_dir}/specifications/default/mutex_m-0.1.2.gemspec +%{gem_dir}/specifications/default/net-http-0.3.1.gemspec +%{gem_dir}/specifications/default/net-protocol-0.2.0.gemspec +%{gem_dir}/specifications/default/nkf-0.1.2.gemspec %{gem_dir}/specifications/default/observer-0.1.1.gemspec %{gem_dir}/specifications/default/open3-0.1.1.gemspec -%{gem_dir}/specifications/default/open-uri-0.2.0.gemspec -%{gem_dir}/specifications/default/optparse-0.2.0.gemspec +%{gem_dir}/specifications/default/open-uri-0.3.0.gemspec +%{gem_dir}/specifications/default/optparse-0.3.0.gemspec %{gem_dir}/specifications/default/openssl-%{openssl_version}.gemspec %{gem_dir}/specifications/default/ostruct-0.5.5.gemspec -%{gem_dir}/specifications/default/pathname-0.2.0.gemspec -%{gem_dir}/specifications/default/pp-0.3.0.gemspec +%{gem_dir}/specifications/default/pathname-0.2.1.gemspec +%{gem_dir}/specifications/default/pp-0.4.0.gemspec %{gem_dir}/specifications/default/prettyprint-0.1.1.gemspec -%{gem_dir}/specifications/default/pstore-0.1.1.gemspec +%{gem_dir}/specifications/default/pstore-0.1.2.gemspec %{gem_dir}/specifications/default/racc-%{racc_version}.gemspec %{gem_dir}/specifications/default/readline-0.0.3.gemspec %{gem_dir}/specifications/default/readline-ext-0.1.4.gemspec %{gem_dir}/specifications/default/reline-0.3.1.gemspec -%{gem_dir}/specifications/default/resolv-0.2.1.gemspec +%{gem_dir}/specifications/default/resolv-0.2.2.gemspec %{gem_dir}/specifications/default/resolv-replace-0.1.0.gemspec %{gem_dir}/specifications/default/rinda-0.1.1.gemspec %{gem_dir}/specifications/default/ruby2_keywords-0.0.5.gemspec -%{gem_dir}/specifications/default/securerandom-0.2.0.gemspec +%{gem_dir}/specifications/default/securerandom-0.2.1.gemspec %{gem_dir}/specifications/default/set-1.0.3.gemspec %{gem_dir}/specifications/default/shellwords-0.1.0.gemspec %{gem_dir}/specifications/default/singleton-0.1.1.gemspec @@ -1297,15 +1297,15 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %{gem_dir}/specifications/default/syslog-0.1.0.gemspec %{gem_dir}/specifications/default/tempfile-0.1.2.gemspec %{gem_dir}/specifications/default/time-0.2.0.gemspec -%{gem_dir}/specifications/default/timeout-0.3.0.gemspec -%{gem_dir}/specifications/default/tmpdir-0.1.2.gemspec -%{gem_dir}/specifications/default/tsort-0.1.0.gemspec -%{gem_dir}/specifications/default/un-0.2.0.gemspec -%{gem_dir}/specifications/default/uri-0.11.0.gemspec +%{gem_dir}/specifications/default/timeout-0.3.1.gemspec +%{gem_dir}/specifications/default/tmpdir-0.1.3.gemspec +%{gem_dir}/specifications/default/tsort-0.1.1.gemspec +%{gem_dir}/specifications/default/un-0.2.1.gemspec +%{gem_dir}/specifications/default/uri-0.12.0.gemspec %{gem_dir}/specifications/default/weakref-0.1.1.gemspec #%%{gem_dir}/specifications/default/win32ole-1.8.8.gemspec %{gem_dir}/specifications/default/yaml-0.2.0.gemspec -%{gem_dir}/specifications/default/zlib-2.1.1.gemspec +%{gem_dir}/specifications/default/zlib-3.0.0.gemspec %{gem_dir}/gems/erb-%{erb_version} # Use standalone rubygem-racc if Racc binary is required. Shipping this @@ -1540,7 +1540,7 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %changelog * Thu Nov 24 2022 Vít Ondruch - 3.2.0-173 -- Upgrade to Ruby 3.2.0 (0436f1e15a). +- Upgrade to Ruby 3.2.0-rc1. * Tue Nov 22 2022 Vít Ondruch - 3.1.2-171 - Re-disable package notes. It causes additional issues with installing binary From f630868b9fdf1dcb948c196c54cff9fcb9b3aa42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 8 Dec 2022 18:05:18 +0100 Subject: [PATCH 17/26] Disable MJIT test cases on i686 due to issues with PCH. --- ruby.spec | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ruby.spec b/ruby.spec index 3d500af..a231c3d 100644 --- a/ruby.spec +++ b/ruby.spec @@ -985,6 +985,13 @@ mv test/fiddle/test_closure.rb{,.disable} DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunc#test_qsort1/" DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" +%ifarch i686 +# The MJIT test cases are failing so often, that it is recently impossible +# to get past the test cases :/ +# https://bugzilla.redhat.com/show_bug.cgi?id=2125026 +mv test/ruby/test_jit.rb{,.disable} || : +%endif + # Give an option to increase the timeout in tests. # https://bugs.ruby-lang.org/issues/16921 %{?test_timeout_scale:RUBY_TEST_TIMEOUT_SCALE="%{test_timeout_scale}"} \ @@ -1539,6 +1546,9 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" %changelog +* Thu Dec 08 2022 Vít Ondruch - 3.1.3-173 +- Disable MJIT test cases on i686 due to issues with PCH. + * Thu Nov 24 2022 Vít Ondruch - 3.2.0-173 - Upgrade to Ruby 3.2.0-rc1. From 7d6f8a3ef76335bdb03430f8ba61e0df3d1f75f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Fri, 9 Dec 2022 14:20:05 +0100 Subject: [PATCH 18/26] Upgrade to Ruby 3.2.0 (11acb7f7bc). --- ruby-2.7.0-Initialize-ABRT-hook.patch | 2 +- ruby.spec | 34 +++++++++++++-------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ruby-2.7.0-Initialize-ABRT-hook.patch b/ruby-2.7.0-Initialize-ABRT-hook.patch index 5c22bd1..18d7f60 100644 --- a/ruby-2.7.0-Initialize-ABRT-hook.patch +++ b/ruby-2.7.0-Initialize-ABRT-hook.patch @@ -57,7 +57,7 @@ diff --git a/ruby.c b/ruby.c index 60c57d6259..1eec16f2c8 100644 --- a/ruby.c +++ b/ruby.c -@@ -1573,10 +1573,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) +@@ -1574,10 +1574,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) void Init_builtin_features(void); diff --git a/ruby.spec b/ruby.spec index a231c3d..ba603e1 100644 --- a/ruby.spec +++ b/ruby.spec @@ -7,10 +7,10 @@ %global ruby_release %{ruby_version} # Specify the named version. It has precedense to revision. -%global milestone rc1 +#%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -#%%global revision 0436f1e15a +%global revision 11acb7f7bc %global ruby_archive %{name}-%{ruby_version} @@ -47,13 +47,13 @@ %global did_you_mean_version 1.6.2 %global erb_version 4.0.2 %global io_console_version 0.5.11 -%global irb_version 1.5.1 -%global json_version 2.6.2 +%global irb_version 1.6.0 +%global json_version 2.6.3 %global openssl_version 3.1.0.pre -%global psych_version 5.0.0 +%global psych_version 5.0.1 %global racc_version 1.6.1 %global rdoc_version 6.5.0 -%global stringio_version 3.0.3 +%global stringio_version 3.0.4 # Bundled gems. %global minitest_version 5.16.3 @@ -97,7 +97,7 @@ Summary: An interpreter of object-oriented scripting language Name: ruby Version: %{ruby_version}%{?development_release} -Release: 173 +Release: 174%{?dist} # Public Domain for example for: include/ruby/st.h, strftime.c, missing/*, ... # MIT and CCO: ccan/* # zlib: ext/digest/md5/md5.*, ext/nkf/nkf-utf8/nkf.c @@ -1252,8 +1252,8 @@ mv test/ruby/test_jit.rb{,.disable} || : %{gem_dir}/specifications/default/base64-0.1.1.gemspec %{gem_dir}/specifications/default/benchmark-0.2.1.gemspec %{gem_dir}/specifications/default/cgi-0.3.6.gemspec -%{gem_dir}/specifications/default/csv-3.2.2.gemspec -%{gem_dir}/specifications/default/date-3.3.0.gemspec +%{gem_dir}/specifications/default/csv-3.2.6.gemspec +%{gem_dir}/specifications/default/date-3.3.1.gemspec %{gem_dir}/specifications/default/delegate-0.3.0.gemspec %{gem_dir}/specifications/default/did_you_mean-%{did_you_mean_version}.gemspec %{gem_dir}/specifications/default/digest-3.1.1.gemspec @@ -1261,7 +1261,7 @@ mv test/ruby/test_jit.rb{,.disable} || : %{gem_dir}/specifications/default/english-0.7.1.gemspec %{gem_dir}/specifications/default/erb-%{erb_version}.gemspec %{gem_dir}/specifications/default/error_highlight-0.5.1.gemspec -%{gem_dir}/specifications/default/etc-1.4.1.gemspec +%{gem_dir}/specifications/default/etc-1.4.2.gemspec %{gem_dir}/specifications/default/fcntl-1.0.2.gemspec %{gem_dir}/specifications/default/fiddle-1.1.1.gemspec %{gem_dir}/specifications/default/fileutils-1.7.0.gemspec @@ -1274,7 +1274,7 @@ mv test/ruby/test_jit.rb{,.disable} || : %{gem_dir}/specifications/default/logger-1.5.2.gemspec %{gem_dir}/specifications/default/mutex_m-0.1.2.gemspec %{gem_dir}/specifications/default/net-http-0.3.1.gemspec -%{gem_dir}/specifications/default/net-protocol-0.2.0.gemspec +%{gem_dir}/specifications/default/net-protocol-0.2.1.gemspec %{gem_dir}/specifications/default/nkf-0.1.2.gemspec %{gem_dir}/specifications/default/observer-0.1.1.gemspec %{gem_dir}/specifications/default/open3-0.1.1.gemspec @@ -1299,7 +1299,7 @@ mv test/ruby/test_jit.rb{,.disable} || : %{gem_dir}/specifications/default/shellwords-0.1.0.gemspec %{gem_dir}/specifications/default/singleton-0.1.1.gemspec %{gem_dir}/specifications/default/stringio-%{stringio_version}.gemspec -%{gem_dir}/specifications/default/strscan-3.0.1.gemspec +%{gem_dir}/specifications/default/strscan-3.0.5.gemspec %{gem_dir}/specifications/default/syntax_suggest-1.0.1.gemspec %{gem_dir}/specifications/default/syslog-0.1.0.gemspec %{gem_dir}/specifications/default/tempfile-0.1.2.gemspec @@ -1310,8 +1310,8 @@ mv test/ruby/test_jit.rb{,.disable} || : %{gem_dir}/specifications/default/un-0.2.1.gemspec %{gem_dir}/specifications/default/uri-0.12.0.gemspec %{gem_dir}/specifications/default/weakref-0.1.1.gemspec -#%%{gem_dir}/specifications/default/win32ole-1.8.8.gemspec -%{gem_dir}/specifications/default/yaml-0.2.0.gemspec +#%%{gem_dir}/specifications/default/win32ole-1.8.9.gemspec +%{gem_dir}/specifications/default/yaml-0.2.1.gemspec %{gem_dir}/specifications/default/zlib-3.0.0.gemspec %{gem_dir}/gems/erb-%{erb_version} @@ -1546,12 +1546,12 @@ mv test/ruby/test_jit.rb{,.disable} || : %changelog +* Fri Dec 09 2022 Vít Ondruch - 3.2.0-174 +- Upgrade to Ruby 3.2.0 (11acb7f7bc). + * Thu Dec 08 2022 Vít Ondruch - 3.1.3-173 - Disable MJIT test cases on i686 due to issues with PCH. -* Thu Nov 24 2022 Vít Ondruch - 3.2.0-173 -- Upgrade to Ruby 3.2.0-rc1. - * Tue Nov 22 2022 Vít Ondruch - 3.1.2-171 - Re-disable package notes. It causes additional issues with installing binary gems. From 891bd5c973a3f39a30438059b96171a023c7d069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Mon, 12 Dec 2022 16:45:31 +0100 Subject: [PATCH 19/26] Use full `ruby_version` for IRB dependencies. Currnently, the dependencies do not work properly: ~~~ $ rpmdev-vercmp 3.2.0~20221207rc1-1 3.2.0 3.2.0~20221207rc1-1 < 3.2.0 ~~~ This results in DNF erros such as: ~~~ Error: Problem: cannot install the best candidate for the job - nothing provides ruby-default-gems >= 3.2.0 needed by rubygem-irb-1.5.1-173.noarch (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages) ~~~ --- ruby.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ruby.spec b/ruby.spec index ba603e1..10716d4 100644 --- a/ruby.spec +++ b/ruby.spec @@ -310,14 +310,14 @@ Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} # ruby-default-gems is required to run irb. # https://bugs.ruby-lang.org/issues/16951 -Requires: ruby-default-gems >= %{ruby_version} +Requires: ruby-default-gems >= %{ruby_version}%{?development_release} Recommends: rubygem(rdoc) >= %{rdoc_version} Provides: irb = %{version}-%{release} Provides: rubygem(irb) = %{version}-%{release} # Obsoleted by Ruby 2.6 in F30 timeframe. -Provides: ruby(irb) = %{ruby_version}-%{release} -Provides: ruby-irb = %{ruby_version}-%{release} -Obsoletes: ruby-irb < %{ruby_version}-%{release} +Provides: ruby(irb) = %{ruby_version}%{?development_release}-%{release} +Provides: ruby-irb = %{ruby_version}%{?development_release}-%{release} +Obsoletes: ruby-irb < %{ruby_version}%{?development_release}-%{release} BuildArch: noarch %description -n rubygem-irb From 3253c445d8b2ed4f4c23e647202729666c53ce04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Mon, 12 Dec 2022 16:54:01 +0100 Subject: [PATCH 20/26] Upgrade to Ruby 3.2.0 (11acb7f7bc). --- ruby.spec | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/ruby.spec b/ruby.spec index 10716d4..7f93c50 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision 11acb7f7bc +%global revision ece6246057 %global ruby_archive %{name}-%{ruby_version} @@ -28,8 +28,8 @@ # Bundled libraries versions %global rubygems_version 3.4.0.dev -%global rubygems_molinillo_version 0.7.0 -%global rubygems_optparse_version 0.2.0 +%global rubygems_molinillo_version 0.8.0 +%global rubygems_optparse_version 0.3.0 %global rubygems_tsort_version 0.1.0 # Default gems. @@ -39,7 +39,6 @@ %global bundler_pub_grub_version 0.5.0 %global bundler_net_http_persistent_version 4.0.1 %global bundler_thor_version 1.2.1 -%global bundler_tmpdir_version 0.1.0 %global bundler_tsort_version 0.1.1 %global bundler_uri_version 0.10.1 @@ -434,7 +433,6 @@ Provides: bundled(rubygem-fileutils) = %{bundler_fileutils_version} Provides: bundled(rubygem-pub_grub) = %{bundler_pub_grub_version} Provides: bundled(rubygem-net-http-persisntent) = %{bundler_net_http_persistent_version} Provides: bundled(rubygem-thor) = %{bundler_thor_version} -Provides: bundled(rubygem-tmpdir) = %{bundler_tmpdir_version} Provides: bundled(rubygem-uri) = %{bundler_uri_version} BuildArch: noarch @@ -917,13 +915,6 @@ make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ exit 1 if Bundler::Thor::VERSION != '%{bundler_thor_version}'; \ \"" -# tmpdir. -# TODO: There is no version in bundled tmpdir yet. -#%%{global bundler_tmpdir_version} -make -C %{_vpath_builddir} -s runruby TESTRUN_SCRIPT="-e \" \ - module Bundler; end; \ - require 'bundler/vendor/tmpdir/lib/tmpdir' \"" - # tsort # TODO: Provide some real version test if version is available. #%%{global bundler_tsort_version} @@ -1547,7 +1538,7 @@ mv test/ruby/test_jit.rb{,.disable} || : %changelog * Fri Dec 09 2022 Vít Ondruch - 3.2.0-174 -- Upgrade to Ruby 3.2.0 (11acb7f7bc). +- Upgrade to Ruby 3.2.0 (ece6246057). * Thu Dec 08 2022 Vít Ondruch - 3.1.3-173 - Disable MJIT test cases on i686 due to issues with PCH. From b68b6f715411f0c7d01edddace2fc6624aacba6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Wed, 21 Dec 2022 14:49:48 +0100 Subject: [PATCH 21/26] Upgrade to Ruby 3.2.0 (6af6857ecf). --- ...0-Enable-configuration-of-archlibdir.patch | 2 +- ...ed-paths-when-empty-version-string-i.patch | 2 +- ruby-2.1.0-always-use-i386.patch | 2 +- ruby-2.1.0-custom-rubygems-location.patch | 4 +- ruby-2.3.0-ruby_version.patch | 6 +- ruby-2.7.0-Initialize-ABRT-hook.patch | 2 +- ruby.spec | 60 +++++++++++-------- 7 files changed, 43 insertions(+), 35 deletions(-) diff --git a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index 2771d9b..65882be 100644 --- a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch +++ b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index d261ea57b5..3c13076b82 100644 --- a/configure.ac +++ b/configure.ac -@@ -3404,6 +3404,11 @@ AS_IF([test ${multiarch+set}], [ +@@ -3410,6 +3410,11 @@ AS_IF([test ${multiarch+set}], [ ]) archlibdir='${libdir}/${arch}' diff --git a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index fe68a98..2a6261b 100644 --- a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac index c42436c23d..d261ea57b5 100644 --- a/configure.ac +++ b/configure.ac -@@ -4189,7 +4189,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -4195,7 +4195,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index 0d33019..05bbd3a 100644 --- a/ruby-2.1.0-always-use-i386.patch +++ b/ruby-2.1.0-always-use-i386.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index 3c13076b82..93af30321d 100644 --- a/configure.ac +++ b/configure.ac -@@ -4253,6 +4253,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -4259,6 +4259,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 diff --git a/ruby-2.1.0-custom-rubygems-location.patch b/ruby-2.1.0-custom-rubygems-location.patch index 432cf72..e57500c 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac index 93af30321d..bc13397e0e 100644 --- a/configure.ac +++ b/configure.ac -@@ -4225,6 +4225,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -4231,6 +4231,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='' -@@ -4249,6 +4253,7 @@ AC_SUBST(sitearchdir)dnl +@@ -4255,6 +4259,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index 931357d..32b3069 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac index 80b137e380..63cd3b4f8b 100644 --- a/configure.ac +++ b/configure.ac -@@ -4139,9 +4139,6 @@ AS_CASE(["$target_os"], +@@ -4145,9 +4145,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], -@@ -4164,57 +4161,63 @@ AC_ARG_WITH(ridir, +@@ -4170,57 +4167,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) -@@ -4231,6 +4234,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -4237,6 +4240,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl diff --git a/ruby-2.7.0-Initialize-ABRT-hook.patch b/ruby-2.7.0-Initialize-ABRT-hook.patch index 18d7f60..b0aace4 100644 --- a/ruby-2.7.0-Initialize-ABRT-hook.patch +++ b/ruby-2.7.0-Initialize-ABRT-hook.patch @@ -57,7 +57,7 @@ diff --git a/ruby.c b/ruby.c index 60c57d6259..1eec16f2c8 100644 --- a/ruby.c +++ b/ruby.c -@@ -1574,10 +1574,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) +@@ -1572,10 +1572,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) void Init_builtin_features(void); diff --git a/ruby.spec b/ruby.spec index 7f93c50..447524f 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision ece6246057 +%global revision 6af6857ecf %global ruby_archive %{name}-%{ruby_version} @@ -35,18 +35,18 @@ # Default gems. %global bundler_version 2.4.0.dev %global bundler_connection_pool_version 2.3.0 -%global bundler_fileutils_version 1.4.1 +%global bundler_fileutils_version 1.7.0 %global bundler_pub_grub_version 0.5.0 %global bundler_net_http_persistent_version 4.0.1 %global bundler_thor_version 1.2.1 %global bundler_tsort_version 0.1.1 -%global bundler_uri_version 0.10.1 +%global bundler_uri_version 0.12.0 %global bigdecimal_version 3.1.3 -%global did_you_mean_version 1.6.2 +%global did_you_mean_version 1.6.3 %global erb_version 4.0.2 -%global io_console_version 0.5.11 -%global irb_version 1.6.0 +%global io_console_version 0.6.0 +%global irb_version 1.6.2 %global json_version 2.6.3 %global openssl_version 3.1.0.pre %global psych_version 5.0.1 @@ -58,16 +58,16 @@ %global minitest_version 5.16.3 %global power_assert_version 2.0.2 %global rake_version 13.0.6 -%global test_unit_version 3.5.5 +%global test_unit_version 3.5.7 %global rexml_version 3.2.5 %global rss_version 0.2.9 %global net_ftp_version 0.2.0 -%global net_imap_version 0.3.1 +%global net_imap_version 0.3.3 %global net_pop_version 0.1.2 %global net_smtp_version 0.3.3 %global matrix_version 0.4.2 %global prime_version 0.1.2 -%global rbs_version 2.8.1 +%global rbs_version 2.8.2 %global typeprof_version 0.21.3 %global debug_version 1.7.0 @@ -983,6 +983,11 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/Fiddle::TestFunction#test_argument_count/" mv test/ruby/test_jit.rb{,.disable} || : %endif +# Disable `TestGCCompact#test_moving_objects_between_size_pools` due to: +# `NoMethodError: undefined method `>=' for nil:NilClass` error. +# https://bugs.ruby-lang.org/issues/19248 +DISABLE_TESTS="$DISABLE_TESTS -n !/TestGCCompact#test_moving_objects_between_size_pools/" + # Give an option to increase the timeout in tests. # https://bugs.ruby-lang.org/issues/16921 %{?test_timeout_scale:RUBY_TEST_TIMEOUT_SCALE="%{test_timeout_scale}"} \ @@ -1239,17 +1244,17 @@ mv test/ruby/test_jit.rb{,.disable} || : %{_rpmconfigdir}/rubygems.con %files default-gems -%{gem_dir}/specifications/default/abbrev-0.1.0.gemspec +%{gem_dir}/specifications/default/abbrev-0.1.1.gemspec %{gem_dir}/specifications/default/base64-0.1.1.gemspec %{gem_dir}/specifications/default/benchmark-0.2.1.gemspec %{gem_dir}/specifications/default/cgi-0.3.6.gemspec %{gem_dir}/specifications/default/csv-3.2.6.gemspec -%{gem_dir}/specifications/default/date-3.3.1.gemspec +%{gem_dir}/specifications/default/date-3.3.3.gemspec %{gem_dir}/specifications/default/delegate-0.3.0.gemspec %{gem_dir}/specifications/default/did_you_mean-%{did_you_mean_version}.gemspec %{gem_dir}/specifications/default/digest-3.1.1.gemspec %{gem_dir}/specifications/default/drb-2.1.1.gemspec -%{gem_dir}/specifications/default/english-0.7.1.gemspec +%{gem_dir}/specifications/default/english-0.7.2.gemspec %{gem_dir}/specifications/default/erb-%{erb_version}.gemspec %{gem_dir}/specifications/default/error_highlight-0.5.1.gemspec %{gem_dir}/specifications/default/etc-1.4.2.gemspec @@ -1260,15 +1265,15 @@ mv test/ruby/test_jit.rb{,.disable} || : %{gem_dir}/specifications/default/forwardable-1.3.3.gemspec %{gem_dir}/specifications/default/getoptlong-0.2.0.gemspec %{gem_dir}/specifications/default/io-nonblock-0.2.0.gemspec -%{gem_dir}/specifications/default/io-wait-0.3.0.pre.gemspec +%{gem_dir}/specifications/default/io-wait-0.3.0.gemspec %{gem_dir}/specifications/default/ipaddr-1.2.5.gemspec -%{gem_dir}/specifications/default/logger-1.5.2.gemspec +%{gem_dir}/specifications/default/logger-1.5.3.gemspec %{gem_dir}/specifications/default/mutex_m-0.1.2.gemspec -%{gem_dir}/specifications/default/net-http-0.3.1.gemspec +%{gem_dir}/specifications/default/net-http-0.3.2.gemspec %{gem_dir}/specifications/default/net-protocol-0.2.1.gemspec %{gem_dir}/specifications/default/nkf-0.1.2.gemspec %{gem_dir}/specifications/default/observer-0.1.1.gemspec -%{gem_dir}/specifications/default/open3-0.1.1.gemspec +%{gem_dir}/specifications/default/open3-0.1.2.gemspec %{gem_dir}/specifications/default/open-uri-0.3.0.gemspec %{gem_dir}/specifications/default/optparse-0.3.0.gemspec %{gem_dir}/specifications/default/openssl-%{openssl_version}.gemspec @@ -1279,28 +1284,28 @@ mv test/ruby/test_jit.rb{,.disable} || : %{gem_dir}/specifications/default/pstore-0.1.2.gemspec %{gem_dir}/specifications/default/racc-%{racc_version}.gemspec %{gem_dir}/specifications/default/readline-0.0.3.gemspec -%{gem_dir}/specifications/default/readline-ext-0.1.4.gemspec -%{gem_dir}/specifications/default/reline-0.3.1.gemspec +%{gem_dir}/specifications/default/readline-ext-0.1.5.gemspec +%{gem_dir}/specifications/default/reline-0.3.2.gemspec %{gem_dir}/specifications/default/resolv-0.2.2.gemspec -%{gem_dir}/specifications/default/resolv-replace-0.1.0.gemspec +%{gem_dir}/specifications/default/resolv-replace-0.1.1.gemspec %{gem_dir}/specifications/default/rinda-0.1.1.gemspec %{gem_dir}/specifications/default/ruby2_keywords-0.0.5.gemspec -%{gem_dir}/specifications/default/securerandom-0.2.1.gemspec +%{gem_dir}/specifications/default/securerandom-0.2.2.gemspec %{gem_dir}/specifications/default/set-1.0.3.gemspec %{gem_dir}/specifications/default/shellwords-0.1.0.gemspec %{gem_dir}/specifications/default/singleton-0.1.1.gemspec %{gem_dir}/specifications/default/stringio-%{stringio_version}.gemspec %{gem_dir}/specifications/default/strscan-3.0.5.gemspec -%{gem_dir}/specifications/default/syntax_suggest-1.0.1.gemspec -%{gem_dir}/specifications/default/syslog-0.1.0.gemspec -%{gem_dir}/specifications/default/tempfile-0.1.2.gemspec -%{gem_dir}/specifications/default/time-0.2.0.gemspec +%{gem_dir}/specifications/default/syntax_suggest-1.0.2.gemspec +%{gem_dir}/specifications/default/syslog-0.1.1.gemspec +%{gem_dir}/specifications/default/tempfile-0.1.3.gemspec +%{gem_dir}/specifications/default/time-0.2.1.gemspec %{gem_dir}/specifications/default/timeout-0.3.1.gemspec %{gem_dir}/specifications/default/tmpdir-0.1.3.gemspec %{gem_dir}/specifications/default/tsort-0.1.1.gemspec %{gem_dir}/specifications/default/un-0.2.1.gemspec %{gem_dir}/specifications/default/uri-0.12.0.gemspec -%{gem_dir}/specifications/default/weakref-0.1.1.gemspec +%{gem_dir}/specifications/default/weakref-0.1.2.gemspec #%%{gem_dir}/specifications/default/win32ole-1.8.9.gemspec %{gem_dir}/specifications/default/yaml-0.2.1.gemspec %{gem_dir}/specifications/default/zlib-3.0.0.gemspec @@ -1403,7 +1408,10 @@ mv test/ruby/test_jit.rb{,.disable} || : %license %{gem_dir}/gems/net-imap-%{net_imap_version}/LICENSE.txt %doc %{gem_dir}/gems/net-imap-%{net_imap_version}/README.md %{gem_dir}/gems/net-imap-%{net_imap_version}/Rakefile +%{gem_dir}/gems/net-imap-%{net_imap_version}/benchmarks +%{gem_dir}/gems/net-imap-%{net_imap_version}/docs %{gem_dir}/gems/net-imap-%{net_imap_version}/lib +%{gem_dir}/gems/net-imap-%{net_imap_version}/rakelib %{gem_dir}/specifications/net-imap-%{net_imap_version}.gemspec %dir %{gem_dir}/gems/net-pop-%{net_pop_version} @@ -1538,7 +1546,7 @@ mv test/ruby/test_jit.rb{,.disable} || : %changelog * Fri Dec 09 2022 Vít Ondruch - 3.2.0-174 -- Upgrade to Ruby 3.2.0 (ece6246057). +- Upgrade to Ruby 3.2.0 (6af6857ecf). * Thu Dec 08 2022 Vít Ondruch - 3.1.3-173 - Disable MJIT test cases on i686 due to issues with PCH. From 3c1be9f9c2c1d8679eebb9a185fefa15baa1bcfc Mon Sep 17 00:00:00 2001 From: Jun Aruga Date: Fri, 2 Dec 2022 13:23:33 +0000 Subject: [PATCH 22/26] Enable YJIT support in Ruby 3.2.0. YJIT was introduced as a new feature in Ruby 3.1.0.[1] However, since the commit[2], the YJIT feature support was disabled as a default[3], and we need to set the `--enable-yjit` to the `configure` script to enable the YJIT support, and as the YJIT source code was ported from C to the Rust source, the `rustc` is required to build it. Note that the `rustc` is not used in the runtime process of the YJIT, because the YJIT does not generate the Rust code.[4] The static library `libyjit.a` built from the ``yjit/src/**/*.rs is linked in the build process to create the `libruby.so.3.2.0`, `miniruby` and `ruby` binary files.[4] In the Ruby 3.2.0, YJIT supports only the x86_64 and the aarch64 CPU environments.[1][5] The YJIT test files are executed in the `make check` if the YJIT is supported by `--enable-yjit`. That is equivalent with that the `test/lib/jit_support.rb#yjit_supported?` is `true`.[6] ``` test/ruby/test_yjit_exit_locations.rb test/ruby/test_yjit.rb ``` Note the Ruby's behavior is the same if the the `ruby`'s command `--yjit` or `--yjit-*` options are not specified. [1] https://www.ruby-lang.org/en/news/2021/12/25/ruby-3-1-0-released/ [2] https://github.com/ruby/ruby/commit/f90549cd38518231a6a74432fe1168c943a7cc18 [3] https://src.fedoraproject.org/rpms/ruby/pull-request/139 [4] https://bugs.ruby-lang.org/issues/19120 [5] https://www.ruby-lang.org/en/news/2022/09/09/ruby-3-2-0-preview2-released/ [6] https://github.com/ruby/ruby/commit/1d64a5a7c09d1029508b6b3cb3d04e5a939bc8f8 --- ruby.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ruby.spec b/ruby.spec index 447524f..0c519e3 100644 --- a/ruby.spec +++ b/ruby.spec @@ -82,6 +82,11 @@ %bcond_without gmp %bcond_without hostname %bcond_without systemtap +# YJIT is supported on x86_64 and aarch64. +# https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md +%ifarch x86_64 aarch64 +%bcond_without yjit +%endif # Enable test when building on local. %bcond_with bundler_tests @@ -183,6 +188,7 @@ BuildRequires: multilib-rpm-config BuildRequires: gcc BuildRequires: make BuildRequires: zlib-devel +%{?with_yjit:BuildRequires: %{_bindir}/rustc} # The bundler/spec/runtime/setup_spec.rb requires the command `man`. %{?with_bundler_tests:BuildRequires: %{_bindir}/man} @@ -655,6 +661,7 @@ pushd %{_vpath_builddir} --enable-shared \ --with-ruby-version='' \ --enable-multiarch \ + %{?with_yjit: --enable-yjit} \ popd From df836f4499ff978f990f36497d9a6f09e9be1252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 22 Dec 2022 15:38:19 +0100 Subject: [PATCH 23/26] Upgrade to Ruby 3.2.0 (d7388f720c). --- ruby.spec | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ruby.spec b/ruby.spec index 0c519e3..d77605c 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision 6af6857ecf +%global revision d7388f720c %global ruby_archive %{name}-%{ruby_version} @@ -56,7 +56,7 @@ # Bundled gems. %global minitest_version 5.16.3 -%global power_assert_version 2.0.2 +%global power_assert_version 2.0.3 %global rake_version 13.0.6 %global test_unit_version 3.5.7 %global rexml_version 3.2.5 @@ -101,7 +101,7 @@ Summary: An interpreter of object-oriented scripting language Name: ruby Version: %{ruby_version}%{?development_release} -Release: 174%{?dist} +Release: 175%{?dist} # Public Domain for example for: include/ruby/st.h, strftime.c, missing/*, ... # MIT and CCO: ccan/* # zlib: ext/digest/md5/md5.*, ext/nkf/nkf-utf8/nkf.c @@ -1069,7 +1069,8 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/TestGCCompact#test_moving_objects_between_siz %{ruby_libdir}/ipaddr.rb %{ruby_libdir}/kconv.rb %{ruby_libdir}/logger* -%{ruby_libdir}/mjit +%dir %{ruby_libdir}/ruby_vm +%{ruby_libdir}/ruby_vm/mjit %{ruby_libdir}/mkmf.rb %{ruby_libdir}/monitor.rb %{ruby_libdir}/mutex_m.rb @@ -1282,7 +1283,7 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/TestGCCompact#test_moving_objects_between_siz %{gem_dir}/specifications/default/observer-0.1.1.gemspec %{gem_dir}/specifications/default/open3-0.1.2.gemspec %{gem_dir}/specifications/default/open-uri-0.3.0.gemspec -%{gem_dir}/specifications/default/optparse-0.3.0.gemspec +%{gem_dir}/specifications/default/optparse-0.3.1.gemspec %{gem_dir}/specifications/default/openssl-%{openssl_version}.gemspec %{gem_dir}/specifications/default/ostruct-0.5.5.gemspec %{gem_dir}/specifications/default/pathname-0.2.1.gemspec @@ -1552,8 +1553,8 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/TestGCCompact#test_moving_objects_between_siz %changelog -* Fri Dec 09 2022 Vít Ondruch - 3.2.0-174 -- Upgrade to Ruby 3.2.0 (6af6857ecf). +* Thu Dec 22 2022 Vít Ondruch - 3.2.0-175 +- Upgrade to Ruby 3.2.0 (d7388f720c). * Thu Dec 08 2022 Vít Ondruch - 3.1.3-173 - Disable MJIT test cases on i686 due to issues with PCH. From f3a9d09bd414e48a36aea589ff3abeb3203d8ecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 22 Dec 2022 19:27:07 +0100 Subject: [PATCH 24/26] SPDX licenses. --- ruby.spec | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/ruby.spec b/ruby.spec index d77605c..081b077 100644 --- a/ruby.spec +++ b/ruby.spec @@ -102,11 +102,13 @@ Summary: An interpreter of object-oriented scripting language Name: ruby Version: %{ruby_version}%{?development_release} Release: 175%{?dist} +# BSD-3-Clause: missing/{crypt,mt19937,setproctitle}.c +# ISC: missing/strl{cat,cpy}.c # Public Domain for example for: include/ruby/st.h, strftime.c, missing/*, ... # MIT and CCO: ccan/* # zlib: ext/digest/md5/md5.*, ext/nkf/nkf-utf8/nkf.c -# UCD: some of enc/trans/**/*.src -License: (Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD +# Unicode-DFS-2015: some of enc/trans/**/*.src +License: (Ruby OR BSD-2-Clause) AND BSD-3-Clause AND ICS AND Public Domain AND MIT and CC0 AND zlib AND Unicode-DFS-2015 URL: https://www.ruby-lang.org/ Source0: https://cache.ruby-lang.org/pub/%{name}/%{major_minor_version}/%{ruby_archive}.tar.xz Source1: operating_system.rb @@ -219,7 +221,6 @@ Ruby or an application embedding Ruby. %package libs Summary: Libraries necessary to run Ruby -License: Ruby or BSD Provides: ruby(release) = %{ruby_release} # Virtual provides for CCAN copylibs. @@ -252,7 +253,10 @@ This package includes the libruby, necessary to run Ruby. %package -n rubygems Summary: The Ruby standard for packaging ruby libraries Version: %{rubygems_version} -License: Ruby or MIT +# BSD-2-Clause: lib/rubygems/tsort/ +# BSD-2-Clause OR RUBY: lib/rubygems/optparse/ +# MIT: lib/rubygems/resolver/molinillo +License: (Ruby OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR RUBY) AND MIT Requires: ruby(release) Recommends: rubygem(bundler) >= %{bundler_version} Recommends: rubygem(rdoc) >= %{rdoc_version} @@ -272,7 +276,7 @@ libraries. %package -n rubygems-devel Summary: Macros and development tools for packaging RubyGems Version: %{rubygems_version} -License: Ruby or MIT +License: MIT Requires: ruby(rubygems) >= %{version}-%{release} # Needed for RDoc documentation format generation. Requires: rubygem(json) >= %{json_version} @@ -311,6 +315,7 @@ StdLib. %package -n rubygem-irb Summary: The Interactive Ruby Version: %{irb_version} +License: Ruby OR BSD-2-Clause Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} # ruby-default-gems is required to run irb. @@ -333,8 +338,10 @@ from the terminal. %package -n rubygem-rdoc Summary: A tool to generate HTML and command-line documentation for Ruby projects Version: %{rdoc_version} -# SIL: lib/rdoc/generator/template/darkfish/css/fonts.css -License: GPLv2 and Ruby and MIT and OFL +# 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 +License: GPL-2.0 AND Ruby AND BSD-3-Clause AND CC-BY-2.5 AND OFL-1.1-RFN Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Requires: rubygem(io-console) >= %{io_console_version} @@ -363,7 +370,7 @@ This package contains documentation for %{name}. %package -n rubygem-bigdecimal Summary: BigDecimal provides arbitrary-precision floating point decimal arithmetic Version: %{bigdecimal_version} -License: Ruby or BSD +License: Ruby OR BSD-2-Clause Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Provides: rubygem(bigdecimal) = %{version}-%{release} @@ -384,6 +391,7 @@ conversion between base 10 and base 2. %package -n rubygem-io-console Summary: IO/Console is a simple console utilizing library Version: %{io_console_version} +License: Ruby OR BSD-2-Clause Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Provides: rubygem(io-console) = %{version}-%{release} @@ -396,8 +404,8 @@ 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} -# UCD: ext/json/generator/generator.c -License: (Ruby or GPLv2) and UCD +# Unicode-DFS-2015: ext/json/ext/generator/generator.c +License: (Ruby OR BSD-2-Clause) AND Unicode-DFS-2015 Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Provides: rubygem(json) = %{version}-%{release} @@ -497,7 +505,7 @@ output. %package -n rubygem-power_assert Summary: Power Assert for Ruby Version: %{power_assert_version} -License: Ruby or BSD +License: Ruby OR BSD-2-Clause Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Provides: rubygem(power_assert) = %{version}-%{release} @@ -527,7 +535,7 @@ specified in standard Ruby syntax. %package -n rubygem-rbs Summary: Type signature for Ruby Version: %{rbs_version} -License: Ruby or BSD +License: Ruby OR BSD-2-Clause Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Provides: rubygem(rbs) = %{version}-%{release} @@ -541,8 +549,7 @@ definitions. Summary: An xUnit family unit testing framework for Ruby Version: %{test_unit_version} # lib/test/unit/diff.rb is a double license of the Ruby license and PSF license. -# lib/test-unit.rb is a dual license of the Ruby license and LGPLv2.1 or later. -License: (Ruby or BSD) and (Ruby or BSD or Python) and (Ruby or BSD or LGPLv2+) +License: (Ruby OR BSD-2-Clause) AND (Ruby OR BSD-2-Clause OR Python-2.0.1) Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Requires: rubygem(power_assert) @@ -559,7 +566,7 @@ writing tests, checking results and automated testing in Ruby. %package -n rubygem-rexml Summary: An XML toolkit for Ruby Version: %{rexml_version} -License: BSD +License: BSD-2-Clause URL: https://github.com/ruby/rexml Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -581,7 +588,7 @@ features such as XPath. %package -n rubygem-rss Summary: Family of libraries that support various formats of XML "feeds" Version: %{rss_version} -License: BSD +License: BSD-2-Clause URL: https://github.com/ruby/rss Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} From 631163e3b8a51ed610528181aabe0da008049bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Fri, 23 Dec 2022 10:03:04 +0100 Subject: [PATCH 25/26] Upgrade to Ruby 3.2.0 (c5eefb7f37). --- ...-2.1.0-Enable-configuration-of-archlibdir.patch | 2 +- ...licated-paths-when-empty-version-string-i.patch | 2 +- ruby-2.1.0-always-use-i386.patch | 2 +- ruby-2.1.0-custom-rubygems-location.patch | 4 ++-- ruby-2.3.0-ruby_version.patch | 6 +++--- ruby.spec | 14 +++++++------- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index 65882be..852a970 100644 --- a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch +++ b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index d261ea57b5..3c13076b82 100644 --- a/configure.ac +++ b/configure.ac -@@ -3410,6 +3410,11 @@ AS_IF([test ${multiarch+set}], [ +@@ -3405,6 +3405,11 @@ AS_IF([test ${multiarch+set}], [ ]) archlibdir='${libdir}/${arch}' diff --git a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index 2a6261b..c6c6e7f 100644 --- a/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac index c42436c23d..d261ea57b5 100644 --- a/configure.ac +++ b/configure.ac -@@ -4195,7 +4195,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -4190,7 +4190,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index 05bbd3a..549bee8 100644 --- a/ruby-2.1.0-always-use-i386.patch +++ b/ruby-2.1.0-always-use-i386.patch @@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac index 3c13076b82..93af30321d 100644 --- a/configure.ac +++ b/configure.ac -@@ -4259,6 +4259,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -4254,6 +4254,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 diff --git a/ruby-2.1.0-custom-rubygems-location.patch b/ruby-2.1.0-custom-rubygems-location.patch index e57500c..418a38a 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac index 93af30321d..bc13397e0e 100644 --- a/configure.ac +++ b/configure.ac -@@ -4231,6 +4231,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -4226,6 +4226,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='' -@@ -4255,6 +4259,7 @@ AC_SUBST(sitearchdir)dnl +@@ -4250,6 +4254,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index 32b3069..a5cca01 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac index 80b137e380..63cd3b4f8b 100644 --- a/configure.ac +++ b/configure.ac -@@ -4145,9 +4145,6 @@ AS_CASE(["$target_os"], +@@ -4140,9 +4140,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], -@@ -4170,57 +4167,63 @@ AC_ARG_WITH(ridir, +@@ -4165,57 +4162,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) -@@ -4237,6 +4240,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -4232,6 +4235,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl diff --git a/ruby.spec b/ruby.spec index 081b077..98a81a6 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision d7388f720c +%global revision c5eefb7f37 %global ruby_archive %{name}-%{ruby_version} @@ -48,9 +48,9 @@ %global io_console_version 0.6.0 %global irb_version 1.6.2 %global json_version 2.6.3 -%global openssl_version 3.1.0.pre +%global openssl_version 3.1.0 %global psych_version 5.0.1 -%global racc_version 1.6.1 +%global racc_version 1.6.2 %global rdoc_version 6.5.0 %global stringio_version 3.0.4 @@ -62,14 +62,14 @@ %global rexml_version 3.2.5 %global rss_version 0.2.9 %global net_ftp_version 0.2.0 -%global net_imap_version 0.3.3 +%global net_imap_version 0.3.4 %global net_pop_version 0.1.2 %global net_smtp_version 0.3.3 %global matrix_version 0.4.2 %global prime_version 0.1.2 %global rbs_version 2.8.2 %global typeprof_version 0.21.3 -%global debug_version 1.7.0 +%global debug_version 1.7.1 %global tapset_libdir %(echo %{_libdir} | sed 's/64//')* @@ -1560,8 +1560,8 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/TestGCCompact#test_moving_objects_between_siz %changelog -* Thu Dec 22 2022 Vít Ondruch - 3.2.0-175 -- Upgrade to Ruby 3.2.0 (d7388f720c). +* Fri Dec 23 2022 Vít Ondruch - 3.2.0-175 +- Upgrade to Ruby 3.2.0 (c5eefb7f37). * Thu Dec 08 2022 Vít Ondruch - 3.1.3-173 - Disable MJIT test cases on i686 due to issues with PCH. From e8a5d81a5b2d8db9fb642b383d17c38706857fb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Mon, 2 Jan 2023 15:19:45 +0100 Subject: [PATCH 26/26] Upgrade to Ruby 3.2.0. --- ...Revert-Fix-test-syntax-suggest-order.patch | 76 +++++++++++++++++++ ...rt-Test-syntax_suggest-by-make-check.patch | 70 +++++++++++++++++ ruby.spec | 24 ++++-- sources | 2 +- 4 files changed, 163 insertions(+), 9 deletions(-) create mode 100644 ruby-3.2.0-Revert-Fix-test-syntax-suggest-order.patch create mode 100644 ruby-3.2.0-Revert-Test-syntax_suggest-by-make-check.patch diff --git a/ruby-3.2.0-Revert-Fix-test-syntax-suggest-order.patch b/ruby-3.2.0-Revert-Fix-test-syntax-suggest-order.patch new file mode 100644 index 0000000..4f1a964 --- /dev/null +++ b/ruby-3.2.0-Revert-Fix-test-syntax-suggest-order.patch @@ -0,0 +1,76 @@ +From 5e2f8761b2342ee58f9689a7d62d48ec031e59c0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?V=C3=ADt=20Ondruch?= +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 +@@ -766,7 +766,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)" && \ +@@ -902,8 +903,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 \ +-- +2.38.1 + diff --git a/ruby-3.2.0-Revert-Test-syntax_suggest-by-make-check.patch b/ruby-3.2.0-Revert-Test-syntax_suggest-by-make-check.patch new file mode 100644 index 0000000..190fa1a --- /dev/null +++ b/ruby-3.2.0-Revert-Test-syntax_suggest-by-make-check.patch @@ -0,0 +1,70 @@ +From cf60e383a9c98da5cd75012f2aabfa4a2774aade Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?V=C3=ADt=20Ondruch?= +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 +@@ -766,8 +766,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 \ + ) +-- +2.38.1 + diff --git a/ruby.spec b/ruby.spec index 98a81a6..6c9a596 100644 --- a/ruby.spec +++ b/ruby.spec @@ -10,7 +10,7 @@ #%%global milestone rc1 # Keep the revision enabled for pre-releases from GIT. -%global revision c5eefb7f37 +#%%global revision c5eefb7f37 %global ruby_archive %{name}-%{ruby_version} @@ -27,13 +27,13 @@ %global rubygems_dir %{_datadir}/rubygems # Bundled libraries versions -%global rubygems_version 3.4.0.dev +%global rubygems_version 3.4.1 %global rubygems_molinillo_version 0.8.0 %global rubygems_optparse_version 0.3.0 %global rubygems_tsort_version 0.1.0 # Default gems. -%global bundler_version 2.4.0.dev +%global bundler_version 2.4.1 %global bundler_connection_pool_version 2.3.0 %global bundler_fileutils_version 1.7.0 %global bundler_pub_grub_version 0.5.0 @@ -101,7 +101,7 @@ Summary: An interpreter of object-oriented scripting language Name: ruby Version: %{ruby_version}%{?development_release} -Release: 175%{?dist} +Release: 176%{?dist} # BSD-3-Clause: missing/{crypt,mt19937,setproctitle}.c # ISC: missing/strl{cat,cpy}.c # Public Domain for example for: include/ruby/st.h, strftime.c, missing/*, ... @@ -165,6 +165,10 @@ Patch7: ruby-3.1.0-Don-t-query-RubyVM-FrozenCore-for-class-path.patch # Avoid possible timeout errors in TestBugReporter#test_bug_reporter_add. # https://bugs.ruby-lang.org/issues/16492 Patch8: ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch +# Disable syntax_suggest test suite, which tries to download its dependencies. +# https://bugs.ruby-lang.org/issues/19297 +Patch9: ruby-3.2.0-Revert-Fix-test-syntax-suggest-order.patch +Patch10: ruby-3.2.0-Revert-Test-syntax_suggest-by-make-check.patch Requires: %{name}-libs%{?_isa} = %{version}-%{release} Suggests: rubypick @@ -636,6 +640,8 @@ rm -rf ext/fiddle/libffi* %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 +%patch10 -p1 # Provide an example of usage of the tapset: cp -a %{SOURCE3} . @@ -1076,8 +1082,8 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/TestGCCompact#test_moving_objects_between_siz %{ruby_libdir}/ipaddr.rb %{ruby_libdir}/kconv.rb %{ruby_libdir}/logger* -%dir %{ruby_libdir}/ruby_vm -%{ruby_libdir}/ruby_vm/mjit +# https://bugs.ruby-lang.org/issues/19298 +%exclude %{ruby_libdir}/mjit %{ruby_libdir}/mkmf.rb %{ruby_libdir}/monitor.rb %{ruby_libdir}/mutex_m.rb @@ -1100,6 +1106,8 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/TestGCCompact#test_moving_objects_between_siz %{ruby_libdir}/resolv-replace.rb %{ruby_libdir}/rinda %{ruby_libdir}/ripper* +%dir %{ruby_libdir}/ruby_vm +%{ruby_libdir}/ruby_vm/mjit %{ruby_libdir}/securerandom.rb %{ruby_libdir}/set* %{ruby_libdir}/shellwords.rb @@ -1560,8 +1568,8 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/TestGCCompact#test_moving_objects_between_siz %changelog -* Fri Dec 23 2022 Vít Ondruch - 3.2.0-175 -- Upgrade to Ruby 3.2.0 (c5eefb7f37). +* Mon Jan 02 2023 Vít Ondruch - 3.2.0-176 +- Upgrade to Ruby 3.2.0. * Thu Dec 08 2022 Vít Ondruch - 3.1.3-173 - Disable MJIT test cases on i686 due to issues with PCH. diff --git a/sources b/sources index 9cefc8d..6cfaf8a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ruby-3.1.2.tar.xz) = 4a74e9efc6ea4b3eff4fec7534eb1fff4794d021531defc2e9937e53c6668db8ecdc0fff2bc23d5e6602d0df344a2caa85b31c5414309541e3d5313ec82b6e21 +SHA512 (ruby-3.2.0.tar.xz) = 733ecc6709470ee16916deeece9af1c76220ae95d17b2681116aff7f381d99bc3124b1b11b1c2336b2b29e468e91b90f158d5ae5fca810c6cf32a0b6234ae08e