From 86bf30d8717178ba224949064dcb974546255141 Mon Sep 17 00:00:00 2001 From: Jun Aruga Date: Tue, 11 Jun 2019 16:26:08 +0200 Subject: [PATCH] Update to Ruby 2.6.3 by merging Fedora master branch (commit: 1cc2a49) Resolves: rhbz#1672575 --- macros.rubygems | 2 +- ruby-1.9.3-mkmf-verbose.patch | 2 +- ...-additional-preludes-by-configuratio.patch | 10 +- ...0-Enable-configuration-of-archlibdir.patch | 2 +- ...ed-paths-when-empty-version-string-i.patch | 4 +- ruby-2.1.0-always-use-i386.patch | 2 +- ruby-2.1.0-custom-rubygems-location.patch | 29 +- ...2.3-Generate-preludes-using-miniruby.patch | 4 +- ruby-2.3.0-ruby_version.patch | 28 +- ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch | 4 +- ....0-Add-Gem.operating_system_defaults.patch | 80 ----- ...-C++-compiler-to-pass-the-test-suite.patch | 35 -- ...ssues-detected-by-code-analysis-tool.patch | 78 ----- ...6.0-config-support-include-directive.patch | 10 +- ....0-configure-fstack-protector-strong.patch | 43 --- ruby-2.6.0-library-options-to-MAINLIBS.patch | 177 ----------- ruby-2.6.0-rdoc-6.0.1-fix-template-typo.patch | 34 -- ...-2.6.0-use-larger-keys-for-SSL-tests.patch | 26 +- ruby.spec | 298 ++++++++++++------ ...when-its-failed-to-load-rdoc-library.patch | 24 ++ ...nd-introdcue-the-C-flag-to-gem-build.patch | 88 ++++++ rubygems.prov | 4 +- rubygems.req | 32 +- sources | 2 +- 24 files changed, 403 insertions(+), 615 deletions(-) delete mode 100644 ruby-2.5.0-Add-Gem.operating_system_defaults.patch delete mode 100644 ruby-2.5.1-Avoid-need-of-C++-compiler-to-pass-the-test-suite.patch delete mode 100644 ruby-2.6.0-Fix-issues-detected-by-code-analysis-tool.patch delete mode 100644 ruby-2.6.0-configure-fstack-protector-strong.patch delete mode 100644 ruby-2.6.0-library-options-to-MAINLIBS.patch delete mode 100644 ruby-2.6.0-rdoc-6.0.1-fix-template-typo.patch create mode 100644 rubygems-3.0.3-Avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch create mode 100644 rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch diff --git a/macros.rubygems b/macros.rubygems index d2e8514..532ea6c 100644 --- a/macros.rubygems +++ b/macros.rubygems @@ -21,7 +21,7 @@ %gem_install(d:n:) \ mkdir -p %{-d*}%{!?-d:.%{gem_dir}} \ \ -CONFIGURE_ARGS="--with-cflags='%{optflags}' $CONFIGURE_ARGS" \\\ +CONFIGURE_ARGS="--with-cflags='%{optflags}' --with-cxxflags='%{optflags}' $CONFIGURE_ARGS" \\\ gem install \\\ -V \\\ --local \\\ diff --git a/ruby-1.9.3-mkmf-verbose.patch b/ruby-1.9.3-mkmf-verbose.patch index b523657..dc8e9da 100644 --- a/ruby-1.9.3-mkmf-verbose.patch +++ b/ruby-1.9.3-mkmf-verbose.patch @@ -11,7 +11,7 @@ diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 682eb46..e6b1445 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb -@@ -1900,7 +1900,7 @@ def configuration(srcdir) +@@ -1911,7 +1911,7 @@ def configuration(srcdir) SHELL = /bin/sh # V=0 quiet, V=1 verbose. other values don't work. diff --git a/ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch b/ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch index 68e4abc..0770723 100644 --- a/ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch +++ b/ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch @@ -13,9 +13,9 @@ diff --git a/Makefile.in b/Makefile.in index 7e8ed82..7916993 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -119,6 +119,8 @@ XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@ - XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@ - BOOTSTRAPRUBY = @BOOTSTRAPRUBY@ +@@ -154,6 +154,8 @@ BOOTSTRAPRUBY = @BOOTSTRAPRUBY@ + COROUTINE_H = @X_FIBER_COROUTINE_H@ + COROUTINE_OBJ = $(COROUTINE_H:.h=.@OBJEXT@) +OPTIONAL_PRELUDES = @OPTIONAL_PRELUDES@ + @@ -26,7 +26,7 @@ diff --git a/common.mk b/common.mk index 5cfbc3d..3f0a82e 100644 --- a/common.mk +++ b/common.mk -@@ -147,7 +147,7 @@ ALLOBJS = $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS) +@@ -156,7 +156,7 @@ ALLOBJS = $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS) GOLFOBJS = goruby.$(OBJEXT) golf_prelude.$(OBJEXT) DEFAULT_PRELUDES = $(GEM_PRELUDE) @@ -39,7 +39,7 @@ diff --git a/configure.ac b/configure.ac index 028ef7ca3e..cdeff87871 100644 --- a/configure.ac +++ b/configure.ac -@@ -4397,6 +4397,13 @@ AC_SUBST(rubyarchhdrdir)dnl +@@ -3855,6 +3855,13 @@ AC_SUBST(rubyarchhdrdir)dnl AC_SUBST(sitearchhdrdir)dnl AC_SUBST(vendorarchhdrdir)dnl diff --git a/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index 555b6b5..116bb66 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 11fc237552..b77e88fc37 100644 --- a/configure.ac +++ b/configure.ac -@@ -3642,6 +3642,11 @@ AS_IF([test ${multiarch+set}], [ +@@ -3085,6 +3085,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 20539fd..bfb197f 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 999e2d6d5d..11fc237552 100644 --- a/configure.ac +++ b/configure.ac -@@ -4252,7 +4252,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -3710,7 +3710,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then @@ -66,7 +66,7 @@ diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb index 07076d4..35e6c3c 100755 --- a/tool/mkconfig.rb +++ b/tool/mkconfig.rb -@@ -111,7 +111,7 @@ +@@ -114,7 +114,7 @@ val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump case name when /^prefix$/ diff --git a/ruby-2.1.0-always-use-i386.patch b/ruby-2.1.0-always-use-i386.patch index 5d45fac..d63752a 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 b77e88fc37..6bba453e3c 100644 --- a/configure.ac +++ b/configure.ac -@@ -4316,6 +4316,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -3774,6 +3774,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 4b54560..c4893da 100644 --- a/ruby-2.1.0-custom-rubygems-location.patch +++ b/ruby-2.1.0-custom-rubygems-location.patch @@ -5,17 +5,17 @@ Subject: [PATCH] Allow to install RubyGems into custom location, outside of Ruby tree. --- - configure.ac | 5 +++++ - loadpath.c | 4 ++++ - template/verconf.h.tmpl | 3 +++ - tool/rbinstall.rb | 7 +++++++ - 4 files changed, 19 insertions(+) + configure.ac | 5 +++++ + loadpath.c | 4 ++++ + template/verconf.h.tmpl | 3 +++ + tool/rbinstall.rb | 10 ++++++++++ + 4 files changed, 22 insertions(+) diff --git a/configure.ac b/configure.ac index 6bba453e3c..028ef7ca3e 100644 --- a/configure.ac +++ b/configure.ac -@@ -4288,6 +4288,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -3746,6 +3746,10 @@ AC_ARG_WITH(vendorarchdir, [vendorarchdir=$withval], [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}]) @@ -26,7 +26,7 @@ index 6bba453e3c..028ef7ca3e 100644 AS_IF([test "${LOAD_RELATIVE+set}"], [ AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) RUBY_EXEC_PREFIX='' -@@ -4312,6 +4316,7 @@ AC_SUBST(sitearchdir)dnl +@@ -3770,6 +3774,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl @@ -67,24 +67,27 @@ diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb index b47b6e1..0b99408 100755 --- a/tool/rbinstall.rb +++ b/tool/rbinstall.rb -@@ -331,6 +331,7 @@ def CONFIG.[](name, mandatory = false) +@@ -334,6 +334,7 @@ def CONFIG.[](name, mandatory = false) sitearchlibdir = CONFIG["sitearchdir"] vendorlibdir = CONFIG["vendorlibdir"] vendorarchlibdir = CONFIG["vendorarchdir"] +rubygemsdir = CONFIG["rubygemsdir"] mandir = CONFIG["mandir", true] docdir = CONFIG["docdir", true] - configure_args = Shellwords.shellwords(CONFIG["configure_args"]) -@@ -537,7 +538,13 @@ def install(src, cmd) + enable_shared = CONFIG["ENABLE_SHARED"] == 'yes' +@@ -560,7 +561,16 @@ def stub install?(:local, :comm, :lib) do prepare "library scripts", rubylibdir noinst = %w[*.txt *.rdoc *.gemspec] -+ noinst += %w[rubygems.rb rubygems/ datadir.rb] if rubygemsdir ++ # Bundler carries "rubygems.rb" file, so it must be specialcased :/ ++ noinst += %w[rubygems.rb rubygems/ bundler.rb bundler/] if rubygemsdir install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode) + if rubygemsdir -+ noinst = %w[obsolete.rb] -+ install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :mode => $data_mode) ++ noinst = %w[*.txt *.rdoc *.gemspec] ++ install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :no_install => noinst, :mode => $data_mode) + install(File.join(srcdir, "lib", "rubygems.rb"), File.join(rubygemsdir, "rubygems.rb"), :mode => $data_mode) ++ install_recursive(File.join(srcdir, "lib", "bundler"), File.join(rubylibdir, "bundler"), :no_install => noinst, :mode => $data_mode) ++ install(File.join(srcdir, "lib", "bundler.rb"), rubylibdir, :mode => $data_mode) + end end diff --git a/ruby-2.2.3-Generate-preludes-using-miniruby.patch b/ruby-2.2.3-Generate-preludes-using-miniruby.patch index ca66d28..7118a32 100644 --- a/ruby-2.2.3-Generate-preludes-using-miniruby.patch +++ b/ruby-2.2.3-Generate-preludes-using-miniruby.patch @@ -11,7 +11,7 @@ diff --git a/common.mk b/common.mk index 168dc52..20c218a 100644 --- a/common.mk +++ b/common.mk -@@ -962,9 +962,9 @@ $(MINIPRELUDE_C): $(COMPILE_PRELUDE) +@@ -1052,9 +1052,9 @@ $(MINIPRELUDE_C): $(COMPILE_PRELUDE) $(srcdir)/template/prelude.c.tmpl $(PRELUDE_C): $(COMPILE_PRELUDE) \ @@ -22,7 +22,7 @@ index 168dc52..20c218a 100644 + $(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -c -o $@ \ $(srcdir)/template/prelude.c.tmpl $(PRELUDE_SCRIPTS) - {$(VPATH)}golf_prelude.c: $(COMPILE_PRELUDE) {$(srcdir)}golf_prelude.rb + $(GOLF_PRELUDE_C): $(COMPILE_PRELUDE) {$(srcdir)}golf_prelude.rb -- 2.6.3 diff --git a/ruby-2.3.0-ruby_version.patch b/ruby-2.3.0-ruby_version.patch index 30370e1..a74fb74 100644 --- a/ruby-2.3.0-ruby_version.patch +++ b/ruby-2.3.0-ruby_version.patch @@ -12,7 +12,7 @@ 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 | 64 ++++++++++++++++++++++++--------------------- template/ruby.pc.in | 1 + 2 files changed, 35 insertions(+), 30 deletions(-) @@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac index 8ea969412f..a00f2b6776 100644 --- a/configure.ac +++ b/configure.ac -@@ -4203,9 +4203,6 @@ AS_CASE(["$target_os"], +@@ -3661,9 +3661,6 @@ AS_CASE(["$target_os"], rubyw_install_name='$(RUBYW_INSTALL_NAME)' ]) @@ -30,7 +30,7 @@ index 8ea969412f..a00f2b6776 100644 rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'} AC_ARG_WITH(rubyarchprefix, AS_HELP_STRING([--with-rubyarchprefix=DIR], -@@ -4228,56 +4225,62 @@ AC_ARG_WITH(ridir, +@@ -3686,56 +3683,62 @@ AC_ARG_WITH(ridir, AC_SUBST(ridir) AC_SUBST(RI_BASE_NAME) @@ -120,7 +120,7 @@ index 8ea969412f..a00f2b6776 100644 AS_IF([test "${LOAD_RELATIVE+set}"], [ AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) -@@ -4294,6 +4297,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -3752,6 +3755,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl @@ -171,14 +171,14 @@ diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb index d4c110e..d39c9a6 100755 --- a/tool/rbinstall.rb +++ b/tool/rbinstall.rb -@@ -417,7 +417,7 @@ def CONFIG.[](name, mandatory = false) +@@ -424,7 +424,7 @@ def CONFIG.[](name, mandatory = false) install?(:doc, :rdoc) do if $rdocdir - ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version'], "system") + ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version_dir_name'] || CONFIG['ruby_version'], "system") prepare "rdoc", ridatadir - install_recursive($rdocdir, ridatadir, :mode => $data_mode) + install_recursive($rdocdir, ridatadir, :no_install => rdoc_noinst, :mode => $data_mode) end -- 2.1.0 @@ -205,12 +205,12 @@ index 55ca080..75eea2b 100644 - RbConfig::CONFIG['ruby_version'] + RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] ] - elsif RbConfig::CONFIG['rubylibprefix'] then + elsif RbConfig::CONFIG['rubylibprefix'] [ - RbConfig::CONFIG['rubylibprefix'], - 'gems', -- RbConfig::CONFIG['ruby_version'] -+ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + RbConfig::CONFIG['rubylibprefix'], + 'gems', +- RbConfig::CONFIG['ruby_version'] ++ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] ] else [ @@ -245,7 +245,7 @@ diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index 0428bea..b6e090e 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb -@@ -1191,7 +1191,8 @@ def test_self_use_paths +@@ -1288,7 +1288,8 @@ def test_self_use_paths def test_self_user_dir parts = [@userhome, '.gem', Gem.ruby_engine] @@ -255,7 +255,7 @@ index 0428bea..b6e090e 100644 assert_equal File.join(parts), Gem.user_dir end -@@ -1318,7 +1319,7 @@ def test_self_user_home_user_drive_and_path +@@ -1365,7 +1366,7 @@ def test_self_gzip def test_self_vendor_dir expected = File.join RbConfig::CONFIG['vendordir'], 'gems', @@ -282,7 +282,7 @@ diff --git a/configure.ac b/configure.ac index a00f2b6776..999e2d6d5d 100644 --- a/configure.ac +++ b/configure.ac -@@ -164,7 +164,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"` +@@ -101,7 +101,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.3.1-Rely-on-ldd-to-detect-glibc.patch b/ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch index 2dc17e3..1e6f83f 100644 --- a/ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch +++ b/ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch @@ -8,8 +8,8 @@ on Red Hat platforms. This workaround rhbz#1361037 --- - test/fiddle/helper.rb | 92 --------------------------------------------------- - 1 file changed, 92 deletions(-) + test/fiddle/helper.rb | 89 ------------------------------------------- + 1 file changed, 89 deletions(-) diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb index 1da3d93..65148a1 100644 diff --git a/ruby-2.5.0-Add-Gem.operating_system_defaults.patch b/ruby-2.5.0-Add-Gem.operating_system_defaults.patch deleted file mode 100644 index 7ac0e41..0000000 --- a/ruby-2.5.0-Add-Gem.operating_system_defaults.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 60eb961c25f801ee43ca1be9393ab2f0a0546677 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?V=C3=ADt=20Ondruch?= -Date: Tue, 19 Dec 2017 14:00:20 +0100 -Subject: [PATCH] Add Gem.operating_system_defaults to allow packagers to - override defaults. - -This change allows Ruby packagers to override defaults and lazily query -them. - -This is very much the same change as #1644 to treat the -operating_system defaults the same way as platform defaults. ---- - lib/rubygems/config_file.rb | 2 +- - lib/rubygems/defaults.rb | 21 ++++++++++++++++++++- - test/rubygems/test_gem.rb | 7 +++++++ - 3 files changed, 28 insertions(+), 2 deletions(-) - -diff --git a/lib/rubygems/config_file.rb b/lib/rubygems/config_file.rb -index a4efed0f5a..deee38e6d9 100644 ---- a/lib/rubygems/config_file.rb -+++ b/lib/rubygems/config_file.rb -@@ -48,7 +48,7 @@ class Gem::ConfigFile - # For Ruby packagers to set configuration defaults. Set in - # rubygems/defaults/operating_system.rb - -- OPERATING_SYSTEM_DEFAULTS = {} -+ OPERATING_SYSTEM_DEFAULTS = Gem.operating_system_defaults - - ## - # For Ruby implementers to set configuration defaults. Set in -diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb -index 43d57fc808..b8222877ae 100644 ---- a/lib/rubygems/defaults.rb -+++ b/lib/rubygems/defaults.rb -@@ -177,7 +177,26 @@ def self.vendor_dir # :nodoc: - end - - ## -- # Default options for gem commands. -+ # Default options for gem commands for Ruby packagers. -+ # -+ # The options here should be structured as an array of string "gem" -+ # command names as keys and a string of the default options as values. -+ # -+ # Example: -+ # -+ # def self.operating_system_defaults -+ # { -+ # 'install' => '--no-rdoc --no-ri --env-shebang', -+ # 'update' => '--no-rdoc --no-ri --env-shebang' -+ # } -+ # end -+ -+ def self.operating_system_defaults -+ {} -+ end -+ -+ ## -+ # Default options for gem commands for Ruby implementers. - # - # The options here should be structured as an array of string "gem" - # command names as keys and a string of the default options as values. -diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb -index 3225a05c6b..62b80c4945 100644 ---- a/test/rubygems/test_gem.rb -+++ b/test/rubygems/test_gem.rb -@@ -1837,6 +1837,13 @@ def test_use_gemdeps_specific - ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps - end - -+ def test_operating_system_defaults -+ operating_system_defaults = Gem.operating_system_defaults -+ -+ assert operating_system_defaults != nil -+ assert operating_system_defaults.is_a? Hash -+ end -+ - def test_platform_defaults - platform_defaults = Gem.platform_defaults - diff --git a/ruby-2.5.1-Avoid-need-of-C++-compiler-to-pass-the-test-suite.patch b/ruby-2.5.1-Avoid-need-of-C++-compiler-to-pass-the-test-suite.patch deleted file mode 100644 index 413a1da..0000000 --- a/ruby-2.5.1-Avoid-need-of-C++-compiler-to-pass-the-test-suite.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 51e2c91412a511196e58efea5b87c460b4fa6a20 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?V=C3=ADt=20Ondruch?= -Date: Thu, 26 Jul 2018 13:17:52 +0200 -Subject: [PATCH] Avoid need of C++ compiler to pass the test suite. - -The test suite fails when C++ compiler is not available on the system: - -~~~ -TestGemExtCmakeBuilder#test_self_build: -Gem::InstallError: cmake failed, exit code 1 - /builddir/build/BUILD/ruby-2.5.1/lib/rubygems/ext/builder.rb:92:in `run' - /builddir/build/BUILD/ruby-2.5.1/lib/rubygems/ext/cmake_builder.rb:10:in `build' - /builddir/build/BUILD/ruby-2.5.1/test/rubygems/test_gem_ext_cmake_builder.rb:37:in `block in test_self_build' - /builddir/build/BUILD/ruby-2.5.1/test/rubygems/test_gem_ext_cmake_builder.rb:36:in `chdir' - /builddir/build/BUILD/ruby-2.5.1/test/rubygems/test_gem_ext_cmake_builder.rb:36:in `test_self_build' -~~~ - -But there is nothing which would realy required C++. It is just CMake -default to check for C++. ---- - test/rubygems/test_gem_ext_cmake_builder.rb | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/test/rubygems/test_gem_ext_cmake_builder.rb b/test/rubygems/test_gem_ext_cmake_builder.rb -index 76d3cb2afe..2d449fc2fd 100644 ---- a/test/rubygems/test_gem_ext_cmake_builder.rb -+++ b/test/rubygems/test_gem_ext_cmake_builder.rb -@@ -25,6 +25,7 @@ def test_self_build - File.open File.join(@ext, 'CMakeLists.txt'), 'w' do |cmakelists| - cmakelists.write <<-eo_cmake - cmake_minimum_required(VERSION 2.6) -+project(self_build LANGUAGES NONE) - install (FILES test.txt DESTINATION bin) - eo_cmake - end diff --git a/ruby-2.6.0-Fix-issues-detected-by-code-analysis-tool.patch b/ruby-2.6.0-Fix-issues-detected-by-code-analysis-tool.patch deleted file mode 100644 index 00e1b4d..0000000 --- a/ruby-2.6.0-Fix-issues-detected-by-code-analysis-tool.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 893949167bdb911c7db9fd59de85f288c09741e1 Mon Sep 17 00:00:00 2001 -From: nobu -Date: Sat, 15 Sep 2018 09:59:14 +0000 -Subject: [PATCH] Fix issues detected by code analysis tool (mainly Coverity). - -* Fix leaked storage in addr2line.c. -* Fix for "top_root" leaking the resource. - -[Fix GH-1956] - -From: Jun Aruga - -git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e ---- - addr2line.c | 8 ++++++-- - regcomp.c | 3 +++ - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/addr2line.c b/addr2line.c -index 2c422cc1697a..b266e44d5d4b 100644 ---- a/addr2line.c -+++ b/addr2line.c -@@ -593,11 +593,12 @@ fill_lines(int num_traces, void **traces, int check_debuglink, - h = dlopen(NULL, RTLD_NOW|RTLD_LOCAL); - if (!h) continue; - s = dlsym(h, strtab + sym->st_name); -- if (!s) continue; -- if (dladdr(s, &info)) { -+ if (s && dladdr(s, &info)) { - dladdr_fbase = (uintptr_t)info.dli_fbase; -+ dlclose(h); - break; - } -+ dlclose(h); - } - if (ehdr->e_type == ET_EXEC) { - obj->base_addr = 0; -@@ -655,6 +656,9 @@ fill_lines(int num_traces, void **traces, int check_debuglink, - finish: - return dladdr_fbase; - fail: -+ if (file != NULL) { -+ munmap(file, (size_t)filesize); -+ } - return (uintptr_t)-1; - } - -diff --git a/regcomp.c b/regcomp.c -index 0f6bee60d576..df7f73bac501 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -3596,6 +3596,7 @@ expand_case_fold_string(Node* node, regex_t* reg) - if (n == 0 || varlen == 0) { - if (IS_NULL(snode)) { - if (IS_NULL(root) && IS_NOT_NULL(prev_node)) { -+ onig_node_free(top_root); - top_root = root = onig_node_list_add(NULL_NODE, prev_node); - if (IS_NULL(root)) { - onig_node_free(prev_node); -@@ -3627,6 +3628,7 @@ expand_case_fold_string(Node* node, regex_t* reg) - } - } - if (IS_NULL(root) && IS_NOT_NULL(prev_node)) { -+ onig_node_free(top_root); - top_root = root = onig_node_list_add(NULL_NODE, prev_node); - if (IS_NULL(root)) { - onig_node_free(prev_node); -@@ -3677,6 +3679,7 @@ expand_case_fold_string(Node* node, regex_t* reg) - if (r != 0) goto mem_err; - - if (IS_NOT_NULL(prev_node) && IS_NULL(root)) { -+ onig_node_free(top_root); - top_root = root = onig_node_list_add(NULL_NODE, prev_node); - if (IS_NULL(root)) { - onig_node_free(srem); --- -2.21.0 - diff --git a/ruby-2.6.0-config-support-include-directive.patch b/ruby-2.6.0-config-support-include-directive.patch index 27ef50f..5b2024b 100644 --- a/ruby-2.6.0-config-support-include-directive.patch +++ b/ruby-2.6.0-config-support-include-directive.patch @@ -13,8 +13,8 @@ versions. So continue to use the Ruby implementation for now. Reference: https://github.com/ruby/openssl/issues/208 --- - ext/openssl/lib/openssl/config.rb | 54 ++++++++++++++++++++++++++++--------------- - test/openssl/test_config.rb | 54 +++++++++++++++++++++++++++++++++++++++++++ + ext/openssl/lib/openssl/config.rb | 54 ++++++++++++++++++++----------- + test/openssl/test_config.rb | 54 +++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 18 deletions(-) diff --git a/ext/openssl/lib/openssl/config.rb b/ext/openssl/lib/openssl/config.rb @@ -46,8 +46,8 @@ index 88225451..ba3a54c8 100644 - key = $2 - else - key = $1 -+ when /\A\.include (.+)\z/ -+ path = $1 ++ when /\A\.include (\s*=\s*)?(.+)\z/ ++ path = $2 + if File.directory?(path) + files = Dir.glob(File.join(path, "*.{cnf,conf}"), File::FNM_EXTGLOB) + else @@ -141,7 +141,7 @@ index 99dcc497..5653b5d0 100644 + file-main = unnamed + [sec-main] + main = 123 -+ .include include-child.conf ++ .include = include-child.conf + __EOC__ + + # Include a file by relative path diff --git a/ruby-2.6.0-configure-fstack-protector-strong.patch b/ruby-2.6.0-configure-fstack-protector-strong.patch deleted file mode 100644 index e44d9bb..0000000 --- a/ruby-2.6.0-configure-fstack-protector-strong.patch +++ /dev/null @@ -1,43 +0,0 @@ -From c8ccdbfe1e45cb3b832109d644296c0a3b3e0b59 Mon Sep 17 00:00:00 2001 -From: nobu -Date: Sun, 2 Sep 2018 03:49:31 +0000 -Subject: [PATCH] configure.ac: -fstack-protector-strong - -* configure.ac: use -fstack-protector-strong if available instead of - -fstack-protector conditionally. [ruby-core:88788] [Misc #15053] - -git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e ---- - configure.ac | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 9328fa532de0..b8ee57239215 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -837,15 +837,18 @@ AS_IF([test "$GCC" = yes], [ - stack_protector=no - ]) - AS_IF([test -z "${stack_protector+set}"], [ -- RUBY_TRY_CFLAGS(-fstack-protector, [stack_protector=yes], [stack_protector=no]) -- AS_IF([test "x$stack_protector" = xyes], [ -- RUBY_TRY_LDFLAGS(-fstack-protector, [], [stack_protector=broken]) -+ AS_FOR(option, opt, [-fstack-protector-strong -fstack-protector], [ -+ RUBY_TRY_CFLAGS(option, [stack_protector=yes]) -+ AS_IF([test "x$stack_protector" = xyes], [ -+ RUBY_TRY_LDFLAGS(option, [], [stack_protector=]) -+ ]) -+ AS_IF([test "x$stack_protector" = xyes], [stack_protector=option; break]) - ]) - ]) -- AS_IF([test "x$stack_protector" = xyes], [ -- RUBY_APPEND_OPTION(XCFLAGS, -fstack-protector) -- RUBY_APPEND_OPTION(XLDFLAGS, -fstack-protector) -- RUBY_APPEND_OPTION(LDFLAGS, -fstack-protector) -+ AS_CASE(["$stack_protector"], [-*], [ -+ RUBY_APPEND_OPTION(XCFLAGS, $stack_protector) -+ RUBY_APPEND_OPTION(XLDFLAGS, $stack_protector) -+ RUBY_APPEND_OPTION(LDFLAGS, $stack_protector) - ]) - - AS_CASE("${compress_debug_sections:-zlib}", diff --git a/ruby-2.6.0-library-options-to-MAINLIBS.patch b/ruby-2.6.0-library-options-to-MAINLIBS.patch deleted file mode 100644 index 5299c6f..0000000 --- a/ruby-2.6.0-library-options-to-MAINLIBS.patch +++ /dev/null @@ -1,177 +0,0 @@ -From bb3db69e2a0c210cc3a63940622db96a97eb7947 Mon Sep 17 00:00:00 2001 -From: nobu -Date: Fri, 2 Mar 2018 01:37:53 +0000 -Subject: [PATCH] configure.ac: library options to MAINLIBS - -* configure.ac (MAINLIBS): moved library options for main program - and static libruby, and append MAINLIBS to LIBRUBYARG_STATIC, as - these libraries are not needed for linking to shared libruby. - [ruby-core:85882] [Bug #14422] - -git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e ---- - configure.ac | 33 +++++++++++++++------------------ - template/ruby.pc.in | 1 + - win32/Makefile.sub | 6 ++++-- - 3 files changed, 20 insertions(+), 20 deletions(-) - -diff --git a/configure.ac b/configure.ac -index aebbae1969a5..733a0c992fd7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -10,6 +10,7 @@ AC_DISABLE_OPTION_CHECKING - AC_ARG_VAR([cflags], [additional CFLAGS]) - AC_ARG_VAR([cppflags], [additional CPPFLAGS]) - AC_ARG_VAR([cxxflags], [additional CXXFLAGS]) -+ORIG_LIBS=$LIBS - - AC_DEFUN([RUBY_RM_RECURSIVE], [ - m4_version_prereq([2.70], [-1], [ -@@ -2939,13 +2940,11 @@ AS_IF([test x"$enable_pthread" = xyes], [ - AC_DEFINE(_THREAD_SAFE) - AC_DEFINE(HAVE_LIBPTHREAD) - AC_CHECK_HEADERS(pthread_np.h, [], [], [@%:@include ]) -- AS_CASE([$pthread_lib], -- [c], [], -- [root], [], -- [c_r], [MAINLIBS="-pthread $MAINLIBS"], -- [AS_CASE(["$target_os"], -- [openbsd*|mirbsd*], [LIBS="-pthread $LIBS"], -- [LIBS="-l$pthread_lib $LIBS"])]) -+ AS_CASE(["$pthread_lib:$target_os"], -+ [c:*], [], -+ [root:*], [], -+ [c_r:*|*:openbsd*|*:mirbsd*], [LIBS="-pthread $LIBS"], -+ [LIBS="-l$pthread_lib $LIBS"]) - ], [ - AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled") - ]) -@@ -3624,7 +3623,7 @@ LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a' - LIBRUBY='$(LIBRUBY_A)' - LIBRUBYARG_STATIC='-l$(RUBY_SO_NAME)-static' - LIBRUBYARG='$(LIBRUBYARG_STATIC)' --SOLIBS= -+SOLIBS='$(MAINLIBS)' - - AS_CASE(["$target_os"], - [cygwin*|mingw*|haiku*|darwin*], [ -@@ -3690,9 +3689,6 @@ AS_CASE("$enable_shared", [yes], [ - LIBRUBY_RELATIVE=no - test -z "$CCDLFLAGS" || CFLAGS="$CFLAGS $CCDLFLAGS" - ENABLE_SHARED=yes -- AS_IF([test "$rb_cv_binary_elf" = yes], [ -- SOLIBS='$(LIBS)' -- ]) - - # libdir can be overridden in config.site file (on OpenSUSE at least). - libdir_basename=lib -@@ -3727,7 +3723,6 @@ AS_CASE("$enable_shared", [yes], [ - ]) - ], - [freebsd*|dragonfly*], [ -- SOLIBS='$(LIBS)' - LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)$(MINOR)' - LIBRUBY_SONAME='$(LIBRUBY_SO)' - AS_IF([test "$rb_cv_binary_elf" != "yes" ], [ -@@ -3736,7 +3731,6 @@ AS_CASE("$enable_shared", [yes], [ - ]) - ], - [netbsd*], [ -- SOLIBS='$(LIBS)' - LIBRUBY_SONAME='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)$(MINOR)' - LIBRUBY_SO="${LIBRUBY_SONAME}"'.$(TEENY)' - RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ['-Wl,-soname,$(LIBRUBY_SONAME)' "$LDFLAGS_OPTDIR"]) -@@ -3747,11 +3741,9 @@ AS_CASE("$enable_shared", [yes], [ - ]) - ], - [openbsd*|mirbsd*], [ -- SOLIBS='$(LIBS)' - LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}` - ], - [solaris*], [ -- SOLIBS='$(LIBS)' - LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)' - LIBRUBY_SONAME='lib$(RUBY_SO_NAME).$(SOEXT).$(RUBY_PROGRAM_VERSION)' - LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)' -@@ -3769,7 +3761,7 @@ AS_CASE("$enable_shared", [yes], [ - [aix*], [ - RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ["${linker_flag}-bnoentry" "$XLDFLAGS" "$LDFLAGS_OPTDIR"]) - LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}' -- SOLIBS='-lm -lc' -+ LIBS="$LIBS -lm -lc" - ], - [darwin*], [ - LIBRUBY_LDSHARED='$(CC) -dynamiclib' -@@ -3789,7 +3781,6 @@ AS_CASE("$enable_shared", [yes], [ - LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT)' - LIBRUBY_SONAME='lib$(RUBY_BASE_NAME).$(RUBY_API_VERSION).$(SOEXT)' - LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_INSTALL_NAME).$(SOEXT)' -- SOLIBS='$(LIBS)' - ], - [interix*], [ - LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)' -@@ -4032,7 +4023,6 @@ AS_CASE(["$target_os"], - ]) - LIBRUBY_ALIASES='' - FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in -- SOLIBS='$(LIBS)' - AS_IF([test x"$enable_shared" = xyes], [ - LIBRUBY='lib$(RUBY_SO_NAME).dll.a' - ], [ -@@ -4132,6 +4122,13 @@ AS_IF([test "${universal_binary-no}" = yes ], [ - [rb_cv_architecture_available=yes], [rb_cv_architecture_available=no])) - ]) - -+MAINLIBS="$LIBS" -+LIBS=$ORIG_LIBS -+AS_IF([test -n "${LIBS}"], [ -+ libspat=`echo "${LIBS}" | sed 's/[[][|.*$^]]/\\&/g;s/^ */ /;s/^ *$/ /'` -+ MAINFLAGS=`echo " $MAINLIBS " | sed "s|$libspat"'||;s/^ *//;s/ *$//'` -+]) -+LIBRUBYARG_STATIC="${LIBRUBYARG_STATIC} \$(MAINLIBS)" - CPPFLAGS="$CPPFLAGS "'$(DEFS)' - test -z "$CPPFLAGS" || CPPFLAGS="$CPPFLAGS "; CPPFLAGS="$CPPFLAGS"'${cppflags}' - AS_IF([test -n "${cflags+set}"], [ -diff --git a/template/ruby.pc.in b/template/ruby.pc.in -index d874f92c3b20..7ce4461c05df 100644 ---- a/template/ruby.pc.in -+++ b/template/ruby.pc.in -@@ -39,6 +39,7 @@ sitehdrdir=@sitehdrdir@ - rubyarchhdrdir=@rubyarchhdrdir@ - vendorarchhdrdir=@vendorarchhdrdir@ - sitearchhdrdir=@sitearchhdrdir@ -+MAINLIBS=@MAINLIBS@ - SOEXT=@SOEXT@ - LIBPATH=@LIBPATH@ - LIBRUBY_A=@LIBRUBY_A@ -diff --git a/win32/Makefile.sub b/win32/Makefile.sub -index 8673c121641e..f8316cccb68e 100644 ---- a/win32/Makefile.sub -+++ b/win32/Makefile.sub -@@ -279,6 +279,7 @@ MJIT_DEBUGFLAGS = $(DEBUGFLAGS) - CPPFLAGS = $(DEFS) $(ARCHDEFS) $(CPPFLAGS) - - DLDFLAGS = $(LDFLAGS) -dll -+MAINLIBS = $(LIBS) - SOLIBS = - RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc - !ifndef RCFLAGS -@@ -821,7 +822,8 @@ s,@CPPFLAGS@,$(CPPFLAGS),;t t - s,@CXXFLAGS@,$(CXXFLAGS),;t t - s,@FFLAGS@,$(FFLAGS),;t t - s,@LDFLAGS@,$(LDFLAGS),;t t --s,@LIBS@,$(LIBS),;t t -+s,@LIBS@,,;t t -+s,@MAINLIBS@,$(MAINLIBS),;t t - s,@exec_prefix@,$${prefix},;t t - s,@prefix@,$(prefix),;t t - s,@program_transform_name@,s,.*,$(PROGRAM_PREFIX)&$(PROGRAM_SUFFIX),,;t t -@@ -909,7 +911,7 @@ s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t - s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t - s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t - s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t --s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t -+s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A) $$(MAINLIBS),;t t - s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t - s,@SOLIBS@,$(SOLIBS),;t t - s,@DLDLIBS@,$(DLDLIBS),;t t diff --git a/ruby-2.6.0-rdoc-6.0.1-fix-template-typo.patch b/ruby-2.6.0-rdoc-6.0.1-fix-template-typo.patch deleted file mode 100644 index e108270..0000000 --- a/ruby-2.6.0-rdoc-6.0.1-fix-template-typo.patch +++ /dev/null @@ -1,34 +0,0 @@ -From d05e6269d4a4dfd701f5ddb3ae34306cba891511 Mon Sep 17 00:00:00 2001 -From: Jun Aruga -Date: Fri, 3 Aug 2018 11:35:55 +0200 -Subject: [PATCH] Fix indent and typo from moveTimout to moveTimeout. - ---- - lib/rdoc/generator/template/json_index/js/navigation.js | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git a/lib/rdoc/generator/template/json_index/js/navigation.js b/lib/rdoc/generator/template/json_index/js/navigation.js -index e4126812..43c5118a 100644 ---- a/lib/rdoc/generator/template/json_index/js/navigation.js -+++ b/lib/rdoc/generator/template/json_index/js/navigation.js -@@ -59,9 +59,8 @@ Navigation = new function() { - } - break; - case 13: //Event.KEY_RETURN: -- if (this.$current) -- e.preventDefault(); -- this.select(this.$current); -+ if (this.$current) e.preventDefault(); -+ this.select(this.$current); - break; - } - if (e.ctrlKey && e.shiftKey) this.select(this.$current); -@@ -80,7 +79,7 @@ Navigation = new function() { - var go = function() { - if (!_this.moveTimeout) return; - _this[isDown ? 'moveDown' : 'moveUp'](); -- _this.moveTimout = setTimeout(go, 100); -+ _this.moveTimeout = setTimeout(go, 100); - } - this.moveTimeout = setTimeout(go, 200); - } diff --git a/ruby-2.6.0-use-larger-keys-for-SSL-tests.patch b/ruby-2.6.0-use-larger-keys-for-SSL-tests.patch index 62f9488..6bb8466 100644 --- a/ruby-2.6.0-use-larger-keys-for-SSL-tests.patch +++ b/ruby-2.6.0-use-larger-keys-for-SSL-tests.patch @@ -9,7 +9,7 @@ prevent stacking forever. Reference: https://github.com/ruby/openssl/issues/214 --- - test/openssl/test_pair.rb | 51 ++++++++++++++++++++--------------------------- + test/openssl/test_pair.rb | 51 +++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/test/openssl/test_pair.rb b/test/openssl/test_pair.rb @@ -107,14 +107,14 @@ to the tree, and SSL tests now use them instead of the fixed-size keys. Reference: https://github.com/ruby/openssl/issues/215 --- - test/openssl/fixtures/pkey/dh-1.pem | 13 +++++++++ - test/openssl/fixtures/pkey/rsa-1.pem | 51 ++++++++++++++++++++++++++++++++++++ - test/openssl/fixtures/pkey/rsa-2.pem | 51 ++++++++++++++++++++++++++++++++++++ - test/openssl/fixtures/pkey/rsa-3.pem | 51 ++++++++++++++++++++++++++++++++++++ - test/openssl/test_pair.rb | 8 +++--- - test/openssl/test_pkey_dh.rb | 8 +++--- - test/openssl/test_ssl.rb | 11 ++++---- - test/openssl/utils.rb | 14 +++++----- + test/openssl/fixtures/pkey/dh-1.pem | 13 +++++++ + test/openssl/fixtures/pkey/rsa-1.pem | 51 ++++++++++++++++++++++++++++ + test/openssl/fixtures/pkey/rsa-2.pem | 51 ++++++++++++++++++++++++++++ + test/openssl/fixtures/pkey/rsa-3.pem | 51 ++++++++++++++++++++++++++++ + test/openssl/test_pair.rb | 8 ++--- + test/openssl/test_pkey_dh.rb | 8 ++--- + test/openssl/test_ssl.rb | 11 +++--- + test/openssl/utils.rb | 14 ++++---- 8 files changed, 186 insertions(+), 21 deletions(-) create mode 100644 test/openssl/fixtures/pkey/dh-1.pem create mode 100644 test/openssl/fixtures/pkey/rsa-1.pem @@ -394,7 +394,7 @@ diff --git a/test/openssl/test_ssl.rb b/test/openssl/test_ssl.rb index 408c7d82..2633f7c4 100644 --- a/test/openssl/test_ssl.rb +++ b/test/openssl/test_ssl.rb -@@ -708,7 +708,7 @@ def socketpair +@@ -712,7 +712,7 @@ def socketpair def test_tlsext_hostname fooctx = OpenSSL::SSL::SSLContext.new @@ -403,7 +403,7 @@ index 408c7d82..2633f7c4 100644 fooctx.cert = @cli_cert fooctx.key = @cli_key -@@ -760,7 +760,7 @@ def test_servername_cb_raises_an_exception_on_unknown_objects +@@ -764,7 +764,7 @@ def test_servername_cb_raises_an_exception_on_unknown_objects ctx2 = OpenSSL::SSL::SSLContext.new ctx2.cert = @svr_cert ctx2.key = @svr_key @@ -412,7 +412,7 @@ index 408c7d82..2633f7c4 100644 ctx2.servername_cb = lambda { |args| Object.new } sock1, sock2 = socketpair -@@ -1140,7 +1140,7 @@ def test_alpn_protocol_selection_cancel +@@ -1144,7 +1144,7 @@ def test_alpn_protocol_selection_cancel ctx1 = OpenSSL::SSL::SSLContext.new ctx1.cert = @svr_cert ctx1.key = @svr_key @@ -421,7 +421,7 @@ index 408c7d82..2633f7c4 100644 ctx1.alpn_select_cb = -> (protocols) { nil } ssl1 = OpenSSL::SSL::SSLSocket.new(sock1, ctx1) -@@ -1382,20 +1382,21 @@ def test_get_ephemeral_key +@@ -1386,20 +1386,21 @@ def test_fallback_scsv def test_dh_callback pend "TLS 1.2 is not supported" unless tls12_supported? diff --git a/ruby.spec b/ruby.spec index 66a8c72..9f255b3 100644 --- a/ruby.spec +++ b/ruby.spec @@ -1,16 +1,16 @@ %global major_version 2 -%global minor_version 5 -%global teeny_version 5 +%global minor_version 6 +%global teeny_version 3 %global major_minor_version %{major_version}.%{minor_version} %global ruby_version %{major_minor_version}.%{teeny_version} %global ruby_release %{ruby_version} # Specify the named version. It has precedense to revision. -#%%global milestone rc1 +#%%global milestone rc2 # Keep the revision enabled for pre-releases from SVN. -#%%global revision 61414 +#%%global revision 66252 %global ruby_archive %{name}-%{ruby_version} @@ -21,7 +21,7 @@ %endif -%global release 104 +%global release 105 %{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} # The RubyGems library has to stay out of Ruby directory tree, since the @@ -29,25 +29,31 @@ %global rubygems_dir %{_datadir}/rubygems # Bundled libraries versions -%global rubygems_version 2.7.6.2 -%global molinillo_version 0.5.7 +%global rubygems_version 3.0.3 +%global rubygems_molinillo_version 0.5.7 -# TODO: The IRB has strange versioning. Keep the Ruby's versioning ATM. -# http://redmine.ruby-lang.org/issues/5313 -%global irb_version %{ruby_version} +%global bundler_version 1.17.2 +# FileUtils had not used to have separate versioning from Ruby :/ Lets use +# date of bundling for now. The gemified version of FileUtils has already proper +# version (if it's going to be bundled). +%global bundler_fileutils_version 0.20170425 +%global bundler_molinillo_version 0.6.6 +%global bundler_net_http_persistent_version 2.9.4 +%global bundler_thor_version 0.20.0 -%global bigdecimal_version 1.3.4 -%global did_you_mean_version 1.2.0 -%global io_console_version 0.4.6 +%global bigdecimal_version 1.4.1 +%global did_you_mean_version 1.3.0 +%global io_console_version 0.4.7 +%global irb_version 1.0.0 %global json_version 2.1.0 -%global minitest_version 5.10.3 -%global net_telnet_version 0.1.1 +%global minitest_version 5.11.3 +%global net_telnet_version 0.2.0 %global openssl_version 2.1.2 -%global power_assert_version 1.1.1 -%global psych_version 3.0.2 -%global rake_version 12.3.0 -%global rdoc_version 6.0.1 -%global test_unit_version 3.2.7 +%global power_assert_version 1.1.3 +%global psych_version 3.1.0 +%global rake_version 12.3.2 +%global rdoc_version 6.1.0 +%global test_unit_version 3.2.9 %global xmlrpc_version 0.3.0 # Might not be needed in the future, if we are lucky enough. @@ -62,10 +68,11 @@ %bcond_without rubypick %endif -%bcond_without systemtap -%bcond_without git %bcond_without cmake +%bcond_without git %bcond_without gmp +%bcond_without hostname +%bcond_without systemtap %if 0%{?fedora} %bcond_without hardening_test @@ -75,7 +82,6 @@ Summary: An interpreter of object-oriented scripting language Name: ruby Version: %{ruby_version} Release: %{release_string} -Group: Development/Languages # 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 @@ -127,31 +133,19 @@ Patch5: ruby-1.9.3-mkmf-verbose.patch # http://bugs.ruby-lang.org/issues/8566 Patch6: ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch # Use miniruby to regenerate prelude.c. -# https://bugs.ruby-lang.org/issues/10554 +# https://bugs.ruby-lang.org/issues/15306 Patch7: ruby-2.2.3-Generate-preludes-using-miniruby.patch # Workaround "an invalid stdio handle" error on PPC, due to recently introduced # hardening features of glibc (rhbz#1361037). # https://bugs.ruby-lang.org/issues/12666 Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch -# Add Gem.operating_system_defaults to allow packagers to override defaults. -# https://github.com/rubygems/rubygems/pull/2116 -Patch10: ruby-2.5.0-Add-Gem.operating_system_defaults.patch -# Don't force libraries used to build Ruby to its dependencies. -# https://bugs.ruby-lang.org/issues/14422 -Patch15: ruby-2.6.0-library-options-to-MAINLIBS.patch -# Do not require C++ compiler. -# https://github.com/rubygems/rubygems/pull/2367 -Patch16: ruby-2.5.1-Avoid-need-of-C++-compiler-to-pass-the-test-suite.patch -# https://github.com/ruby/rdoc/commit/d05e6269d4a4dfd701f5ddb3ae34306cba891511 -Patch20: ruby-2.6.0-rdoc-6.0.1-fix-template-typo.patch -# Properly harden package using -fstack-protector-strong. -# https://bugs.ruby-lang.org/issues/15053 -Patch24: ruby-2.6.0-configure-fstack-protector-strong.patch -# Fix CovScan issues. -# https://bugzilla.redhat.com/show_bug.cgi?id=1628592 -# https://bugs.ruby-lang.org/issues/15116 -# https://github.com/ruby/ruby/commit/893949167bdb911c7db9fd59de85f288c09741e1 -Patch25: ruby-2.6.0-Fix-issues-detected-by-code-analysis-tool.patch +# `gem build ../foo.gemspec` changes directory, which does not play well with +# gems unpacked by setup macro. +# https://github.com/rubygems/rubygems/issues/2587 +Patch11: rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch +# This allows to loosen the RDoc dependency again. +# https://github.com/rubygems/rubygems/pull/2604 +Patch12: rubygems-3.0.3-Avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch # Add support for .include directive used by OpenSSL config files. # https://github.com/ruby/openssl/pull/216 @@ -182,6 +176,7 @@ BuildRequires: procps %{?with_cmake:BuildRequires: %{_bindir}/cmake} # Required to test hardening. %{?with_hardening_test:BuildRequires: %{_bindir}/checksec} +%{?with_hostname:BuildRequires: %{_bindir}/hostname} BuildRequires: multilib-rpm-config BuildRequires: gcc BuildRequires: zlib-devel @@ -199,7 +194,6 @@ straight-forward, and extensible. %package devel Summary: A Ruby development environment -Group: Development/Languages Requires: %{name}%{?_isa} = %{version}-%{release} # This would not be needed if ~50 packages depending on -devel used # --disable-gems @@ -211,7 +205,6 @@ Ruby or an application embedding Ruby. %package libs Summary: Libraries necessary to run Ruby -Group: Development/Libraries License: Ruby or BSD Provides: ruby(release) = %{ruby_release} @@ -237,7 +230,6 @@ This package includes the libruby, necessary to run Ruby. %package -n rubygems Summary: The Ruby standard for packaging ruby libraries Version: %{rubygems_version} -Group: Development/Libraries License: Ruby or MIT Requires: ruby(release) Recommends: rubygem(rdoc) >= %{rdoc_version} @@ -247,7 +239,7 @@ Requires: rubygem(psych) >= %{psych_version} Provides: gem = %{version}-%{release} Provides: ruby(rubygems) = %{version}-%{release} # https://github.com/rubygems/rubygems/pull/1189#issuecomment-121600910 -Provides: bundled(rubygem-molinillo) = %{molinillo_version} +Provides: bundled(rubygem-molinillo) = %{rubygems_molinillo_version} BuildArch: noarch %description -n rubygems @@ -258,7 +250,6 @@ libraries. %package -n rubygems-devel Summary: Macros and development tools for packaging RubyGems Version: %{rubygems_version} -Group: Development/Libraries License: Ruby or MIT Requires: ruby(rubygems) = %{version}-%{release} # Needed for RDoc documentation format generation. @@ -273,7 +264,6 @@ Macros and development tools for packaging RubyGems. %package -n rubygem-rake Summary: Ruby based make-like utility Version: %{rake_version} -Group: Development/Libraries License: MIT Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -286,16 +276,20 @@ Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax. -%package irb +%package -n rubygem-irb Summary: The Interactive Ruby Version: %{irb_version} -Group: Development/Libraries -Requires: %{name}-libs = %{ruby_version} +Requires: ruby(release) +Requires: ruby(rubygems) >= %{rubygems_version} Provides: irb = %{version}-%{release} -Provides: ruby(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} BuildArch: noarch -%description irb +%description -n rubygem-irb The irb is acronym for Interactive Ruby. It evaluates ruby expression from the terminal. @@ -303,12 +297,11 @@ from the terminal. %package -n rubygem-rdoc Summary: A tool to generate HTML and command-line documentation for Ruby projects Version: %{rdoc_version} -Group: Development/Libraries # SIL: lib/rdoc/generator/template/darkfish/css/fonts.css License: GPLv2 and Ruby and MIT and OFL Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} -Requires: ruby(irb) = %{irb_version} +Requires: rubygem(irb) >= %{irb_version} Requires: rubygem(io-console) >= %{io_console_version} Requires: rubygem(json) >= %{json_version} Provides: rdoc = %{version}-%{release} @@ -324,7 +317,6 @@ documentation. %package doc Summary: Documentation for %{name} -Group: Documentation Requires: %{_bindir}/ri BuildArch: noarch @@ -335,7 +327,6 @@ This package contains documentation for %{name}. %package -n rubygem-bigdecimal Summary: BigDecimal provides arbitrary-precision floating point decimal arithmetic Version: %{bigdecimal_version} -Group: Development/Libraries License: Ruby or BSD Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -357,7 +348,6 @@ conversion between base 10 and base 2. %package -n rubygem-did_you_mean Summary: "Did you mean?" experience in Ruby Version: %{did_you_mean_version} -Group: Development/Libraries License: MIT Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -372,7 +362,6 @@ one when you misspelled something. %package -n rubygem-io-console Summary: IO/Console is a simple console utilizing library Version: %{io_console_version} -Group: Development/Libraries Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Provides: rubygem(io-console) = %{version}-%{release} @@ -385,7 +374,6 @@ 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} -Group: Development/Libraries # UCD: ext/json/generator/generator.c License: (Ruby or GPLv2) and UCD Requires: ruby(release) @@ -402,7 +390,6 @@ markup language. %package -n rubygem-minitest Summary: Minitest provides a complete suite of testing facilities Version: %{minitest_version} -Group: Development/Libraries License: MIT Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -427,7 +414,6 @@ output. %package -n rubygem-openssl Summary: OpenSSL provides SSL, TLS and general purpose cryptography Version: %{openssl_version} -Group: Development/Libraries License: Ruby or BSD Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -441,7 +427,6 @@ OpenSSL library. %package -n rubygem-power_assert Summary: Power Assert for Ruby Version: %{power_assert_version} -Group: Development/Libraries License: Ruby or BSD Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -457,7 +442,6 @@ condition is not satisfied. %package -n rubygem-psych Summary: A libyaml wrapper for Ruby Version: %{psych_version} -Group: Development/Libraries License: MIT Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -473,7 +457,6 @@ serialize and de-serialize most Ruby objects to and from the YAML format. %package -n rubygem-net-telnet Summary: Provides telnet client functionality Version: %{net_telnet_version} -Group: Development/Libraries Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} Provides: rubygem(net-telnet) = %{version}-%{release} @@ -493,7 +476,6 @@ the output through preprocess() to extract telnet command sequences. %package -n rubygem-test-unit Summary: An xUnit family unit testing framework for Ruby Version: %{test_unit_version} -Group: Development/Libraries # 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+) @@ -513,7 +495,6 @@ writing tests, checking results and automated testing in Ruby. %package -n rubygem-xmlrpc Summary: XMLRPC is a lightweight protocol that enables remote procedure calls over HTTP Version: %{xmlrpc_version} -Group: Development/Libraries License: Ruby or BSD Requires: ruby(release) Requires: ruby(rubygems) >= %{rubygems_version} @@ -525,6 +506,26 @@ XMLRPC is a lightweight protocol that enables remote procedure calls over HTTP. +%package -n rubygem-bundler +Summary: Library and utilities to manage a Ruby application's gem dependencies +Version: %{bundler_version} +License: MIT +Requires: ruby(release) +Requires: ruby(rubygems) >= %{rubygems_version} +Requires: rubygem(io-console) +Provides: rubygem(bundler) = %{version}-%{release} +# https://github.com/bundler/bundler/issues/3647 +Provides: bundled(rubygem-fileutils) = %{bundler_fileutils_version} +Provides: bundled(rubygem-molinillo) = %{bundler_molinillo_version} +Provides: bundled(rubygem-net-http-persisntent) = %{bundler_net_http_persistent_version} +Provides: bundled(rubygem-thor) = %{bundler_thor_version} +BuildArch: noarch + +%description -n rubygem-bundler +Bundler manages an application's dependencies through its entire life, across +many machines, systematically and repeatably. + + %prep %setup -q -n %{ruby_archive} @@ -541,14 +542,10 @@ rm -rf ext/fiddle/libffi* %patch6 -p1 %patch7 -p1 %patch9 -p1 -%patch10 -p1 -%patch15 -p1 -%patch16 -p1 -%patch20 -p1 +%patch11 -p1 +%patch12 -p1 %patch22 -p1 %patch23 -p1 -%patch24 -p1 -%patch25 -p1 # Provide an example of usage of the tapset: cp -a %{SOURCE3} . @@ -561,6 +558,17 @@ cp -a %{SOURCE6} . %build autoconf +# Overide CFLAGS to avoid below error on aarch64, +# removing "-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" option. +# rpm 4.14.2 is used on rhel-8.1.0. +# https://src.osci.redhat.com/rpms/rpm/blob/rhel-8.1.0/f/rpm.spec#_31 +# https://github.com/rpm-software-management/rpm/blob/rpm-4.14.2-release/macros.in#L1008 +# gcc failed with "annobin: conftest.c: ICE: Should be 64-bit target" +# https://bugzilla.redhat.com/show_bug.cgi?id=1720179 +%ifarch aarch64 +%define optflags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fasynchronous-unwind-tables -fstack-clash-protection +%endif + %configure \ --with-rubylibprefix='%{ruby_libdir}' \ --with-archlibdir='%{_libdir}' \ @@ -593,6 +601,9 @@ make install DESTDIR=%{buildroot} # Rename ruby/config.h to ruby/config-.h to avoid file conflicts on # multilib systems and install config.h wrapper %multilib_fix_c_header --file %{_includedir}/%{name}/config.h +# TODO: The correct patch should be %%{_includedir}/%%{name}/rb_mjit_min_header-%{ruby_version}.h +# https://bugs.ruby-lang.org/issues/15425 +%multilib_fix_c_header --file %{_includedir}/rb_mjit_min_header-%{ruby_version}.h # Rename the ruby executable. It is replaced by RubyPick. %{?with_rubypick:mv %{buildroot}%{_bindir}/%{name}{,-mri}} @@ -609,9 +620,13 @@ for cert in \ do rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert rm -r $(dirname %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert) + rm %{buildroot}%{ruby_libdir}/bundler/ssl_certs/$cert + rm -r $(dirname %{buildroot}%{ruby_libdir}/bundler/ssl_certs/$cert) done # Ensure there is not forgotten any certificate. test ! "$(ls -A %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/ 2>/dev/null)" +test "$(ls -A %{buildroot}%{ruby_libdir}/bundler/ssl_certs/ 2>/dev/null)" \ + = "certificate_manager.rb" # Move macros file into proper place and replace the %%{name} macro, since it # would be wrongly evaluated during build of other packages. @@ -643,17 +658,38 @@ mkdir -p %{buildroot}%{_exec_prefix}/lib{,64}/gems/%{name} # Move bundled rubygems to %%gem_dir and %%gem_extdir_mri # make symlinks for io-console and bigdecimal, which are considered to be part of stdlib by other Gems +mkdir -p %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib +mv %{buildroot}%{ruby_libdir}/irb* %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib +mv %{buildroot}%{gem_dir}/specifications/default/irb-%{irb_version}.gemspec %{buildroot}%{gem_dir}/specifications +ln -s %{gem_dir}/gems/irb-%{irb_version}/lib/irb.rb %{buildroot}%{ruby_libdir}/irb.rb +# TODO: This should be possible to replaced by simple directory symlink +# after ~ F31 EOL (rhbz#1691039). +mkdir -p %{buildroot}%{ruby_libdir}/irb +pushd %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib +find irb -type d -mindepth 1 -exec mkdir %{buildroot}%{ruby_libdir}/'{}' \; +find irb -type f -exec ln -s %{gem_dir}/gems/irb-%{irb_version}/lib/'{}' %{buildroot}%{ruby_libdir}/'{}' \; +popd + mkdir -p %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib mv %{buildroot}%{ruby_libdir}/rdoc* %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib mv %{buildroot}%{gem_dir}/specifications/default/rdoc-%{rdoc_version}.gemspec %{buildroot}%{gem_dir}/specifications mkdir -p %{buildroot}%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib -mkdir -p %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version} +mkdir -p %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal mv %{buildroot}%{ruby_libdir}/bigdecimal %{buildroot}%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib mv %{buildroot}%{ruby_libarchdir}/bigdecimal.so %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version} +mv %{buildroot}%{ruby_libarchdir}/bigdecimal/util.so %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal mv %{buildroot}%{gem_dir}/specifications/default/bigdecimal-%{bigdecimal_version}.gemspec %{buildroot}%{gem_dir}/specifications ln -s %{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib/bigdecimal %{buildroot}%{ruby_libdir}/bigdecimal ln -s %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal.so %{buildroot}%{ruby_libarchdir}/bigdecimal.so +ln -s %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal/util.so %{buildroot}%{ruby_libarchdir}/bigdecimal/util.so + +# TODO: Put help files into proper location. +# https://bugs.ruby-lang.org/issues/15359 +mkdir -p %{buildroot}%{gem_dir}/gems/bundler-%{bundler_version}/lib +mv %{buildroot}%{ruby_libdir}/bundler.rb %{buildroot}%{gem_dir}/gems/bundler-%{bundler_version}/lib +mv %{buildroot}%{ruby_libdir}/bundler %{buildroot}%{gem_dir}/gems/bundler-%{bundler_version}/lib +mv %{buildroot}%{gem_dir}/specifications/default/bundler-%{bundler_version}.gemspec %{buildroot}%{gem_dir}/specifications mkdir -p %{buildroot}%{gem_dir}/gems/io-console-%{io_console_version}/lib mkdir -p %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/io @@ -729,6 +765,12 @@ echo 'doc/pty' >> .ruby-doc.ja sed -i 's/^/%doc /' .ruby-doc.* sed -i 's/^/%lang(ja) /' .ruby-doc.ja +# https://github.com/yuki24/did_you_mean/issues/122 +rm -rf %{buildroot}%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/tmp/ + +# https://github.com/ruby/rake/issues/316 +rm -f %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.gitignore + %check %if 0%{?with_hardening_test} # Check Ruby hardening. @@ -746,7 +788,35 @@ checksec -f libruby.so.%{ruby_version} | \ module Gem; module Resolver; end; end; \ require 'rubygems/resolver/molinillo/lib/molinillo/gem_metadata'; \ puts Gem::Resolver::Molinillo::VERSION\\\"\" | tail -1`" \ - == '%{molinillo_version}' ] + == '%{rubygems_molinillo_version}' ] + +# Check Bundler bundled dependencies versions. + +# FileUtils. +# TODO: There is no version in bundled FileUtils yet. +#%%{global bundler_fileutils_version} + +# Molinillo. +[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ + module Bundler; end; \ + require 'bundler/vendor/molinillo/lib/molinillo/gem_metadata'; \ + puts Bundler::Molinillo::VERSION\\\"\" | tail -1`" \ + == '%{bundler_molinillo_version}' ] + +# Net::HTTP::Persistent. +[ "`make 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}' ] + +# Thor. +[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ + module Bundler; end; \ + require 'bundler/vendor/thor/lib/thor/version'; \ + puts Bundler::Thor::VERSION\\\"\" | tail -1`" \ + == '%{bundler_thor_version}' ] # test_debug(TestRubyOptions) fails due to LoadError reported in debug mode, @@ -762,6 +832,10 @@ make runruby TESTRUN_SCRIPT="--enable-gems %{SOURCE13}" %{?with_systemtap:make runruby TESTRUN_SCRIPT=%{SOURCE14}} DISABLE_TESTS="" +MSPECOPTS="" + +# Avoid `hostname' dependency. +%{!?with_hostname:MSPECOPTS="-P 'Socket.gethostname returns the host name'"} # SIGSEV handler does not provide correct output on AArch64. # https://bugs.ruby-lang.org/issues/13758 @@ -774,15 +848,18 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/test_segv_\(setproctitle\|test\|loaded_featur # https://bugs.ruby-lang.org/issues/14175 sed -i '/def test_mdns_each_address$/,/^ end$/ s/^/#/' test/resolv/test_mdns.rb -# For now, disable test incompatible with OpenSSL 1.1.1: -# https://github.com/rubygems/rubygems/issues/2388 -DISABLE_TESTS="$DISABLE_TESTS -n !/test_do_not_allow_invalid_client_cert_auth_connection/" +# Skip random failed UDPSocket#recvfrom_nonblock tests +# https://bugzilla.redhat.com/show_bug.cgi?id=1719743 +sed -i "/^ describe 'with data available' do$/,/^ end$/ s/^/#/" \ + spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb +sed -i "/^ describe 'with data available' do$/,/^ end$/ s/^/#/" \ + spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb # RHEL8 is using stronger crypto policies then Fedora ATM and upstream does # not support them yet. Disable the RHEL8 configuration for the moment. # https://github.com/ruby/openssl/issues/215 OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file OPENSSL_CONF='' \ - make check TESTS="-v $DISABLE_TESTS" + make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %files %license BSDL @@ -831,11 +908,13 @@ OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file OPENSSL_CONF='' \ %exclude %{ruby_libdir}/openssl.rb %exclude %{ruby_libdir}/psych.rb %{ruby_libdir}/cgi +%{ruby_libdir}/csv %{ruby_libdir}/digest %{ruby_libdir}/drb +%{ruby_libdir}/e2mmap %{ruby_libdir}/fiddle +%{ruby_libdir}/fileutils %{ruby_libdir}/forwardable -%exclude %{ruby_libdir}/irb %{ruby_libdir}/matrix %{ruby_libdir}/net %{ruby_libdir}/optparse @@ -846,6 +925,8 @@ OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file OPENSSL_CONF='' \ %{ruby_libdir}/rss %{ruby_libdir}/shell %{ruby_libdir}/syslog +%{ruby_libdir}/thwait +%{ruby_libdir}/tracer %{ruby_libdir}/unicode_normalize %{ruby_libdir}/uri %{ruby_libdir}/webrick @@ -979,19 +1060,32 @@ OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file OPENSSL_CONF='' \ # TODO: Gemify these libraries %{gem_dir}/specifications/default/cmath-1.0.0.gemspec -%{gem_dir}/specifications/default/csv-1.0.0.gemspec -%{gem_dir}/specifications/default/date-1.0.0.gemspec +%{gem_dir}/specifications/default/csv-3.0.9.gemspec +%{gem_dir}/specifications/default/date-2.0.0.gemspec %{gem_dir}/specifications/default/dbm-1.0.0.gemspec -%{gem_dir}/specifications/default/etc-1.0.0.gemspec +%{gem_dir}/specifications/default/e2mmap-0.1.0.gemspec +%{gem_dir}/specifications/default/etc-1.0.1.gemspec %{gem_dir}/specifications/default/fcntl-1.0.0.gemspec %{gem_dir}/specifications/default/fiddle-1.0.0.gemspec -%{gem_dir}/specifications/default/fileutils-1.0.2.gemspec +%{gem_dir}/specifications/default/fileutils-1.1.0.gemspec +%{gem_dir}/specifications/default/forwardable-1.2.0.gemspec %{gem_dir}/specifications/default/gdbm-2.0.0.gemspec -%{gem_dir}/specifications/default/ipaddr-1.2.0.gemspec +%{gem_dir}/specifications/default/ipaddr-1.2.2.gemspec +%{gem_dir}/specifications/default/logger-1.3.0.gemspec +%{gem_dir}/specifications/default/matrix-0.1.0.gemspec +%{gem_dir}/specifications/default/mutex_m-0.1.0.gemspec +%{gem_dir}/specifications/default/ostruct-0.1.0.gemspec +%{gem_dir}/specifications/default/prime-0.1.0.gemspec +%{gem_dir}/specifications/default/rexml-3.1.9.gemspec +%{gem_dir}/specifications/default/rss-0.2.7.gemspec %{gem_dir}/specifications/default/scanf-1.0.0.gemspec %{gem_dir}/specifications/default/sdbm-1.0.0.gemspec -%{gem_dir}/specifications/default/stringio-0.0.1.gemspec +%{gem_dir}/specifications/default/shell-0.7.gemspec +%{gem_dir}/specifications/default/stringio-0.0.2.gemspec %{gem_dir}/specifications/default/strscan-1.0.0.gemspec +%{gem_dir}/specifications/default/sync-0.5.0.gemspec +%{gem_dir}/specifications/default/thwait-0.1.0.gemspec +%{gem_dir}/specifications/default/tracer-0.1.0.gemspec %{gem_dir}/specifications/default/webrick-1.4.2.gemspec %{gem_dir}/specifications/default/zlib-1.0.0.gemspec @@ -1008,10 +1102,11 @@ OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file OPENSSL_CONF='' \ %{gem_dir}/specifications/rake-%{rake_version}.gemspec %{_mandir}/man1/rake.1* -%files irb +%files -n rubygem-irb %{_bindir}/irb -%{ruby_libdir}/irb.rb -%{ruby_libdir}/irb +%{ruby_libdir}/irb* +%{gem_dir}/gems/irb-%{irb_version} +%{gem_dir}/specifications/irb-%{irb_version}.gemspec %{_mandir}/man1/irb.1* %files -n rubygem-rdoc @@ -1029,7 +1124,7 @@ OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file OPENSSL_CONF='' \ %files -n rubygem-bigdecimal %{ruby_libdir}/bigdecimal -%{ruby_libarchdir}/bigdecimal.so +%{ruby_libarchdir}/bigdecimal* %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version} %{gem_dir}/gems/bigdecimal-%{bigdecimal_version} %{gem_dir}/specifications/bigdecimal-%{bigdecimal_version}.gemspec @@ -1100,7 +1195,28 @@ OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file OPENSSL_CONF='' \ %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/xmlrpc.gemspec %{gem_dir}/specifications/xmlrpc-%{xmlrpc_version}.gemspec +%files -n rubygem-bundler +%{_bindir}/bundle +%{_bindir}/bundler +%{gem_dir}/gems/bundler-%{bundler_version} +%{gem_dir}/specifications/bundler-%{bundler_version}.gemspec +%{_mandir}/man1/bundle*.1* +%{_mandir}/man5/gemfile.5* + %changelog +* Tue Jun 11 2019 Jun Aruga - 2.6.3-105 +- Update to Ruby 2.6.3 by merging Fedora master branch (commit: 1cc2a49) + * Properly generate "ruby(rubygems)" versioned dependencies. + * Extract composition of dependecy strings into helper. + * Loosen RDoc dependency. + * Upstream fix adding -C flag instead of changing directory for gem build. + * Remove obsolete Group tag + * Fix ".include =" support in openssl.cnf. + * Link IRB back to StdLib. + * Link IRB files instead of directories. + * Exclude irb.rb from ruby-libs. + Resolves: rhbz#1672575 + * Wed Apr 17 2019 Vít Ondruch - 2.5.5-104 - Update to Ruby 2.5.5. * Remove Patch25: ruby-2.6.0-Update-for-tzdata-2018f.patch; subsumed diff --git a/rubygems-3.0.3-Avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch b/rubygems-3.0.3-Avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch new file mode 100644 index 0000000..690d245 --- /dev/null +++ b/rubygems-3.0.3-Avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch @@ -0,0 +1,24 @@ +From c16675582a68800ef17b6056110e0a8bcdb38b55 Mon Sep 17 00:00:00 2001 +From: SHIBATA Hiroshi +Date: Tue, 22 Jan 2019 09:37:23 +0900 +Subject: [PATCH] Avoid rdoc hook when it's failed to load rdoc library. + + Fixed #2483 +--- + lib/rubygems/rdoc.rb | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/rubygems/rdoc.rb b/lib/rubygems/rdoc.rb +index dfaf7c55bf..4e16fbb86f 100644 +--- a/lib/rubygems/rdoc.rb ++++ b/lib/rubygems/rdoc.rb +@@ -18,7 +18,7 @@ + module Gem + RDoc = ::RDoc::RubygemsHook + end ++ ++ Gem.done_installing(&Gem::RDoc.method(:generation_hook)) + rescue LoadError + end +- +-Gem.done_installing(&Gem::RDoc.method(:generation_hook)) diff --git a/rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch b/rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch new file mode 100644 index 0000000..fa4f0c3 --- /dev/null +++ b/rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch @@ -0,0 +1,88 @@ +From f4061357d812e9033f07ae3f8f44c4e26839f1e5 Mon Sep 17 00:00:00 2001 +From: bronzdoc +Date: Mon, 14 Jan 2019 09:46:29 -0600 +Subject: [PATCH] Restore gem build behavior and introdcue the "-C" flag to gem + build + +--- + lib/rubygems/commands/build_command.rb | 41 +++++++++++++------ + .../test_gem_commands_build_command.rb | 1 + + 2 files changed, 29 insertions(+), 13 deletions(-) + +diff --git a/lib/rubygems/commands/build_command.rb b/lib/rubygems/commands/build_command.rb +index e59471e976..761b80ee94 100644 +--- a/lib/rubygems/commands/build_command.rb ++++ b/lib/rubygems/commands/build_command.rb +@@ -18,6 +18,10 @@ def initialize + add_option '-o', '--output FILE', 'output gem with the given filename' do |value, options| + options[:output] = value + end ++ ++ add_option '-C PATH', '', 'Run as if gem build was started in instead of the current working directory.' do |value, options| ++ options[:build_path] = value ++ end + end + + def arguments # :nodoc: +@@ -60,25 +64,36 @@ def execute + end + + if File.exist? gemspec +- Dir.chdir(File.dirname(gemspec)) do +- spec = Gem::Specification.load File.basename(gemspec) +- +- if spec +- Gem::Package.build( +- spec, +- options[:force], +- options[:strict], +- options[:output] +- ) +- else +- alert_error "Error loading gemspec. Aborting." +- terminate_interaction 1 ++ spec = Gem::Specification.load(gemspec) ++ ++ if options[:build_path] ++ Dir.chdir(File.dirname(gemspec)) do ++ spec = Gem::Specification.load File.basename(gemspec) ++ build_package(spec) + end ++ else ++ build_package(spec) + end ++ + else + alert_error "Gemspec file not found: #{gemspec}" + terminate_interaction 1 + end + end + ++ private ++ ++ def build_package(spec) ++ if spec ++ Gem::Package.build( ++ spec, ++ options[:force], ++ options[:strict], ++ options[:output] ++ ) ++ else ++ alert_error "Error loading gemspec. Aborting." ++ terminate_interaction 1 ++ end ++ end + end +diff --git a/test/rubygems/test_gem_commands_build_command.rb b/test/rubygems/test_gem_commands_build_command.rb +index ac82a408c7..02d1b98e8f 100644 +--- a/test/rubygems/test_gem_commands_build_command.rb ++++ b/test/rubygems/test_gem_commands_build_command.rb +@@ -207,6 +207,7 @@ def test_execute_outside_dir + gs.write @gem.to_ruby + end + ++ @cmd.options[:build_path] = gemspec_dir + @cmd.options[:args] = [gemspec_file] + + use_ui @ui do diff --git a/rubygems.prov b/rubygems.prov index b7c9777..f23ec3f 100644 --- a/rubygems.prov +++ b/rubygems.prov @@ -9,9 +9,9 @@ module RubyGemsProv def self.normalize_prerelease(version) if version.prerelease? prerelease = version.version.sub /^#{version.release}\./, '' - "#{version.release}-0.1.#{prerelease}" + "#{version.release}~#{prerelease}" else - "#{version.release}-1" + version.release end end end diff --git a/rubygems.req b/rubygems.req index d75247d..38e4a9c 100644 --- a/rubygems.req +++ b/rubygems.req @@ -35,31 +35,35 @@ module RubyGemsReq # with RPM .spec file. def self.requirement_versions_to_rpm(requirement) self.expand_requirement(requirement.requirements).map do |op, version| - version == Gem::Version.new(0) ? "" : "#{op} #{version}" + version == Gem::Version.new(0) ? "" : " #{op} #{version}" end end + + # Compose dependency together with its requirements in RPM rich dependency + # string. + def self.compose_dependency_string(name, requirements) + dependency_strings = requirements.map { |requirement| name + requirement } + dependency_string = dependency_strings.join(' with ') + dependency_string.prepend('(').concat(')') if dependency_strings.length > 1 + dependency_string + end end # Report RubyGems dependency, versioned if required. def self.rubygems_dependency(specification) - Helpers::requirement_versions_to_rpm(specification.required_rubygems_version).each do |requirement| - dependency_string = "ruby(rubygems)" - dependency_string += " #{specification.required_rubygems_version}" if requirement&.length > 0 - puts dependency_string - end + dependency_name = "ruby(rubygems)" + requirements = Helpers::requirement_versions_to_rpm(specification.required_rubygems_version) + + puts Helpers::compose_dependency_string(dependency_name, requirements) end # Report all gem dependencies including their version. def self.gem_depenencies(specification) specification.runtime_dependencies.each do |dependency| - dependency_strings = Helpers::requirement_versions_to_rpm(dependency.requirement).map do |requirement| - requirement_string = "rubygem(#{dependency.name})" - requirement_string += " #{requirement}" if requirement&.length > 0 - requirement_string - end - dependency_string = dependency_strings.join(' with ') - dependency_string.prepend('(').concat(')') if dependency_strings.length > 1 - puts dependency_string + dependency_name = "rubygem(#{dependency.name})" + requirements = Helpers::requirement_versions_to_rpm(dependency.requirement) + + puts Helpers::compose_dependency_string(dependency_name, requirements) end end diff --git a/sources b/sources index e2dbc39..be8cf52 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ruby-2.5.5.tar.xz) = 06b1d58536ebfacb7b56c1e6ed4b8ab816fadc4f48c845a452554cd262e7908199a30e5793f3cbaec2db56a8803aa5c6089abf7bf06c8fc47867e97870b7dfec +SHA512 (ruby-2.6.3.tar.xz) = 959a613f5cf5b3185a1d7a7ba0e1921166b3930f30461b391b1c9fcfe396f56dc3c736123dfc7b4e72c32a97dc5a1eb1fd7f09bcc3793a3c5526f6644ba421c8