Upgrade to Ruby 2.6.0.

This commit is contained in:
Vít Ondruch 2019-01-17 08:31:01 +01:00
parent bb26a282aa
commit 0c8cdc456b
22 changed files with 321 additions and 705 deletions

View File

@ -11,7 +11,7 @@ diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 682eb46..e6b1445 100644 index 682eb46..e6b1445 100644
--- a/lib/mkmf.rb --- a/lib/mkmf.rb
+++ b/lib/mkmf.rb +++ b/lib/mkmf.rb
@@ -1900,7 +1900,7 @@ def configuration(srcdir) @@ -1911,7 +1911,7 @@ def configuration(srcdir)
SHELL = /bin/sh SHELL = /bin/sh
# V=0 quiet, V=1 verbose. other values don't work. # V=0 quiet, V=1 verbose. other values don't work.

View File

@ -13,9 +13,9 @@ diff --git a/Makefile.in b/Makefile.in
index 7e8ed82..7916993 100644 index 7e8ed82..7916993 100644
--- a/Makefile.in --- a/Makefile.in
+++ b/Makefile.in +++ b/Makefile.in
@@ -119,6 +119,8 @@ XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@ @@ -154,6 +154,8 @@ BOOTSTRAPRUBY = @BOOTSTRAPRUBY@
XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@ COROUTINE_H = @X_FIBER_COROUTINE_H@
BOOTSTRAPRUBY = @BOOTSTRAPRUBY@ COROUTINE_OBJ = $(COROUTINE_H:.h=.@OBJEXT@)
+OPTIONAL_PRELUDES = @OPTIONAL_PRELUDES@ +OPTIONAL_PRELUDES = @OPTIONAL_PRELUDES@
+ +
@ -26,7 +26,7 @@ diff --git a/common.mk b/common.mk
index 5cfbc3d..3f0a82e 100644 index 5cfbc3d..3f0a82e 100644
--- a/common.mk --- a/common.mk
+++ b/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) GOLFOBJS = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)
DEFAULT_PRELUDES = $(GEM_PRELUDE) DEFAULT_PRELUDES = $(GEM_PRELUDE)
@ -39,7 +39,7 @@ diff --git a/configure.ac b/configure.ac
index 028ef7ca3e..cdeff87871 100644 index 028ef7ca3e..cdeff87871 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -4396,6 +4396,13 @@ AC_SUBST(rubyarchhdrdir)dnl @@ -3854,6 +3854,13 @@ AC_SUBST(rubyarchhdrdir)dnl
AC_SUBST(sitearchhdrdir)dnl AC_SUBST(sitearchhdrdir)dnl
AC_SUBST(vendorarchhdrdir)dnl AC_SUBST(vendorarchhdrdir)dnl

View File

@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac
index 11fc237552..b77e88fc37 100644 index 11fc237552..b77e88fc37 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -3641,6 +3641,11 @@ AS_IF([test ${multiarch+set}], [ @@ -3084,6 +3084,11 @@ AS_IF([test ${multiarch+set}], [
]) ])
archlibdir='${libdir}/${arch}' archlibdir='${libdir}/${arch}'

View File

