From 38c49dd44270abe287d5e6161aeb0712b504987d Mon Sep 17 00:00:00 2001 From: Pavel Valena Date: Sun, 10 Sep 2023 03:39:41 +0200 Subject: [PATCH 01/23] Update to activesupport 7.0.8 also add tzdata dependency for tests. --- rubygem-activesupport.spec | 10 +++++++--- sources | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 6e6e3f5..b412927 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -4,7 +4,7 @@ Name: rubygem-%{gem_name} Epoch: 1 -Version: 7.0.7.2 +Version: 7.0.8 Release: 1%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT @@ -13,12 +13,12 @@ Source0: https://rubygems.org/gems/%{gem_name}-%{version}%{?prerelease}.gem # The activesupport gem doesn't ship with the test suite. # You may check it out like so # git clone http://github.com/rails/rails.git -# cd rails/activesupport && git archive -v -o activesupport-7.0.7.2-tests.txz v7.0.7.2 test/ +# cd rails/activesupport && git archive -v -o activesupport-7.0.8-tests.txz v7.0.8 test/ Source1: %{gem_name}-%{version}%{?prerelease}-tests.txz # The tools are needed for the test suite, are however unpackaged in gem file. # You may get them like so # git clone http://github.com/rails/rails.git --no-checkout -# cd rails && git archive -v -o rails-7.0.7.2-tools.txz v7.0.7.2 tools/ +# cd rails && git archive -v -o rails-7.0.8-tools.txz v7.0.8 tools/ Source2: rails-%{version}%{?prerelease}-tools.txz # Fixes for Minitest 5.16+ # https://github.com/rails/rails/pull/45380 @@ -49,6 +49,7 @@ BuildRequires: rubygem(listen) BuildRequires: rubygem(redis) BuildRequires: rubygem(rexml) BuildRequires: memcached +BuildRequires: tzdata BuildArch: noarch @@ -132,6 +133,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Sun Sep 10 2023 Pavel Valena - 1:7.0.8-1 +- Update to activesupport 7.0.8. + * Mon Aug 28 2023 Pavel Valena - 1:7.0.7.2-1 - Update to activesupport 7.0.7.2. diff --git a/sources b/sources index 25e0415..c1d38c3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (activesupport-7.0.7.2.gem) = afad2479aa9039e45420338765aeba9d959b904e8154faa73e94c730ce52c6747be21a2d91cb4a4371851233eaeba5f9dfe4c5bb246ca8529ff3b1170036a86f -SHA512 (activesupport-7.0.7.2-tests.txz) = 21d95541fd9cd76afbc8a8d57edaa914ae7f1f372851e2112bf1e725a00ebba80bf0ef3abfa6ccc190044ba5c314d40e149518b95ab8c5552d4367e2c72d3383 -SHA512 (rails-7.0.7.2-tools.txz) = 409fe6374d785cfb5d8804fc5d993f53d2293891dbdd21c85af614f015c56d29c234716eed69862a71f758f62558582b61c8c4a07b56645e928dde57ef947080 +SHA512 (activesupport-7.0.8.gem) = d3f45452751a3ff4acd534ad6a71e5747d2e64683b562b99c3f97ca3980424aa0093d028fab94a6429410fb4878c6e34a2af2ad8c0c04358648e180a732250dc +SHA512 (activesupport-7.0.8-tests.txz) = 153739dca3cd20938e7f1bb255d330e51e91fb9901b6b2ff5ffd76277e44e38090b1037f9eeb574d8ef429c1d3d689dbeb27b9d02ff33fe8f21cef2472a2e8b2 +SHA512 (rails-7.0.8-tools.txz) = a67b43ecabe47d23bd437651c97c87e1323dc2eb20d0fffa2c8f0d75fae7502571c3a2633c5bdeb9cc4a383c88b5eade49d55efe895857285b3186b6d4da4b26 From 0b918bc76ae06f8dbf6de5f0b281b4f90aeaeb30 Mon Sep 17 00:00:00 2001 From: Pavel Valena Date: Sun, 24 Sep 2023 17:40:39 +0200 Subject: [PATCH 02/23] Add tzdata as runtime dependency otherwise we get a lot of build failures in other packages. Caused by: https://fedoraproject.org/wiki/Changes/AllowRemovalOfTzdata --- rubygem-activesupport.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index b412927..e0ac9e0 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -32,6 +32,10 @@ Patch3: rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch Requires: rubygem(bigdecimal) Requires: rubygem(json) +# Runtime dependency, lot of build failures in other packages. +# https://fedoraproject.org/wiki/Changes/AllowRemovalOfTzdata +Requires: tzdata + # Let's keep Requires and BuildRequires sorted alphabeticaly BuildRequires: ruby(release) BuildRequires: rubygems-devel From 28b148f2fbab5763b53c06beaa210b8fb1d30ef3 Mon Sep 17 00:00:00 2001 From: Pavel Valena Date: Sun, 24 Sep 2023 18:30:28 +0200 Subject: [PATCH 03/23] Add forgotten changelog entry for 0b918bc. --- rubygem-activesupport.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index e0ac9e0..b3827ea 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -137,6 +137,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Sun Sep 24 2023 Pavel Valena - 1:7.0.8-2 +- Add tzdata as a runtime dependency. + * Sun Sep 10 2023 Pavel Valena - 1:7.0.8-1 - Update to activesupport 7.0.8. From d4a62b64c21eb379274cdd02bd576b58f1bf76a9 Mon Sep 17 00:00:00 2001 From: Pavel Valena Date: Sun, 10 Sep 2023 03:39:41 +0200 Subject: [PATCH 04/23] Update to activesupport 7.0.8 also add tzdata dependency for tests. & Add tzdata as runtime dependency otherwise we get a lot of build failures in other packages. Caused by: https://fedoraproject.org/wiki/Changes/AllowRemovalOfTzdata --- rubygem-activesupport.spec | 19 +++++++++++++++---- sources | 6 +++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 6e6e3f5..b3827ea 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -4,8 +4,8 @@ Name: rubygem-%{gem_name} Epoch: 1 -Version: 7.0.7.2 -Release: 1%{?dist} +Version: 7.0.8 +Release: 2%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -13,12 +13,12 @@ Source0: https://rubygems.org/gems/%{gem_name}-%{version}%{?prerelease}.gem # The activesupport gem doesn't ship with the test suite. # You may check it out like so # git clone http://github.com/rails/rails.git -# cd rails/activesupport && git archive -v -o activesupport-7.0.7.2-tests.txz v7.0.7.2 test/ +# cd rails/activesupport && git archive -v -o activesupport-7.0.8-tests.txz v7.0.8 test/ Source1: %{gem_name}-%{version}%{?prerelease}-tests.txz # The tools are needed for the test suite, are however unpackaged in gem file. # You may get them like so # git clone http://github.com/rails/rails.git --no-checkout -# cd rails && git archive -v -o rails-7.0.7.2-tools.txz v7.0.7.2 tools/ +# cd rails && git archive -v -o rails-7.0.8-tools.txz v7.0.8 tools/ Source2: rails-%{version}%{?prerelease}-tools.txz # Fixes for Minitest 5.16+ # https://github.com/rails/rails/pull/45380 @@ -32,6 +32,10 @@ Patch3: rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch Requires: rubygem(bigdecimal) Requires: rubygem(json) +# Runtime dependency, lot of build failures in other packages. +# https://fedoraproject.org/wiki/Changes/AllowRemovalOfTzdata +Requires: tzdata + # Let's keep Requires and BuildRequires sorted alphabeticaly BuildRequires: ruby(release) BuildRequires: rubygems-devel @@ -49,6 +53,7 @@ BuildRequires: rubygem(listen) BuildRequires: rubygem(redis) BuildRequires: rubygem(rexml) BuildRequires: memcached +BuildRequires: tzdata BuildArch: noarch @@ -132,6 +137,12 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Sun Sep 24 2023 Pavel Valena - 1:7.0.8-2 +- Add tzdata as a runtime dependency. + +* Sun Sep 10 2023 Pavel Valena - 1:7.0.8-1 +- Update to activesupport 7.0.8. + * Mon Aug 28 2023 Pavel Valena - 1:7.0.7.2-1 - Update to activesupport 7.0.7.2. diff --git a/sources b/sources index 25e0415..c1d38c3 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (activesupport-7.0.7.2.gem) = afad2479aa9039e45420338765aeba9d959b904e8154faa73e94c730ce52c6747be21a2d91cb4a4371851233eaeba5f9dfe4c5bb246ca8529ff3b1170036a86f -SHA512 (activesupport-7.0.7.2-tests.txz) = 21d95541fd9cd76afbc8a8d57edaa914ae7f1f372851e2112bf1e725a00ebba80bf0ef3abfa6ccc190044ba5c314d40e149518b95ab8c5552d4367e2c72d3383 -SHA512 (rails-7.0.7.2-tools.txz) = 409fe6374d785cfb5d8804fc5d993f53d2293891dbdd21c85af614f015c56d29c234716eed69862a71f758f62558582b61c8c4a07b56645e928dde57ef947080 +SHA512 (activesupport-7.0.8.gem) = d3f45452751a3ff4acd534ad6a71e5747d2e64683b562b99c3f97ca3980424aa0093d028fab94a6429410fb4878c6e34a2af2ad8c0c04358648e180a732250dc +SHA512 (activesupport-7.0.8-tests.txz) = 153739dca3cd20938e7f1bb255d330e51e91fb9901b6b2ff5ffd76277e44e38090b1037f9eeb574d8ef429c1d3d689dbeb27b9d02ff33fe8f21cef2472a2e8b2 +SHA512 (rails-7.0.8-tools.txz) = a67b43ecabe47d23bd437651c97c87e1323dc2eb20d0fffa2c8f0d75fae7502571c3a2633c5bdeb9cc4a383c88b5eade49d55efe895857285b3186b6d4da4b26 From e8270956dbc8e00b58eda5d9ef30f0dad0311aee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Fri, 15 Dec 2023 17:52:05 +0100 Subject: [PATCH 05/23] Add explicit dependencies to avoid Ruby 3.3 warnings. We should be able to drop these once more recent AS (likely 7.0.8) is released upstream. --- rubygem-activesupport.spec | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index b3827ea..2a158c0 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -27,9 +27,8 @@ Patch2: rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_calle # https://github.com/rails/rails/pull/45370 Patch3: rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch -# ruby package has just soft dependency on rubygem({bigdecimal,json}), while -# ActiveSupport always requires them. -Requires: rubygem(bigdecimal) +# Ruby package has just soft dependency on rubygem(json), while +# ActiveSupport always requires it. Requires: rubygem(json) # Runtime dependency, lot of build failures in other packages. @@ -80,6 +79,14 @@ pushd %{_builddir} %patch 2 -p2 popd +# Add several dependencies to avoid Ruby 3.3 warnings. +# https://github.com/rails/rails/commit/81699b52d2acff1840e3ace5e59412f4fa3934ab +%gemspec_add_dep -g base64 +%gemspec_add_dep -g drb +%gemspec_add_dep -g mutex_m +# https://github.com/rails/rails/commit/a77535c74c7047a517cc45ff8ecb416ea439c28d +%gemspec_add_dep -g bigdecimal + %build gem build ../%{gem_name}-%{version}%{?prerelease}.gemspec %gem_install @@ -137,6 +144,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Fri Dec 15 2023 Vít Ondruch - 1:7.0.8-3 +- Add explicit dependencies to avoid Ruby 3.3 warnings. + * Sun Sep 24 2023 Pavel Valena - 1:7.0.8-2 - Add tzdata as a runtime dependency. From 5c1631ea64c4b3ea0121437f481c99309212ecdf Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 12:25:30 +0000 Subject: [PATCH 06/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- rubygem-activesupport.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 2a158c0..10588dd 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -144,6 +144,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Mon Jan 22 2024 Fedora Release Engineering - 1:7.0.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Dec 15 2023 Vít Ondruch - 1:7.0.8-3 - Add explicit dependencies to avoid Ruby 3.3 warnings. From 7367a000b67a5a73d8b7a5aa43468688d7f8bb00 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jan 2024 16:33:14 +0000 Subject: [PATCH 07/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- rubygem-activesupport.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 10588dd..ac07b91 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 4%{?dist} +Release: 5%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -144,6 +144,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Fri Jan 26 2024 Fedora Release Engineering - 1:7.0.8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Mon Jan 22 2024 Fedora Release Engineering - 1:7.0.8-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 71e469e6d01de68e91af740158d6dd4b1549ea02 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Fri, 24 May 2024 14:22:43 +0900 Subject: [PATCH 08/23] Backport upstream fix for test failure wrt ruby side Object#dup behavior change --- ...ort-7.0.2.3-update-method_duplicable.patch | 112 ++++++++++++++++++ rubygem-activesupport.spec | 11 +- 2 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 rubygem-activesupport-7.0.2.3-update-method_duplicable.patch diff --git a/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch b/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch new file mode 100644 index 0000000..81b8197 --- /dev/null +++ b/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch @@ -0,0 +1,112 @@ +From ca6995a80cb526958001e18d3b06da6587cd07eb Mon Sep 17 00:00:00 2001 +From: Jean Boussier +Date: Wed, 14 Feb 2024 09:52:55 +0100 +Subject: [PATCH] Update Method#duplicable? to be consistent with Ruby 3.4 + +Fix: https://github.com/rails/rails/issues/51075 + +`Method` and `UnboundMethod` used to raise on `#dup`, but not `#clone`, +this wasn't so much a feature, but a bug. + +It was fixed in https://github.com/ruby/ruby/pull/9926. +--- + .../core_ext/object/duplicable.rb | 39 ++++++++++++------- + .../test/core_ext/object/duplicable_test.rb | 28 ++++++++----- + 2 files changed, 42 insertions(+), 25 deletions(-) + +diff --git a/activesupport/lib/active_support/core_ext/object/duplicable.rb b/activesupport/lib/active_support/core_ext/object/duplicable.rb +index 6fdf6d810ffb9..505455fe54bf3 100644 +--- a/activesupport/lib/active_support/core_ext/object/duplicable.rb ++++ b/activesupport/lib/active_support/core_ext/object/duplicable.rb +@@ -28,23 +28,32 @@ def duplicable? + end + end + +-class Method +- # Methods are not duplicable: +- # +- # method(:puts).duplicable? # => false +- # method(:puts).dup # => TypeError: allocator undefined for Method +- def duplicable? +- false +- end ++methods_are_duplicable = begin ++ Object.instance_method(:duplicable?).dup ++ true ++rescue TypeError ++ false + end + +-class UnboundMethod +- # Unbound methods are not duplicable: +- # +- # method(:puts).unbind.duplicable? # => false +- # method(:puts).unbind.dup # => TypeError: allocator undefined for UnboundMethod +- def duplicable? +- false ++unless methods_are_duplicable ++ class Method ++ # Methods are not duplicable: ++ # ++ # method(:puts).duplicable? # => false ++ # method(:puts).dup # => TypeError: allocator undefined for Method ++ def duplicable? ++ false ++ end ++ end ++ ++ class UnboundMethod ++ # Unbound methods are not duplicable: ++ # ++ # method(:puts).unbind.duplicable? # => false ++ # method(:puts).unbind.dup # => TypeError: allocator undefined for UnboundMethod ++ def duplicable? ++ false ++ end + end + end + +diff --git a/activesupport/test/core_ext/object/duplicable_test.rb b/activesupport/test/core_ext/object/duplicable_test.rb +index 07d9a3df4adc5..58de295719333 100644 +--- a/activesupport/test/core_ext/object/duplicable_test.rb ++++ b/activesupport/test/core_ext/object/duplicable_test.rb +@@ -6,21 +6,26 @@ + require "active_support/core_ext/numeric/time" + + class DuplicableTest < ActiveSupport::TestCase +- RAISE_DUP = [method(:puts), method(:puts).unbind, Class.new.include(Singleton).instance] +- ALLOW_DUP = ["1", "symbol_from_string".to_sym, Object.new, /foo/, [], {}, Time.now, Class.new, Module.new, BigDecimal("4.56"), nil, false, true, 1, 2.3, Complex(1), Rational(1)] ++ OBJECTS = [ ++ method(:puts), method(:puts).unbind, Class.new.include(Singleton).instance, ++ "1", "symbol_from_string".to_sym, Object.new, /foo/, [], {}, Time.now, Class.new, ++ Module.new, BigDecimal("4.56"), nil, false, true, 1, 2.3, Complex(1), Rational(1), ++ ] + +- def test_duplicable +- rubinius_skip "* Method#dup is allowed at the moment on Rubinius\n" \ +- "* https://github.com/rubinius/rubinius/issues/3089" +- +- RAISE_DUP.each do |v| +- assert_not v.duplicable?, "#{ v.inspect } should not be duplicable" +- assert_raises(TypeError, v.class.name) { v.dup } +- end ++ OBJECTS.each do |v| ++ test "#{v.class}#duplicable? matches #{v.class}#dup behavior" do ++ duplicable = begin ++ v.dup ++ true ++ rescue TypeError ++ false ++ end + +- ALLOW_DUP.each do |v| +- assert v.duplicable?, "#{ v.class } should be duplicable" +- assert_nothing_raised { v.dup } ++ if duplicable ++ assert_predicate v, :duplicable? ++ else ++ assert_not_predicate v, :duplicable? ++ end + end + end + end diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index ac07b91..8a2bb48 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 5%{?dist} +Release: 6%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -26,6 +26,8 @@ Patch1: rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_calle Patch2: rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with-test.patch # https://github.com/rails/rails/pull/45370 Patch3: rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch +# https://github.com/rails/rails/pull/51079 +Patch4: rubygem-activesupport-7.0.2.3-update-method_duplicable.patch # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -74,6 +76,9 @@ Documentation for %{name}. %patch 1 -p2 %patch 3 -p2 +mv %{_builddir}/test . +%patch 4 -p2 +mv test %{_builddir} pushd %{_builddir} %patch 2 -p2 @@ -144,6 +149,10 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Fri May 24 2024 Mamoru TASAKA - 1:7.0.8-6 +- Backport upstream fix for test failure wrt ruby side + Object#dup behavior change + * Fri Jan 26 2024 Fedora Release Engineering - 1:7.0.8-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 3c2b97f8602f29069dcfd3e85c7629b7ef5efb40 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jul 2024 19:01:53 +0000 Subject: [PATCH 09/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- rubygem-activesupport.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 8a2bb48..aead8f2 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 6%{?dist} +Release: 7%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -149,6 +149,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Fri Jul 19 2024 Fedora Release Engineering - 1:7.0.8-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Fri May 24 2024 Mamoru TASAKA - 1:7.0.8-6 - Backport upstream fix for test failure wrt ruby side Object#dup behavior change From c8bcfeeef1a1584183f72054f81af67b76456701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Mon, 4 Nov 2024 17:52:03 +0100 Subject: [PATCH 10/23] Drop mutex_m dependency to ease Ruby 3.4 compatibility. --- ...ort-7.2.0-Drop-dependency-on-mutex-m.patch | 71 +++++++++++++++++++ rubygem-activesupport.spec | 11 ++- 2 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch diff --git a/rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch b/rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch new file mode 100644 index 0000000..881c079 --- /dev/null +++ b/rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch @@ -0,0 +1,71 @@ +From bcdeea5da7657375df21a856135ae7a66a8c3812 Mon Sep 17 00:00:00 2001 +From: Jean Boussier +Date: Tue, 17 Oct 2023 17:46:48 +0200 +Subject: [PATCH] Drop dependency on mutex_m + +It used to be stdlib but is being extracted in modern rubies. + +Overall its usefulness is dubious. In all cases it is included in +Rails, it's only for the `synchronize` method, but end up exposing +a dozen other useless methods. + +In the end just using a Mutex is clearer and simpler. + +In some cases we can even get away with a single mutex in a constant. +--- + .../lib/active_support/notifications/fanout.rb | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/activesupport/lib/active_support/notifications/fanout.rb b/activesupport/lib/active_support/notifications/fanout.rb +index a84de150c0d63..2bc782ecee2cc 100644 +--- a/activesupport/lib/active_support/notifications/fanout.rb ++++ b/activesupport/lib/active_support/notifications/fanout.rb +@@ -1,6 +1,5 @@ + # frozen_string_literal: true + +-require "mutex_m" + require "concurrent/map" + require "set" + require "active_support/core_ext/object/try" +@@ -22,13 +21,11 @@ def iterate_guarding_exceptions(listeners) + # + # This class is thread safe. All methods are reentrant. + class Fanout +- include Mutex_m +- + def initialize ++ @mutex = Mutex.new + @string_subscribers = Hash.new { |h, k| h[k] = [] } + @other_subscribers = [] + @listeners_for = Concurrent::Map.new +- super + end + + def subscribe(pattern = nil, callable = nil, monotonic: false, &block) +@@ -33,7 +30,7 @@ def inspect # :nodoc: + + def subscribe(pattern = nil, callable = nil, monotonic: false, &block) + subscriber = Subscribers.new(pattern, callable || block, monotonic) +- synchronize do ++ @mutex.synchronize do + case pattern + when String + @string_subscribers[pattern] << subscriber +@@ -49,7 +46,7 @@ def subscribe(pattern = nil, callable = nil, monotonic: false, &block) + end + + def unsubscribe(subscriber_or_name) +- synchronize do ++ @mutex.synchronize do + case subscriber_or_name + when String + @string_subscribers[subscriber_or_name].clear +@@ -107,7 +104,7 @@ def publish_event(event) + + def listeners_for(name) + # this is correctly done double-checked locking (Concurrent::Map's lookups have volatile semantics) +- @listeners_for[name] || synchronize do ++ @listeners_for[name] || @mutex.synchronize do + # use synchronisation when accessing @subscribers + @listeners_for[name] ||= + @string_subscribers[name] + @other_subscribers.select { |s| s.subscribed_to?(name) } diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index aead8f2..1b87637 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 7%{?dist} +Release: 8%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -28,6 +28,9 @@ Patch2: rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_calle Patch3: rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch # https://github.com/rails/rails/pull/51079 Patch4: rubygem-activesupport-7.0.2.3-update-method_duplicable.patch +# Drop mutex_m dependency to ease Ruby 3.4 compatibility. +# https://github.com/rails/rails/pull/49674 +Patch5: rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -46,6 +49,7 @@ BuildRequires: rubygem(builder) BuildRequires: rubygem(concurrent-ruby) BuildRequires: rubygem(connection_pool) BuildRequires: rubygem(dalli) +BuildRequires: rubygem(drb) BuildRequires: (rubygem(i18n) >= 0.7 with rubygem(i18n) < 2) BuildRequires: rubygem(minitest) >= 5.0.0 BuildRequires: rubygem(rack) @@ -79,6 +83,7 @@ Documentation for %{name}. mv %{_builddir}/test . %patch 4 -p2 mv test %{_builddir} +%patch 5 -p2 pushd %{_builddir} %patch 2 -p2 @@ -88,7 +93,6 @@ popd # https://github.com/rails/rails/commit/81699b52d2acff1840e3ace5e59412f4fa3934ab %gemspec_add_dep -g base64 %gemspec_add_dep -g drb -%gemspec_add_dep -g mutex_m # https://github.com/rails/rails/commit/a77535c74c7047a517cc45ff8ecb416ea439c28d %gemspec_add_dep -g bigdecimal @@ -149,6 +153,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Mon Nov 04 2024 Vít Ondruch - 1:7.0.8-8 +- Ruby 3.4 compatibility fixes. + * Fri Jul 19 2024 Fedora Release Engineering - 1:7.0.8-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 99595e7ab24128da2a26b1ad7d1376a53e860716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 5 Nov 2024 14:31:52 +0100 Subject: [PATCH 11/23] Ruby 3.4 backtrace compatibility. --- ...-for-compatibility-with-Ruby-3-4-dev.patch | 139 ++++++++++++++++++ rubygem-activesupport.spec | 6 +- 2 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch diff --git a/rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch b/rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch new file mode 100644 index 0000000..d9e74ea --- /dev/null +++ b/rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch @@ -0,0 +1,139 @@ +From 50daadaa71f4db88cef3080afde51e203c700e67 Mon Sep 17 00:00:00 2001 +From: Jean Boussier +Date: Fri, 16 Feb 2024 09:53:45 +0100 +Subject: [PATCH] Update test suite for compatibility with Ruby 3.4-dev + +https://bugs.ruby-lang.org/issues/19117 and https://bugs.ruby-lang.org/issues/16495 +slightly change how backtrace are rendered which makes a few tests fail. +--- + activesupport/test/callbacks_test.rb | 57 ++++++++++----- + activesupport/test/core_ext/module_test.rb | 4 +- + .../test/core_ext/time_with_zone_test.rb | 2 +- + activesupport/test/test_case_test.rb | 4 +- + 4 files changed, 45 insertions(+), 22 deletions(-) + +diff --git a/activesupport/test/callbacks_test.rb b/activesupport/test/callbacks_test.rb +index 1083964eca0e7..b38da7a6acd5b 100644 +--- a/activesupport/test/callbacks_test.rb ++++ b/activesupport/test/callbacks_test.rb +@@ -473,18 +473,33 @@ def test_tidy_call_stack + # callbacks that have been invoked, if there are any (plus + # whatever the callbacks do themselves, of course). + +- assert_equal [ +- "block in save", +- "block in run_callbacks", +- "tweedle_deedle", +- "block in run_callbacks", +- "w0tyes", +- "block in run_callbacks", +- "tweedle_dum", +- "block in run_callbacks", +- "run_callbacks", +- "save" +- ], call_stack.map(&:label) ++ if RUBY_VERSION >= "3.4" ++ assert_equal [ ++ "block in CallbacksTest::MySlate#save", ++ "block in ActiveSupport::Callbacks#run_callbacks", ++ "CallbacksTest::AroundPerson#tweedle_deedle", ++ "block in ActiveSupport::Callbacks#run_callbacks", ++ "CallbacksTest::AroundPerson#w0tyes", ++ "block in ActiveSupport::Callbacks#run_callbacks", ++ "CallbacksTest::AroundPerson#tweedle_dum", ++ "block in ActiveSupport::Callbacks#run_callbacks", ++ "ActiveSupport::Callbacks#run_callbacks", ++ "CallbacksTest::MySlate#save", ++ ].join("\n"), call_stack.map(&:label).join("\n") ++ else ++ assert_equal [ ++ "block in save", ++ "block in run_callbacks", ++ "tweedle_deedle", ++ "block in run_callbacks", ++ "w0tyes", ++ "block in run_callbacks", ++ "tweedle_dum", ++ "block in run_callbacks", ++ "run_callbacks", ++ "save", ++ ].join("\n"), call_stack.map(&:label).join("\n") ++ end + end + + def test_short_call_stack +@@ -503,11 +518,19 @@ def test_short_call_stack + # there should be just one line. run_callbacks yields directly + # back to its caller. + +- assert_equal [ +- "block in save", +- "run_callbacks", +- "save" +- ], call_stack.map(&:label) ++ if RUBY_VERSION >= "3.4" ++ assert_equal [ ++ "block in CallbacksTest::Person#save", ++ "ActiveSupport::Callbacks#run_callbacks", ++ "CallbacksTest::Person#save", ++ ].join("\n"), call_stack.map(&:label).join("\n") ++ else ++ assert_equal [ ++ "block in save", ++ "run_callbacks", ++ "save", ++ ].join("\n"), call_stack.map(&:label).join("\n") ++ end + end + end + +diff --git a/activesupport/test/core_ext/module_test.rb b/activesupport/test/core_ext/module_test.rb +index d5899c646ab8b..23fee4bf125cd 100644 +--- a/activesupport/test/core_ext/module_test.rb ++++ b/activesupport/test/core_ext/module_test.rb +@@ -394,7 +394,7 @@ def test_delegate_missing_to_does_not_delegate_to_private_methods + DecoratedReserved.new(@david).private_name + end + +- assert_match(/undefined method `private_name' for/, e.message) ++ assert_match(/undefined method [`']private_name' for/, e.message) + end + + def test_delegate_missing_to_does_not_delegate_to_fake_methods +@@ -402,7 +402,7 @@ def test_delegate_missing_to_does_not_delegate_to_fake_methods + DecoratedReserved.new(@david).my_fake_method + end + +- assert_match(/undefined method `my_fake_method' for/, e.message) ++ assert_match(/undefined method [`']my_fake_method' for/, e.message) + end + + def test_delegate_missing_to_raises_delegation_error_if_target_nil +diff --git a/activesupport/test/core_ext/time_with_zone_test.rb b/activesupport/test/core_ext/time_with_zone_test.rb +index ff4170dd82875..19fc50087809c 100644 +--- a/activesupport/test/core_ext/time_with_zone_test.rb ++++ b/activesupport/test/core_ext/time_with_zone_test.rb +@@ -1113,7 +1113,7 @@ def test_no_method_error_has_proper_context + e = assert_raises(NoMethodError) { + @twz.this_method_does_not_exist + } +- assert_match(/undefined method `this_method_does_not_exist' for.*ActiveSupport::TimeWithZone/, e.message) ++ assert_match(/undefined method [`']this_method_does_not_exist' for.*ActiveSupport::TimeWithZone/, e.message) + assert_no_match "rescue", e.backtrace.first + end + end +diff --git a/activesupport/test/test_case_test.rb b/activesupport/test/test_case_test.rb +index dc2c2772996d7..05f1280790f3b 100644 +--- a/activesupport/test/test_case_test.rb ++++ b/activesupport/test/test_case_test.rb +@@ -391,8 +391,8 @@ def test_fails_and_warning_is_logged_if_wrong_error_caught + Other block based assertions (e.g. `assert_no_changes`) can be used, as long as `assert_raises` is inside their block. + MSG + assert @out.string.include?(expected), @out.string +- assert error.message.include?("ArgumentError: ArgumentError") +- assert error.message.include?("in `block (2 levels) in run_test_that_should_fail_confusingly'") ++ assert_includes error.message, "ArgumentError: ArgumentError" ++ assert_includes error.message, "run_test_that_should_fail_confusingly" + end + + private diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 1b87637..2bffd91 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -31,6 +31,9 @@ Patch4: rubygem-activesupport-7.0.2.3-update-method_duplicable.patch # Drop mutex_m dependency to ease Ruby 3.4 compatibility. # https://github.com/rails/rails/pull/49674 Patch5: rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch +# Ruby 3.4 backtrace compatibility. +# https://github.com/rails/rails/pull/51101 +Patch6: rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -87,6 +90,7 @@ mv test %{_builddir} pushd %{_builddir} %patch 2 -p2 +%patch 6 -p2 popd # Add several dependencies to avoid Ruby 3.3 warnings. @@ -109,7 +113,7 @@ cp -a .%{gem_dir}/* \ pushd .%{gem_instdir} # Move the tests into place ln -s %{_builddir}/tools .. -mv %{_builddir}/test . +cp -a %{_builddir}/test . # These tests are really unstable, but they seems to be passing upstream :/ # mem_cache_store_test: These tests do not pass in Koji; but work locally From cbc3c77d459a21d11fd32a2adc2868c04c8989be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 5 Nov 2024 14:44:40 +0100 Subject: [PATCH 12/23] Ruby 3.4 `Hash#inspect` compatibility. --- ...ort-7.0.2.3-update-method_duplicable.patch | 5 ++-- ...test-suite-for-Ruby-3-4-Hash-inspect.patch | 24 +++++++++++++++++++ rubygem-activesupport.spec | 4 ++++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch diff --git a/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch b/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch index 81b8197..96e9542 100644 --- a/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch +++ b/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch @@ -10,9 +10,8 @@ this wasn't so much a feature, but a bug. It was fixed in https://github.com/ruby/ruby/pull/9926. --- - .../core_ext/object/duplicable.rb | 39 ++++++++++++------- - .../test/core_ext/object/duplicable_test.rb | 28 ++++++++----- - 2 files changed, 42 insertions(+), 25 deletions(-) + .../test/core_ext/object/duplicable_test.rb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activesupport/lib/active_support/core_ext/object/duplicable.rb b/activesupport/lib/active_support/core_ext/object/duplicable.rb index 6fdf6d810ffb9..505455fe54bf3 100644 diff --git a/rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch b/rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch new file mode 100644 index 0000000..49c1b03 --- /dev/null +++ b/rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch @@ -0,0 +1,24 @@ +From 95c2ee8e0503215ad94629383311301742ebf012 Mon Sep 17 00:00:00 2001 +From: Jean Boussier +Date: Sat, 5 Oct 2024 12:25:51 -0400 +Subject: [PATCH] Update Active Support test suite for Ruby 3.4 Hash#inspect + +Ref: https://github.com/ruby/ruby/pull/10924 +Ref: https://bugs.ruby-lang.org/issues/20433 +--- + activesupport/test/broadcast_logger_test.rb | 4 ++-- + activesupport/test/ordered_options_test.rb | 18 +++++++++--------- + 2 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/activesupport/test/ordered_options_test.rb b/activesupport/test/ordered_options_test.rb +index 8eca0fe73bec7..eb8b50c62f511 100644 +--- a/activesupport/test/ordered_options_test.rb ++++ b/activesupport/test/ordered_options_test.rb +@@ -123,6 +123,6 @@ def test_inspect + a.foo = :bar + a[:baz] = :quz + +- assert_equal "#:bar, :baz=>:quz}>", a.inspect ++ assert_equal "#", a.inspect + end + end diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 2bffd91..3d10bab 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -34,6 +34,9 @@ Patch5: rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch # Ruby 3.4 backtrace compatibility. # https://github.com/rails/rails/pull/51101 Patch6: rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch +# Ruby 3.4 `Hash#inspect` compatibility. +# https://github.com/rails/rails/commit/95c2ee8e0503215ad94629383311301742ebf012 +Patch7: rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -91,6 +94,7 @@ mv test %{_builddir} pushd %{_builddir} %patch 2 -p2 %patch 6 -p2 +%patch 7 -p2 popd # Add several dependencies to avoid Ruby 3.3 warnings. From c6c3886337f9c4be83f74a7a27664f3dd283b41a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 26 Nov 2024 17:41:25 +0100 Subject: [PATCH 13/23] Add extracted standard gems dependencies. --- rubygem-activesupport.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 3d10bab..55b30c2 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 8%{?dist} +Release: 9%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -97,12 +97,16 @@ pushd %{_builddir} %patch 7 -p2 popd -# Add several dependencies to avoid Ruby 3.3 warnings. +# Add several dependencies to avoid Ruby 3.3+ warnings. # https://github.com/rails/rails/commit/81699b52d2acff1840e3ace5e59412f4fa3934ab %gemspec_add_dep -g base64 %gemspec_add_dep -g drb # https://github.com/rails/rails/commit/a77535c74c7047a517cc45ff8ecb416ea439c28d %gemspec_add_dep -g bigdecimal +# https://github.com/rails/rails/commit/455b5f106e5a3eeba1e7139c63fd83dc0dd81caf +%gemspec_add_dep -g logger +%gemspec_add_dep -g securerandom +%gemspec_add_dep -g benchmark %build gem build ../%{gem_name}-%{version}%{?prerelease}.gemspec @@ -161,6 +165,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Tue Nov 26 2024 Vít Ondruch - 1:7.0.8-9 +- Add extracted standard gems dependencies. + * Mon Nov 04 2024 Vít Ondruch - 1:7.0.8-8 - Ruby 3.4 compatibility fixes. From 7120ebc8f8070b41fb0b8011b93081e97f9a5d7b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 18 Jan 2025 22:57:12 +0000 Subject: [PATCH 14/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- rubygem-activesupport.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 55b30c2..e3bf87d 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 9%{?dist} +Release: 10%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -165,6 +165,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Sat Jan 18 2025 Fedora Release Engineering - 1:7.0.8-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Tue Nov 26 2024 Vít Ondruch - 1:7.0.8-9 - Add extracted standard gems dependencies. From e978c62268c5edaa1495a6be8d66291699bdb398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 23 Jan 2025 21:04:03 +0100 Subject: [PATCH 15/23] Fix compatibility with concurrent-ruby 1.3.5+ --- ...he-logger-gem-is-loaded-in-Rails-7-0.patch | 22 +++++++++++++++++++ rubygem-activesupport.spec | 10 ++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch diff --git a/rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch b/rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch new file mode 100644 index 0000000..1430571 --- /dev/null +++ b/rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch @@ -0,0 +1,22 @@ +From 6a7c72c078715380bf24f029624e6b1fb3035c97 Mon Sep 17 00:00:00 2001 +From: Antti Hukkanen +Date: Thu, 16 Jan 2025 11:17:29 +0200 +Subject: [PATCH] Ensure the logger gem is loaded in Rails 7.0 + +Fix #54260, #54263 +--- + activesupport/lib/active_support/logger_thread_safe_level.rb | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/activesupport/lib/active_support/logger_thread_safe_level.rb b/activesupport/lib/active_support/logger_thread_safe_level.rb +index 042f484f8210d..aa84a7c5de5c6 100644 +--- a/activesupport/lib/active_support/logger_thread_safe_level.rb ++++ b/activesupport/lib/active_support/logger_thread_safe_level.rb +@@ -4,6 +4,7 @@ + require "active_support/core_ext/module/attribute_accessors" + require "concurrent" + require "fiber" ++require "logger" + + module ActiveSupport + module LoggerThreadSafeLevel # :nodoc: diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index e3bf87d..138237d 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 7.0.8 -Release: 10%{?dist} +Release: 11%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: http://rubyonrails.org @@ -37,6 +37,10 @@ Patch6: rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Rub # Ruby 3.4 `Hash#inspect` compatibility. # https://github.com/rails/rails/commit/95c2ee8e0503215ad94629383311301742ebf012 Patch7: rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch +# concurrent-ruby 1.3.5+ drops Logger dependency. Make sure to load Logger +# explicitly. +# https://github.com/rails/rails/pull/54264 +Patch8: rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -90,6 +94,7 @@ mv %{_builddir}/test . %patch 4 -p2 mv test %{_builddir} %patch 5 -p2 +%patch 8 -p2 pushd %{_builddir} %patch 2 -p2 @@ -165,6 +170,9 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Thu Jan 23 2025 Vít Ondruch - 1:7.0.8-11 +- Fix compatibility with concurrent-ruby 1.3.5+ + * Sat Jan 18 2025 Fedora Release Engineering - 1:7.0.8-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 22a0f35c6743398309bc6226cab4c42633029d8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Mon, 20 Jan 2025 15:59:18 +0100 Subject: [PATCH 16/23] Update to Active Support 8.0.1. Related: rhbz#2238177 --- .gitignore | 2 +- ...-7.0.2.3-Fix-tests-for-minitest-5.16.patch | 72 --------- ...call-form-of-assert_called_with-test.patch | 39 ----- ...ulti-call-form-of-assert_called_with.patch | 39 ----- ...ort-7.0.2.3-update-method_duplicable.patch | 111 -------------- ...he-logger-gem-is-loaded-in-Rails-7-0.patch | 22 --- ...ort-7.2.0-Drop-dependency-on-mutex-m.patch | 71 --------- ...-for-compatibility-with-Ruby-3-4-dev.patch | 139 ------------------ ...test-suite-for-Ruby-3-4-Hash-inspect.patch | 24 --- rubygem-activesupport.spec | 127 +++++----------- sources | 5 +- test_common.rb | 20 +++ 12 files changed, 61 insertions(+), 610 deletions(-) delete mode 100644 rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch delete mode 100644 rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with-test.patch delete mode 100644 rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with.patch delete mode 100644 rubygem-activesupport-7.0.2.3-update-method_duplicable.patch delete mode 100644 rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch delete mode 100644 rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch delete mode 100644 rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch delete mode 100644 rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch create mode 100644 test_common.rb diff --git a/.gitignore b/.gitignore index 1e332be..dd04ff5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ /activesupport-*.gem -/activesupport-*-tests.txz +/activesupport-*-tests.tar.gz /rails-*-tools.txz diff --git a/rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch b/rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch deleted file mode 100644 index 4f325b0..0000000 --- a/rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 9766eb4a833c26c64012230b96dd1157ebb8e8a2 Mon Sep 17 00:00:00 2001 -From: eileencodes -Date: Wed, 15 Jun 2022 12:44:11 -0400 -Subject: [PATCH] Fix tests for minitest 5.16 - -In minitest/minitest@6e06ac9 minitest changed such that it now accepts -`kwargs` instead of requiring kwargs to be shoved into the args array. -This is a good change but required some updates to our test code to get -the new version of minitest passing. - -Changes are as follows: - -1) Lock minitest to 5.15 for Ruby 2.7. We don't love this change but -it's pretty difficult to get 2.7 and 3.0 to play nicely together with -the new kwargs changes. Dropping 2.7 support isn't an option right -now for Rails. This is safe because all of the code changes here are -internal methods to Rails like assert_called_with. Applications -shouldn't be consuming them as they are no-doc'd. -2) Update the `assert_called_with` method to take any kwargs but also -the returns kwarg. -3) Update callers of `assert_called_with` to move the kwargs outside the -args array. -4) Update the message from marshaled exceptions. In 5.16 the exception -message is "result not reported" instead of "Wrapped undumpable -exception". - -Co-authored-by: Matthew Draper ---- - .../testing/method_call_assertions.rb | 22 +++- - 1 file changed, 20 insertions(+), 2 deletions(-) - -diff --git a/activesupport/lib/active_support/testing/method_call_assertions.rb b/activesupport/lib/active_support/testing/method_call_assertions.rb -index 72451faaa8cc4..f146eefce0354 100644 ---- a/activesupport/lib/active_support/testing/method_call_assertions.rb -+++ b/activesupport/lib/active_support/testing/method_call_assertions.rb -@@ -17,9 +17,9 @@ def assert_called(object, method_name, message = nil, times: 1, returns: nil, &b - assert_equal times, times_called, error - end - -- def assert_called_with(object, method_name, args, returns: nil, &block) -+ def assert_called_with(object, method_name, args, returns: false, **kwargs, &block) - mock = Minitest::Mock.new -- mock.expect(:call, returns, args) -+ expect_called_with(mock, args, returns: returns, **kwargs) - - object.stub(method_name, mock, &block) - -@@ -30,6 +30,24 @@ def assert_not_called(object, method_name, message = nil, &block) - assert_called(object, method_name, message, times: 0, &block) - end - -+ #-- -+ # This method is a temporary wrapper for mock.expect as part of -+ # the Minitest 5.16 / Ruby 3.0 kwargs transition. It can go away -+ # when we drop support for Ruby 2.7. -+ if Minitest::Mock.instance_method(:expect).parameters.map(&:first).include?(:keyrest) -+ def expect_called_with(mock, args, returns: false, **kwargs) -+ mock.expect(:call, returns, args, **kwargs) -+ end -+ else -+ def expect_called_with(mock, args, returns: false, **kwargs) -+ if !kwargs.empty? -+ mock.expect(:call, returns, [*args, kwargs]) -+ else -+ mock.expect(:call, returns, args) -+ end -+ end -+ end -+ - def assert_called_on_instance_of(klass, method_name, message = nil, times: 1, returns: nil) - times_called = 0 - klass.define_method("stubbed_#{method_name}") do |*| diff --git a/rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with-test.patch b/rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with-test.patch deleted file mode 100644 index 7baf418..0000000 --- a/rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with-test.patch +++ /dev/null @@ -1,39 +0,0 @@ -From df0de681dc1873534ecd2fc8371e1f2562984b68 Mon Sep 17 00:00:00 2001 -From: John Crepezzi -Date: Thu, 16 Jun 2022 08:34:05 -0400 -Subject: [PATCH] Remove the multi-call form of assert_called_with - -The `assert_called_with` helper allows passing a multi-dimensional array to -mock multiple calls to the same method for a given block. This works -fine now, but when adding support for real kwargs arguments to line up with -recent upgrades in Minitest, this approach is no longer workable because -we can't pass multiple sets of differing kwargs. - -Rather than complicated this method further, this commit removes the -multi-call form of `assert_called_with` and modifies the tests that -currently make use of that functionality to just use the underlying -`Minitest::Mock` calls. - -Co-authored-by: Eileen M. Uchitelle ---- - .../testing/method_call_assertions_test.rb | 7 -- - 1 file changed, 7 deletions(-) - -diff --git a/activesupport/test/testing/method_call_assertions_test.rb b/activesupport/test/testing/method_call_assertions_test.rb -index e75630d2e4228..4d59e0bd3c222 100644 ---- a/activesupport/test/testing/method_call_assertions_test.rb -+++ b/activesupport/test/testing/method_call_assertions_test.rb -@@ -82,13 +82,6 @@ def test_assert_called_with_failure - end - end - -- def test_assert_called_with_multiple_expected_arguments -- assert_called_with(@object, :<<, [ [ 1 ], [ 2 ] ]) do -- @object << 1 -- @object << 2 -- end -- end -- - def test_assert_called_on_instance_of_with_defaults_to_expect_once - assert_called_on_instance_of Level, :increment do - @object.increment diff --git a/rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with.patch b/rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with.patch deleted file mode 100644 index b368c92..0000000 --- a/rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with.patch +++ /dev/null @@ -1,39 +0,0 @@ -From df0de681dc1873534ecd2fc8371e1f2562984b68 Mon Sep 17 00:00:00 2001 -From: John Crepezzi -Date: Thu, 16 Jun 2022 08:34:05 -0400 -Subject: [PATCH] Remove the multi-call form of assert_called_with - -The `assert_called_with` helper allows passing a multi-dimensional array to -mock multiple calls to the same method for a given block. This works -fine now, but when adding support for real kwargs arguments to line up with -recent upgrades in Minitest, this approach is no longer workable because -we can't pass multiple sets of differing kwargs. - -Rather than complicated this method further, this commit removes the -multi-call form of `assert_called_with` and modifies the tests that -currently make use of that functionality to just use the underlying -`Minitest::Mock` calls. - -Co-authored-by: Eileen M. Uchitelle ---- - .../testing/method_call_assertions.rb | 7 +- - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/activesupport/lib/active_support/testing/method_call_assertions.rb b/activesupport/lib/active_support/testing/method_call_assertions.rb -index c8d2dbaa52ab5..72451faaa8cc4 100644 ---- a/activesupport/lib/active_support/testing/method_call_assertions.rb -+++ b/activesupport/lib/active_support/testing/method_call_assertions.rb -@@ -19,12 +19,7 @@ def assert_called(object, method_name, message = nil, times: 1, returns: nil, &b - - def assert_called_with(object, method_name, args, returns: nil, &block) - mock = Minitest::Mock.new -- -- if args.all?(Array) -- args.each { |arg| mock.expect(:call, returns, arg) } -- else -- mock.expect(:call, returns, args) -- end -+ mock.expect(:call, returns, args) - - object.stub(method_name, mock, &block) - diff --git a/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch b/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch deleted file mode 100644 index 96e9542..0000000 --- a/rubygem-activesupport-7.0.2.3-update-method_duplicable.patch +++ /dev/null @@ -1,111 +0,0 @@ -From ca6995a80cb526958001e18d3b06da6587cd07eb Mon Sep 17 00:00:00 2001 -From: Jean Boussier -Date: Wed, 14 Feb 2024 09:52:55 +0100 -Subject: [PATCH] Update Method#duplicable? to be consistent with Ruby 3.4 - -Fix: https://github.com/rails/rails/issues/51075 - -`Method` and `UnboundMethod` used to raise on `#dup`, but not `#clone`, -this wasn't so much a feature, but a bug. - -It was fixed in https://github.com/ruby/ruby/pull/9926. ---- - .../test/core_ext/object/duplicable_test.rb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/activesupport/lib/active_support/core_ext/object/duplicable.rb b/activesupport/lib/active_support/core_ext/object/duplicable.rb -index 6fdf6d810ffb9..505455fe54bf3 100644 ---- a/activesupport/lib/active_support/core_ext/object/duplicable.rb -+++ b/activesupport/lib/active_support/core_ext/object/duplicable.rb -@@ -28,23 +28,32 @@ def duplicable? - end - end - --class Method -- # Methods are not duplicable: -- # -- # method(:puts).duplicable? # => false -- # method(:puts).dup # => TypeError: allocator undefined for Method -- def duplicable? -- false -- end -+methods_are_duplicable = begin -+ Object.instance_method(:duplicable?).dup -+ true -+rescue TypeError -+ false - end - --class UnboundMethod -- # Unbound methods are not duplicable: -- # -- # method(:puts).unbind.duplicable? # => false -- # method(:puts).unbind.dup # => TypeError: allocator undefined for UnboundMethod -- def duplicable? -- false -+unless methods_are_duplicable -+ class Method -+ # Methods are not duplicable: -+ # -+ # method(:puts).duplicable? # => false -+ # method(:puts).dup # => TypeError: allocator undefined for Method -+ def duplicable? -+ false -+ end -+ end -+ -+ class UnboundMethod -+ # Unbound methods are not duplicable: -+ # -+ # method(:puts).unbind.duplicable? # => false -+ # method(:puts).unbind.dup # => TypeError: allocator undefined for UnboundMethod -+ def duplicable? -+ false -+ end - end - end - -diff --git a/activesupport/test/core_ext/object/duplicable_test.rb b/activesupport/test/core_ext/object/duplicable_test.rb -index 07d9a3df4adc5..58de295719333 100644 ---- a/activesupport/test/core_ext/object/duplicable_test.rb -+++ b/activesupport/test/core_ext/object/duplicable_test.rb -@@ -6,21 +6,26 @@ - require "active_support/core_ext/numeric/time" - - class DuplicableTest < ActiveSupport::TestCase -- RAISE_DUP = [method(:puts), method(:puts).unbind, Class.new.include(Singleton).instance] -- ALLOW_DUP = ["1", "symbol_from_string".to_sym, Object.new, /foo/, [], {}, Time.now, Class.new, Module.new, BigDecimal("4.56"), nil, false, true, 1, 2.3, Complex(1), Rational(1)] -+ OBJECTS = [ -+ method(:puts), method(:puts).unbind, Class.new.include(Singleton).instance, -+ "1", "symbol_from_string".to_sym, Object.new, /foo/, [], {}, Time.now, Class.new, -+ Module.new, BigDecimal("4.56"), nil, false, true, 1, 2.3, Complex(1), Rational(1), -+ ] - -- def test_duplicable -- rubinius_skip "* Method#dup is allowed at the moment on Rubinius\n" \ -- "* https://github.com/rubinius/rubinius/issues/3089" -- -- RAISE_DUP.each do |v| -- assert_not v.duplicable?, "#{ v.inspect } should not be duplicable" -- assert_raises(TypeError, v.class.name) { v.dup } -- end -+ OBJECTS.each do |v| -+ test "#{v.class}#duplicable? matches #{v.class}#dup behavior" do -+ duplicable = begin -+ v.dup -+ true -+ rescue TypeError -+ false -+ end - -- ALLOW_DUP.each do |v| -- assert v.duplicable?, "#{ v.class } should be duplicable" -- assert_nothing_raised { v.dup } -+ if duplicable -+ assert_predicate v, :duplicable? -+ else -+ assert_not_predicate v, :duplicable? -+ end - end - end - end diff --git a/rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch b/rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch deleted file mode 100644 index 1430571..0000000 --- a/rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 6a7c72c078715380bf24f029624e6b1fb3035c97 Mon Sep 17 00:00:00 2001 -From: Antti Hukkanen -Date: Thu, 16 Jan 2025 11:17:29 +0200 -Subject: [PATCH] Ensure the logger gem is loaded in Rails 7.0 - -Fix #54260, #54263 ---- - activesupport/lib/active_support/logger_thread_safe_level.rb | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/activesupport/lib/active_support/logger_thread_safe_level.rb b/activesupport/lib/active_support/logger_thread_safe_level.rb -index 042f484f8210d..aa84a7c5de5c6 100644 ---- a/activesupport/lib/active_support/logger_thread_safe_level.rb -+++ b/activesupport/lib/active_support/logger_thread_safe_level.rb -@@ -4,6 +4,7 @@ - require "active_support/core_ext/module/attribute_accessors" - require "concurrent" - require "fiber" -+require "logger" - - module ActiveSupport - module LoggerThreadSafeLevel # :nodoc: diff --git a/rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch b/rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch deleted file mode 100644 index 881c079..0000000 --- a/rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch +++ /dev/null @@ -1,71 +0,0 @@ -From bcdeea5da7657375df21a856135ae7a66a8c3812 Mon Sep 17 00:00:00 2001 -From: Jean Boussier -Date: Tue, 17 Oct 2023 17:46:48 +0200 -Subject: [PATCH] Drop dependency on mutex_m - -It used to be stdlib but is being extracted in modern rubies. - -Overall its usefulness is dubious. In all cases it is included in -Rails, it's only for the `synchronize` method, but end up exposing -a dozen other useless methods. - -In the end just using a Mutex is clearer and simpler. - -In some cases we can even get away with a single mutex in a constant. ---- - .../lib/active_support/notifications/fanout.rb | 11 ++++------- - 1 file changed, 4 insertions(+), 7 deletions(-) - -diff --git a/activesupport/lib/active_support/notifications/fanout.rb b/activesupport/lib/active_support/notifications/fanout.rb -index a84de150c0d63..2bc782ecee2cc 100644 ---- a/activesupport/lib/active_support/notifications/fanout.rb -+++ b/activesupport/lib/active_support/notifications/fanout.rb -@@ -1,6 +1,5 @@ - # frozen_string_literal: true - --require "mutex_m" - require "concurrent/map" - require "set" - require "active_support/core_ext/object/try" -@@ -22,13 +21,11 @@ def iterate_guarding_exceptions(listeners) - # - # This class is thread safe. All methods are reentrant. - class Fanout -- include Mutex_m -- - def initialize -+ @mutex = Mutex.new - @string_subscribers = Hash.new { |h, k| h[k] = [] } - @other_subscribers = [] - @listeners_for = Concurrent::Map.new -- super - end - - def subscribe(pattern = nil, callable = nil, monotonic: false, &block) -@@ -33,7 +30,7 @@ def inspect # :nodoc: - - def subscribe(pattern = nil, callable = nil, monotonic: false, &block) - subscriber = Subscribers.new(pattern, callable || block, monotonic) -- synchronize do -+ @mutex.synchronize do - case pattern - when String - @string_subscribers[pattern] << subscriber -@@ -49,7 +46,7 @@ def subscribe(pattern = nil, callable = nil, monotonic: false, &block) - end - - def unsubscribe(subscriber_or_name) -- synchronize do -+ @mutex.synchronize do - case subscriber_or_name - when String - @string_subscribers[subscriber_or_name].clear -@@ -107,7 +104,7 @@ def publish_event(event) - - def listeners_for(name) - # this is correctly done double-checked locking (Concurrent::Map's lookups have volatile semantics) -- @listeners_for[name] || synchronize do -+ @listeners_for[name] || @mutex.synchronize do - # use synchronisation when accessing @subscribers - @listeners_for[name] ||= - @string_subscribers[name] + @other_subscribers.select { |s| s.subscribed_to?(name) } diff --git a/rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch b/rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch deleted file mode 100644 index d9e74ea..0000000 --- a/rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 50daadaa71f4db88cef3080afde51e203c700e67 Mon Sep 17 00:00:00 2001 -From: Jean Boussier -Date: Fri, 16 Feb 2024 09:53:45 +0100 -Subject: [PATCH] Update test suite for compatibility with Ruby 3.4-dev - -https://bugs.ruby-lang.org/issues/19117 and https://bugs.ruby-lang.org/issues/16495 -slightly change how backtrace are rendered which makes a few tests fail. ---- - activesupport/test/callbacks_test.rb | 57 ++++++++++----- - activesupport/test/core_ext/module_test.rb | 4 +- - .../test/core_ext/time_with_zone_test.rb | 2 +- - activesupport/test/test_case_test.rb | 4 +- - 4 files changed, 45 insertions(+), 22 deletions(-) - -diff --git a/activesupport/test/callbacks_test.rb b/activesupport/test/callbacks_test.rb -index 1083964eca0e7..b38da7a6acd5b 100644 ---- a/activesupport/test/callbacks_test.rb -+++ b/activesupport/test/callbacks_test.rb -@@ -473,18 +473,33 @@ def test_tidy_call_stack - # callbacks that have been invoked, if there are any (plus - # whatever the callbacks do themselves, of course). - -- assert_equal [ -- "block in save", -- "block in run_callbacks", -- "tweedle_deedle", -- "block in run_callbacks", -- "w0tyes", -- "block in run_callbacks", -- "tweedle_dum", -- "block in run_callbacks", -- "run_callbacks", -- "save" -- ], call_stack.map(&:label) -+ if RUBY_VERSION >= "3.4" -+ assert_equal [ -+ "block in CallbacksTest::MySlate#save", -+ "block in ActiveSupport::Callbacks#run_callbacks", -+ "CallbacksTest::AroundPerson#tweedle_deedle", -+ "block in ActiveSupport::Callbacks#run_callbacks", -+ "CallbacksTest::AroundPerson#w0tyes", -+ "block in ActiveSupport::Callbacks#run_callbacks", -+ "CallbacksTest::AroundPerson#tweedle_dum", -+ "block in ActiveSupport::Callbacks#run_callbacks", -+ "ActiveSupport::Callbacks#run_callbacks", -+ "CallbacksTest::MySlate#save", -+ ].join("\n"), call_stack.map(&:label).join("\n") -+ else -+ assert_equal [ -+ "block in save", -+ "block in run_callbacks", -+ "tweedle_deedle", -+ "block in run_callbacks", -+ "w0tyes", -+ "block in run_callbacks", -+ "tweedle_dum", -+ "block in run_callbacks", -+ "run_callbacks", -+ "save", -+ ].join("\n"), call_stack.map(&:label).join("\n") -+ end - end - - def test_short_call_stack -@@ -503,11 +518,19 @@ def test_short_call_stack - # there should be just one line. run_callbacks yields directly - # back to its caller. - -- assert_equal [ -- "block in save", -- "run_callbacks", -- "save" -- ], call_stack.map(&:label) -+ if RUBY_VERSION >= "3.4" -+ assert_equal [ -+ "block in CallbacksTest::Person#save", -+ "ActiveSupport::Callbacks#run_callbacks", -+ "CallbacksTest::Person#save", -+ ].join("\n"), call_stack.map(&:label).join("\n") -+ else -+ assert_equal [ -+ "block in save", -+ "run_callbacks", -+ "save", -+ ].join("\n"), call_stack.map(&:label).join("\n") -+ end - end - end - -diff --git a/activesupport/test/core_ext/module_test.rb b/activesupport/test/core_ext/module_test.rb -index d5899c646ab8b..23fee4bf125cd 100644 ---- a/activesupport/test/core_ext/module_test.rb -+++ b/activesupport/test/core_ext/module_test.rb -@@ -394,7 +394,7 @@ def test_delegate_missing_to_does_not_delegate_to_private_methods - DecoratedReserved.new(@david).private_name - end - -- assert_match(/undefined method `private_name' for/, e.message) -+ assert_match(/undefined method [`']private_name' for/, e.message) - end - - def test_delegate_missing_to_does_not_delegate_to_fake_methods -@@ -402,7 +402,7 @@ def test_delegate_missing_to_does_not_delegate_to_fake_methods - DecoratedReserved.new(@david).my_fake_method - end - -- assert_match(/undefined method `my_fake_method' for/, e.message) -+ assert_match(/undefined method [`']my_fake_method' for/, e.message) - end - - def test_delegate_missing_to_raises_delegation_error_if_target_nil -diff --git a/activesupport/test/core_ext/time_with_zone_test.rb b/activesupport/test/core_ext/time_with_zone_test.rb -index ff4170dd82875..19fc50087809c 100644 ---- a/activesupport/test/core_ext/time_with_zone_test.rb -+++ b/activesupport/test/core_ext/time_with_zone_test.rb -@@ -1113,7 +1113,7 @@ def test_no_method_error_has_proper_context - e = assert_raises(NoMethodError) { - @twz.this_method_does_not_exist - } -- assert_match(/undefined method `this_method_does_not_exist' for.*ActiveSupport::TimeWithZone/, e.message) -+ assert_match(/undefined method [`']this_method_does_not_exist' for.*ActiveSupport::TimeWithZone/, e.message) - assert_no_match "rescue", e.backtrace.first - end - end -diff --git a/activesupport/test/test_case_test.rb b/activesupport/test/test_case_test.rb -index dc2c2772996d7..05f1280790f3b 100644 ---- a/activesupport/test/test_case_test.rb -+++ b/activesupport/test/test_case_test.rb -@@ -391,8 +391,8 @@ def test_fails_and_warning_is_logged_if_wrong_error_caught - Other block based assertions (e.g. `assert_no_changes`) can be used, as long as `assert_raises` is inside their block. - MSG - assert @out.string.include?(expected), @out.string -- assert error.message.include?("ArgumentError: ArgumentError") -- assert error.message.include?("in `block (2 levels) in run_test_that_should_fail_confusingly'") -+ assert_includes error.message, "ArgumentError: ArgumentError" -+ assert_includes error.message, "run_test_that_should_fail_confusingly" - end - - private diff --git a/rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch b/rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch deleted file mode 100644 index 49c1b03..0000000 --- a/rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 95c2ee8e0503215ad94629383311301742ebf012 Mon Sep 17 00:00:00 2001 -From: Jean Boussier -Date: Sat, 5 Oct 2024 12:25:51 -0400 -Subject: [PATCH] Update Active Support test suite for Ruby 3.4 Hash#inspect - -Ref: https://github.com/ruby/ruby/pull/10924 -Ref: https://bugs.ruby-lang.org/issues/20433 ---- - activesupport/test/broadcast_logger_test.rb | 4 ++-- - activesupport/test/ordered_options_test.rb | 18 +++++++++--------- - 2 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/activesupport/test/ordered_options_test.rb b/activesupport/test/ordered_options_test.rb -index 8eca0fe73bec7..eb8b50c62f511 100644 ---- a/activesupport/test/ordered_options_test.rb -+++ b/activesupport/test/ordered_options_test.rb -@@ -123,6 +123,6 @@ def test_inspect - a.foo = :bar - a[:baz] = :quz - -- assert_equal "#:bar, :baz=>:quz}>", a.inspect -+ assert_equal "#", a.inspect - end - end diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 138237d..27b2ae2 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -4,43 +4,18 @@ Name: rubygem-%{gem_name} Epoch: 1 -Version: 7.0.8 -Release: 11%{?dist} +Version: 8.0.1 +Release: 1%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT -URL: http://rubyonrails.org +URL: https://rubyonrails.org Source0: https://rubygems.org/gems/%{gem_name}-%{version}%{?prerelease}.gem -# The activesupport gem doesn't ship with the test suite. -# You may check it out like so -# git clone http://github.com/rails/rails.git -# cd rails/activesupport && git archive -v -o activesupport-7.0.8-tests.txz v7.0.8 test/ -Source1: %{gem_name}-%{version}%{?prerelease}-tests.txz +# git clone http://github.com/rails/rails.git && cd rails/activesupport +# git archive -v -o activesupport-8.0.1-tests.tar.gz v8.0.1 test/ +Source1: %{gem_name}-%{version}%{?prerelease}-tests.tar.gz # The tools are needed for the test suite, are however unpackaged in gem file. -# You may get them like so -# git clone http://github.com/rails/rails.git --no-checkout -# cd rails && git archive -v -o rails-7.0.8-tools.txz v7.0.8 tools/ -Source2: rails-%{version}%{?prerelease}-tools.txz -# Fixes for Minitest 5.16+ -# https://github.com/rails/rails/pull/45380 -Patch1: rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with.patch -Patch2: rubygem-activesupport-7.0.2.3-Remove-the-multi-call-form-of-assert_called_with-test.patch -# https://github.com/rails/rails/pull/45370 -Patch3: rubygem-activesupport-7.0.2.3-Fix-tests-for-minitest-5.16.patch -# https://github.com/rails/rails/pull/51079 -Patch4: rubygem-activesupport-7.0.2.3-update-method_duplicable.patch -# Drop mutex_m dependency to ease Ruby 3.4 compatibility. -# https://github.com/rails/rails/pull/49674 -Patch5: rubygem-activesupport-7.2.0-Drop-dependency-on-mutex-m.patch -# Ruby 3.4 backtrace compatibility. -# https://github.com/rails/rails/pull/51101 -Patch6: rubygem-activesupport-7.2.0-Update-test-suite-for-compatibility-with-Ruby-3-4-dev.patch -# Ruby 3.4 `Hash#inspect` compatibility. -# https://github.com/rails/rails/commit/95c2ee8e0503215ad94629383311301742ebf012 -Patch7: rubygem-activesupport-8.0.0-Update-Active-Support-test-suite-for-Ruby-3-4-Hash-inspect.patch -# concurrent-ruby 1.3.5+ drops Logger dependency. Make sure to load Logger -# explicitly. -# https://github.com/rails/rails/pull/54264 -Patch8: rubygem-activesupport-7.0.8-Ensure-the-logger-gem-is-loaded-in-Rails-7-0.patch +# https://github.com/rails/rails/blob/main/tools/test_common.rb +Source2: https://raw.githubusercontent.com/rails/rails/e25d738430bdc6bdd04cd28be705484ea953e74e/tools/test_common.rb # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -53,30 +28,32 @@ Requires: tzdata # Let's keep Requires and BuildRequires sorted alphabeticaly BuildRequires: ruby(release) BuildRequires: rubygems-devel -BuildRequires: ruby >= 2.2.2 +BuildRequires: ruby >= 3.2.0 BuildRequires: rubygem(bigdecimal) BuildRequires: rubygem(builder) BuildRequires: rubygem(concurrent-ruby) BuildRequires: rubygem(connection_pool) BuildRequires: rubygem(dalli) BuildRequires: rubygem(drb) -BuildRequires: (rubygem(i18n) >= 0.7 with rubygem(i18n) < 2) -BuildRequires: rubygem(minitest) >= 5.0.0 -BuildRequires: rubygem(rack) -BuildRequires: rubygem(tzinfo) >= 2.0 +BuildRequires: rubygem(i18n) >= 0.7 BuildRequires: rubygem(listen) +BuildRequires: rubygem(minitest) >= 5.0.0 +BuildRequires: rubygem(msgpack) +BuildRequires: rubygem(rack) BuildRequires: rubygem(redis) BuildRequires: rubygem(rexml) +BuildRequires: rubygem(tzinfo) >= 2.0 BuildRequires: memcached +BuildRequires: %{_bindir}/valkey-server BuildRequires: tzdata BuildArch: noarch - %description A toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Rich support for multibyte strings, internationalization, time zones, and testing. + %package doc Summary: Documentation for %{name} Requires: %{name} = %{epoch}:%{version}-%{release} @@ -86,32 +63,7 @@ BuildArch: noarch Documentation for %{name}. %prep -%setup -q -n %{gem_name}-%{version}%{?prerelease} -b1 -b2 - -%patch 1 -p2 -%patch 3 -p2 -mv %{_builddir}/test . -%patch 4 -p2 -mv test %{_builddir} -%patch 5 -p2 -%patch 8 -p2 - -pushd %{_builddir} -%patch 2 -p2 -%patch 6 -p2 -%patch 7 -p2 -popd - -# Add several dependencies to avoid Ruby 3.3+ warnings. -# https://github.com/rails/rails/commit/81699b52d2acff1840e3ace5e59412f4fa3934ab -%gemspec_add_dep -g base64 -%gemspec_add_dep -g drb -# https://github.com/rails/rails/commit/a77535c74c7047a517cc45ff8ecb416ea439c28d -%gemspec_add_dep -g bigdecimal -# https://github.com/rails/rails/commit/455b5f106e5a3eeba1e7139c63fd83dc0dd81caf -%gemspec_add_dep -g logger -%gemspec_add_dep -g securerandom -%gemspec_add_dep -g benchmark +%setup -q -n %{gem_name}-%{version}%{?prerelease} -b1 %build gem build ../%{gem_name}-%{version}%{?prerelease}.gemspec @@ -123,39 +75,32 @@ cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ %check -pushd .%{gem_instdir} +( cd .%{gem_instdir} # Move the tests into place -ln -s %{_builddir}/tools .. -cp -a %{_builddir}/test . +cp -a %{builddir}/test . -# These tests are really unstable, but they seems to be passing upstream :/ -# mem_cache_store_test: These tests do not pass in Koji; but work locally -# redis_cache_store_test: failed to require "redis/connection/hiredis" -for f in \ - test/evented_file_update_checker_test.rb \ - test/cache/stores/redis_cache_store_test.rb \ - test/cache/stores/mem_cache_store_test.rb -do - mv $f{,.disable} -done - -# This seems to be unstable as well ... -# https://github.com/rails/rails/issues/25682 -sed -i '/def test_iso8601_output_and_reparsing$/,/^ end$/ s/^/#/' test/core_ext/duration_test.rb - -# Workaround TransformValuesTest#test_default_procs_do_not_persist_*_mapping -# test failures due to bug in Ruby 2.7.{0,1}. -# https://bugs.ruby-lang.org/issues/16498 -sed -i '/assert_nil mapped\[:b\]/ s/^/#/' test/core_ext/hash/transform_values_test.rb +mkdir ../tools +ln -s %{SOURCE2} ../tools/ sed -i '/require .bundler./ s/^/#/' test/abstract_unit.rb +# Start a testing Valkey (Redis) server instance +VALKEY_DIR=$(mktemp -d) +valkey-server --dir $VALKEY_DIR --pidfile $VALKEY_DIR/valkey.pid --daemonize yes + +# Start Memcached server memcached & mPID=$! sleep 1 -ruby -Ilib:test -e 'Dir.glob "./test/**/*_test.rb", &method(:require)' + +ruby -Ilib -e 'Dir.glob "./test/**/*_test.rb", &method(:require)' -- -v + +# Shutdown Memcached kill -15 $mPID -popd + +# Shutdown Valkey. +kill -INT $(cat $VALKEY_DIR/valkey.pid) +) %files %dir %{gem_instdir} @@ -170,6 +115,10 @@ popd %doc %{gem_instdir}/README.rdoc %changelog +* Thu Jan 23 2025 Vít Ondruch - 1:8.0.1-1 +- Update to Active Support 8.0.1. + Related: rhbz#2238177 + * Thu Jan 23 2025 Vít Ondruch - 1:7.0.8-11 - Fix compatibility with concurrent-ruby 1.3.5+ diff --git a/sources b/sources index c1d38c3..97106dd 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ -SHA512 (activesupport-7.0.8.gem) = d3f45452751a3ff4acd534ad6a71e5747d2e64683b562b99c3f97ca3980424aa0093d028fab94a6429410fb4878c6e34a2af2ad8c0c04358648e180a732250dc -SHA512 (activesupport-7.0.8-tests.txz) = 153739dca3cd20938e7f1bb255d330e51e91fb9901b6b2ff5ffd76277e44e38090b1037f9eeb574d8ef429c1d3d689dbeb27b9d02ff33fe8f21cef2472a2e8b2 -SHA512 (rails-7.0.8-tools.txz) = a67b43ecabe47d23bd437651c97c87e1323dc2eb20d0fffa2c8f0d75fae7502571c3a2633c5bdeb9cc4a383c88b5eade49d55efe895857285b3186b6d4da4b26 +SHA512 (activesupport-8.0.1-tests.tar.gz) = 8775b9072fb7e2e35d66b5d265f5e44d9810f10261377dc4f7f5733119e86d2892d30a212cad964855dad9d58783a3e57c4ff6517fca235cca6c7511e33ed192 +SHA512 (activesupport-8.0.1.gem) = bde090041d81591b6a8703c90585d285db44c47448669b2b884574b2d6d414ef043605c6a1c982b71b57d88989882f91f7bd12e4c899d560f56a878de099f62f diff --git a/test_common.rb b/test_common.rb new file mode 100644 index 0000000..fcc8155 --- /dev/null +++ b/test_common.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +ActiveSupport::TestCase.alias_method :force_skip, :skip + +if ENV["BUILDKITE"] + require "minitest-ci" + ENV.delete("CI") # CI has affect on the applications, and we don't want it applied to the apps. + + Minitest::Ci.report_dir = File.join(__dir__, "../test-reports/#{ENV['BUILDKITE_JOB_ID']}") + + module DisableSkipping # :nodoc: + private + def skip(message = nil, *) + flunk "Skipping tests is not allowed in this environment (#{message})\n" \ + "Tests should only be skipped when the environment is missing a required dependency.\n" \ + "This should never happen on CI." + end + end + ActiveSupport::TestCase.include(DisableSkipping) +end From c162969362e75b6e212a5a8dc1d86d23aa57724e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Mon, 20 Jan 2025 17:08:15 +0100 Subject: [PATCH 17/23] Disable Redis test cases on i686 Valkey (Redis) is not available there \[[1]\]. The other option would be to `ExcludeArch: %{ix86}`. This would mean the package would not be build on `ix86`, therefore not tested on that arch. Hard to judge what is better choice. [1]: https://src.fedoraproject.org/rpms/valkey/blob/bec8cff7989ce1e5fc2c494ccfd01cf42fe743f5/f/valkey.spec#_66 --- rubygem-activesupport.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 27b2ae2..3cc1f8f 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -44,7 +44,9 @@ BuildRequires: rubygem(redis) BuildRequires: rubygem(rexml) BuildRequires: rubygem(tzinfo) >= 2.0 BuildRequires: memcached +%ifnarch %{ix86} BuildRequires: %{_bindir}/valkey-server +%endif BuildRequires: tzdata BuildArch: noarch @@ -85,8 +87,10 @@ ln -s %{SOURCE2} ../tools/ sed -i '/require .bundler./ s/^/#/' test/abstract_unit.rb # Start a testing Valkey (Redis) server instance +%ifnarch %{ix86} VALKEY_DIR=$(mktemp -d) valkey-server --dir $VALKEY_DIR --pidfile $VALKEY_DIR/valkey.pid --daemonize yes +%endif # Start Memcached server memcached & @@ -99,7 +103,9 @@ ruby -Ilib -e 'Dir.glob "./test/**/*_test.rb", &method(:require)' -- -v kill -15 $mPID # Shutdown Valkey. +%ifnarch %{ix86} kill -INT $(cat $VALKEY_DIR/valkey.pid) +%endif ) %files From 94a65b1e0cb2936febcac540a6c5b297ca2c7743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Wed, 2 Jul 2025 17:34:02 +0200 Subject: [PATCH 18/23] Update to Active Support 8.0.2. Related: rhbz#2238177 --- rubygem-activesupport.spec | 11 ++++++----- sources | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 3cc1f8f..a634bd1 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -4,16 +4,16 @@ Name: rubygem-%{gem_name} Epoch: 1 -Version: 8.0.1 +Version: 8.0.2 Release: 1%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: https://rubyonrails.org Source0: https://rubygems.org/gems/%{gem_name}-%{version}%{?prerelease}.gem # git clone http://github.com/rails/rails.git && cd rails/activesupport -# git archive -v -o activesupport-8.0.1-tests.tar.gz v8.0.1 test/ +# git archive -v -o activesupport-8.0.2-tests.tar.gz v8.0.2 test/ Source1: %{gem_name}-%{version}%{?prerelease}-tests.tar.gz -# The tools are needed for the test suite, are however unpackaged in gem file. +# This is needed due to `force_skip` alias. # https://github.com/rails/rails/blob/main/tools/test_common.rb Source2: https://raw.githubusercontent.com/rails/rails/e25d738430bdc6bdd04cd28be705484ea953e74e/tools/test_common.rb @@ -83,6 +83,7 @@ cp -a %{builddir}/test . mkdir ../tools ln -s %{SOURCE2} ../tools/ +touch ../tools/strict_warnings.rb sed -i '/require .bundler./ s/^/#/' test/abstract_unit.rb @@ -121,8 +122,8 @@ kill -INT $(cat $VALKEY_DIR/valkey.pid) %doc %{gem_instdir}/README.rdoc %changelog -* Thu Jan 23 2025 Vít Ondruch - 1:8.0.1-1 -- Update to Active Support 8.0.1. +* Wed Jul 02 2025 Vít Ondruch - 1:8.0.2-1 +- Update to Active Support 8.0.2. Related: rhbz#2238177 * Thu Jan 23 2025 Vít Ondruch - 1:7.0.8-11 diff --git a/sources b/sources index 97106dd..66d75e1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (activesupport-8.0.1-tests.tar.gz) = 8775b9072fb7e2e35d66b5d265f5e44d9810f10261377dc4f7f5733119e86d2892d30a212cad964855dad9d58783a3e57c4ff6517fca235cca6c7511e33ed192 -SHA512 (activesupport-8.0.1.gem) = bde090041d81591b6a8703c90585d285db44c47448669b2b884574b2d6d414ef043605c6a1c982b71b57d88989882f91f7bd12e4c899d560f56a878de099f62f +SHA512 (activesupport-8.0.2-tests.tar.gz) = 60b6f764596c9fdacfa6f3172d90fd684ae48c8f1a1ddd57b92be040256709239f1ce528362b68978d440ac18e37a169edab9c73416229ae4da572d9ed33be49 +SHA512 (activesupport-8.0.2.gem) = 3c448165d856ef83e5e76b581f4327445f108f0e35592d910e8d88c92a8cbefbf47837994d10fefc8b4a6c176aa01971df5f6b57182c40aa84a79641de3821c1 From 3e5369ab10f11f9425a529c43dd87f5398060346 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 12:15:43 +0000 Subject: [PATCH 19/23] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- rubygem-activesupport.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index a634bd1..43ff4a4 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 8.0.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: https://rubyonrails.org @@ -122,6 +122,9 @@ kill -INT $(cat $VALKEY_DIR/valkey.pid) %doc %{gem_instdir}/README.rdoc %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 1:8.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Wed Jul 02 2025 Vít Ondruch - 1:8.0.2-1 - Update to Active Support 8.0.2. Related: rhbz#2238177 From c60eaabadf79acf3062c0316117684f410ee4b8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 7 Oct 2025 09:36:10 +0200 Subject: [PATCH 20/23] Update to Active Support 8.0.3. Related: rhzb#2388437 --- ...precision-to-BigDecimal-when-parsing.patch | 24 +++++++++++++++++++ rubygem-activesupport.spec | 15 +++++++++--- sources | 4 ++-- 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 rubygem-activesupport-8.0.3-Always-pass-default-precision-to-BigDecimal-when-parsing.patch diff --git a/rubygem-activesupport-8.0.3-Always-pass-default-precision-to-BigDecimal-when-parsing.patch b/rubygem-activesupport-8.0.3-Always-pass-default-precision-to-BigDecimal-when-parsing.patch new file mode 100644 index 0000000..7027f9a --- /dev/null +++ b/rubygem-activesupport-8.0.3-Always-pass-default-precision-to-BigDecimal-when-parsing.patch @@ -0,0 +1,24 @@ +From 283d96ea53f45eedf09a31bef739575df96e87df Mon Sep 17 00:00:00 2001 +From: zzak +Date: Sun, 5 Oct 2025 10:31:09 +0900 +Subject: [PATCH] Always pass default precision to BigDecimal when parsing + Float in XmlMini + +https://github.com/ruby/bigdecimal/blob/cb2458bde33bf90a8364b58d53e8948a7ba555ea/ext/bigdecimal/bigdecimal.c#L2747-L2749 +--- + activesupport/lib/active_support/xml_mini.rb | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/activesupport/lib/active_support/xml_mini.rb b/activesupport/lib/active_support/xml_mini.rb +index 2c2b8185b1b80..c6d7ce5b7c251 100644 +--- a/activesupport/lib/active_support/xml_mini.rb ++++ b/activesupport/lib/active_support/xml_mini.rb +@@ -74,6 +74,8 @@ def content_type + "decimal" => Proc.new do |number| + if String === number + number.to_d ++ elsif Float === number ++ BigDecimal(number, 0) + else + BigDecimal(number) + end diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index 43ff4a4..bdfc791 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -4,18 +4,21 @@ Name: rubygem-%{gem_name} Epoch: 1 -Version: 8.0.2 -Release: 2%{?dist} +Version: 8.0.3 +Release: 1%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: https://rubyonrails.org Source0: https://rubygems.org/gems/%{gem_name}-%{version}%{?prerelease}.gem # git clone http://github.com/rails/rails.git && cd rails/activesupport -# git archive -v -o activesupport-8.0.2-tests.tar.gz v8.0.2 test/ +# git archive -v -o activesupport-8.0.3-tests.tar.gz v8.0.3 test/ Source1: %{gem_name}-%{version}%{?prerelease}-tests.tar.gz # This is needed due to `force_skip` alias. # https://github.com/rails/rails/blob/main/tools/test_common.rb Source2: https://raw.githubusercontent.com/rails/rails/e25d738430bdc6bdd04cd28be705484ea953e74e/tools/test_common.rb +# Fix XmlMiniTest::ParsingTest#test_decimal test failure with BigDecimal 3.2.3+ +# https://github.com/rails/rails/pull/55840 +Patch1: rubygem-activesupport-8.0.3-Always-pass-default-precision-to-BigDecimal-when-parsing.patch # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -67,6 +70,8 @@ Documentation for %{name}. %prep %setup -q -n %{gem_name}-%{version}%{?prerelease} -b1 +%patch 1 -p2 + %build gem build ../%{gem_name}-%{version}%{?prerelease}.gemspec %gem_install @@ -122,6 +127,10 @@ kill -INT $(cat $VALKEY_DIR/valkey.pid) %doc %{gem_instdir}/README.rdoc %changelog +* Mon Oct 06 2025 Vít Ondruch - 1:8.0.3-1 +- Update to Active Support 8.0.3. + Related: rhzb#2388437 + * Fri Jul 25 2025 Fedora Release Engineering - 1:8.0.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 66d75e1..f66d7f6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (activesupport-8.0.2-tests.tar.gz) = 60b6f764596c9fdacfa6f3172d90fd684ae48c8f1a1ddd57b92be040256709239f1ce528362b68978d440ac18e37a169edab9c73416229ae4da572d9ed33be49 -SHA512 (activesupport-8.0.2.gem) = 3c448165d856ef83e5e76b581f4327445f108f0e35592d910e8d88c92a8cbefbf47837994d10fefc8b4a6c176aa01971df5f6b57182c40aa84a79641de3821c1 +SHA512 (activesupport-8.0.3-tests.tar.gz) = d11560cc2246aaa16fcb7f213061cb6a355bd2e4bbc0cd3e0541db979aa90d28b738ceaf36935f49688953faf94314e2ae8da3e2f88436ac31c0a77a5804a91e +SHA512 (activesupport-8.0.3.gem) = f46b6710c65d7b59e0c7f1eb48641aa4ef0568b2d64147866e1dfa699c0b4c068bf443cc9967190ed47c2f6ea98137668a300455792982061e280a7df605bb4f From bacee91af1b9a0fb4648af56bdc24182f53b4948 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Sun, 9 Nov 2025 22:43:30 +0900 Subject: [PATCH 21/23] Backport upstream change for testsuite removal for new benchmark gem in ruby4_0 --- rubygem-activesupport.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index bdfc791..d5b6465 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 8.0.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: https://rubyonrails.org @@ -92,6 +92,12 @@ touch ../tools/strict_warnings.rb sed -i '/require .bundler./ s/^/#/' test/abstract_unit.rb +# backported from: +# https://github.com/rails/rails/commit/632b2c5128581731c2451459081176a43f474f74 +# benchmark 0.5.0 in ruby4_0 defines Benchmark.ms{}, so the following +# test is no longer needed +sed -i test/core_ext/benchmark_test.rb -e '\@test_is_deprecated@s@$@ ; skip ""@' + # Start a testing Valkey (Redis) server instance %ifnarch %{ix86} VALKEY_DIR=$(mktemp -d) @@ -127,6 +133,10 @@ kill -INT $(cat $VALKEY_DIR/valkey.pid) %doc %{gem_instdir}/README.rdoc %changelog +* Sun Nov 09 2025 Mamoru TASAKA - 1:8.0.3-2 +- Backport upstream change for testsuite removal for new benchmark gem in + ruby4_0 + * Mon Oct 06 2025 Vít Ondruch - 1:8.0.3-1 - Update to Active Support 8.0.3. Related: rhzb#2388437 From 6b021929fc6a425c1cbc1c55a7e46b498c6299f9 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Mon, 29 Dec 2025 16:30:55 +0900 Subject: [PATCH 22/23] Backport upstream fix to support minitest 6 --- rubygem-activesupport-pr56202-minitest6.patch | 103 ++++++++++++++++++ rubygem-activesupport.spec | 22 +++- 2 files changed, 120 insertions(+), 5 deletions(-) create mode 100644 rubygem-activesupport-pr56202-minitest6.patch diff --git a/rubygem-activesupport-pr56202-minitest6.patch b/rubygem-activesupport-pr56202-minitest6.patch new file mode 100644 index 0000000..1e01666 --- /dev/null +++ b/rubygem-activesupport-pr56202-minitest6.patch @@ -0,0 +1,103 @@ +From 831f0f96d0f9c132b28d3fa22ab82806115747b0 Mon Sep 17 00:00:00 2001 +From: Ryan Davis +Date: Thu, 20 Nov 2025 14:16:51 -0800 +Subject: [PATCH 3/5] MT6: implementation fixes + +MT6 changes the way assertion messages work. Now, if a proc is passed +in for the message, it wins untouched. So for the rails assertions +that want to have diffs shown while calling assert_equal with a +message proc, the proc needs to call diff itself. This feels redundant +to me, but not my call. + +And since the procs win now, they need to provide their own periods at +the end of the text. +--- + activesupport/lib/active_support/testing/assertions.rb | 8 +++++--- + .../lib/active_support/testing/parallelization/worker.rb | 6 +++++- + 2 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/activesupport/lib/active_support/testing/assertions.rb b/activesupport/lib/active_support/testing/assertions.rb +index 178b5b350abba..4f2c6b105bc19 100644 +--- a/activesupport/lib/active_support/testing/assertions.rb ++++ b/activesupport/lib/active_support/testing/assertions.rb +@@ -124,7 +124,8 @@ def assert_difference(expression, *args, &block) + actual = exp.call + rich_message = -> do + code_string = code.respond_to?(:call) ? _callable_to_source_string(code) : code +- error = "`#{code_string}` didn't change by #{diff}, but by #{actual - before_value}" ++ error = "`#{code_string}` didn't change by #{diff}, but by #{actual - before_value}." ++ error = "#{error}\n#{diff before_value + diff, actual}" if Minitest::VERSION > "6" + error = "#{message}.\n#{error}" if message + error + end +@@ -228,7 +229,7 @@ def assert_changes(expression, message = nil, from: UNTRACKED, to: UNTRACKED, &b + rich_message = -> do + code_string = expression.respond_to?(:call) ? _callable_to_source_string(expression) : expression + error = "`#{code_string}` didn't change" +- error = "#{error}. It was already #{to.inspect}" if before == to ++ error = "#{error}. It was already #{to.inspect}." if before == to + error = "#{message}.\n#{error}" if message + error + end +@@ -296,8 +297,9 @@ def assert_no_changes(expression, message = nil, from: UNTRACKED, &block) + + rich_message = -> do + code_string = expression.respond_to?(:call) ? _callable_to_source_string(expression) : expression +- error = "`#{code_string}` changed" ++ error = "`#{code_string}` changed." + error = "#{message}.\n#{error}" if message ++ error = "#{error}\n#{diff before, after}" if Minitest::VERSION > "6" + error + end + +diff --git a/activesupport/lib/active_support/testing/parallelization/worker.rb b/activesupport/lib/active_support/testing/parallelization/worker.rb +index d008277f8924c..daad6ce659103 100644 +--- a/activesupport/lib/active_support/testing/parallelization/worker.rb ++++ b/activesupport/lib/active_support/testing/parallelization/worker.rb +@@ -49,7 +49,11 @@ def perform_job(job) + set_process_title("#{klass}##{method}") + + result = klass.with_info_handler reporter do +- Minitest.run_one_method(klass, method) ++ if Minitest.respond_to?(:run_one_method) then ++ Minitest.run_one_method(klass, method) ++ else ++ klass.new(method).run ++ end + end + + safe_record(reporter, result) + +From 2c1ca03402de9a5bc4e482da739e39f5bd47f0b3 Mon Sep 17 00:00:00 2001 +From: Ryan Davis +Date: Thu, 20 Nov 2025 15:34:55 -0800 +Subject: [PATCH 4/5] MT6: test fixes + +Mostly minor and mostly centered around whether there are diffs. +--- + actionpack/test/dispatch/routing/route_set_test.rb | 4 ++-- + activesupport/test/test_case_test.rb | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/activesupport/test/test_case_test.rb b/activesupport/test/test_case_test.rb +index 7e5084e4b041c..05ed8f2ae629d 100644 +--- a/activesupport/test/test_case_test.rb ++++ b/activesupport/test/test_case_test.rb +@@ -243,7 +243,7 @@ def test_assert_changes_with_to_option_but_no_change_has_special_message + end + end + +- assert_equal "`@object.num` didn't change. It was already 0.\nExpected 0 to not be equal to 0.", error.message ++ assert_match "`@object.num` didn't change. It was already 0.", error.message + end + + def test_assert_changes_message_with_lambda +@@ -255,7 +255,7 @@ def test_assert_changes_message_with_lambda + end + end + +- assert_equal "`@object.num` didn't change. It was already 0.\nExpected 0 to not be equal to 0.", error.message ++ assert_match "`@object.num` didn't change. It was already 0.", error.message + end + + def test_assert_changes_with_wrong_to_option diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index d5b6465..fa35ad4 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 8.0.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: https://rubyonrails.org @@ -19,6 +19,9 @@ Source2: https://raw.githubusercontent.com/rails/rails/e25d738430bdc6bdd04cd28be # Fix XmlMiniTest::ParsingTest#test_decimal test failure with BigDecimal 3.2.3+ # https://github.com/rails/rails/pull/55840 Patch1: rubygem-activesupport-8.0.3-Always-pass-default-precision-to-BigDecimal-when-parsing.patch +# Support minitest 6 +# https://github.com/rails/rails/pull/56202/ +Patch2: rubygem-activesupport-pr56202-minitest6.patch # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -41,6 +44,7 @@ BuildRequires: rubygem(drb) BuildRequires: rubygem(i18n) >= 0.7 BuildRequires: rubygem(listen) BuildRequires: rubygem(minitest) >= 5.0.0 +BuildRequires: rubygem(minitest-mock) BuildRequires: rubygem(msgpack) BuildRequires: rubygem(rack) BuildRequires: rubygem(redis) @@ -68,9 +72,14 @@ BuildArch: noarch Documentation for %{name}. %prep -%setup -q -n %{gem_name}-%{version}%{?prerelease} -b1 +%setup -q -n %{gem_name}-%{version}%{?prerelease} -a 1 %patch 1 -p2 +%patch 2 -p2 + +# lib/active_support/testing/method_call_assertions.rb +# always needs minitest/mock +%gemspec_add_dep -g minitest-mock %build gem build ../%{gem_name}-%{version}%{?prerelease}.gemspec @@ -82,9 +91,10 @@ cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ %check -( cd .%{gem_instdir} # Move the tests into place -cp -a %{builddir}/test . +cp -a test .%{gem_instdir} + +cd .%{gem_instdir} mkdir ../tools ln -s %{SOURCE2} ../tools/ @@ -118,7 +128,6 @@ kill -15 $mPID %ifnarch %{ix86} kill -INT $(cat $VALKEY_DIR/valkey.pid) %endif -) %files %dir %{gem_instdir} @@ -133,6 +142,9 @@ kill -INT $(cat $VALKEY_DIR/valkey.pid) %doc %{gem_instdir}/README.rdoc %changelog +* Mon Dec 29 2025 Mamoru TASAKA - 1:8.0.3-3 +- Backport upstream fix to support minitest 6 + * Sun Nov 09 2025 Mamoru TASAKA - 1:8.0.3-2 - Backport upstream change for testsuite removal for new benchmark gem in ruby4_0 From 3c62d5d7aac58a840598f29a7958c76fc8813dd5 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Tue, 30 Dec 2025 17:23:06 +0900 Subject: [PATCH 23/23] update minitest 6 patch --- ...t-pr56202-minitest6-rescue-loaderror.patch | 12 +++++++++ rubygem-activesupport-pr56202-minitest6.patch | 26 +++++++++++++++++++ rubygem-activesupport.spec | 8 +++++- 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 rubygem-activesupport-pr56202-minitest6-rescue-loaderror.patch diff --git a/rubygem-activesupport-pr56202-minitest6-rescue-loaderror.patch b/rubygem-activesupport-pr56202-minitest6-rescue-loaderror.patch new file mode 100644 index 0000000..d755a4e --- /dev/null +++ b/rubygem-activesupport-pr56202-minitest6-rescue-loaderror.patch @@ -0,0 +1,12 @@ +--- activesupport-8.0.3/lib/active_support/testing/autorun.rb.orig 2025-12-30 16:47:16.780346179 +0900 ++++ activesupport-8.0.3/lib/active_support/testing/autorun.rb 2025-12-30 16:52:01.482400639 +0900 +@@ -8,5 +8,8 @@ require "minitest" + # used in some cases. This conditional can probably go after the bump + # is complete? ... but could still fail for developers working w/ + # multiple versions installed. +-Minitest.load :rails if Minitest.respond_to? :load ++begin ++ Minitest.load :rails if Minitest.respond_to? :load ++rescue LoadError ++end + Minitest.autorun diff --git a/rubygem-activesupport-pr56202-minitest6.patch b/rubygem-activesupport-pr56202-minitest6.patch index 1e01666..00209d5 100644 --- a/rubygem-activesupport-pr56202-minitest6.patch +++ b/rubygem-activesupport-pr56202-minitest6.patch @@ -1,3 +1,29 @@ +From 9da4460ad0e71e5c3de32566ffbc302674b1f76e Mon Sep 17 00:00:00 2001 +From: Ryan Davis +Date: Thu, 20 Nov 2025 12:50:33 -0800 +Subject: [PATCH 1/5] MT6: Load rails plugin + +--- + activesupport/lib/active_support/testing/autorun.rb | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/activesupport/lib/active_support/testing/autorun.rb b/activesupport/lib/active_support/testing/autorun.rb +index d5d5fc7ae8e45..068aac0b487e0 100644 +--- a/activesupport/lib/active_support/testing/autorun.rb ++++ b/activesupport/lib/active_support/testing/autorun.rb +@@ -2,4 +2,11 @@ + + require "minitest" + ++## ++# I shouldn't need this respond_to check but some tests are running ++# sub-process tests in an unbundled environment, causing MT5 to be ++# used in some cases. This conditional can probably go after the bump ++# is complete? ... but could still fail for developers working w/ ++# multiple versions installed. ++Minitest.load :rails if Minitest.respond_to? :load + Minitest.autorun + From 831f0f96d0f9c132b28d3fa22ab82806115747b0 Mon Sep 17 00:00:00 2001 From: Ryan Davis Date: Thu, 20 Nov 2025 14:16:51 -0800 diff --git a/rubygem-activesupport.spec b/rubygem-activesupport.spec index fa35ad4..537f06a 100644 --- a/rubygem-activesupport.spec +++ b/rubygem-activesupport.spec @@ -5,7 +5,7 @@ Name: rubygem-%{gem_name} Epoch: 1 Version: 8.0.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A support libraries and Ruby core extensions extracted from the Rails framework License: MIT URL: https://rubyonrails.org @@ -22,6 +22,8 @@ Patch1: rubygem-activesupport-8.0.3-Always-pass-default-precision-to-BigDecimal- # Support minitest 6 # https://github.com/rails/rails/pull/56202/ Patch2: rubygem-activesupport-pr56202-minitest6.patch +# We don't always install railties with activesupport, so rescue this +Patch3: rubygem-activesupport-pr56202-minitest6-rescue-loaderror.patch # Ruby package has just soft dependency on rubygem(json), while # ActiveSupport always requires it. @@ -76,6 +78,7 @@ Documentation for %{name}. %patch 1 -p2 %patch 2 -p2 +%patch 3 -p1 # lib/active_support/testing/method_call_assertions.rb # always needs minitest/mock @@ -142,6 +145,9 @@ kill -INT $(cat $VALKEY_DIR/valkey.pid) %doc %{gem_instdir}/README.rdoc %changelog +* Tue Dec 30 2025 Mamoru TASAKA - 1:8.0.3-4 +- Update minitest 6 patch, and rescue when railties is not installed + * Mon Dec 29 2025 Mamoru TASAKA - 1:8.0.3-3 - Backport upstream fix to support minitest 6