#48 [WIP] Upgrade to Ruby 2.7
Closed 6 months ago by vondruch. Opened a year ago by vondruch.

file removed
-8

@@ -1,8 +0,0 @@ 

- if defined?(Gem)

-   require 'rubygems.rb'

- 

-   begin

-     require 'abrt'

-   rescue LoadError

-   end

- end

file modified
-10

@@ -32,16 +32,6 @@ 

  %{nil}

  

  

- # For rubygems packages we want to filter out any provides caused by private

- # libs in %%{gem_archdir}.

- #

- # Note that this must be invoked in the spec file, preferably as

- # "%{?rubygems_default_filter}", before any %description block.

- %rubygems_default_filter %{expand: \

- %global __provides_exclude_from %{?__provides_exclude_from:%{__provides_exclude_from}|}^%{gem_extdir_mri}/.*\\\\.so$ \

- }

- 

- 

  # The 'read' command in %%gemspec_* macros is not essential, but it is usefull

  # to make the sript appear in build log.

  

@@ -11,7 +11,7 @@ 

  index 682eb46..e6b1445 100644

  --- a/lib/mkmf.rb

  +++ b/lib/mkmf.rb

- @@ -1911,7 +1911,7 @@ def configuration(srcdir)

+ @@ -1930,7 +1930,7 @@ def configuration(srcdir)

   SHELL = /bin/sh

   

   # V=0 quiet, V=1 verbose.  other values don't work.

@@ -1,58 +0,0 @@ 

- From 996012f6abe0ce4d68a2de9f249935c6d5b467bc Mon Sep 17 00:00:00 2001

- From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>

- Date: Fri, 4 Oct 2013 22:13:11 +0200

- Subject: [PATCH] Allow to specify addition preludes by configuration option.

- 

- ---

-  Makefile.in  | 2 ++

-  common.mk    | 2 +-

-  configure.ac | 7 +++++++

-  3 files changed, 10 insertions(+), 1 deletion(-)

- 

- diff --git a/Makefile.in b/Makefile.in

- index 7e8ed82..7916993 100644

- --- a/Makefile.in

- +++ b/Makefile.in

- @@ -154,6 +154,8 @@ BOOTSTRAPRUBY = @BOOTSTRAPRUBY@

-  COROUTINE_H = @X_FIBER_COROUTINE_H@

-  COROUTINE_OBJ = $(COROUTINE_H:.h=.@OBJEXT@)

-  

- +OPTIONAL_PRELUDES = @OPTIONAL_PRELUDES@

- +

-  #### End of system configuration section. ####

-  

-  MAJOR=	@MAJOR@

- diff --git a/common.mk b/common.mk

- index 5cfbc3d..3f0a82e 100644

- --- a/common.mk

- +++ b/common.mk

- @@ -156,7 +156,7 @@ ALLOBJS       = $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(INITOBJS)

-  GOLFOBJS      = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)

-  

-  DEFAULT_PRELUDES = $(GEM_PRELUDE)

- -PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(DEFAULT_PRELUDES)

- +PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(DEFAULT_PRELUDES) $(OPTIONAL_PRELUDES)

-  GEM_PRELUDE   = $(srcdir)/gem_prelude.rb

-  PRELUDES      = {$(srcdir)}prelude.c {$(srcdir)}miniprelude.c

-  GOLFPRELUDES  = {$(srcdir)}golf_prelude.c

- diff --git a/configure.ac b/configure.ac

- index 028ef7ca3e..cdeff87871 100644

- --- a/configure.ac

- +++ b/configure.ac

- @@ -3855,6 +3855,13 @@ AC_SUBST(rubyarchhdrdir)dnl

-  AC_SUBST(sitearchhdrdir)dnl

-  AC_SUBST(vendorarchhdrdir)dnl

-  

- +AC_ARG_WITH(prelude,

- +		AS_HELP_STRING([--with-prelude=FILE-LIST], [specify additional preludes separated by space]),

- +		[prelude=$withval])

- +if test "$prelude" != ""; then

- +    AC_SUBST(OPTIONAL_PRELUDES, $prelude)

- +fi

- +

