From 474d1f7c635c218569b4b84c143fe2c41b267e47 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Tue, 2 Dec 2025 16:42:35 +0900 Subject: [PATCH] Backport upstream patch to support ruby4_0 source_location behavior change --- ...c-core-pr282-ruby4_0-source_location.patch | 51 +++++++++++++++++++ rubygem-rspec-core.spec | 9 +++- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 rspec-core-pr282-ruby4_0-source_location.patch diff --git a/rspec-core-pr282-ruby4_0-source_location.patch b/rspec-core-pr282-ruby4_0-source_location.patch new file mode 100644 index 0000000..1fa6999 --- /dev/null +++ b/rspec-core-pr282-ruby4_0-source_location.patch @@ -0,0 +1,51 @@ +From 1c20fa80772ca7a1ed0512056ce7cd6a94f8e68d Mon Sep 17 00:00:00 2001 +From: Jon Rowe +Date: Fri, 28 Nov 2025 10:59:10 +0000 +Subject: [PATCH] Cope with the changes to block source_location in Ruby 4 + +--- + rspec-core/lib/rspec/core/hooks.rb | 2 +- + rspec-core/lib/rspec/core/metadata.rb | 2 +- + rspec-core/lib/rspec/core/shared_example_group.rb | 2 +- + .../lib/rspec/expectations/block_snippet_extractor.rb | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/rspec-core/lib/rspec/core/hooks.rb b/rspec-core/lib/rspec/core/hooks.rb +index f97962ce9..77eecc776 100644 +--- a/rspec-core/lib/rspec/core/hooks.rb ++++ b/rspec-core/lib/rspec/core/hooks.rb +@@ -395,7 +395,7 @@ def execute_with(example, procsy) + + if Proc.method_defined?(:source_location) + def hook_description +- "around hook at #{Metadata.relative_path(block.source_location.join(':'))}" ++ "around hook at #{Metadata.relative_path(block.source_location.take(2).join(':'))}" + end + else # for 1.8.7 + # :nocov: +diff --git a/rspec-core/lib/rspec/core/metadata.rb b/rspec-core/lib/rspec/core/metadata.rb +index e887cb1c5..ed47bc07b 100644 +--- a/rspec-core/lib/rspec/core/metadata.rb ++++ b/rspec-core/lib/rspec/core/metadata.rb +@@ -146,7 +146,7 @@ def populate_location_attributes + file_path, line_number = if backtrace + file_path_and_line_number_from(backtrace) + elsif block.respond_to?(:source_location) +- block.source_location ++ block.source_location.take(2) + else + file_path_and_line_number_from(caller) + end +diff --git a/rspec-core/lib/rspec/core/shared_example_group.rb b/rspec-core/lib/rspec/core/shared_example_group.rb +index b4a5dc317..1f2b9d623 100644 +--- a/rspec-core/lib/rspec/core/shared_example_group.rb ++++ b/rspec-core/lib/rspec/core/shared_example_group.rb +@@ -243,7 +243,7 @@ def warn_if_key_taken(context, key, new_block) + + if RUBY_VERSION.to_f >= 1.9 + def formatted_location(block) +- block.source_location.join(":") ++ block.source_location.take(2).join(":") + end + else # 1.8.7 + # :nocov: diff --git a/rubygem-rspec-core.spec b/rubygem-rspec-core.spec index 1df05b5..d3183f3 100644 --- a/rubygem-rspec-core.spec +++ b/rubygem-rspec-core.spec @@ -3,7 +3,7 @@ %global rpmminorver .%(echo %preminorver | sed -e 's|^\\.\\.*||') %global fullver %{majorver}%{?preminorver} -%global baserelease 1 +%global baserelease 2 %global gem_name rspec-core @@ -36,6 +36,9 @@ Source2: rspec-related-create-full-tarball.sh # Adjust backtrace filter for Fedora placement of StdLib. # https://github.com/rspec/rspec-core/pull/2881 Patch0: rubygem-rspec-core-3.10.1-Filter-content-of-usr-share-ruby.patch +# https://github.com/rspec/rspec/pull/282/commits/1c20fa80772ca7a1ed0512056ce7cd6a94f8e68d +# Support ruby4_0 source_location behavior change +Patch1: rspec-core-pr282-ruby4_0-source_location.patch #BuildRequires: ruby(release) BuildRequires: rubygems-devel @@ -90,6 +93,7 @@ This package contains documentation for %{name}. %prep %setup -q -T -n %{gem_name}-%{version} -b 1 %patch -P0 -p1 +%patch -P1 -p2 gem specification %{SOURCE0} -l --ruby > %{gem_name}.gemspec %build @@ -209,6 +213,9 @@ done %{gem_docdir} %changelog +* Tue Dec 02 2025 Mamoru TASAKA - 3.13.6-2 +- Backport upstream patch to support ruby4_0 source_location behavior change + * Mon Oct 20 2025 Mamoru TASAKA - 3.13.6-1 - 3.13.6