@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac
index 999e2d6d5d..11fc237552 100644 index 999e2d6d5d..11fc237552 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -4251,7 +4251,8 @@ AS_CASE(["$ruby_version_dir_name"], @@ -3709,7 +3709,8 @@ AS_CASE(["$ruby_version_dir_name"],
ruby_version_dir=/'${ruby_version_dir_name}' ruby_version_dir=/'${ruby_version_dir_name}'
if test -z "${ruby_version_dir_name}"; then if test -z "${ruby_version_dir_name}"; then
@ -66,7 +66,7 @@ diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
index 07076d4..35e6c3c 100755 index 07076d4..35e6c3c 100755
--- a/tool/mkconfig.rb --- a/tool/mkconfig.rb
+++ b/tool/mkconfig.rb +++ b/tool/mkconfig.rb
@@ -111,7 +111,7 @@ @@ -114,7 +114,7 @@
val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump
case name case name
when /^prefix$/ when /^prefix$/

View File

@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac
index b77e88fc37..6bba453e3c 100644 index b77e88fc37..6bba453e3c 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -4315,6 +4315,8 @@ AC_SUBST(vendorarchdir)dnl @@ -3773,6 +3773,8 @@ AC_SUBST(vendorarchdir)dnl
AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl
AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl

View File

@ -5,17 +5,17 @@ Subject: [PATCH] Allow to install RubyGems into custom location, outside of
Ruby tree. Ruby tree.
--- ---
configure.ac | 5 +++++ configure.ac | 5 +++++
loadpath.c | 4 ++++ loadpath.c | 4 ++++
template/verconf.h.tmpl | 3 +++ template/verconf.h.tmpl | 3 +++
tool/rbinstall.rb | 7 +++++++ tool/rbinstall.rb | 10 ++++++++++
4 files changed, 19 insertions(+) 4 files changed, 22 insertions(+)
diff --git a/configure.ac b/configure.ac diff --git a/configure.ac b/configure.ac
index 6bba453e3c..028ef7ca3e 100644 index 6bba453e3c..028ef7ca3e 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -4287,6 +4287,10 @@ AC_ARG_WITH(vendorarchdir, @@ -3745,6 +3745,10 @@ AC_ARG_WITH(vendorarchdir,
[vendorarchdir=$withval], [vendorarchdir=$withval],
[vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}]) [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}])
@ -26,7 +26,7 @@ index 6bba453e3c..028ef7ca3e 100644
AS_IF([test "${LOAD_RELATIVE+set}"], [ AS_IF([test "${LOAD_RELATIVE+set}"], [
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
RUBY_EXEC_PREFIX='' RUBY_EXEC_PREFIX=''
@@ -4311,6 +4315,7 @@ AC_SUBST(sitearchdir)dnl @@ -3769,6 +3773,7 @@ AC_SUBST(sitearchdir)dnl
AC_SUBST(vendordir)dnl AC_SUBST(vendordir)dnl
AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorlibdir)dnl
AC_SUBST(vendorarchdir)dnl AC_SUBST(vendorarchdir)dnl
@ -67,24 +67,27 @@ diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index b47b6e1..0b99408 100755 index b47b6e1..0b99408 100755
--- a/tool/rbinstall.rb --- a/tool/rbinstall.rb
+++ b/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"] sitearchlibdir = CONFIG["sitearchdir"]
vendorlibdir = CONFIG["vendorlibdir"] vendorlibdir = CONFIG["vendorlibdir"]
vendorarchlibdir = CONFIG["vendorarchdir"] vendorarchlibdir = CONFIG["vendorarchdir"]
+rubygemsdir = CONFIG["rubygemsdir"] +rubygemsdir = CONFIG["rubygemsdir"]
mandir = CONFIG["mandir", true] mandir = CONFIG["mandir", true]
docdir = CONFIG["docdir", true] docdir = CONFIG["docdir", true]
configure_args = Shellwords.shellwords(CONFIG["configure_args"]) enable_shared = CONFIG["ENABLE_SHARED"] == 'yes'
@@ -537,7 +538,13 @@ def install(src, cmd) @@ -560,7 +561,16 @@ def stub
install?(:local, :comm, :lib) do install?(:local, :comm, :lib) do
prepare "library scripts", rubylibdir prepare "library scripts", rubylibdir
noinst = %w[*.txt *.rdoc *.gemspec] 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) install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode)
+ if rubygemsdir + if rubygemsdir
+ noinst = %w[obsolete.rb] + noinst = %w[*.txt *.rdoc *.gemspec]
+ install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :mode => $data_mode) + 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(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
end end

View File

@ -11,7 +11,7 @@ diff --git a/common.mk b/common.mk
index 168dc52..20c218a 100644 index 168dc52..20c218a 100644
--- a/common.mk --- a/common.mk
+++ b/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 $(srcdir)/template/prelude.c.tmpl
$(PRELUDE_C): $(COMPILE_PRELUDE) \ $(PRELUDE_C): $(COMPILE_PRELUDE) \
@ -22,7 +22,7 @@ index 168dc52..20c218a 100644
+ $(Q) $(MINIRUBY) $(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) $(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 2.6.3

View File

@ -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 directories, e.g. instead of default X.Y.Z, you can specify whatever
string. string.
--- ---
configure.ac | 64 ++++++++++++++++++++++++++++------------------------- configure.ac | 64 ++++++++++++++++++++++++---------------------
template/ruby.pc.in | 1 + template/ruby.pc.in | 1 +
2 files changed, 35 insertions(+), 30 deletions(-) 2 files changed, 35 insertions(+), 30 deletions(-)
@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac
index 8ea969412f..a00f2b6776 100644 index 8ea969412f..a00f2b6776 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -4202,9 +4202,6 @@ AS_CASE(["$target_os"], @@ -3660,9 +3660,6 @@ AS_CASE(["$target_os"],
rubyw_install_name='$(RUBYW_INSTALL_NAME)' rubyw_install_name='$(RUBYW_INSTALL_NAME)'
]) ])
@ -30,7 +30,7 @@ index 8ea969412f..a00f2b6776 100644
rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'} rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'}
AC_ARG_WITH(rubyarchprefix, AC_ARG_WITH(rubyarchprefix,
AS_HELP_STRING([--with-rubyarchprefix=DIR], AS_HELP_STRING([--with-rubyarchprefix=DIR],
@@ -4227,56 +4224,62 @@ AC_ARG_WITH(ridir, @@ -3685,56 +3682,62 @@ AC_ARG_WITH(ridir,
AC_SUBST(ridir) AC_SUBST(ridir)
AC_SUBST(RI_BASE_NAME) AC_SUBST(RI_BASE_NAME)
@ -120,7 +120,7 @@ index 8ea969412f..a00f2b6776 100644
AS_IF([test "${LOAD_RELATIVE+set}"], [ AS_IF([test "${LOAD_RELATIVE+set}"], [
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
@@ -4293,6 +4296,7 @@ AC_SUBST(sitearchincludedir)dnl @@ -3751,6 +3754,7 @@ AC_SUBST(sitearchincludedir)dnl
AC_SUBST(arch)dnl AC_SUBST(arch)dnl
AC_SUBST(sitearch)dnl AC_SUBST(sitearch)dnl
AC_SUBST(ruby_version)dnl AC_SUBST(ruby_version)dnl
@ -171,14 +171,14 @@ diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index d4c110e..d39c9a6 100755 index d4c110e..d39c9a6 100755
--- a/tool/rbinstall.rb --- a/tool/rbinstall.rb
+++ b/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 install?(:doc, :rdoc) do
if $rdocdir if $rdocdir
- ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version'], "system") - ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version'], "system")
+ ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version_dir_name'] || CONFIG['ruby_version'], "system") + ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version_dir_name'] || CONFIG['ruby_version'], "system")
prepare "rdoc", ridatadir prepare "rdoc", ridatadir
install_recursive($rdocdir, ridatadir, :mode => $data_mode) install_recursive($rdocdir, ridatadir, :no_install => rdoc_noinst, :mode => $data_mode)
end end
-- --
2.1.0 2.1.0
@ -205,12 +205,12 @@ index 55ca080..75eea2b 100644
- RbConfig::CONFIG['ruby_version'] - RbConfig::CONFIG['ruby_version']
+ RbConfig::CONFIG['ruby_version_dir_name'] || 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'], RbConfig::CONFIG['rubylibprefix'],
'gems', 'gems',
- RbConfig::CONFIG['ruby_version'] - RbConfig::CONFIG['ruby_version']
+ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] + RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version']
] ]
else else
[ [
@ -245,7 +245,7 @@ diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 0428bea..b6e090e 100644 index 0428bea..b6e090e 100644
--- a/test/rubygems/test_gem.rb --- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb
@@ -1156,7 +1156,8 @@ def test_self_use_paths @@ -1280,7 +1280,8 @@ def test_self_use_paths
def test_self_user_dir def test_self_user_dir
parts = [@userhome, '.gem', Gem.ruby_engine] parts = [@userhome, '.gem', Gem.ruby_engine]
@ -255,7 +255,7 @@ index 0428bea..b6e090e 100644
assert_equal File.join(parts), Gem.user_dir assert_equal File.join(parts), Gem.user_dir
end end
@@ -1283,7 +1284,7 @@ def test_self_user_home_user_drive_and_path @@ -1357,7 +1358,7 @@ def test_self_gzip
def test_self_vendor_dir def test_self_vendor_dir
expected = expected =
File.join RbConfig::CONFIG['vendordir'], 'gems', File.join RbConfig::CONFIG['vendordir'], 'gems',
@ -282,7 +282,7 @@ diff --git a/configure.ac b/configure.ac
index a00f2b6776..999e2d6d5d 100644 index a00f2b6776..999e2d6d5d 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -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"` RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"`
AC_SUBST(RUBY_BASE_NAME) AC_SUBST(RUBY_BASE_NAME)
AC_SUBST(RUBYW_BASE_NAME) AC_SUBST(RUBYW_BASE_NAME)

View File

@ -8,8 +8,8 @@ on Red Hat platforms.
This workaround rhbz#1361037 This workaround rhbz#1361037
--- ---
test/fiddle/helper.rb | 92 --------------------------------------------------- test/fiddle/helper.rb | 89 -------------------------------------------
1 file changed, 92 deletions(-) 1 file changed, 89 deletions(-)
diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb
index 1da3d93..65148a1 100644 index 1da3d93..65148a1 100644

View File

@ -1,80 +0,0 @@
From 60eb961c25f801ee43ca1be9393ab2f0a0546677 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
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
@@ -1802,6 +1802,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

View File

@ -1,35 +0,0 @@
From 51e2c91412a511196e58efea5b87c460b4fa6a20 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
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

View File

@ -0,0 +1,95 @@
From 5168efc9ba0a0644c4fd1dbe09c1799f71301e42 Mon Sep 17 00:00:00 2001
From: Pavel Valena <pvalena@redhat.com>
Date: Tue, 8 Jan 2019 14:51:46 +0100
Subject: [PATCH] Revert 90e676886e681e16e34ef58e078bf0a0aae8b54f
---
lib/rubygems/commands/build_command.rb | 26 ++++++-------
.../test_gem_commands_build_command.rb | 37 -------------------
2 files changed, 12 insertions(+), 51 deletions(-)
diff --git a/lib/rubygems/commands/build_command.rb b/lib/rubygems/commands/build_command.rb
index e59471e976..3120236f9f 100644
--- a/lib/rubygems/commands/build_command.rb
+++ b/lib/rubygems/commands/build_command.rb
@@ -60,20 +60,18 @@ 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
- end
+ spec = Gem::Specification.load gemspec
+
+ if spec
+ Gem::Package.build(
+ spec,
+ options[:force],
+ options[:strict],
+ options[:output]
+ )
+ else
+ alert_error "Error loading gemspec. Aborting."
+ terminate_interaction 1
end
else
alert_error "Gemspec file not found: #{gemspec}"
diff --git a/test/rubygems/test_gem_commands_build_command.rb b/test/rubygems/test_gem_commands_build_command.rb
index ac82a408c7..fa5e7454f3 100644
--- a/test/rubygems/test_gem_commands_build_command.rb
+++ b/test/rubygems/test_gem_commands_build_command.rb
@@ -192,43 +192,6 @@ def test_execute_missing_file
assert_equal "ERROR: Gemspec file not found: some_gem\n", @ui.error
end
- def test_execute_outside_dir
- gemspec_dir = File.join @tempdir, 'build_command_gem'
- gemspec_file = File.join gemspec_dir, @gem.spec_name
- readme_file = File.join gemspec_dir, 'README.md'
-
- FileUtils.mkdir_p gemspec_dir
-
- File.open readme_file, 'w' do |f|
- f.write "My awesome gem"
- end
-
- File.open gemspec_file, 'w' do |gs|
- gs.write @gem.to_ruby
- end
-
- @cmd.options[:args] = [gemspec_file]
-
- use_ui @ui do
- @cmd.execute
- end
-
- output = @ui.output.split "\n"
- assert_equal " Successfully built RubyGem", output.shift
- assert_equal " Name: some_gem", output.shift
- assert_equal " Version: 2", output.shift
- assert_equal " File: some_gem-2.gem", output.shift
- assert_equal [], output
-
- gem_file = File.join gemspec_dir, File.basename(@gem.cache_file)
- assert File.exist?(gem_file)
-
- spec = Gem::Package.new(gem_file).spec
-
- assert_equal "some_gem", spec.name
- assert_equal "this is a summary", spec.summary
- end
-
def test_can_find_gemspecs_without_dot_gemspec
gemspec_file = File.join(@tempdir, @gem.spec_name)

View File

@ -1,44 +0,0 @@
From e71ca6cdcf108e6a2fa47ec9fadefe7554717908 Mon Sep 17 00:00:00 2001
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Fri, 26 Oct 2018 01:47:09 +0000
Subject: [PATCH] Update for tzdata-2018f
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
---
test/ruby/test_time_tz.rb | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/test/ruby/test_time_tz.rb b/test/ruby/test_time_tz.rb
index 2da4fd8d9ce4..328fde48fc34 100644
--- a/test/ruby/test_time_tz.rb
+++ b/test/ruby/test_time_tz.rb
@@ -86,7 +86,9 @@ def group_by(e, &block)
has_lisbon_tz &&= have_tz_offset?("Europe/Lisbon")
CORRECT_TOKYO_DST_1951 = with_tz("Asia/Tokyo") {
if Time.local(1951, 5, 6, 12, 0, 0).dst? # noon, DST
- Time.local(1951, 5, 6, 1, 0, 0).dst? # DST with fixed tzdata
+ if Time.local(1951, 5, 6, 1, 0, 0).dst? # DST with fixed tzdata
+ Time.local(1951, 9, 8, 23, 0, 0).dst? ? "2018f" : "2018e"
+ end
end
}
CORRECT_KIRITIMATI_SKIP_1994 = with_tz("Pacific/Kiritimati") {
@@ -347,12 +349,16 @@ def self.gen_zdump_test(data)
Asia/Singapore Thu Dec 31 16:29:59 1981 UTC = Thu Dec 31 23:59:59 1981 SGT isdst=0 gmtoff=27000
Asia/Singapore Thu Dec 31 16:30:00 1981 UTC = Fri Jan 1 00:30:00 1982 SGT isdst=0 gmtoff=28800
End
- gen_zdump_test CORRECT_TOKYO_DST_1951 ? <<'End' : <<'End'
+ gen_zdump_test CORRECT_TOKYO_DST_1951 ? <<'End' + (CORRECT_TOKYO_DST_1951 < "2018f" ? <<'2018e' : <<'2018f') : <<'End'
Asia/Tokyo Sat May 5 14:59:59 1951 UTC = Sat May 5 23:59:59 1951 JST isdst=0 gmtoff=32400
Asia/Tokyo Sat May 5 15:00:00 1951 UTC = Sun May 6 01:00:00 1951 JDT isdst=1 gmtoff=36000
+End
Asia/Tokyo Sat Sep 8 13:59:59 1951 UTC = Sat Sep 8 23:59:59 1951 JDT isdst=1 gmtoff=36000
Asia/Tokyo Sat Sep 8 14:00:00 1951 UTC = Sat Sep 8 23:00:00 1951 JST isdst=0 gmtoff=32400
-End
+2018e
+Asia/Tokyo Sat Sep 8 14:59:59 1951 UTC = Sun Sep 9 00:59:59 1951 JDT isdst=1 gmtoff=36000
+Asia/Tokyo Sat Sep 8 15:00:00 1951 UTC = Sun Sep 9 00:00:00 1951 JST isdst=0 gmtoff=32400
+2018f
Asia/Tokyo Sat May 5 16:59:59 1951 UTC = Sun May 6 01:59:59 1951 JST isdst=0 gmtoff=32400
Asia/Tokyo Sat May 5 17:00:00 1951 UTC = Sun May 6 03:00:00 1951 JDT isdst=1 gmtoff=36000
Asia/Tokyo Fri Sep 7 15:59:59 1951 UTC = Sat Sep 8 01:59:59 1951 JDT isdst=1 gmtoff=36000

View File

@ -13,8 +13,8 @@ versions. So continue to use the Ruby implementation for now.
Reference: https://github.com/ruby/openssl/issues/208 Reference: https://github.com/ruby/openssl/issues/208
--- ---
ext/openssl/lib/openssl/config.rb | 54 ++++++++++++++++++++++++++++--------------- ext/openssl/lib/openssl/config.rb | 54 ++++++++++++++++++++-----------
test/openssl/test_config.rb | 54 +++++++++++++++++++++++++++++++++++++++++++ test/openssl/test_config.rb | 54 +++++++++++++++++++++++++++++++
2 files changed, 90 insertions(+), 18 deletions(-) 2 files changed, 90 insertions(+), 18 deletions(-)
diff --git a/ext/openssl/lib/openssl/config.rb b/ext/openssl/lib/openssl/config.rb diff --git a/ext/openssl/lib/openssl/config.rb b/ext/openssl/lib/openssl/config.rb

View File

@ -1,43 +0,0 @@
From c8ccdbfe1e45cb3b832109d644296c0a3b3e0b59 Mon Sep 17 00:00:00 2001
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
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}",

View File

@ -1,177 +0,0 @@
From bb3db69e2a0c210cc3a63940622db96a97eb7947 Mon Sep 17 00:00:00 2001
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
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], [
@@ -2938,13 +2939,11 @@ AS_IF([test x"$enable_pthread" = xyes], [
AC_DEFINE(_THREAD_SAFE)
AC_DEFINE(HAVE_LIBPTHREAD)
AC_CHECK_HEADERS(pthread_np.h, [], [], [@%:@include <pthread.h>])
- 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")
])
@@ -3623,7 +3622,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*], [
@@ -3689,9 +3688,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
@@ -3726,7 +3722,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" ], [
@@ -3735,7 +3730,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"])
@@ -3746,11 +3740,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)'
@@ -3768,7 +3760,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'
@@ -3788,7 +3780,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)'
@@ -4031,7 +4022,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'
], [
@@ -4131,6 +4121,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

View File

@ -1,157 +0,0 @@
From 1dfc377ae3b174b043d3f0ed36de57b0296b34d0 Mon Sep 17 00:00:00 2001
From: rhe <rhe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Wed, 8 Aug 2018 14:13:55 +0000
Subject: [PATCH] net/http, net/ftp: fix session resumption with TLS 1.3
When TLS 1.3 is in use, the session ticket may not have been sent yet
even though a handshake has finished. Also, the ticket could change if
multiple session ticket messages are sent by the server. Use
SSLContext#session_new_cb instead of calling SSLSocket#session
immediately after a handshake. This way also works with earlier protocol
versions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
---
lib/net/ftp.rb | 5 ++++-
lib/net/http.rb | 7 +++++--
test/net/http/test_https.rb | 35 ++++++++++-------------------------
3 files changed, 19 insertions(+), 28 deletions(-)
diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb
index c3ee47ef4d36..9902f9dc657a 100644
--- a/lib/net/ftp.rb
+++ b/lib/net/ftp.rb
@@ -230,6 +230,10 @@ def initialize(host = nil, user_or_options = {}, passwd = nil, acct = nil)
if defined?(VerifyCallbackProc)
@ssl_context.verify_callback = VerifyCallbackProc
end
+ @ssl_context.session_cache_mode =
+ OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT |
+ OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE
+ @ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess }
@ssl_session = nil
if options[:private_data_connection].nil?
@private_data_connection = true
@@ -349,7 +353,6 @@ def start_tls_session(sock)
if @ssl_context.verify_mode != VERIFY_NONE
ssl_sock.post_connection_check(@host)
end
- @ssl_session = ssl_sock.session
return ssl_sock
end
private :start_tls_session
diff --git a/lib/net/http.rb b/lib/net/http.rb
index 281b15cedff0..683a884f5dbe 100644
--- a/lib/net/http.rb
+++ b/lib/net/http.rb
@@ -969,6 +969,10 @@ def connect
end
@ssl_context = OpenSSL::SSL::SSLContext.new
@ssl_context.set_params(ssl_parameters)
+ @ssl_context.session_cache_mode =
+ OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT |
+ OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE
+ @ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess }
D "starting SSL for #{conn_address}:#{conn_port}..."
s = OpenSSL::SSL::SSLSocket.new(s, @ssl_context)
s.sync_close = true
@@ -976,13 +980,12 @@ def connect
s.hostname = @address if s.respond_to? :hostname=
if @ssl_session and
Process.clock_gettime(Process::CLOCK_REALTIME) < @ssl_session.time.to_f + @ssl_session.timeout
- s.session = @ssl_session if @ssl_session
+ s.session = @ssl_session
end
ssl_socket_connect(s, @open_timeout)
if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
s.post_connection_check(@address)
end
- @ssl_session = s.session
D "SSL established"
end
@socket = BufferedIO.new(s, read_timeout: @read_timeout,
diff --git a/test/net/http/test_https.rb b/test/net/http/test_https.rb
index 8004d5c5f29f..a5182a1fe9db 100644
--- a/test/net/http/test_https.rb
+++ b/test/net/http/test_https.rb
@@ -71,20 +71,11 @@ def test_session_reuse
http.get("/")
http.finish
- http.start
- http.get("/")
- http.finish # three times due to possible bug in OpenSSL 0.9.8
-
- sid = http.instance_variable_get(:@ssl_session).id
-
http.start
http.get("/")
socket = http.instance_variable_get(:@socket).io
-
- assert socket.session_reused?
-
- assert_equal sid, http.instance_variable_get(:@ssl_session).id
+ assert_equal true, socket.session_reused?
http.finish
rescue SystemCallError
@@ -101,16 +92,12 @@ def test_session_reuse_but_expire
http.get("/")
http.finish
- sid = http.instance_variable_get(:@ssl_session).id
-
http.start
http.get("/")
socket = http.instance_variable_get(:@socket).io
assert_equal false, socket.session_reused?
- assert_not_equal sid, http.instance_variable_get(:@ssl_session).id
-
http.finish
rescue SystemCallError
skip $!
@@ -160,15 +147,16 @@ def test_certificate_verify_failure
end
def test_identity_verify_failure
+ # the certificate's subject has CN=localhost
http = Net::HTTP.new("127.0.0.1", config("port"))
http.use_ssl = true
- http.verify_callback = Proc.new do |preverify_ok, store_ctx|
- true
- end
+ http.cert_store = TEST_STORE
+ @log_tester = lambda {|_| }
ex = assert_raise(OpenSSL::SSL::SSLError){
http.request_get("/") {|res| }
}
- assert_match(/hostname \"127.0.0.1\" does not match/, ex.message)
+ re_msg = /certificate verify failed|hostname \"127.0.0.1\" does not match/
+ assert_match(re_msg, ex.message)
end
def test_timeout_during_SSL_handshake
@@ -193,16 +181,13 @@ def test_timeout_during_SSL_handshake
end
def test_min_version
- http = Net::HTTP.new("127.0.0.1", config("port"))
+ http = Net::HTTP.new("localhost", config("port"))
http.use_ssl = true
http.min_version = :TLS1
- http.verify_callback = Proc.new do |preverify_ok, store_ctx|
- true
- end
- ex = assert_raise(OpenSSL::SSL::SSLError){
- http.request_get("/") {|res| }
+ http.cert_store = TEST_STORE
+ http.request_get("/") {|res|
+ assert_equal($test_net_http_data, res.body)
}
- assert_match(/hostname \"127.0.0.1\" does not match/, ex.message)
end
def test_max_version

View File

@ -1,34 +0,0 @@
From d05e6269d4a4dfd701f5ddb3ae34306cba891511 Mon Sep 17 00:00:00 2001
From: Jun Aruga <jaruga@redhat.com>
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);
}

View File

@ -9,7 +9,7 @@ prevent stacking forever.
Reference: https://github.com/ruby/openssl/issues/214 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(-) 1 file changed, 22 insertions(+), 29 deletions(-)
diff --git a/test/openssl/test_pair.rb b/test/openssl/test_pair.rb 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 Reference: https://github.com/ruby/openssl/issues/215
--- ---
test/openssl/fixtures/pkey/dh-1.pem | 13 +++++++++ test/openssl/fixtures/pkey/dh-1.pem | 13 +++++++
test/openssl/fixtures/pkey/rsa-1.pem | 51 ++++++++++++++++++++++++++++++++++++ test/openssl/fixtures/pkey/rsa-1.pem | 51 ++++++++++++++++++++++++++++
test/openssl/fixtures/pkey/rsa-2.pem | 51 ++++++++++++++++++++++++++++++++++++ test/openssl/fixtures/pkey/rsa-2.pem | 51 ++++++++++++++++++++++++++++
test/openssl/fixtures/pkey/rsa-3.pem | 51 ++++++++++++++++++++++++++++++++++++ test/openssl/fixtures/pkey/rsa-3.pem | 51 ++++++++++++++++++++++++++++
test/openssl/test_pair.rb | 8 +++--- test/openssl/test_pair.rb | 8 ++---
test/openssl/test_pkey_dh.rb | 8 +++--- test/openssl/test_pkey_dh.rb | 8 ++---
test/openssl/test_ssl.rb | 11 ++++---- test/openssl/test_ssl.rb | 11 +++---
test/openssl/utils.rb | 14 +++++----- test/openssl/utils.rb | 14 ++++----
8 files changed, 186 insertions(+), 21 deletions(-) 8 files changed, 186 insertions(+), 21 deletions(-)
create mode 100644 test/openssl/fixtures/pkey/dh-1.pem 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-1.pem
@ -394,7 +394,7 @@ diff --git a/test/openssl/test_ssl.rb b/test/openssl/test_ssl.rb
index 408c7d82..2633f7c4 100644 index 408c7d82..2633f7c4 100644
--- a/test/openssl/test_ssl.rb --- a/test/openssl/test_ssl.rb
+++ b/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 def test_tlsext_hostname
fooctx = OpenSSL::SSL::SSLContext.new fooctx = OpenSSL::SSL::SSLContext.new
@ -403,7 +403,7 @@ index 408c7d82..2633f7c4 100644
fooctx.cert = @cli_cert fooctx.cert = @cli_cert
fooctx.key = @cli_key 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 = OpenSSL::SSL::SSLContext.new
ctx2.cert = @svr_cert ctx2.cert = @svr_cert
ctx2.key = @svr_key ctx2.key = @svr_key
@ -412,7 +412,7 @@ index 408c7d82..2633f7c4 100644
ctx2.servername_cb = lambda { |args| Object.new } ctx2.servername_cb = lambda { |args| Object.new }
sock1, sock2 = socketpair 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 = OpenSSL::SSL::SSLContext.new
ctx1.cert = @svr_cert ctx1.cert = @svr_cert
ctx1.key = @svr_key ctx1.key = @svr_key
@ -421,7 +421,7 @@ index 408c7d82..2633f7c4 100644
ctx1.alpn_select_cb = -> (protocols) { nil } ctx1.alpn_select_cb = -> (protocols) { nil }
ssl1 = OpenSSL::SSL::SSLSocket.new(sock1, ctx1) 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 def test_dh_callback
pend "TLS 1.2 is not supported" unless tls12_supported? pend "TLS 1.2 is not supported" unless tls12_supported?

240
ruby.spec
View File

@ -1,16 +1,16 @@
%global major_version 2 %global major_version 2
%global minor_version 5 %global minor_version 6
%global teeny_version 3 %global teeny_version 0
%global major_minor_version %{major_version}.%{minor_version} %global major_minor_version %{major_version}.%{minor_version}
%global ruby_version %{major_minor_version}.%{teeny_version} %global ruby_version %{major_minor_version}.%{teeny_version}
%global ruby_release %{ruby_version} %global ruby_release %{ruby_version}
# Specify the named version. It has precedense to revision. # Specify the named version. It has precedense to revision.
#%%global milestone rc1 #%%global milestone rc2
# Keep the revision enabled for pre-releases from SVN. # Keep the revision enabled for pre-releases from SVN.
#%%global revision 61414 #%%global revision 66252
%global ruby_archive %{name}-%{ruby_version} %global ruby_archive %{name}-%{ruby_version}
@ -21,7 +21,7 @@
%endif %endif
%global release 104 %global release 110
%{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} %{!?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 # The RubyGems library has to stay out of Ruby directory tree, since the
@ -29,25 +29,31 @@
%global rubygems_dir %{_datadir}/rubygems %global rubygems_dir %{_datadir}/rubygems
# Bundled libraries versions # Bundled libraries versions
%global rubygems_version 2.7.6 %global rubygems_version 3.0.1
%global molinillo_version 0.5.7 %global rubygems_molinillo_version 0.5.7
# TODO: The IRB has strange versioning. Keep the Ruby's versioning ATM. %global bundler_version 1.17.2
# http://redmine.ruby-lang.org/issues/5313 # FileUtils had not used to have separate versioning from Ruby :/ Lets use
%global irb_version %{ruby_version} # 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 bigdecimal_version 1.4.1
%global did_you_mean_version 1.2.0 %global did_you_mean_version 1.3.0
%global io_console_version 0.4.6 %global io_console_version 0.4.7
%global irb_version 1.0.0
%global json_version 2.1.0 %global json_version 2.1.0
%global minitest_version 5.10.3 %global minitest_version 5.11.3
%global net_telnet_version 0.1.1 %global net_telnet_version 0.2.0
%global openssl_version 2.1.2 %global openssl_version 2.1.2
%global power_assert_version 1.1.1 %global power_assert_version 1.1.3
%global psych_version 3.0.2 %global psych_version 3.1.0
%global rake_version 12.3.0 %global rake_version 12.3.2
%global rdoc_version 6.0.1 %global rdoc_version 6.1.0
%global test_unit_version 3.2.7 %global test_unit_version 3.2.9
%global xmlrpc_version 0.3.0 %global xmlrpc_version 0.3.0
# Might not be needed in the future, if we are lucky enough. # Might not be needed in the future, if we are lucky enough.
@ -62,10 +68,11 @@
%bcond_without rubypick %bcond_without rubypick
%endif %endif
%bcond_without systemtap
%bcond_without git
%bcond_without cmake %bcond_without cmake
%bcond_without git
%bcond_without gmp %bcond_without gmp
%bcond_without hostname
%bcond_without systemtap
%if 0%{?fedora} %if 0%{?fedora}
%bcond_without hardening_test %bcond_without hardening_test
@ -127,37 +134,20 @@ Patch5: ruby-1.9.3-mkmf-verbose.patch
# http://bugs.ruby-lang.org/issues/8566 # http://bugs.ruby-lang.org/issues/8566
Patch6: ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch Patch6: ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch
# Use miniruby to regenerate prelude.c. # 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 Patch7: ruby-2.2.3-Generate-preludes-using-miniruby.patch
# Workaround "an invalid stdio handle" error on PPC, due to recently introduced # Workaround "an invalid stdio handle" error on PPC, due to recently introduced
# hardening features of glibc (rhbz#1361037). # hardening features of glibc (rhbz#1361037).
# https://bugs.ruby-lang.org/issues/12666 # https://bugs.ruby-lang.org/issues/12666
Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch 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 Tokyo TZ tests.
# https://github.com/ruby/ruby/commit/e71ca6cdcf108e6a2fa47ec9fadefe7554717908
Patch25: ruby-2.6.0-Update-for-tzdata-2018f.patch
# Refresh expired certificates. # Refresh expired certificates.
# https://bugs.ruby-lang.org/issues/15502 # https://bugs.ruby-lang.org/issues/15502
# https://github.com/ruby/ruby/commit/6f9b40ea53d8f3fb2a5b1c7ac55c207d42c77ef4 Patch10: ruby-2.6.0-Try-to-update-cert.patch
Patch11: ruby-2.6.0-Try-to-update-cert.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: ruby-2.6.0-No-chdir-for-build.patch
# Fix some OpenSSL 1.1.1 test failures.
# https://github.com/ruby/ruby/commit/1dfc377ae3b174b043d3f0ed36de57b0296b34d0
Patch19: ruby-2.6.0-net-http-net-ftp-fix-session-resumption-with-TLS-1.3.patch
# Add support for .include directive used by OpenSSL config files. # Add support for .include directive used by OpenSSL config files.
# https://github.com/ruby/openssl/pull/216 # https://github.com/ruby/openssl/pull/216
Patch22: ruby-2.6.0-config-support-include-directive.patch Patch22: ruby-2.6.0-config-support-include-directive.patch
@ -187,6 +177,7 @@ BuildRequires: procps
%{?with_cmake:BuildRequires: %{_bindir}/cmake} %{?with_cmake:BuildRequires: %{_bindir}/cmake}
# Required to test hardening. # Required to test hardening.
%{?with_hardening_test:BuildRequires: %{_bindir}/checksec} %{?with_hardening_test:BuildRequires: %{_bindir}/checksec}
%{?with_hostname:BuildRequires: %{_bindir}/hostname}
BuildRequires: multilib-rpm-config BuildRequires: multilib-rpm-config
BuildRequires: gcc BuildRequires: gcc
@ -244,14 +235,16 @@ Version: %{rubygems_version}
Group: Development/Libraries Group: Development/Libraries
License: Ruby or MIT License: Ruby or MIT
Requires: ruby(release) Requires: ruby(release)
Recommends: rubygem(rdoc) >= %{rdoc_version} # RDoc is hard dependency for now :(
# https://github.com/rubygems/rubygems/issues/2483
Requires: rubygem(rdoc) >= %{rdoc_version}
Recommends: rubygem(io-console) >= %{io_console_version} Recommends: rubygem(io-console) >= %{io_console_version}
Requires: rubygem(openssl) >= %{openssl_version} Requires: rubygem(openssl) >= %{openssl_version}
Requires: rubygem(psych) >= %{psych_version} Requires: rubygem(psych) >= %{psych_version}
Provides: gem = %{version}-%{release} Provides: gem = %{version}-%{release}
Provides: ruby(rubygems) = %{version}-%{release} Provides: ruby(rubygems) = %{version}-%{release}
# https://github.com/rubygems/rubygems/pull/1189#issuecomment-121600910 # https://github.com/rubygems/rubygems/pull/1189#issuecomment-121600910
Provides: bundled(rubygem-molinillo) = %{molinillo_version} Provides: bundled(rubygem-molinillo) = %{rubygems_molinillo_version}
BuildArch: noarch BuildArch: noarch
%description -n rubygems %description -n rubygems
@ -290,16 +283,21 @@ Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
specified in standard Ruby syntax. specified in standard Ruby syntax.
%package irb %package -n rubygem-irb
Summary: The Interactive Ruby Summary: The Interactive Ruby
Version: %{irb_version} Version: %{irb_version}
Group: Development/Libraries Group: Development/Libraries
Requires: %{name}-libs = %{ruby_version} Requires: ruby(release)
Requires: ruby(rubygems) >= %{rubygems_version}
Provides: irb = %{version}-%{release} 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 BuildArch: noarch
%description irb %description -n rubygem-irb
The irb is acronym for Interactive Ruby. It evaluates ruby expression The irb is acronym for Interactive Ruby. It evaluates ruby expression
from the terminal. from the terminal.
@ -312,7 +310,7 @@ Group: Development/Libraries
License: GPLv2 and Ruby and MIT and OFL License: GPLv2 and Ruby and MIT and OFL
Requires: ruby(release) Requires: ruby(release)
Requires: ruby(rubygems) >= %{rubygems_version} Requires: ruby(rubygems) >= %{rubygems_version}
Requires: ruby(irb) = %{irb_version} Requires: rubygem(irb) >= %{irb_version}
Requires: rubygem(io-console) >= %{io_console_version} Requires: rubygem(io-console) >= %{io_console_version}
Requires: rubygem(json) >= %{json_version} Requires: rubygem(json) >= %{json_version}
Provides: rdoc = %{version}-%{release} Provides: rdoc = %{version}-%{release}
@ -529,6 +527,27 @@ XMLRPC is a lightweight protocol that enables remote procedure calls over
HTTP. HTTP.
%package -n rubygem-bundler
Summary: Library and utilities to manage a Ruby application's gem dependencies
Version: %{bundler_version}
Group: Development/Libraries
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 %prep
%setup -q -n %{ruby_archive} %setup -q -n %{ruby_archive}
@ -547,14 +566,8 @@ rm -rf ext/fiddle/libffi*
%patch9 -p1 %patch9 -p1
%patch10 -p1 %patch10 -p1
%patch11 -p1 %patch11 -p1
%patch15 -p1
%patch16 -p1
%patch19 -p1
%patch20 -p1
%patch22 -p1 %patch22 -p1
%patch23 -p1 %patch23 -p1
%patch24 -p1
%patch25 -p1
# Provide an example of usage of the tapset: # Provide an example of usage of the tapset:
cp -a %{SOURCE3} . cp -a %{SOURCE3} .
@ -599,6 +612,9 @@ make install DESTDIR=%{buildroot}
# Rename ruby/config.h to ruby/config-<arch>.h to avoid file conflicts on # Rename ruby/config.h to ruby/config-<arch>.h to avoid file conflicts on
# multilib systems and install config.h wrapper # multilib systems and install config.h wrapper
%multilib_fix_c_header --file %{_includedir}/%{name}/config.h %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. # Rename the ruby executable. It is replaced by RubyPick.
%{?with_rubypick:mv %{buildroot}%{_bindir}/%{name}{,-mri}} %{?with_rubypick:mv %{buildroot}%{_bindir}/%{name}{,-mri}}
@ -615,9 +631,13 @@ for cert in \
do do
rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert
rm -r $(dirname %{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 done
# Ensure there is not forgotten any certificate. # Ensure there is not forgotten any certificate.
test ! "$(ls -A %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/ 2>/dev/null)" 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 # Move macros file into proper place and replace the %%{name} macro, since it
# would be wrongly evaluated during build of other packages. # would be wrongly evaluated during build of other packages.
@ -649,17 +669,30 @@ mkdir -p %{buildroot}%{_exec_prefix}/lib{,64}/gems/%{name}
# Move bundled rubygems to %%gem_dir and %%gem_extdir_mri # 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 # 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
mkdir -p %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib 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}%{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 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}%{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_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.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 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 %{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.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}%{gem_dir}/gems/io-console-%{io_console_version}/lib
mkdir -p %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/io mkdir -p %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/io
@ -750,7 +783,35 @@ checksec -f libruby.so.%{ruby_version} | \
module Gem; module Resolver; end; end; \ module Gem; module Resolver; end; end; \
require 'rubygems/resolver/molinillo/lib/molinillo/gem_metadata'; \ require 'rubygems/resolver/molinillo/lib/molinillo/gem_metadata'; \
puts Gem::Resolver::Molinillo::VERSION\\\"\" | tail -1`" \ 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, # test_debug(TestRubyOptions) fails due to LoadError reported in debug mode,
@ -766,6 +827,10 @@ make runruby TESTRUN_SCRIPT="--enable-gems %{SOURCE13}"
%{?with_systemtap:make runruby TESTRUN_SCRIPT=%{SOURCE14}} %{?with_systemtap:make runruby TESTRUN_SCRIPT=%{SOURCE14}}
DISABLE_TESTS="" 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. # SIGSEV handler does not provide correct output on AArch64.
# https://bugs.ruby-lang.org/issues/13758 # https://bugs.ruby-lang.org/issues/13758
@ -778,11 +843,7 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/test_segv_\(setproctitle\|test\|loaded_featur
# https://bugs.ruby-lang.org/issues/14175 # https://bugs.ruby-lang.org/issues/14175
sed -i '/def test_mdns_each_address$/,/^ end$/ s/^/#/' test/resolv/test_mdns.rb sed -i '/def test_mdns_each_address$/,/^ end$/ s/^/#/' test/resolv/test_mdns.rb
# For now, disable test incompatible with OpenSSL 1.1.1: make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS"
# https://github.com/rubygems/rubygems/issues/2388
DISABLE_TESTS="$DISABLE_TESTS -n !/test_do_not_allow_invalid_client_cert_auth_connection/"
make check TESTS="-v $DISABLE_TESTS"
%files %files
%license BSDL %license BSDL
@ -826,16 +887,17 @@ make check TESTS="-v $DISABLE_TESTS"
# Platform independent libraries. # Platform independent libraries.
%dir %{ruby_libdir} %dir %{ruby_libdir}
%{ruby_libdir}/*.rb %{ruby_libdir}/*.rb
%exclude %{ruby_libdir}/irb.rb
%exclude %{ruby_libdir}/json.rb %exclude %{ruby_libdir}/json.rb
%exclude %{ruby_libdir}/openssl.rb %exclude %{ruby_libdir}/openssl.rb
%exclude %{ruby_libdir}/psych.rb %exclude %{ruby_libdir}/psych.rb
%{ruby_libdir}/cgi %{ruby_libdir}/cgi
%{ruby_libdir}/csv
%{ruby_libdir}/digest %{ruby_libdir}/digest
%{ruby_libdir}/drb %{ruby_libdir}/drb
%{ruby_libdir}/e2mmap
%{ruby_libdir}/fiddle %{ruby_libdir}/fiddle
%{ruby_libdir}/fileutils
%{ruby_libdir}/forwardable %{ruby_libdir}/forwardable
%exclude %{ruby_libdir}/irb
%{ruby_libdir}/matrix %{ruby_libdir}/matrix
%{ruby_libdir}/net %{ruby_libdir}/net
%{ruby_libdir}/optparse %{ruby_libdir}/optparse
@ -846,6 +908,8 @@ make check TESTS="-v $DISABLE_TESTS"
%{ruby_libdir}/rss %{ruby_libdir}/rss
%{ruby_libdir}/shell %{ruby_libdir}/shell
%{ruby_libdir}/syslog %{ruby_libdir}/syslog
%{ruby_libdir}/thwait
%{ruby_libdir}/tracer
%{ruby_libdir}/unicode_normalize %{ruby_libdir}/unicode_normalize
%{ruby_libdir}/uri %{ruby_libdir}/uri
%{ruby_libdir}/webrick %{ruby_libdir}/webrick
@ -979,19 +1043,32 @@ make check TESTS="-v $DISABLE_TESTS"
# TODO: Gemify these libraries # TODO: Gemify these libraries
%{gem_dir}/specifications/default/cmath-1.0.0.gemspec %{gem_dir}/specifications/default/cmath-1.0.0.gemspec
%{gem_dir}/specifications/default/csv-1.0.0.gemspec %{gem_dir}/specifications/default/csv-3.0.2.gemspec
%{gem_dir}/specifications/default/date-1.0.0.gemspec %{gem_dir}/specifications/default/date-1.0.0.gemspec
%{gem_dir}/specifications/default/dbm-1.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/fcntl-1.0.0.gemspec
%{gem_dir}/specifications/default/fiddle-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/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/scanf-1.0.0.gemspec
%{gem_dir}/specifications/default/sdbm-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/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/webrick-1.4.2.gemspec
%{gem_dir}/specifications/default/zlib-1.0.0.gemspec %{gem_dir}/specifications/default/zlib-1.0.0.gemspec
@ -1008,10 +1085,10 @@ make check TESTS="-v $DISABLE_TESTS"
%{gem_dir}/specifications/rake-%{rake_version}.gemspec %{gem_dir}/specifications/rake-%{rake_version}.gemspec
%{_mandir}/man1/rake.1* %{_mandir}/man1/rake.1*
%files irb %files -n rubygem-irb
%{_bindir}/irb %{_bindir}/irb
%{ruby_libdir}/irb.rb %{gem_dir}/gems/irb-%{irb_version}
%{ruby_libdir}/irb %{gem_dir}/specifications/irb-%{irb_version}.gemspec
%{_mandir}/man1/irb.1* %{_mandir}/man1/irb.1*
%files -n rubygem-rdoc %files -n rubygem-rdoc
@ -1029,7 +1106,7 @@ make check TESTS="-v $DISABLE_TESTS"
%files -n rubygem-bigdecimal %files -n rubygem-bigdecimal
%{ruby_libdir}/bigdecimal %{ruby_libdir}/bigdecimal
%{ruby_libarchdir}/bigdecimal.so %{ruby_libarchdir}/bigdecimal*
%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version} %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}
%{gem_dir}/gems/bigdecimal-%{bigdecimal_version} %{gem_dir}/gems/bigdecimal-%{bigdecimal_version}
%{gem_dir}/specifications/bigdecimal-%{bigdecimal_version}.gemspec %{gem_dir}/specifications/bigdecimal-%{bigdecimal_version}.gemspec
@ -1100,7 +1177,18 @@ make check TESTS="-v $DISABLE_TESTS"
%{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/xmlrpc.gemspec %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/xmlrpc.gemspec
%{gem_dir}/specifications/xmlrpc-%{xmlrpc_version}.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 %changelog
* Thu Jan 17 2019 Vít Ondruch <vondruch@redhat.com> - 2.6.0-110
- Upgrade to Ruby 2.6.0.
* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 2.5.3-104 * Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 2.5.3-104
- Rebuilt for libcrypt.so.2 (#1666033) - Rebuilt for libcrypt.so.2 (#1666033)

View File

@ -9,9 +9,9 @@ module RubyGemsProv
def self.normalize_prerelease(version) def self.normalize_prerelease(version)
if version.prerelease? if version.prerelease?
prerelease = version.version.sub /^#{version.release}\./, '' prerelease = version.version.sub /^#{version.release}\./, ''
"#{version.release}-0.1.#{prerelease}" "#{version.release}~#{prerelease}"
else else
"#{version.release}-1" version.release
end end
end end
end end

View File

@ -1 +1 @@
SHA512 (ruby-2.5.3.tar.xz) = 6dcae0e8d0bacdb2cbde636e2030596308b5af53f2eb85d3adccb67b02e6f8f9751e8117d12f8484829fdd9d995f6e327f701d9b433bcf94f1f59d13a1fd7518 SHA512 (ruby-2.6.0.tar.xz) = c56eaf85ef7b79deb34ee4590b143c07f4fc83eb79775290761aee5a7c63374659613538a41f25706ed6e19e49d5c67a1014c24d17f29948294c7abd0b0fcea8