-  AC_ARG_WITH(mantype,

-  	AS_HELP_STRING([--with-mantype=TYPE], [specify man page type; TYPE is one of man and doc]),

-  		[

- -- 

- 1.8.3.1

- 

@@ -8,10 +8,10 @@ 

   1 file changed, 5 insertions(+)

  

  diff --git a/configure.ac b/configure.ac

- index 11fc237552..b77e88fc37 100644

+ index d261ea57b5..3c13076b82 100644

  --- a/configure.ac

  +++ b/configure.ac

- @@ -3085,6 +3085,11 @@ AS_IF([test ${multiarch+set}], [

+ @@ -3102,6 +3102,11 @@ AS_IF([test ${multiarch+set}], [

   ])

   

   archlibdir='${libdir}/${arch}'

@@ -24,5 +24,5 @@ 

   archincludedir='${includedir}/${arch}'

   sitearchincludedir='${includedir}/${sitearch}'

  -- 

- 1.8.3.1

+ 2.22.0

  

@@ -11,10 +11,10 @@ 

   3 files changed, 15 insertions(+), 2 deletions(-)

  

  diff --git a/configure.ac b/configure.ac

- index 999e2d6d5d..11fc237552 100644

+ index c42436c23d..d261ea57b5 100644

  --- a/configure.ac

  +++ b/configure.ac

- @@ -3710,7 +3710,8 @@ AS_CASE(["$ruby_version_dir_name"],

+ @@ -3740,7 +3740,8 @@ AS_CASE(["$ruby_version_dir_name"],

   ruby_version_dir=/'${ruby_version_dir_name}'

   

   if test -z "${ruby_version_dir_name}"; then

@@ -8,10 +8,10 @@ 

   1 file changed, 2 insertions(+)

  

  diff --git a/configure.ac b/configure.ac

- index b77e88fc37..6bba453e3c 100644

+ index 3c13076b82..93af30321d 100644

  --- a/configure.ac

  +++ b/configure.ac

- @@ -3774,6 +3774,8 @@ AC_SUBST(vendorarchdir)dnl

+ @@ -3804,6 +3804,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

   

@@ -12,10 +12,10 @@ 

   4 files changed, 22 insertions(+)

  

  diff --git a/configure.ac b/configure.ac

- index 6bba453e3c..028ef7ca3e 100644

+ index 93af30321d..bc13397e0e 100644

  --- a/configure.ac

  +++ b/configure.ac

- @@ -3746,6 +3746,10 @@ AC_ARG_WITH(vendorarchdir,

+ @@ -3776,6 +3776,10 @@ AC_ARG_WITH(vendorarchdir,

               [vendorarchdir=$withval],

               [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}])

   

@@ -26,7 +26,7 @@ 

   AS_IF([test "${LOAD_RELATIVE+set}"], [

       AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)

       RUBY_EXEC_PREFIX=''

- @@ -3770,6 +3774,7 @@ AC_SUBST(sitearchdir)dnl

+ @@ -3800,6 +3804,7 @@ AC_SUBST(sitearchdir)dnl

   AC_SUBST(vendordir)dnl

   AC_SUBST(vendorlibdir)dnl

   AC_SUBST(vendorarchdir)dnl

@@ -67,7 +67,7 @@ 

  index b47b6e1..0b99408 100755

  --- a/tool/rbinstall.rb

  +++ b/tool/rbinstall.rb

- @@ -334,6 +334,7 @@ def CONFIG.[](name, mandatory = false)

+ @@ -338,6 +338,7 @@ def CONFIG.[](name, mandatory = false)

   sitearchlibdir = CONFIG["sitearchdir"]

   vendorlibdir = CONFIG["vendorlibdir"]

   vendorarchlibdir = CONFIG["vendorarchdir"]

@@ -75,7 +75,7 @@ 

   mandir = CONFIG["mandir", true]

   docdir = CONFIG["docdir", true]

   enable_shared = CONFIG["ENABLE_SHARED"] == 'yes'

- @@ -560,7 +561,16 @@ def stub

+ @@ -565,7 +566,16 @@ def stub

   install?(:local, :comm, :lib) do

     prepare "library scripts", rubylibdir

     noinst = %w[*.txt *.rdoc *.gemspec]

@@ -1,28 +0,0 @@ 

- From 07eb5f5e775dec01a92a8b13910eaced9e8ee0cd Mon Sep 17 00:00:00 2001

- From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>

- Date: Tue, 2 Dec 2014 10:56:58 +0100

- Subject: [PATCH] Generate preludes using miniruby.

- 

- ---

-  common.mk | 4 ++--

-  1 file changed, 2 insertions(+), 2 deletions(-)

- 

- diff --git a/common.mk b/common.mk

- index 168dc52..20c218a 100644

- --- a/common.mk

- +++ b/common.mk

- @@ -1052,9 +1052,9 @@ $(MINIPRELUDE_C): $(COMPILE_PRELUDE)

-  		$(srcdir)/template/prelude.c.tmpl

-  

-  $(PRELUDE_C): $(COMPILE_PRELUDE) \

- -	   $(PRELUDE_SCRIPTS)

- +	   $(PRELUDE_SCRIPTS) $(PREP)

-  	$(ECHO) generating $@

- -	$(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -c -o $@ \

- +	$(Q) $(MINIRUBY) $(srcdir)/tool/generic_erb.rb -I$(srcdir) -c -o $@ \

-  		$(srcdir)/template/prelude.c.tmpl $(PRELUDE_SCRIPTS)

-  

-  $(GOLF_PRELUDE_C): $(COMPILE_PRELUDE) {$(srcdir)}golf_prelude.rb

- -- 

- 2.6.3

- 

file modified
+26 -34

@@ -17,10 +17,10 @@ 

   2 files changed, 35 insertions(+), 30 deletions(-)

  

  diff --git a/configure.ac b/configure.ac

- index 8ea969412f..a00f2b6776 100644

+ index 80b137e380..63cd3b4f8b 100644

  --- a/configure.ac

  +++ b/configure.ac

- @@ -3661,9 +3661,6 @@ AS_CASE(["$target_os"],

+ @@ -3691,9 +3691,6 @@ AS_CASE(["$target_os"],

       rubyw_install_name='$(RUBYW_INSTALL_NAME)'

       ])

   

@@ -30,7 +30,7 @@ 

   rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'}

   AC_ARG_WITH(rubyarchprefix,

   	    AS_HELP_STRING([--with-rubyarchprefix=DIR],

- @@ -3686,56 +3683,62 @@ AC_ARG_WITH(ridir,

+ @@ -3716,56 +3713,62 @@ AC_ARG_WITH(ridir,

   AC_SUBST(ridir)

   AC_SUBST(RI_BASE_NAME)

   

@@ -120,7 +120,7 @@ 

   

   AS_IF([test "${LOAD_RELATIVE+set}"], [

       AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)

- @@ -3752,6 +3755,7 @@ AC_SUBST(sitearchincludedir)dnl

+ @@ -3782,6 +3785,7 @@ AC_SUBST(sitearchincludedir)dnl

   AC_SUBST(arch)dnl

   AC_SUBST(sitearch)dnl

   AC_SUBST(ruby_version)dnl

@@ -171,7 +171,7 @@ 

  index d4c110e..d39c9a6 100755

  --- a/tool/rbinstall.rb

  +++ b/tool/rbinstall.rb

- @@ -424,7 +424,7 @@ def CONFIG.[](name, mandatory = false)

+ @@ -428,7 +428,7 @@ def CONFIG.[](name, mandatory = false)

   

   install?(:doc, :rdoc) do

     if $rdocdir

@@ -181,48 +181,40 @@ 

       install_recursive($rdocdir, ridatadir, :no_install => rdoc_noinst, :mode => $data_mode)

     end

  -- 

- 2.1.0

+ 2.23.0

  

  

- From f8d136f9a46d1fe87eba622ab9665935d05e981b Mon Sep 17 00:00:00 2001

+ From 9f0ec0233f618cbb862629816b22491c3df79578 Mon Sep 17 00:00:00 2001

  From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>

  Date: Tue, 31 Mar 2015 16:37:44 +0200

  Subject: [PATCH 3/4] Add ruby_version_dir_name support for RubyGems.

  

  ---

-  lib/rubygems/defaults.rb  | 11 ++++++-----

-  test/rubygems/test_gem.rb |  5 +++--

-  2 files changed, 9 insertions(+), 7 deletions(-)

+  lib/rubygems/defaults.rb  | 9 +++++----

+  test/rubygems/test_gem.rb | 5 +++--

+  2 files changed, 8 insertions(+), 6 deletions(-)

  

  diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb

- index 55ca080..75eea2b 100644

+ index d4ff4a262c..3f9a5bf590 100644

  --- a/lib/rubygems/defaults.rb

  +++ b/lib/rubygems/defaults.rb

- @@ -32,20 +32,20 @@ def self.default_dir

+ @@ -32,13 +32,13 @@ def self.default_dir

                [

                  File.dirname(RbConfig::CONFIG['sitedir']),

                  'Gems',

  -               RbConfig::CONFIG['ruby_version']

  +               RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']

                ]

-             elsif RbConfig::CONFIG['rubylibprefix']

-               [

-                 RbConfig::CONFIG['rubylibprefix'],

-                 'gems',

- -               RbConfig::CONFIG['ruby_version']

- +               RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']

-               ]

              else

                [

-                 RbConfig::CONFIG['libdir'],

-                 ruby_engine,

+                 RbConfig::CONFIG['rubylibprefix'],

                  'gems',

  -               RbConfig::CONFIG['ruby_version']

  +               RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']

                ]

              end

   

- @@ -75,7 +75,8 @@ def self.default_rubygems_dirs

+ @@ -75,7 +75,8 @@ def self.default_specifications_dir

   

     def self.user_dir

       parts = [Gem.user_home, '.gem', ruby_engine]

@@ -232,7 +224,7 @@ 

       File.join parts

     end

   

- @@ -172,7 +173,7 @@ def self.vendor_dir # :nodoc:

+ @@ -158,7 +159,7 @@ def self.vendor_dir # :nodoc:

       return nil unless RbConfig::CONFIG.key? 'vendordir'

   

       File.join RbConfig::CONFIG['vendordir'], 'gems',

@@ -242,10 +234,10 @@ 

   

     ##

  diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb

- index 0428bea..b6e090e 100644

+ index b25068405d..e9fef4a311 100644

  --- a/test/rubygems/test_gem.rb

  +++ b/test/rubygems/test_gem.rb

- @@ -1288,7 +1288,8 @@ def test_self_use_paths

+ @@ -1353,7 +1353,8 @@ def test_self_use_paths

   

     def test_self_user_dir

       parts = [@userhome, '.gem', Gem.ruby_engine]

@@ -255,15 +247,15 @@ 

   

       assert_equal File.join(parts), Gem.user_dir

     end

- @@ -1365,7 +1366,7 @@ def test_self_gzip

-    def test_self_vendor_dir

-      expected =

-        File.join RbConfig::CONFIG['vendordir'], 'gems',

- -                RbConfig::CONFIG['ruby_version']

- +                RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']

+ @@ -1429,7 +1430,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']

   

-      assert_equal expected, Gem.vendor_dir

-    end

+        assert_equal expected, Gem.vendor_dir

+      end

  -- 

  2.1.0

  

@@ -282,7 +274,7 @@ 

  index a00f2b6776..999e2d6d5d 100644

  --- a/configure.ac

  +++ b/configure.ac

- @@ -101,7 +101,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"`

+ @@ -98,7 +98,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)

@@ -8,14 +8,14 @@ 

  

  This workaround rhbz#1361037

  ---

-  test/fiddle/helper.rb | 89 -------------------------------------------

-  1 file changed, 89 deletions(-)

+  test/fiddle/helper.rb | 105 ------------------------------------------

+  1 file changed, 105 deletions(-)

  

  diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb

  index 1da3d93..65148a1 100644

  --- a/test/fiddle/helper.rb

  +++ b/test/fiddle/helper.rb

- @@ -6,95 +6,6 @@

+ @@ -6,111 +6,6 @@

   

   libc_so = libm_so = nil

   

@@ -23,12 +23,28 @@ 

  -when /cygwin/

  -  libc_so = "cygwin1.dll"

  -  libm_so = "cygwin1.dll"

+ -when /android/

+ -  libdir = '/system/lib'

+ -  if [0].pack('L!').size == 8

+ -    libdir = '/system/lib64'

+ -  end

+ -  libc_so = File.join(libdir, "libc.so")

+ -  libm_so = File.join(libdir, "libm.so")

  -when /linux/

  -  libdir = '/lib'

- -  case [0].pack('L!').size

+ -  case RbConfig::SIZEOF['void*']

  -  when 4

  -    # 32-bit ruby

- -    libdir = '/lib32' if File.directory? '/lib32'

+ -    case RUBY_PLATFORM

+ -    when /armv\w+-linux/

+ -      # In the ARM 32-bit libc package such as libc6:armhf libc6:armel,

+ -      # libc.so and libm.so are installed to /lib/arm-linux-gnu*.

+ -      # It's not installed to /lib32.

+ -      dirs = Dir.glob('/lib/arm-linux-gnu*')

+ -      libdir = dirs[0] if dirs && File.directory?(dirs[0])

+ -    else

+ -      libdir = '/lib32' if File.directory? '/lib32'

+ -    end

  -  when 8

  -    # 64-bit ruby

  -    libdir = '/lib64' if File.directory? '/lib64'

@@ -59,7 +75,7 @@ 

  -  libm_so = "/usr/lib/libm.so"

  -when /solaris/

  -  libdir = '/lib'

- -  case [0].pack('L!').size

+ -  case RbConfig::SIZEOF['void*']

  -  when 4

  -    # 32-bit ruby

  -    libdir = '/lib' if File.directory? '/lib'

@@ -110,7 +126,7 @@ 

  -

   if !libc_so || !libm_so

     ruby = EnvUtil.rubybin

-    ldd = `ldd #{ruby}`

+    # When the ruby binary is 32-bit and the host is 64-bit,

  -- 

  2.9.2

  

@@ -1,486 +0,0 @@ 

- From b0bcb19cb4f95d260c5993df0aaa3667522fb99d Mon Sep 17 00:00:00 2001

- From: Kazuki Yamaguchi <k@rhe.jp>

- Date: Thu, 16 Aug 2018 20:54:47 +0900

- Subject: [PATCH 1/2] test/openssl/test_pair: fix deadlock in

-  test_connect_accept_nonblock

- 

- Call IO.select with a timeout value and limit the number of retries to

- prevent stacking forever.

- 

- Reference: https://github.com/ruby/openssl/issues/214

- ---

-  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

- index ea5f0dcf..eac3655e 100644

- --- a/test/openssl/test_pair.rb

- +++ b/test/openssl/test_pair.rb

- @@ -442,7 +442,7 @@ def test_connect_accept_nonblock_no_exception

-    end

-  

-    def test_connect_accept_nonblock

- -    ctx = OpenSSL::SSL::SSLContext.new()

- +    ctx = OpenSSL::SSL::SSLContext.new

-      ctx.cert = @svr_cert

-      ctx.key = @svr_key

-      ctx.tmp_dh_callback = proc { OpenSSL::TestUtils::Fixtures.pkey_dh("dh1024") }

- @@ -451,45 +451,38 @@ def test_connect_accept_nonblock

-  

-      th = Thread.new {

-        s2 = OpenSSL::SSL::SSLSocket.new(sock2, ctx)

- -      s2.sync_close = true

- -      begin

- +      5.times {

- +        begin

- +          break s2.accept_nonblock

- +        rescue IO::WaitReadable

- +          IO.select([s2], nil, nil, 1)

- +        rescue IO::WaitWritable

- +          IO.select(nil, [s2], nil, 1)

- +        end

-          sleep 0.2

- -        s2.accept_nonblock

- +      }

- +    }

- +

- +    s1 = OpenSSL::SSL::SSLSocket.new(sock1)

- +    5.times {

- +      begin

- +        break s1.connect_nonblock

-        rescue IO::WaitReadable

- -        IO.select([s2])

- -        retry

- +        IO.select([s1], nil, nil, 1)

-        rescue IO::WaitWritable

- -        IO.select(nil, [s2])

- -        retry

- +        IO.select(nil, [s1], nil, 1)

-        end

- -      s2

- -    }

- -

- -    sleep 0.1

- -    ctx = OpenSSL::SSL::SSLContext.new()

- -    s1 = OpenSSL::SSL::SSLSocket.new(sock1, ctx)

- -    begin

-        sleep 0.2

- -      s1.connect_nonblock

- -    rescue IO::WaitReadable

- -      IO.select([s1])

- -      retry

- -    rescue IO::WaitWritable

- -      IO.select(nil, [s1])

- -      retry

- -    end

- -    s1.sync_close = true

- +    }

-  

-      s2 = th.value

-  

-      s1.print "a\ndef"

-      assert_equal("a\n", s2.gets)

-    ensure

- -    th.join if th

- -    s1.close if s1 && !s1.closed?

- -    s2.close if s2 && !s2.closed?

- -    sock1.close if sock1 && !sock1.closed?

- -    sock2.close if sock2 && !sock2.closed?

- +    sock1&.close

- +    sock2&.close

- +    th&.join

-    end

-  end

-  

- 

- From 5ba99ad7ae1267ed964f53906530579299f3fcc6 Mon Sep 17 00:00:00 2001

- From: Kazuki Yamaguchi <k@rhe.jp>

- Date: Thu, 16 Aug 2018 20:04:13 +0900

- Subject: [PATCH 2/2] test: use larger keys for SSL tests

- 

- Some systems enforce a system-wide policy to restrict key sizes used in

- SSL/TLS. Use larger ones if possible so that the test suite runs

- successfully.

- 

- New PEM files test/openssl/fixtures/pkey/{dh-1,rsa-1,rsa-2,rsa-3}.pem are added

- 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 ++++----

-  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

-  create mode 100644 test/openssl/fixtures/pkey/rsa-2.pem

-  create mode 100644 test/openssl/fixtures/pkey/rsa-3.pem

- 

- diff --git a/test/openssl/fixtures/pkey/dh-1.pem b/test/openssl/fixtures/pkey/dh-1.pem

- new file mode 100644

- index 00000000..3340a6a1

- --- /dev/null

- +++ b/test/openssl/fixtures/pkey/dh-1.pem

- @@ -0,0 +1,13 @@

- +-----BEGIN DH PARAMETERS-----

- +MIICCAKCAgEAvRzXYxY6L2DjeYmm1eowtMDu1it3j+VwFr6s6PRWzc1apMtztr9G

- +xZ2mYndUAJLgNLO3n2fUDCYVMB6ZkcekW8Siocof3xWiMA6wqZ6uw0dsE3q7ZX+6

- +TLjgSjaXeGvjutvuEwVrFeaUi83bMgfXN8ToxIQVprIF35sYFt6fpbFATKfW7qqi

- +P1pQkjmCskU4tztaWvlLh0qg85wuQGnpJaQT3gS30378i0IGbA0EBvJcSpTHYbLa

- +nsdI9bfN/ZVgeolVMNMU9/n8R8vRhNPcHuciFwaqS656q+HavCIyxw/LfjSwwFvR

- +TngCn0wytRErkzFIXnRKckh8/BpI4S+0+l1NkOwG4WJ55KJ/9OOdZW5o/QCp2bDi

- +E0JN1EP/gkSom/prq8JR/yEqtsy99uc5nUxPmzv0IgdcFHZEfiQU7iRggEbx7qfQ

- +Ve55XksmmJInmpCy1bSabAEgIKp8Ckt5KLYZ0RgTXUhcEpsxEo6cuAwoSJT5o4Rp

- +yG3xow2ozPcqZkvb+d2CHj1sc54w9BVFAjVANEKmRil/9WKz14bu3wxEhOPqC54n

- +QojjLcoXSoT66ZUOQnYxTSiLtzoKGPy8cAVPbkBrXz2u2sj5gcvr1JjoGjdHm9/3

- +qnqC8fsTz8UndKNIQC337o4K0833bQMzRGl1/qjbAPit2B7E3b6xTZMCAQI=

- +-----END DH PARAMETERS-----

- diff --git a/test/openssl/fixtures/pkey/rsa-1.pem b/test/openssl/fixtures/pkey/rsa-1.pem

- new file mode 100644

- index 00000000..bd5a624f

- --- /dev/null

- +++ b/test/openssl/fixtures/pkey/rsa-1.pem

- @@ -0,0 +1,51 @@

- +-----BEGIN RSA PRIVATE KEY-----

- +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

- +-----END RSA PRIVATE KEY-----

- diff --git a/test/openssl/fixtures/pkey/rsa-2.pem b/test/openssl/fixtures/pkey/rsa-2.pem

- new file mode 100644

- index 00000000..e4fd4f43

- --- /dev/null

- +++ b/test/openssl/fixtures/pkey/rsa-2.pem

- @@ -0,0 +1,51 @@

- +-----BEGIN RSA PRIVATE KEY-----

- +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

- +-----END RSA PRIVATE KEY-----

- diff --git a/test/openssl/fixtures/pkey/rsa-3.pem b/test/openssl/fixtures/pkey/rsa-3.pem

- new file mode 100644

- index 00000000..6c9c9ced

- --- /dev/null

- +++ b/test/openssl/fixtures/pkey/rsa-3.pem

- @@ -0,0 +1,51 @@

- +-----BEGIN RSA PRIVATE KEY-----

- +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

- +-----END RSA PRIVATE KEY-----

- diff --git a/test/openssl/test_pair.rb b/test/openssl/test_pair.rb

- index eac3655e..8d6ca1e9 100644

- --- a/test/openssl/test_pair.rb

- +++ b/test/openssl/test_pair.rb

- @@ -10,7 +10,7 @@ def setup

-      ee_exts = [

-        ["keyUsage", "keyEncipherment,digitalSignature", true],

-      ]

- -    @svr_key = OpenSSL::TestUtils::Fixtures.pkey("rsa1024")

- +    @svr_key = OpenSSL::TestUtils::Fixtures.pkey("rsa-1")

-      @svr_cert = issue_cert(svr_dn, @svr_key, 1, ee_exts, nil, nil)

-    end

-  

- @@ -23,7 +23,7 @@ def ssl_pair

-        sctx = OpenSSL::SSL::SSLContext.new

-        sctx.cert = @svr_cert

-        sctx.key = @svr_key

- -      sctx.tmp_dh_callback = proc { OpenSSL::TestUtils::Fixtures.pkey_dh("dh1024") }

- +      sctx.tmp_dh_callback = proc { OpenSSL::TestUtils::Fixtures.pkey("dh-1") }

-        sctx.options |= OpenSSL::SSL::OP_NO_COMPRESSION

-        ssls = OpenSSL::SSL::SSLServer.new(tcps, sctx)

-        ns = ssls.accept

- @@ -397,7 +397,7 @@ def test_connect_accept_nonblock_no_exception

-      ctx2 = OpenSSL::SSL::SSLContext.new

-      ctx2.cert = @svr_cert

-      ctx2.key = @svr_key

- -    ctx2.tmp_dh_callback = proc { OpenSSL::TestUtils::Fixtures.pkey_dh("dh1024") }

- +    ctx2.tmp_dh_callback = proc { OpenSSL::TestUtils::Fixtures.pkey("dh-1") }

-  

-      sock1, sock2 = tcp_pair

-  

- @@ -445,7 +445,7 @@ def test_connect_accept_nonblock

-      ctx = OpenSSL::SSL::SSLContext.new

-      ctx.cert = @svr_cert

-      ctx.key = @svr_key

- -    ctx.tmp_dh_callback = proc { OpenSSL::TestUtils::Fixtures.pkey_dh("dh1024") }

- +    ctx.tmp_dh_callback = proc { OpenSSL::TestUtils::Fixtures.pkey("dh-1") }

-  

-      sock1, sock2 = tcp_pair

-  

- diff --git a/test/openssl/test_pkey_dh.rb b/test/openssl/test_pkey_dh.rb

- index fb713813..79bf9bb7 100644

- --- a/test/openssl/test_pkey_dh.rb

- +++ b/test/openssl/test_pkey_dh.rb

- @@ -19,7 +19,7 @@ def test_new_break

-    end

-  

-    def test_DHparams

- -    dh1024 = Fixtures.pkey_dh("dh1024")

- +    dh1024 = Fixtures.pkey("dh1024")

-      asn1 = OpenSSL::ASN1::Sequence([

-        OpenSSL::ASN1::Integer(dh1024.p),

-        OpenSSL::ASN1::Integer(dh1024.g)

- @@ -42,7 +42,7 @@ def test_DHparams

-    end

-  

-    def test_public_key

- -    dh = Fixtures.pkey_dh("dh1024")

- +    dh = Fixtures.pkey("dh1024")

-      public_key = dh.public_key

-      assert_no_key(public_key) #implies public_key.public? is false!

-      assert_equal(dh.to_der, public_key.to_der)

- @@ -50,14 +50,14 @@ def test_public_key

-    end

-  

-    def test_generate_key

- -    dh = Fixtures.pkey_dh("dh1024").public_key # creates a copy

- +    dh = Fixtures.pkey("dh1024").public_key # creates a copy

-      assert_no_key(dh)

-      dh.generate_key!

-      assert_key(dh)

-    end

-  

-    def test_key_exchange

- -    dh = Fixtures.pkey_dh("dh1024")

- +    dh = Fixtures.pkey("dh1024")

-      dh2 = dh.public_key

-      dh.generate_key!

-      dh2.generate_key!

- 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

- @@ -712,7 +712,7 @@ def socketpair

-  

-    def test_tlsext_hostname

-      fooctx = OpenSSL::SSL::SSLContext.new

- -    fooctx.tmp_dh_callback = proc { Fixtures.pkey_dh("dh1024") }

- +    fooctx.tmp_dh_callback = proc { Fixtures.pkey("dh-1") }

-      fooctx.cert = @cli_cert

-      fooctx.key = @cli_key

-  

- @@ -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

- -    ctx2.tmp_dh_callback = proc { Fixtures.pkey_dh("dh1024") }

- +    ctx2.tmp_dh_callback = proc { Fixtures.pkey("dh-1") }

-      ctx2.servername_cb = lambda { |args| Object.new }

-  

-      sock1, sock2 = socketpair

- @@ -1144,7 +1144,7 @@ def test_alpn_protocol_selection_cancel

-      ctx1 = OpenSSL::SSL::SSLContext.new

-      ctx1.cert = @svr_cert

-      ctx1.key = @svr_key

- -    ctx1.tmp_dh_callback = proc { Fixtures.pkey_dh("dh1024") }

- +    ctx1.tmp_dh_callback = proc { Fixtures.pkey("dh-1") }

-      ctx1.alpn_select_cb = -> (protocols) { nil }

-      ssl1 = OpenSSL::SSL::SSLSocket.new(sock1, ctx1)

-  

- @@ -1386,20 +1386,21 @@ def test_fallback_scsv

-    def test_dh_callback

-      pend "TLS 1.2 is not supported" unless tls12_supported?

-  

- +    dh = Fixtures.pkey("dh-1")

-      called = false

-      ctx_proc = -> ctx {

-        ctx.ssl_version = :TLSv1_2

-        ctx.ciphers = "DH:!NULL"

-        ctx.tmp_dh_callback = ->(*args) {

-          called = true

- -        Fixtures.pkey_dh("dh1024")

- +        dh

-        }

-      }

-      start_server(ctx_proc: ctx_proc) do |port|

-        server_connect(port) { |ssl|

-          assert called, "dh callback should be called"

-          if ssl.respond_to?(:tmp_key)

- -          assert_equal Fixtures.pkey_dh("dh1024").to_der, ssl.tmp_key.to_der

- +          assert_equal dh.to_der, ssl.tmp_key.to_der

-          end

-        }

-      end

- diff --git a/test/openssl/utils.rb b/test/openssl/utils.rb

- index b7ddd891..fe626ade 100644

- --- a/test/openssl/utils.rb

- +++ b/test/openssl/utils.rb

- @@ -42,10 +42,8 @@ module Fixtures

-  

-      def pkey(name)

-        OpenSSL::PKey.read(read_file("pkey", name))

- -    end

- -

- -    def pkey_dh(name)

- -      # DH parameters can be read by OpenSSL::PKey.read atm

- +    rescue OpenSSL::PKey::PKeyError

- +      # TODO: DH parameters can be read by OpenSSL::PKey.read atm

-        OpenSSL::PKey::DH.new(read_file("pkey", name))

-      end

-  

- @@ -157,9 +155,9 @@ class OpenSSL::SSLTestCase < OpenSSL::TestCase

-  

-    def setup

-      super

- -    @ca_key  = Fixtures.pkey("rsa2048")

- -    @svr_key = Fixtures.pkey("rsa1024")

- -    @cli_key = Fixtures.pkey("rsa2048")

- +    @ca_key  = Fixtures.pkey("rsa-1")

- +    @svr_key = Fixtures.pkey("rsa-2")

- +    @cli_key = Fixtures.pkey("rsa-3")

-      @ca  = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=CA")

-      @svr = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=localhost")

-      @cli = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=localhost")

- @@ -200,7 +198,7 @@ def start_server(verify_mode: OpenSSL::SSL::VERIFY_NONE, start_immediately: true

-        ctx.cert_store = store

-        ctx.cert = @svr_cert

-        ctx.key = @svr_key

- -      ctx.tmp_dh_callback = proc { Fixtures.pkey_dh("dh1024") }

- +      ctx.tmp_dh_callback = proc { Fixtures.pkey("dh-1") }

-        ctx.verify_mode = verify_mode

-        ctx_proc.call(ctx) if ctx_proc

-  

@@ -0,0 +1,77 @@ 

+ From eca084e4079c77c061045df9c21b219175b05228 Mon Sep 17 00:00:00 2001

+ From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>

+ Date: Mon, 6 Jan 2020 13:56:04 +0100

+ Subject: [PATCH] Initialize ABRT hook.

+ 

+ The ABRT hook used to be initialized by preludes via patches [[1], [2]].

+ Unfortunately, due to [[3]] and especially since [[4]], this would

+ require boostrapping [[5]].

+ 

+ To keep the things simple for now, load the ABRT hook via C.

+ 

+ [1]: https://bugs.ruby-lang.org/issues/8566

+ [2]: https://bugs.ruby-lang.org/issues/15306

+ [3]: https://bugs.ruby-lang.org/issues/16254

+ [4]: https://github.com/ruby/ruby/pull/2735

+ [5]: https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/LH6L6YJOYQT4Y5ZNOO4SLIPTUWZ5V45Q/

+ ---

+  abrt.c    | 12 ++++++++++++++

+  common.mk |  3 ++-

+  ruby.c    |  4 ++++

+  3 files changed, 18 insertions(+), 1 deletion(-)

+  create mode 100644 abrt.c

+ 

+ diff --git a/abrt.c b/abrt.c

+ new file mode 100644

+ index 0000000000..74b0bd5c0f

+ --- /dev/null

+ +++ b/abrt.c

+ @@ -0,0 +1,12 @@

+ +#include "internal.h"

+ +

+ +void

+ +Init_abrt(void)

+ +{

+ +  rb_eval_string(

+ +    "  begin\n"

+ +    "    require 'abrt'\n"

+ +    "  rescue LoadError\n"

+ +    "  end\n"

+ +  );

+ +}

+ diff --git a/common.mk b/common.mk

+ index b2e5b2b6d0..f39f81da5c 100644

+ --- a/common.mk

+ +++ b/common.mk

+ @@ -81,7 +81,8 @@ ENC_MK        = enc.mk

+  MAKE_ENC      = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \

+  		RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(mflags)

+  

+ -COMMONOBJS    = array.$(OBJEXT) \

+ +COMMONOBJS    = abrt.$(OBJEXT) \

+ +                array.$(OBJEXT) \

+  		ast.$(OBJEXT) \

+  		bignum.$(OBJEXT) \

+  		class.$(OBJEXT) \

+ diff --git a/ruby.c b/ruby.c

+ index 60c57d6259..1eec16f2c8 100644

+ --- a/ruby.c

+ +++ b/ruby.c

+ @@ -1439,10 +1439,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt)

+  

+  void Init_builtin_features(void);

+  

+ +/* abrt.c */

+ +void Init_abrt(void);

+ +

+  static void

+  ruby_init_prelude(void)

+  {

+      Init_builtin_features();

+ +    Init_abrt();

+      rb_const_remove(rb_cObject, rb_intern_const("TMP_RUBY_PREFIX"));

+  }

+  

+ -- 

+ 2.24.1

+ 

@@ -0,0 +1,32 @@ 

+ From 6532dbecf36d1f24dab1f2143afd171e0b7699eb Mon Sep 17 00:00:00 2001

+ From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>

+ Date: Wed, 4 Sep 2019 15:07:07 +0200

+ Subject: [PATCH] Remove RubyGems dependency.

+ 

+ Since `Process::RLIMIT_NOFILE` is platform specific, better to use Ruby

+ introspection than detecting platform.

+ ---

+  .../vendor/net-http-persistent/lib/net/http/persistent.rb   | 6 +++---

+  1 file changed, 3 insertions(+), 3 deletions(-)

+ 

+ diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb

+ index a54be2a..06739f1 100644

+ --- a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb

+ +++ b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb

+ @@ -202,10 +202,10 @@ class Bundler::Persistent::Net::HTTP::Persistent

+    ##

+    # The default connection pool size is 1/4 the allowed open files.

+  

+ -  if Gem.win_platform? then

+ -    DEFAULT_POOL_SIZE = 256

+ -  else

+ +  if Process.const_defined? :RLIMIT_NOFILE

+      DEFAULT_POOL_SIZE = Process.getrlimit(Process::RLIMIT_NOFILE).first / 4

+ +  else

+ +    DEFAULT_POOL_SIZE = 256

+    end

+  

+    ##

+ -- 

+ 2.23.0

+ 

file modified
+153 -103

@@ -1,59 +1,59 @@ 

  %global major_version 2

- %global minor_version 6

- %global teeny_version 3

+ %global minor_version 7

+ %global teeny_version 0

  %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 rc2

+ #%%global milestone rc1

  

  # Keep the revision enabled for pre-releases from SVN.

- #%%global revision 66252

+ #%%global revision af11efd377

  

  %global ruby_archive %{name}-%{ruby_version}

  

  # If revision and milestone are removed/commented out, the official release build is expected.

  %if 0%{?milestone:1}%{?revision:1} != 0

- %global development_release %{?milestone}%{?!milestone:%{?revision:r%{revision}}}

- %global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision:r%{revision}}}

+ %global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision}}

+ %define ruby_archive_timestamp %(stat --printf='@%Y' %{ruby_archive}.tar.xz | date -f - +"%Y%m%d")

+ %define development_release %{?milestone}%{?!milestone:%{?revision:%{ruby_archive_timestamp}git%{revision}}}

  %endif

  

  

- %global release 121

- %{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}}

+ %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

  

  # Bundled libraries versions

- %global rubygems_version 3.0.3

+ %global rubygems_version 3.1.2

  %global rubygems_molinillo_version 0.5.7

  

- %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_version 2.1.2

+ %global bundler_connection_pool_version 2.2.2

+ %global bundler_fileutils_version 1.3.0

  %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.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.11.3

+ %global bundler_net_http_persistent_version 3.1.0

+ %global bundler_thor_version 1.0.0

+ 

+ %global bigdecimal_version 2.0.0

+ %global did_you_mean_version 1.4.0

+ %global io_console_version 0.5.3

+ %global irb_version 1.2.1

+ %global json_version 2.3.0

+ %global minitest_version 5.13.0

  %global net_telnet_version 0.2.0

  %global openssl_version 2.1.2

- %global power_assert_version 1.1.3

+ %global power_assert_version 1.1.5

  %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 racc_version 1.4.16

+ %global rake_version 13.0.1

+ %global rdoc_version 6.2.1

+ %global test_unit_version 3.3.4

  %global xmlrpc_version 0.3.0

  

  # Might not be needed in the future, if we are lucky enough.

@@ -95,7 +95,6 @@ 

  Source3: ruby-exercise.stp

  Source4: macros.ruby

  Source5: macros.rubygems

- Source6: abrt_prelude.rb

  # RPM dependency generators.

  Source8: rubygems.attr

  Source9: rubygems.req

@@ -128,31 +127,26 @@ 

  Patch4: ruby-2.1.0-custom-rubygems-location.patch

  # Make mkmf verbose by default

  Patch5: ruby-1.9.3-mkmf-verbose.patch

- # Adds support for '--with-prelude' configuration option. This allows to built

- # in support for ABRT.

- # 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.

+ # 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

- Patch7: ruby-2.2.3-Generate-preludes-using-miniruby.patch

+ # Unfortunately, due to https://bugs.ruby-lang.org/issues/16254

+ # and especially since https://github.com/ruby/ruby/pull/2735

+ # this would require boostrapping:

+ # https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/LH6L6YJOYQT4Y5ZNOO4SLIPTUWZ5V45Q/

+ # For now, load the ABRT hook via this simple patch:

+ Patch6: ruby-2.7.0-Initialize-ABRT-hook.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

- # `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

+ # Revert commit which breaks bundled net-http-persistent version check.

+ # https://github.com/drbrain/net-http-persistent/pull/109

+ Patch10: ruby-2.7.0-Remove-RubyGems-dependency.patch

  

  # Add support for .include directive used by OpenSSL config files.

  # https://github.com/ruby/openssl/pull/216

  Patch22: ruby-2.6.0-config-support-include-directive.patch

- # Use larger keys to prevent test failures.

- # https://github.com/ruby/openssl/pull/217

- Patch23: ruby-2.6.0-use-larger-keys-for-SSL-tests.patch

  

  Requires: %{name}-libs%{?_isa} = %{version}-%{release}

  Suggests: rubypick

@@ -232,6 +226,7 @@ 

  Version:    %{rubygems_version}

  License:    Ruby or MIT

  Requires:   ruby(release)

+ Recommends: rubygem(bundler) >= %{bundler_version}

  Recommends: rubygem(rdoc) >= %{rdoc_version}

  Recommends: rubygem(io-console) >= %{io_console_version}

  Requires:   rubygem(openssl) >= %{openssl_version}

@@ -515,6 +510,7 @@ 

  Requires:   rubygem(io-console)

  Provides:   rubygem(bundler) = %{version}-%{release}

  # https://github.com/bundler/bundler/issues/3647

+ Provides:   bundled(connection_pool) = %{bundler_connection_pool_version}

  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}

@@ -526,6 +522,19 @@ 

  many machines, systematically and repeatably.

  

  

+ %package -n rubygem-racc

+ Summary:    Racc is a LALR(1) parser generator

+ Version:    %{racc_version}

+ License:    MIT

+ Requires:   ruby(release)

+ Requires:   ruby(rubygems) >= %{rubygems_version}

+ Provides:   rubygem(racc) = %{version}-%{release}

+ 

+ %description -n rubygem-racc

+ Racc is a LALR(1) parser generator. It is written in Ruby itself, and

+ generates Ruby program.

+ 

+ 

  %prep

  %setup -q -n %{ruby_archive}

  

@@ -540,21 +549,13 @@ 

  %patch4 -p1

  %patch5 -p1

  %patch6 -p1

- %patch7 -p1

  %patch9 -p1

- %patch11 -p1

- %patch12 -p1

+ %patch10 -p1

  %patch22 -p1

- %patch23 -p1

  

  # Provide an example of usage of the tapset:

  cp -a %{SOURCE3} .

  

- # Make abrt_prelude.rb available for compilation process. The prelude must be

- # available together with Ruby's source due to

- # https://github.com/ruby/ruby/blob/trunk/tool/compile_prelude.rb#L26

- cp -a %{SOURCE6} .

- 

  %build

  autoconf

  

@@ -577,7 +578,6 @@ 

          --enable-shared \

          --with-ruby-version='' \

          --enable-multiarch \

-         --with-prelude=./abrt_prelude.rb \

  

  # Q= makes the build output more verbose and allows to check Fedora

  # compiler options.

@@ -590,7 +590,7 @@ 

  # Rename ruby/config.h to ruby/config-<arch>.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

+ # 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

  

@@ -609,13 +609,9 @@ 

  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.

@@ -667,11 +663,9 @@ 

  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

@@ -680,6 +674,11 @@ 

  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/did_you_mean-%{did_you_mean_version}/lib

+ mv %{buildroot}%{ruby_libdir}/did_you_mean.rb %{buildroot}%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/lib

+ mv %{buildroot}%{ruby_libdir}/did_you_mean %{buildroot}%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/lib

+ mv %{buildroot}%{gem_dir}/specifications/default/did_you_mean-%{did_you_mean_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

  mv %{buildroot}%{ruby_libdir}/io %{buildroot}%{gem_dir}/gems/io-console-%{io_console_version}/lib

@@ -720,6 +719,18 @@ 

  ln -s %{gem_dir}/gems/psych-%{psych_version}/lib/psych.rb %{buildroot}%{ruby_libdir}/psych.rb

  ln -s %{_libdir}/gems/%{name}/psych-%{psych_version}/psych.so %{buildroot}%{ruby_libarchdir}/psych.so

  

+ # These has wrong shebangs. Exclude them for now and let's see what upstream

+ # thinks about them.

+ # https://bugs.ruby-lang.org/issues/15982

+ rm %{buildroot}%{_bindir}/{racc2y,y2racc}

+ rm %{buildroot}%{gem_dir}/gems/racc-%{racc_version}/bin/{racc2y,y2racc}

+ mkdir -p %{buildroot}%{gem_dir}/gems/racc-%{racc_version}/lib

+ mkdir -p %{buildroot}%{_libdir}/gems/%{name}/racc-%{racc_version}

+ mv %{buildroot}%{ruby_libdir}/racc* %{buildroot}%{gem_dir}/gems/racc-%{racc_version}/lib

+ mv %{buildroot}%{ruby_libarchdir}/racc/ %{buildroot}%{_libdir}/gems/%{name}/racc-%{racc_version}/

+ touch %{buildroot}%{_libdir}/gems/%{name}/racc-%{racc_version}/gem.build_complete

+ mv %{buildroot}%{gem_dir}/specifications/default/racc-%{racc_version}.gemspec %{buildroot}%{gem_dir}/specifications

+ 

  # Move the binary extensions into proper place (if no gem has binary extension,

  # the extensions directory might be empty).

  find %{buildroot}%{gem_dir}/extensions/*-%{_target_os}/%{ruby_version}/* -maxdepth 0 \

@@ -763,7 +774,7 @@ 

  %check

  %if 0%{?with_hardening_test}

  # Check Ruby hardening.

- checksec -f libruby.so.%{ruby_version} | \

+ checksec --file=libruby.so.%{ruby_version} | \

    grep "Full RELRO.*Canary found.*NX enabled.*DSO.*No RPATH.*No RUNPATH.*Yes.*\d*.*\d*.*libruby.so.%{ruby_version}"

  %endif

  

@@ -781,9 +792,19 @@ 

  

  # Check Bundler bundled dependencies versions.

  

+ # connection_pool.

+ [ "`make 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.

- # TODO: There is no version in bundled FileUtils yet.

- #%%{global bundler_fileutils_version}

+ [ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \

+   module Bundler; end; \

+   require 'bundler/vendor/fileutils/lib/fileutils/version'; \

+   puts Bundler::FileUtils::VERSION\\\"\" | tail -1`" \

+   == '%{bundler_fileutils_version}' ]

  

  # Molinillo.

  [ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \

@@ -826,16 +847,17 @@ 

  # 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

- %ifarch aarch64

- DISABLE_TESTS="$DISABLE_TESTS -n !/test_segv_\(setproctitle\|test\|loaded_features\)/"

- %endif

+ # Disable "File.utime allows Time instances in the far future to set

+ # mtime and atime".

+ # https://bugs.ruby-lang.org/issues/16410

+ MSPECOPTS="$MSPECOPTS -P 'File.utime allows Time instances in the far future to set mtime and atime'"

  

- # Disable failing TestResolvMDNS#test_mdns_each_address test,

- # which fails on Koji.

- # https://bugs.ruby-lang.org/issues/14175

- sed -i '/def test_mdns_each_address$/,/^  end$/ s/^/#/' test/resolv/test_mdns.rb

+ # Increase timeout for TestBugReporter#test_bug_reporter_add test, which fails

+ # quite often.

+ # https://bugs.ruby-lang.org/issues/16492

+ %ifarch s390x

+ sed -i '/assert_in_out_err/ s/)/, timeout: 30)/' test/-ext-/bug_reporter/test_bug_reporter.rb

+ %endif

  

  make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS"

  

@@ -885,25 +907,31 @@ 

  %exclude %{ruby_libdir}/json.rb

  %exclude %{ruby_libdir}/openssl.rb

  %exclude %{ruby_libdir}/psych.rb

+ %{ruby_libdir}/benchmark

  %{ruby_libdir}/cgi

  %{ruby_libdir}/csv

+ %{ruby_libdir}/delegate

  %{ruby_libdir}/digest

  %{ruby_libdir}/drb

- %{ruby_libdir}/e2mmap

  %{ruby_libdir}/fiddle

- %{ruby_libdir}/fileutils

  %{ruby_libdir}/forwardable

+ %{ruby_libdir}/getoptlong

+ %{ruby_libdir}/logger

  %{ruby_libdir}/matrix

  %{ruby_libdir}/net

+ %{ruby_libdir}/observer

+ %{ruby_libdir}/open3

  %{ruby_libdir}/optparse

- %{ruby_libdir}/racc

+ %{ruby_libdir}/ostruct

+ %{ruby_libdir}/pstore

+ %{ruby_libdir}/reline

  %{ruby_libdir}/rexml

  %{ruby_libdir}/rinda

  %{ruby_libdir}/ripper

  %{ruby_libdir}/rss

- %{ruby_libdir}/shell

+ %{ruby_libdir}/singleton

  %{ruby_libdir}/syslog

- %{ruby_libdir}/thwait

+ %{ruby_libdir}/timeout

  %{ruby_libdir}/tracer

  %{ruby_libdir}/unicode_normalize

  %{ruby_libdir}/uri

@@ -928,6 +956,7 @@ 

  %{ruby_libarchdir}/digest/sha2.so

  %dir %{ruby_libarchdir}/enc

  %{ruby_libarchdir}/enc/big5.so

+ %{ruby_libarchdir}/enc/cesu_8.so

  %{ruby_libarchdir}/enc/cp949.so

  %{ruby_libarchdir}/enc/emacs_mule.so

  %{ruby_libarchdir}/enc/encdb.so

@@ -957,6 +986,7 @@ 

  %{ruby_libarchdir}/enc/shift_jis.so

  %dir %{ruby_libarchdir}/enc/trans

  %{ruby_libarchdir}/enc/trans/big5.so

+ %{ruby_libarchdir}/enc/trans/cesu_8.so

  %{ruby_libarchdir}/enc/trans/chinese.so

  %{ruby_libarchdir}/enc/trans/ebcdic.so

  %{ruby_libarchdir}/enc/trans/emoji.so

@@ -995,12 +1025,11 @@ 

  %dir %{ruby_libarchdir}/io

  %{ruby_libarchdir}/io/nonblock.so

  %{ruby_libarchdir}/io/wait.so

+ %{ruby_libarchdir}/monitor.so

  %{ruby_libarchdir}/nkf.so

  %{ruby_libarchdir}/objspace.so

  %{ruby_libarchdir}/pathname.so

  %{ruby_libarchdir}/pty.so

- %dir %{ruby_libarchdir}/racc

- %{ruby_libarchdir}/racc/cparse.so

  %dir %{ruby_libarchdir}/rbconfig

  %{ruby_libarchdir}/rbconfig.rb

  %{ruby_libarchdir}/rbconfig/sizeof.so

@@ -1037,35 +1066,45 @@ 

  %exclude %{gem_dir}/cache/*

  

  # TODO: Gemify these libraries

- %{gem_dir}/specifications/default/cmath-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/e2mmap-0.1.0.gemspec

- %{gem_dir}/specifications/default/etc-1.0.1.gemspec

+ %{gem_dir}/specifications/default/benchmark-0.1.0.gemspec

+ %{gem_dir}/specifications/default/cgi-0.1.0.gemspec

+ %{gem_dir}/specifications/default/csv-3.1.2.gemspec

+ %{gem_dir}/specifications/default/date-3.0.0.gemspec

+ %{gem_dir}/specifications/default/dbm-1.1.0.gemspec

+ %{gem_dir}/specifications/default/delegate-0.1.0.gemspec

+ %{gem_dir}/specifications/default/etc-1.1.0.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.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/fileutils-1.4.1.gemspec

+ %{gem_dir}/specifications/default/forwardable-1.3.1.gemspec

+ %{gem_dir}/specifications/default/gdbm-2.1.0.gemspec

+ %{gem_dir}/specifications/default/getoptlong-0.1.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/logger-1.4.2.gemspec

+ %{gem_dir}/specifications/default/matrix-0.2.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/net-pop-0.1.0.gemspec

+ %{gem_dir}/specifications/default/net-smtp-0.1.0.gemspec

+ %{gem_dir}/specifications/default/observer-0.1.0.gemspec

+ %{gem_dir}/specifications/default/open3-0.1.0.gemspec

+ %{gem_dir}/specifications/default/ostruct-0.2.0.gemspec

+ %{gem_dir}/specifications/default/prime-0.1.1.gemspec

+ %{gem_dir}/specifications/default/pstore-0.1.0.gemspec

+ %{gem_dir}/specifications/default/readline-0.0.2.gemspec

+ %{gem_dir}/specifications/default/readline-ext-0.1.0.gemspec

+ %{gem_dir}/specifications/default/reline-0.1.2.gemspec

+ %{gem_dir}/specifications/default/rexml-3.2.3.gemspec

+ %{gem_dir}/specifications/default/rss-0.2.8.gemspec

  %{gem_dir}/specifications/default/sdbm-1.0.0.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/singleton-0.1.0.gemspec

+ %{gem_dir}/specifications/default/stringio-0.1.0.gemspec

+ %{gem_dir}/specifications/default/strscan-1.0.3.gemspec

+ %{gem_dir}/specifications/default/timeout-0.1.0.gemspec

  %{gem_dir}/specifications/default/tracer-0.1.0.gemspec

- %{gem_dir}/specifications/default/webrick-1.4.2.gemspec