From 0894b8f7a4b0f2469812b276aedaecbcae8c758d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Wed, 21 Dec 2022 16:11:00 +0100 Subject: [PATCH] Fix for tzdata-2022g. This commit was cherry-picked from Fedora rawhide . This fixes the test failures related to the Singapore time zone like below. ``` 2) Failure: TestTimeTZ#test_asia_singapore [/builddir/build/BUILD/ruby-3.0.4/test/ruby/test_time_tz.rb:143]: TZ=Asia/Singapore Time.local(1981, 12, 31, 23, 59, 59). <"1981-12-31 23:59:59 +0730"> expected but was <"1982-01-01 00:29:59 +0800">. ``` Related: rhbz#2173531 --- ruby-3.1.3-Fix-for-tzdata-2022g.patch | 70 +++++++++++++++++++++++++++ ruby.spec | 6 +++ 2 files changed, 76 insertions(+) create mode 100644 ruby-3.1.3-Fix-for-tzdata-2022g.patch diff --git a/ruby-3.1.3-Fix-for-tzdata-2022g.patch b/ruby-3.1.3-Fix-for-tzdata-2022g.patch new file mode 100644 index 0000000..6bbfd9f --- /dev/null +++ b/ruby-3.1.3-Fix-for-tzdata-2022g.patch @@ -0,0 +1,70 @@ +From a1124dc162810f86cb0bff58cde24064cfc561bc Mon Sep 17 00:00:00 2001 +From: nagachika +Date: Fri, 9 Dec 2022 21:11:47 +0900 +Subject: [PATCH] merge revision(s) 58cc3c9f387dcf8f820b43e043b540fa06248da3: + [Backport #19187] + + [Bug #19187] Fix for tzdata-2022g + + --- + test/ruby/test_time_tz.rb | 21 +++++++++++++++------ + 1 file changed, 15 insertions(+), 6 deletions(-) +--- + test/ruby/test_time_tz.rb | 21 +++++++++++++++------ + 1 files changed, 15 insertions(+), 6 deletions(-) + +diff --git a/test/ruby/test_time_tz.rb b/test/ruby/test_time_tz.rb +index b6785f336028d..939f218ed4d10 100644 +--- a/test/ruby/test_time_tz.rb ++++ b/test/ruby/test_time_tz.rb +@@ -7,9 +7,9 @@ class TestTimeTZ < Test::Unit::TestCase + has_lisbon_tz = true + force_tz_test = ENV["RUBY_FORCE_TIME_TZ_TEST"] == "yes" + case RUBY_PLATFORM +- when /linux/ ++ when /darwin|linux/ + force_tz_test = true +- when /darwin|freebsd|openbsd/ ++ when /freebsd|openbsd/ + has_lisbon_tz = false + force_tz_test = true + end +@@ -95,6 +95,9 @@ def group_by(e, &block) + CORRECT_KIRITIMATI_SKIP_1994 = with_tz("Pacific/Kiritimati") { + Time.local(1994, 12, 31, 0, 0, 0).year == 1995 + } ++ CORRECT_SINGAPORE_1982 = with_tz("Asia/Singapore") { ++ "2022g" if Time.local(1981, 12, 31, 23, 59, 59).utc_offset == 8*3600 ++ } + + def time_to_s(t) + t.to_s +@@ -140,9 +143,12 @@ def test_america_managua + + def test_asia_singapore + with_tz(tz="Asia/Singapore") { +- assert_time_constructor(tz, "1981-12-31 23:59:59 +0730", :local, [1981,12,31,23,59,59]) +- assert_time_constructor(tz, "1982-01-01 00:30:00 +0800", :local, [1982,1,1,0,0,0]) +- assert_time_constructor(tz, "1982-01-01 00:59:59 +0800", :local, [1982,1,1,0,29,59]) ++ assert_time_constructor(tz, "1981-12-31 23:29:59 +0730", :local, [1981,12,31,23,29,59]) ++ if CORRECT_SINGAPORE_1982 ++ assert_time_constructor(tz, "1982-01-01 00:00:00 +0800", :local, [1981,12,31,23,30,00]) ++ assert_time_constructor(tz, "1982-01-01 00:00:00 +0800", :local, [1982,1,1,0,0,0]) ++ assert_time_constructor(tz, "1982-01-01 00:29:59 +0800", :local, [1982,1,1,0,29,59]) ++ end + assert_time_constructor(tz, "1982-01-01 00:30:00 +0800", :local, [1982,1,1,0,30,0]) + } + end +@@ -448,8 +454,11 @@ def self.gen_zdump_test(data) + America/Managua Wed Jan 1 04:59:59 1997 UTC = Tue Dec 31 23:59:59 1996 EST isdst=0 gmtoff=-18000 + America/Managua Wed Jan 1 05:00:00 1997 UTC = Tue Dec 31 23:00:00 1996 CST isdst=0 gmtoff=-21600 + Asia/Singapore Sun Aug 8 16:30:00 1965 UTC = Mon Aug 9 00:00:00 1965 SGT isdst=0 gmtoff=27000 +-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 15:59:59 1981 UTC = Thu Dec 31 23:29: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 <<'End' if CORRECT_SINGAPORE_1982 ++Asia/Singapore Thu Dec 31 16:00:00 1981 UTC = Fri Jan 1 00:00:00 1982 SGT isdst=0 gmtoff=28800 + 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 diff --git a/ruby.spec b/ruby.spec index 01c548b..b4a3c35 100644 --- a/ruby.spec +++ b/ruby.spec @@ -267,6 +267,10 @@ Patch61: ruby-3.2.0-git-2.38.1-fix-rubygems-test.patch # Fix tests with Europe/Amsterdam pre-1970 time on tzdata version 2022b. # https://github.com/ruby/spec/pull/939 Patch62: ruby-spec-Fix-tests-on-tzdata-2022b.patch +# Fix Time Zone Database 2022g. +# https://bugs.ruby-lang.org/issues/19187 +# https://github.com/ruby/ruby/commit/a1124dc162810f86cb0bff58cde24064cfc561bc +Patch63: ruby-3.1.3-Fix-for-tzdata-2022g.patch Requires: %{name}-libs%{?_isa} = %{version}-%{release} Suggests: rubypick @@ -734,6 +738,7 @@ rm -rf ext/fiddle/libffi* %patch60 -p1 %patch61 -p1 %patch62 -p1 +%patch63 -p1 # Provide an example of usage of the tapset: cp -a %{SOURCE3} . @@ -1500,6 +1505,7 @@ OPENSSL_ENABLE_SHA1_SIGNATURES=1 \ * Wed Jun 28 2023 Jun Aruga - 3.0.4-160 - Bypass git submodule test failure on Git >= 2.38.1. - Fix tests with Europe/Amsterdam pre-1970 time on tzdata version 2022b. +- Fix for tzdata-2022g. * Fri Jul 08 2022 Jarek Prokop - 3.0.4-160 - Upgrade to Ruby 3.0.4.