Compare commits
11 Commits
master
...
riscv64-25
Author | SHA1 | Date | |
---|---|---|---|
e6a4f2c358 | |||
27e9218942 | |||
|
ae01eef634 | ||
|
1a07de6014 | ||
|
8b7666181d | ||
|
dd6d7c632d | ||
|
57b99e88e2 | ||
|
339aa38d61 | ||
|
9b32c69239 | ||
|
2ed5fb81e8 | ||
|
4b263effe3 |
@ -119,6 +119,7 @@ module Gem
|
||||
def default_path
|
||||
path = default_dirs.collect {|location, paths| paths[:gem_dir]}
|
||||
path.unshift Gem.user_dir if File.exist? Gem.user_home
|
||||
path
|
||||
end
|
||||
|
||||
def default_ext_dir_for base_dir
|
||||
|
@ -11,7 +11,7 @@ diff --git a/lib/mkmf.rb b/lib/mkmf.rb
|
||||
index 682eb46..e6b1445 100644
|
||||
--- a/lib/mkmf.rb
|
||||
+++ b/lib/mkmf.rb
|
||||
@@ -1899,7 +1899,7 @@ def configuration(srcdir)
|
||||
@@ -1900,7 +1900,7 @@ def configuration(srcdir)
|
||||
SHELL = /bin/sh
|
||||
|
||||
# V=0 quiet, V=1 verbose. other values don't work.
|
||||
|
@ -39,7 +39,7 @@ diff --git a/configure.ac b/configure.ac
|
||||
index 028ef7ca3e..cdeff87871 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4396,6 +4396,13 @@ AC_SUBST(rubyarchhdrdir)dnl
|
||||
@@ -4397,6 +4397,13 @@ AC_SUBST(rubyarchhdrdir)dnl
|
||||
AC_SUBST(sitearchhdrdir)dnl
|
||||
AC_SUBST(vendorarchhdrdir)dnl
|
||||
|
||||
|
@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac
|
||||
index 11fc237552..b77e88fc37 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3641,6 +3641,11 @@ AS_IF([test ${multiarch+set}], [
|
||||
@@ -3642,6 +3642,11 @@ AS_IF([test ${multiarch+set}], [
|
||||
])
|
||||
|
||||
archlibdir='${libdir}/${arch}'
|
||||
|
@ -14,7 +14,7 @@ diff --git a/configure.ac b/configure.ac
|
||||
index 999e2d6d5d..11fc237552 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4251,7 +4251,8 @@ AS_CASE(["$ruby_version_dir_name"],
|
||||
@@ -4252,7 +4252,8 @@ AS_CASE(["$ruby_version_dir_name"],
|
||||
ruby_version_dir=/'${ruby_version_dir_name}'
|
||||
|
||||
if test -z "${ruby_version_dir_name}"; then
|
||||
|
@ -11,7 +11,7 @@ diff --git a/configure.ac b/configure.ac
|
||||
index b77e88fc37..6bba453e3c 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4315,6 +4315,8 @@ AC_SUBST(vendorarchdir)dnl
|
||||
@@ -4316,6 +4316,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
|
||||
|
||||
|
@ -15,7 +15,7 @@ diff --git a/configure.ac b/configure.ac
|
||||
index 6bba453e3c..028ef7ca3e 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4287,6 +4287,10 @@ AC_ARG_WITH(vendorarchdir,
|
||||
@@ -4288,6 +4288,10 @@ AC_ARG_WITH(vendorarchdir,
|
||||
[vendorarchdir=$withval],
|
||||
[vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}])
|
||||
|
||||
@ -26,7 +26,7 @@ index 6bba453e3c..028ef7ca3e 100644
|
||||
AS_IF([test "${LOAD_RELATIVE+set}"], [
|
||||
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
|
||||
RUBY_EXEC_PREFIX=''
|
||||
@@ -4311,6 +4315,7 @@ AC_SUBST(sitearchdir)dnl
|
||||
@@ -4312,6 +4316,7 @@ AC_SUBST(sitearchdir)dnl
|
||||
AC_SUBST(vendordir)dnl
|
||||
AC_SUBST(vendorlibdir)dnl
|
||||
AC_SUBST(vendorarchdir)dnl
|
||||
|
@ -20,7 +20,7 @@ diff --git a/configure.ac b/configure.ac
|
||||
index 8ea969412f..a00f2b6776 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -4202,9 +4202,6 @@ AS_CASE(["$target_os"],
|
||||
@@ -4203,9 +4203,6 @@ AS_CASE(["$target_os"],
|
||||
rubyw_install_name='$(RUBYW_INSTALL_NAME)'
|
||||
])
|
||||
|
||||
@ -30,7 +30,7 @@ index 8ea969412f..a00f2b6776 100644
|
||||
rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'}
|
||||
AC_ARG_WITH(rubyarchprefix,
|
||||
AS_HELP_STRING([--with-rubyarchprefix=DIR],
|
||||
@@ -4227,56 +4224,62 @@ AC_ARG_WITH(ridir,
|
||||
@@ -4228,56 +4225,62 @@ AC_ARG_WITH(ridir,
|
||||
AC_SUBST(ridir)
|
||||
AC_SUBST(RI_BASE_NAME)
|
||||
|
||||
@ -120,7 +120,7 @@ index 8ea969412f..a00f2b6776 100644
|
||||
|
||||
AS_IF([test "${LOAD_RELATIVE+set}"], [
|
||||
AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
|
||||
@@ -4293,6 +4296,7 @@ AC_SUBST(sitearchincludedir)dnl
|
||||
@@ -4294,6 +4297,7 @@ AC_SUBST(sitearchincludedir)dnl
|
||||
AC_SUBST(arch)dnl
|
||||
AC_SUBST(sitearch)dnl
|
||||
AC_SUBST(ruby_version)dnl
|
||||
@ -245,7 +245,7 @@ diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
|
||||
index 0428bea..b6e090e 100644
|
||||
--- a/test/rubygems/test_gem.rb
|
||||
+++ b/test/rubygems/test_gem.rb
|
||||
@@ -1156,7 +1156,8 @@ def test_self_use_paths
|
||||
@@ -1191,7 +1191,8 @@ def test_self_use_paths
|
||||
|
||||
def test_self_user_dir
|
||||
parts = [@userhome, '.gem', Gem.ruby_engine]
|
||||
@ -255,7 +255,7 @@ index 0428bea..b6e090e 100644
|
||||
|
||||
assert_equal File.join(parts), Gem.user_dir
|
||||
end
|
||||
@@ -1283,7 +1284,7 @@ def test_self_user_home_user_drive_and_path
|
||||
@@ -1318,7 +1319,7 @@ def test_self_user_home_user_drive_and_path
|
||||
def test_self_vendor_dir
|
||||
expected =
|
||||
File.join RbConfig::CONFIG['vendordir'], 'gems',
|
||||
|
@ -64,7 +64,7 @@ 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
|
||||
@@ -1837,6 +1837,13 @@ def test_use_gemdeps_specific
|
||||
ENV['RUBYGEMS_GEMDEPS'] = rubygems_gemdeps
|
||||
end
|
||||
|
||||
|
@ -1,112 +0,0 @@
|
||||
From 71057ca5963108bac1e2c31bd0e8e205ba74cc19 Mon Sep 17 00:00:00 2001
|
||||
From: Kazuki Yamaguchi <k@rhe.jp>
|
||||
Date: Fri, 11 May 2018 13:43:32 +0900
|
||||
Subject: [PATCH 1/2] test/test_pkey_rsa: fix test failure with OpenSSL 1.1.1
|
||||
|
||||
OpenSSL 1.1.1 raised the minimum size for RSA keys to 512 bits.
|
||||
---
|
||||
test/openssl/test_pkey_rsa.rb | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/openssl/test_pkey_rsa.rb b/test/openssl/test_pkey_rsa.rb
|
||||
index c1205563..b4393e68 100644
|
||||
--- a/test/openssl/test_pkey_rsa.rb
|
||||
+++ b/test/openssl/test_pkey_rsa.rb
|
||||
@@ -60,6 +60,13 @@ def test_new_with_exponent
|
||||
end
|
||||
end
|
||||
|
||||
+ def test_generate
|
||||
+ key = OpenSSL::PKey::RSA.generate(512, 17)
|
||||
+ assert_equal 512, key.n.num_bits
|
||||
+ assert_equal 17, key.e
|
||||
+ assert_not_nil key.d
|
||||
+ end
|
||||
+
|
||||
def test_new_break
|
||||
assert_nil(OpenSSL::PKey::RSA.new(1024) { break })
|
||||
assert_raise(RuntimeError) do
|
||||
@@ -256,7 +263,7 @@ def test_pem_passwd
|
||||
end
|
||||
|
||||
def test_dup
|
||||
- key = OpenSSL::PKey::RSA.generate(256, 17)
|
||||
+ key = Fixtures.pkey("rsa1024")
|
||||
key2 = key.dup
|
||||
assert_equal key.params, key2.params
|
||||
key2.set_key(key2.n, 3, key2.d)
|
||||
|
||||
From a5e26bc1345fe325bdc619f9b1768b7ad3c94214 Mon Sep 17 00:00:00 2001
|
||||
From: Kazuki Yamaguchi <k@rhe.jp>
|
||||
Date: Fri, 11 May 2018 14:12:39 +0900
|
||||
Subject: [PATCH 2/2] test/test_ssl_session: set client protocol version
|
||||
explicitly
|
||||
|
||||
Clients that implement TLS 1.3's Middlebox Compatibility Mode will
|
||||
always provide a non-empty session ID in the ClientHello. This means
|
||||
the "get" callback for the server-side session caching may be called
|
||||
for the initial connection.
|
||||
---
|
||||
test/openssl/test_ssl_session.rb | 14 +++++++++-----
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/test/openssl/test_ssl_session.rb b/test/openssl/test_ssl_session.rb
|
||||
index af8c65b1..6db0c2d1 100644
|
||||
--- a/test/openssl/test_ssl_session.rb
|
||||
+++ b/test/openssl/test_ssl_session.rb
|
||||
@@ -198,7 +198,9 @@ def test_server_session_cache
|
||||
first_session = nil
|
||||
10.times do |i|
|
||||
connections = i
|
||||
- server_connect_with_session(port, nil, first_session) { |ssl|
|
||||
+ cctx = OpenSSL::SSL::SSLContext.new
|
||||
+ cctx.ssl_version = :TLSv1_2
|
||||
+ server_connect_with_session(port, cctx, first_session) { |ssl|
|
||||
ssl.puts("abc"); assert_equal "abc\n", ssl.gets
|
||||
first_session ||= ssl.session
|
||||
|
||||
@@ -257,6 +259,8 @@ def test_ctx_server_session_cb
|
||||
|
||||
connections = nil
|
||||
called = {}
|
||||
+ cctx = OpenSSL::SSL::SSLContext.new
|
||||
+ cctx.ssl_version = :TLSv1_2
|
||||
sctx = nil
|
||||
ctx_proc = Proc.new { |ctx|
|
||||
sctx = ctx
|
||||
@@ -292,7 +296,7 @@ def test_ctx_server_session_cb
|
||||
}
|
||||
start_server(ctx_proc: ctx_proc) do |port|
|
||||
connections = 0
|
||||
- sess0 = server_connect_with_session(port, nil, nil) { |ssl|
|
||||
+ sess0 = server_connect_with_session(port, cctx, nil) { |ssl|
|
||||
ssl.puts("abc"); assert_equal "abc\n", ssl.gets
|
||||
assert_equal false, ssl.session_reused?
|
||||
ssl.session
|
||||
@@ -307,7 +311,7 @@ def test_ctx_server_session_cb
|
||||
|
||||
# Internal cache hit
|
||||
connections = 1
|
||||
- server_connect_with_session(port, nil, sess0.dup) { |ssl|
|
||||
+ server_connect_with_session(port, cctx, sess0.dup) { |ssl|
|
||||
ssl.puts("abc"); assert_equal "abc\n", ssl.gets
|
||||
assert_equal true, ssl.session_reused?
|
||||
ssl.session
|
||||
@@ -328,7 +332,7 @@ def test_ctx_server_session_cb
|
||||
|
||||
# External cache hit
|
||||
connections = 2
|
||||
- sess2 = server_connect_with_session(port, nil, sess0.dup) { |ssl|
|
||||
+ sess2 = server_connect_with_session(port, cctx, sess0.dup) { |ssl|
|
||||
ssl.puts("abc"); assert_equal "abc\n", ssl.gets
|
||||
if !ssl.session_reused? && openssl?(1, 1, 0) && !openssl?(1, 1, 0, 7)
|
||||
# OpenSSL >= 1.1.0, < 1.1.0g
|
||||
@@ -355,7 +359,7 @@ def test_ctx_server_session_cb
|
||||
|
||||
# Cache miss
|
||||
connections = 3
|
||||
- sess3 = server_connect_with_session(port, nil, sess0.dup) { |ssl|
|
||||
+ sess3 = server_connect_with_session(port, cctx, sess0.dup) { |ssl|
|
||||
ssl.puts("abc"); assert_equal "abc\n", ssl.gets
|
||||
assert_equal false, ssl.session_reused?
|
||||
ssl.session
|
@ -1,115 +0,0 @@
|
||||
From 584b5929f9b769c4d0b03e322a9fddf2b2dd3454 Mon Sep 17 00:00:00 2001
|
||||
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
|
||||
Date: Sun, 1 Apr 2018 13:02:11 +0000
|
||||
Subject: [PATCH] test_time_tz.rb: Kiritimati tzdata fix
|
||||
|
||||
* test/ruby/test_time_tz.rb (gen_zdump_test): fix the expected
|
||||
data at the Kiritimati's skip of New Year's Eve 1994.
|
||||
[Bug #14655]
|
||||
|
||||
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
||||
---
|
||||
test/ruby/test_time_tz.rb | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/test/ruby/test_time_tz.rb b/test/ruby/test_time_tz.rb
|
||||
index dfe139033ed3..ac5f81892878 100644
|
||||
--- a/test/ruby/test_time_tz.rb
|
||||
+++ b/test/ruby/test_time_tz.rb
|
||||
@@ -364,9 +364,18 @@ def self.gen_zdump_test(data)
|
||||
Europe/London Sun Aug 10 01:00:00 1947 UTC = Sun Aug 10 02:00:00 1947 BST isdst=1 gmtoff=3600
|
||||
Europe/London Sun Nov 2 01:59:59 1947 UTC = Sun Nov 2 02:59:59 1947 BST isdst=1 gmtoff=3600
|
||||
Europe/London Sun Nov 2 02:00:00 1947 UTC = Sun Nov 2 02:00:00 1947 GMT isdst=0 gmtoff=0
|
||||
+End
|
||||
+ if CORRECT_KIRITIMATI_SKIP_1994
|
||||
+ gen_zdump_test <<'End'
|
||||
+Pacific/Kiritimati Sat Dec 31 09:59:59 1994 UTC = Fri Dec 30 23:59:59 1994 LINT isdst=0 gmtoff=-36000
|
||||
+Pacific/Kiritimati Sat Dec 31 10:00:00 1994 UTC = Sun Jan 1 00:00:00 1995 LINT isdst=0 gmtoff=50400
|
||||
+End
|
||||
+ else
|
||||
+ gen_zdump_test <<'End'
|
||||
Pacific/Kiritimati Sun Jan 1 09:59:59 1995 UTC = Sat Dec 31 23:59:59 1994 LINT isdst=0 gmtoff=-36000
|
||||
Pacific/Kiritimati Sun Jan 1 10:00:00 1995 UTC = Mon Jan 2 00:00:00 1995 LINT isdst=0 gmtoff=50400
|
||||
End
|
||||
+ end
|
||||
gen_zdump_test <<'End' if has_right_tz
|
||||
right/America/Los_Angeles Fri Jun 30 23:59:60 1972 UTC = Fri Jun 30 16:59:60 1972 PDT isdst=1 gmtoff=-25200
|
||||
right/America/Los_Angeles Wed Dec 31 23:59:60 2008 UTC = Wed Dec 31 15:59:60 2008 PST isdst=0 gmtoff=-28800
|
||||
--
|
||||
|
||||
From 2965c2d4df78e6f5acf8759f84c88ce14a4e70f1 Mon Sep 17 00:00:00 2001
|
||||
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
|
||||
Date: Sun, 1 Apr 2018 02:00:36 +0000
|
||||
Subject: [PATCH] test_time_tz.rb: Kiritimati tzdata fix
|
||||
|
||||
* test/ruby/test_time_tz.rb (TestTimeTZ#test_pacific_kiritimati):
|
||||
fix the expected data at the skip of New Year's Eve 1994.
|
||||
[Bug #14655]
|
||||
|
||||
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
||||
---
|
||||
test/ruby/test_time_tz.rb | 17 ++++++++++++++---
|
||||
1 file changed, 14 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/test/ruby/test_time_tz.rb b/test/ruby/test_time_tz.rb
|
||||
index 39b830d28a3d..dfe139033ed3 100644
|
||||
--- a/test/ruby/test_time_tz.rb
|
||||
+++ b/test/ruby/test_time_tz.rb
|
||||
@@ -89,6 +89,9 @@ def group_by(e, &block)
|
||||
Time.local(1951, 5, 6, 1, 0, 0).dst? # DST with fixed tzdata
|
||||
end
|
||||
}
|
||||
+ CORRECT_KIRITIMATI_SKIP_1994 = with_tz("Pacific/Kiritimati") {
|
||||
+ Time.local(1994, 12, 31, 0, 0, 0).year == 1995
|
||||
+ }
|
||||
|
||||
def time_to_s(t)
|
||||
t.to_s
|
||||
@@ -178,9 +181,17 @@ def test_europe_lisbon
|
||||
|
||||
def test_pacific_kiritimati
|
||||
with_tz(tz="Pacific/Kiritimati") {
|
||||
- assert_time_constructor(tz, "1994-12-31 23:59:59 -1000", :local, [1994,12,31,23,59,59])
|
||||
- assert_time_constructor(tz, "1995-01-02 00:00:00 +1400", :local, [1995,1,1,0,0,0])
|
||||
- assert_time_constructor(tz, "1995-01-02 23:59:59 +1400", :local, [1995,1,1,23,59,59])
|
||||
+ assert_time_constructor(tz, "1994-12-30 00:00:00 -1000", :local, [1994,12,30,0,0,0])
|
||||
+ assert_time_constructor(tz, "1994-12-30 23:59:59 -1000", :local, [1994,12,30,23,59,59])
|
||||
+ if CORRECT_KIRITIMATI_SKIP_1994
|
||||
+ assert_time_constructor(tz, "1995-01-01 00:00:00 +1400", :local, [1994,12,31,0,0,0])
|
||||
+ assert_time_constructor(tz, "1995-01-01 23:59:59 +1400", :local, [1994,12,31,23,59,59])
|
||||
+ assert_time_constructor(tz, "1995-01-01 00:00:00 +1400", :local, [1995,1,1,0,0,0])
|
||||
+ else
|
||||
+ assert_time_constructor(tz, "1994-12-31 23:59:59 -1000", :local, [1994,12,31,23,59,59])
|
||||
+ assert_time_constructor(tz, "1995-01-02 00:00:00 +1400", :local, [1995,1,1,0,0,0])
|
||||
+ assert_time_constructor(tz, "1995-01-02 23:59:59 +1400", :local, [1995,1,1,23,59,59])
|
||||
+ end
|
||||
assert_time_constructor(tz, "1995-01-02 00:00:00 +1400", :local, [1995,1,2,0,0,0])
|
||||
}
|
||||
end
|
||||
--
|
||||
|
||||
From a0e6607a8172f9eaf9a15f03065736deb2035771 Mon Sep 17 00:00:00 2001
|
||||
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
|
||||
Date: Sun, 1 Apr 2018 13:16:14 +0000
|
||||
Subject: [PATCH] test_time_tz.rb: Lisbon tzdata fix
|
||||
|
||||
* test/ruby/test_time_tz.rb (gen_variational_zdump_test): Update
|
||||
Lisbon zdump data, which fixed the 1912-01-01 transition for
|
||||
Portugual and its colonies. [Bug #14655]
|
||||
|
||||
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
||||
---
|
||||
test/ruby/test_time_tz.rb | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/test/ruby/test_time_tz.rb b/test/ruby/test_time_tz.rb
|
||||
index ac5f81892878..b32caff9c539 100644
|
||||
--- a/test/ruby/test_time_tz.rb
|
||||
+++ b/test/ruby/test_time_tz.rb
|
||||
@@ -434,5 +434,6 @@ def self.gen_variational_zdump_test(hint, data)
|
||||
gen_variational_zdump_test "lisbon", <<'End' if has_lisbon_tz
|
||||
Europe/Lisbon Mon Jan 1 00:36:31 1912 UTC = Sun Dec 31 23:59:59 1911 LMT isdst=0 gmtoff=-2192
|
||||
Europe/Lisbon Mon Jan 1 00:36:44 1912 UT = Sun Dec 31 23:59:59 1911 LMT isdst=0 gmtoff=-2205
|
||||
+Europe/Lisbon Sun Dec 31 23:59:59 1911 UT = Sun Dec 31 23:23:14 1911 LMT isdst=0 gmtoff=-2205
|
||||
End
|
||||
end
|
@ -1,203 +0,0 @@
|
||||
From 6fcc6c0efc42d1c6325cf4bb0ca16e2a448cdbed Mon Sep 17 00:00:00 2001
|
||||
From: Kazuki Yamaguchi <k@rhe.jp>
|
||||
Date: Mon, 6 Aug 2018 20:51:42 +0900
|
||||
Subject: [PATCH] test/test_ssl: fix test failure with TLS 1.3
|
||||
|
||||
SSL_connect() on the client side may return before SSL_accept() on
|
||||
server side returns. This will fix test failures with OpenSSL's current
|
||||
master.
|
||||
---
|
||||
test/openssl/test_ssl.rb | 45 ++++++++++++++++++++++++++--------------
|
||||
test/openssl/test_ssl_session.rb | 1 +
|
||||
2 files changed, 31 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/test/openssl/test_ssl.rb b/test/openssl/test_ssl.rb
|
||||
index 7bb32adf..408c7d82 100644
|
||||
--- a/test/openssl/test_ssl.rb
|
||||
+++ b/test/openssl/test_ssl.rb
|
||||
@@ -47,6 +47,8 @@ def test_ssl_with_server_cert
|
||||
assert_equal 2, ssl.peer_cert_chain.size
|
||||
assert_equal @svr_cert.to_der, ssl.peer_cert_chain[0].to_der
|
||||
assert_equal @ca_cert.to_der, ssl.peer_cert_chain[1].to_der
|
||||
+
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
ensure
|
||||
ssl&.close
|
||||
sock&.close
|
||||
@@ -157,6 +159,7 @@ def test_sync_close
|
||||
sock = TCPSocket.new("127.0.0.1", port)
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(sock)
|
||||
ssl.connect
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
ssl.close
|
||||
assert_not_predicate sock, :closed?
|
||||
ensure
|
||||
@@ -168,6 +171,7 @@ def test_sync_close
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(sock)
|
||||
ssl.sync_close = true # !!
|
||||
ssl.connect
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
ssl.close
|
||||
assert_predicate sock, :closed?
|
||||
ensure
|
||||
@@ -259,7 +263,10 @@ def test_client_ca
|
||||
client_ca_from_server = sslconn.client_ca
|
||||
[@cli_cert, @cli_key]
|
||||
end
|
||||
- server_connect(port, ctx) { |ssl| assert_equal([@ca], client_ca_from_server) }
|
||||
+ server_connect(port, ctx) { |ssl|
|
||||
+ assert_equal([@ca], client_ca_from_server)
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
+ }
|
||||
}
|
||||
end
|
||||
|
||||
@@ -356,21 +363,16 @@ def test_verify_result
|
||||
}
|
||||
|
||||
start_server { |port|
|
||||
- sock = TCPSocket.new("127.0.0.1", port)
|
||||
ctx = OpenSSL::SSL::SSLContext.new
|
||||
ctx.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
||||
ctx.verify_callback = Proc.new do |preverify_ok, store_ctx|
|
||||
store_ctx.error = OpenSSL::X509::V_OK
|
||||
true
|
||||
end
|
||||
- ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
|
||||
- ssl.sync_close = true
|
||||
- begin
|
||||
- ssl.connect
|
||||
+ server_connect(port, ctx) { |ssl|
|
||||
assert_equal(OpenSSL::X509::V_OK, ssl.verify_result)
|
||||
- ensure
|
||||
- ssl.close
|
||||
- end
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
+ }
|
||||
}
|
||||
|
||||
start_server(ignore_listener_error: true) { |port|
|
||||
@@ -455,6 +457,8 @@ def test_post_connection_check
|
||||
|
||||
start_server { |port|
|
||||
server_connect(port) { |ssl|
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
+
|
||||
assert_raise(sslerr){ssl.post_connection_check("localhost.localdomain")}
|
||||
assert_raise(sslerr){ssl.post_connection_check("127.0.0.1")}
|
||||
assert(ssl.post_connection_check("localhost"))
|
||||
@@ -476,6 +482,8 @@ def test_post_connection_check
|
||||
@svr_cert = issue_cert(@svr, @svr_key, 4, exts, @ca_cert, @ca_key)
|
||||
start_server { |port|
|
||||
server_connect(port) { |ssl|
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
+
|
||||
assert(ssl.post_connection_check("localhost.localdomain"))
|
||||
assert(ssl.post_connection_check("127.0.0.1"))
|
||||
assert_raise(sslerr){ssl.post_connection_check("localhost")}
|
||||
@@ -496,6 +502,8 @@ def test_post_connection_check
|
||||
@svr_cert = issue_cert(@svr, @svr_key, 5, exts, @ca_cert, @ca_key)
|
||||
start_server { |port|
|
||||
server_connect(port) { |ssl|
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
+
|
||||
assert(ssl.post_connection_check("localhost.localdomain"))
|
||||
assert_raise(sslerr){ssl.post_connection_check("127.0.0.1")}
|
||||
assert_raise(sslerr){ssl.post_connection_check("localhost")}
|
||||
@@ -722,6 +730,8 @@ def test_tlsext_hostname
|
||||
ssl.connect
|
||||
assert_equal @cli_cert.serial, ssl.peer_cert.serial
|
||||
assert_predicate fooctx, :frozen?
|
||||
+
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
ensure
|
||||
ssl&.close
|
||||
sock.close
|
||||
@@ -733,6 +743,8 @@ def test_tlsext_hostname
|
||||
ssl.hostname = "bar.example.com"
|
||||
ssl.connect
|
||||
assert_equal @svr_cert.serial, ssl.peer_cert.serial
|
||||
+
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
ensure
|
||||
ssl&.close
|
||||
sock.close
|
||||
@@ -805,7 +817,8 @@ def test_verify_hostname_on_connect
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(sock, ctx)
|
||||
ssl.hostname = name
|
||||
if expected_ok
|
||||
- assert_nothing_raised { ssl.connect }
|
||||
+ ssl.connect
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
else
|
||||
assert_handshake_error { ssl.connect }
|
||||
end
|
||||
@@ -1086,6 +1099,7 @@ def test_renegotiation_cb
|
||||
start_server_version(:SSLv23, ctx_proc) { |port|
|
||||
server_connect(port) { |ssl|
|
||||
assert_equal(1, num_handshakes)
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
}
|
||||
}
|
||||
end
|
||||
@@ -1104,6 +1118,7 @@ def test_alpn_protocol_selection_ary
|
||||
ctx.alpn_protocols = advertised
|
||||
server_connect(port, ctx) { |ssl|
|
||||
assert_equal(advertised.first, ssl.alpn_protocol)
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
}
|
||||
}
|
||||
end
|
||||
@@ -1226,14 +1241,11 @@ def test_npn_selected_protocol_too_long
|
||||
end
|
||||
|
||||
def test_close_after_socket_close
|
||||
- server_proc = proc { |ctx, ssl|
|
||||
- # Do nothing
|
||||
- }
|
||||
- start_server(server_proc: server_proc) { |port|
|
||||
+ start_server { |port|
|
||||
sock = TCPSocket.new("127.0.0.1", port)
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(sock)
|
||||
- ssl.sync_close = true
|
||||
ssl.connect
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
sock.close
|
||||
assert_nothing_raised do
|
||||
ssl.close
|
||||
@@ -1298,6 +1310,7 @@ def test_get_ephemeral_key
|
||||
ctx.ciphers = "DEFAULT:!kRSA:!kEDH"
|
||||
server_connect(port, ctx) { |ssl|
|
||||
assert_instance_of OpenSSL::PKey::EC, ssl.tmp_key
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
}
|
||||
end
|
||||
end
|
||||
@@ -1440,6 +1453,7 @@ def test_ecdh_curves
|
||||
assert_equal "secp384r1", ssl.tmp_key.group.curve_name
|
||||
end
|
||||
end
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
}
|
||||
|
||||
if openssl?(1, 0, 2) || libressl?(2, 5, 1)
|
||||
@@ -1455,6 +1469,7 @@ def test_ecdh_curves
|
||||
|
||||
server_connect(port, ctx) { |ssl|
|
||||
assert_equal "secp521r1", ssl.tmp_key.group.curve_name
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
}
|
||||
end
|
||||
end
|
||||
diff --git a/test/openssl/test_ssl_session.rb b/test/openssl/test_ssl_session.rb
|
||||
index 6db0c2d1..78b160ed 100644
|
||||
--- a/test/openssl/test_ssl_session.rb
|
||||
+++ b/test/openssl/test_ssl_session.rb
|
||||
@@ -113,6 +113,7 @@ def test_resumption
|
||||
non_resumable = nil
|
||||
start_server { |port|
|
||||
server_connect_with_session(port, nil, nil) { |ssl|
|
||||
+ ssl.puts "abc"; assert_equal "abc\n", ssl.gets
|
||||
non_resumable = ssl.session
|
||||
}
|
||||
}
|
@ -27,7 +27,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
|
||||
AC_DEFUN([RUBY_RM_RECURSIVE], [
|
||||
m4_version_prereq([2.70], [-1], [
|
||||
@@ -2938,13 +2939,11 @@ AS_IF([test x"$enable_pthread" = xyes], [
|
||||
@@ -2939,13 +2940,11 @@ AS_IF([test x"$enable_pthread" = xyes], [
|
||||
AC_DEFINE(_THREAD_SAFE)
|
||||
AC_DEFINE(HAVE_LIBPTHREAD)
|
||||
AC_CHECK_HEADERS(pthread_np.h, [], [], [@%:@include <pthread.h>])
|
||||
@ -46,7 +46,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
], [
|
||||
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'
|
||||
@@ -3624,7 +3623,7 @@ LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a'
|
||||
LIBRUBY='$(LIBRUBY_A)'
|
||||
LIBRUBYARG_STATIC='-l$(RUBY_SO_NAME)-static'
|
||||
LIBRUBYARG='$(LIBRUBYARG_STATIC)'
|
||||
@ -55,7 +55,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
|
||||
AS_CASE(["$target_os"],
|
||||
[cygwin*|mingw*|haiku*|darwin*], [
|
||||
@@ -3689,9 +3688,6 @@ AS_CASE("$enable_shared", [yes], [
|
||||
@@ -3690,9 +3689,6 @@ AS_CASE("$enable_shared", [yes], [
|
||||
LIBRUBY_RELATIVE=no
|
||||
test -z "$CCDLFLAGS" || CFLAGS="$CFLAGS $CCDLFLAGS"
|
||||
ENABLE_SHARED=yes
|
||||
@ -65,7 +65,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
|
||||
# libdir can be overridden in config.site file (on OpenSUSE at least).
|
||||
libdir_basename=lib
|
||||
@@ -3726,7 +3722,6 @@ AS_CASE("$enable_shared", [yes], [
|
||||
@@ -3727,7 +3723,6 @@ AS_CASE("$enable_shared", [yes], [
|
||||
])
|
||||
],
|
||||
[freebsd*|dragonfly*], [
|
||||
@ -73,7 +73,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
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], [
|
||||
@@ -3736,7 +3731,6 @@ AS_CASE("$enable_shared", [yes], [
|
||||
])
|
||||
],
|
||||
[netbsd*], [
|
||||
@ -81,7 +81,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
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], [
|
||||
@@ -3747,11 +3741,9 @@ AS_CASE("$enable_shared", [yes], [
|
||||
])
|
||||
],
|
||||
[openbsd*|mirbsd*], [
|
||||
@ -93,7 +93,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
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], [
|
||||
@@ -3769,7 +3761,7 @@ AS_CASE("$enable_shared", [yes], [
|
||||
[aix*], [
|
||||
RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ["${linker_flag}-bnoentry" "$XLDFLAGS" "$LDFLAGS_OPTDIR"])
|
||||
LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}'
|
||||
@ -102,7 +102,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
],
|
||||
[darwin*], [
|
||||
LIBRUBY_LDSHARED='$(CC) -dynamiclib'
|
||||
@@ -3788,7 +3780,6 @@ AS_CASE("$enable_shared", [yes], [
|
||||
@@ -3789,7 +3781,6 @@ AS_CASE("$enable_shared", [yes], [
|
||||
LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT)'
|
||||
LIBRUBY_SONAME='lib$(RUBY_BASE_NAME).$(RUBY_API_VERSION).$(SOEXT)'
|
||||
LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_INSTALL_NAME).$(SOEXT)'
|
||||
@ -110,7 +110,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
],
|
||||
[interix*], [
|
||||
LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)'
|
||||
@@ -4031,7 +4022,6 @@ AS_CASE(["$target_os"],
|
||||
@@ -4032,7 +4023,6 @@ AS_CASE(["$target_os"],
|
||||
])
|
||||
LIBRUBY_ALIASES=''
|
||||
FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in
|
||||
@ -118,7 +118,7 @@ index aebbae1969a5..733a0c992fd7 100644
|
||||
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 ], [
|
||||
@@ -4132,6 +4122,13 @@ AS_IF([test "${universal_binary-no}" = yes ], [
|
||||
[rb_cv_architecture_available=yes], [rb_cv_architecture_available=no]))
|
||||
])
|
||||
|
||||
|
@ -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
|
||||
@@ -983,6 +983,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
|
||||
@@ -990,13 +994,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
|
57
ruby.spec
57
ruby.spec
@ -1,6 +1,6 @@
|
||||
%global major_version 2
|
||||
%global minor_version 5
|
||||
%global teeny_version 1
|
||||
%global teeny_version 7
|
||||
%global major_minor_version %{major_version}.%{minor_version}
|
||||
|
||||
%global ruby_version %{major_minor_version}.%{teeny_version}
|
||||
@ -21,15 +21,15 @@
|
||||
%endif
|
||||
|
||||
|
||||
%global release 98
|
||||
%{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}}
|
||||
%global release 102
|
||||
%{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}.0.riscv64%{?dist}}
|
||||
|
||||
# The RubyGems library has to stay out of Ruby directory three, since the
|
||||
# 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 2.7.6
|
||||
%global rubygems_version 2.7.6.2
|
||||
%global molinillo_version 0.5.7
|
||||
|
||||
# TODO: The IRB has strange versioning. Keep the Ruby's versioning ATM.
|
||||
@ -42,11 +42,11 @@
|
||||
%global json_version 2.1.0
|
||||
%global minitest_version 5.10.3
|
||||
%global net_telnet_version 0.1.1
|
||||
%global openssl_version 2.1.0
|
||||
%global openssl_version 2.1.2
|
||||
%global power_assert_version 1.1.1
|
||||
%global psych_version 3.0.2
|
||||
%global rake_version 12.3.0
|
||||
%global rdoc_version 6.0.1
|
||||
%global rdoc_version 6.0.1.1
|
||||
%global test_unit_version 3.2.7
|
||||
%global xmlrpc_version 0.3.0
|
||||
|
||||
@ -68,7 +68,11 @@
|
||||
%bcond_without gmp
|
||||
|
||||
%if 0%{?fedora}
|
||||
%ifnarch riscv64
|
||||
%bcond_without hardening_test
|
||||
%else
|
||||
%bcond_with hardening_test
|
||||
%endif
|
||||
%endif
|
||||
|
||||
Summary: An interpreter of object-oriented scripting language
|
||||
@ -82,7 +86,7 @@ Group: Development/Languages
|
||||
# UCD: some of enc/trans/**/*.src
|
||||
License: (Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD
|
||||
URL: http://ruby-lang.org/
|
||||
Source0: ftp://ftp.ruby-lang.org/pub/%{name}/%{major_minor_version}/%{ruby_archive}.tar.xz
|
||||
Source0: https://cache.ruby-lang.org/pub/%{name}/%{major_minor_version}/%{ruby_archive}.tar.xz
|
||||
Source1: operating_system.rb
|
||||
# TODO: Try to push SystemTap support upstream.
|
||||
Source2: libruby.stp
|
||||
@ -136,22 +140,12 @@ 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
|
||||
# TestTimeTZ test failures Kiritimati and Lisbon
|
||||
# https://bugs.ruby-lang.org/issues/14655
|
||||
Patch11: ruby-2.5.1-TestTimeTZ-test-failures-Kiritimati-and-Lisbon.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
|
||||
# Fix some OpenSSL 1.1.1 test failures.
|
||||
# https://github.com/ruby/openssl/pull/202
|
||||
Patch17: ruby-2.5.1-Test-fixes-for-OpenSSL-1.1.1.patch
|
||||
# https://github.com/ruby/openssl/pull/209
|
||||
Patch18: ruby-2.6.0-fix-test-failure-with-TLS-1.3.patch
|
||||
# https://github.com/ruby/ruby/commit/1dfc377ae3b174b043d3f0ed36de57b0296b34d0
|
||||
Patch19: ruby-2.6.0-net-http-net-ftp-fix-session-resumption-with-TLS-1.3.patch
|
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
Suggests: rubypick
|
||||
@ -167,6 +161,8 @@ BuildRequires: libffi-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: libyaml-devel
|
||||
BuildRequires: readline-devel
|
||||
# For test TestExtLibs#test_existence_of_zlib
|
||||
BuildRequires: zlib-devel
|
||||
# Needed to pass test_set_program_name(TestRubyOptions)
|
||||
BuildRequires: procps
|
||||
%{?with_systemtap:BuildRequires: %{_bindir}/dtrace}
|
||||
@ -534,12 +530,8 @@ rm -rf ext/fiddle/libffi*
|
||||
%patch7 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
|
||||
# Provide an example of usage of the tapset:
|
||||
cp -a %{SOURCE3} .
|
||||
@ -719,6 +711,11 @@ sed -i 's/^/%doc /' .ruby-doc.*
|
||||
sed -i 's/^/%lang(ja) /' .ruby-doc.ja
|
||||
|
||||
%check
|
||||
%ifarch riscv64
|
||||
# Skip all the tests, we are timing out on a number of them
|
||||
exit 0
|
||||
%endif
|
||||
|
||||
%if 0%{?with_hardening_test}
|
||||
# Check Ruby hardening.
|
||||
checksec -f libruby.so.%{ruby_version} | \
|
||||
@ -1089,6 +1086,22 @@ make check TESTS="-v $DISABLE_TESTS"
|
||||
%{gem_dir}/specifications/xmlrpc-%{xmlrpc_version}.gemspec
|
||||
|
||||
%changelog
|
||||
* Thu Mar 26 2020 David Abdurachmanov <david.abdurachmanov@sifive.com> - 2.5.7-102.0.riscv64
|
||||
- Disable hardening tests on riscv64
|
||||
|
||||
* Wed Oct 09 2019 Pavel Valena <pvalena@redhat.com> - 2.5.7-102
|
||||
- Update to Ruby 2.5.7.
|
||||
|
||||
* Thu Apr 04 2019 Pavel Valena <pvalena@redhat.com> - 2.5.5-101
|
||||
- Update to Ruby 2.5.5.
|
||||
|
||||
* Fri Jan 11 2019 Jun Aruga <jaruga@redhat.com> - 2.5.3-100
|
||||
- Fix Tokyo TZ tests.
|
||||
- Refresh expired certificates to fix FTBFS.
|
||||
|
||||
* Fri Oct 19 2018 Jun Aruga <jaruga@redhat.com> - 2.5.3-99
|
||||
- Update to Ruby 2.5.3.
|
||||
|
||||
* Mon Aug 13 2018 Vít Ondruch <vondruch@redhat.com> - 2.5.1-98
|
||||
- Properly execute entire test suite.
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (ruby-2.5.1.tar.xz) = 31bacf58469953282cd5d8b51862dcf4b84dedb927c1871bc3fca32fc157fe49187631575a70838705fe246f4555647577a7ecc26894445a7d64de5503dc11b4
|
||||
SHA512 (ruby-2.5.7.tar.xz) = 63b7c75fab44cd1bd22f22ddec00c740cf379ac7240da0dfafcec54347766695faef47428ce1c433fd77fa96992e976c984697067fa526236d383b12adc9ce75
|
||||
|
Loading…
Reference in New Issue
Block a user