From b3ac0a0b58c6277d8facec19a2c372b185a4e491 Mon Sep 17 00:00:00 2001 From: lyn1001 Date: Tue, 1 Mar 2022 16:45:06 +0800 Subject: [PATCH] fix build error (cherry picked from commit 2f10c033ae34ad01d5f6e6f450cfe79f8c4858a4) --- ...rs-no-longer-emit-warnings-in-Ruby-3.patch | 11 ++++ ...sage-of-keyword-arguments-for-string.patch | 57 +++++++++++++++++++ rubygem-rspec-support.spec | 15 +++-- 3 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 Instance-vars-no-longer-emit-warnings-in-Ruby-3.patch create mode 100644 Make-usage-of-keyword-arguments-for-string.patch diff --git a/Instance-vars-no-longer-emit-warnings-in-Ruby-3.patch b/Instance-vars-no-longer-emit-warnings-in-Ruby-3.patch new file mode 100644 index 0000000..b0e5f11 --- /dev/null +++ b/Instance-vars-no-longer-emit-warnings-in-Ruby-3.patch @@ -0,0 +1,11 @@ +--- rspec-support-3.8.2/spec/rspec/support/spec/stderr_splitter_spec.rb 2022-02-16 21:22:44.095853100 +0800 ++++ rspec-support-3.8.2_bak/spec/rspec/support/spec/stderr_splitter_spec.rb 2022-02-16 21:21:29.934595730 +0800 +@@ -88,7 +88,7 @@ + + unless defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx' + it 'will fail an example which generates a warning' do +- true unless @undefined ++ true unless $undefined + expect { splitter.verify_no_warnings! }.to raise_error(/Warnings were generated:/) + end + end diff --git a/Make-usage-of-keyword-arguments-for-string.patch b/Make-usage-of-keyword-arguments-for-string.patch new file mode 100644 index 0000000..701ac03 --- /dev/null +++ b/Make-usage-of-keyword-arguments-for-string.patch @@ -0,0 +1,57 @@ +From b2f4a683f163cfbb663595464caed99a09f16bd1 Mon Sep 17 00:00:00 2001 +From: Jon Rowe +Date: Thu, 26 Dec 2019 19:58:59 +0000 +Subject: [PATCH] Make usage of keyword arguments for String#encode explicit to + avoid warning on 2.7.0 + +--- + lib/rspec/support/encoded_string.rb | 33 +++++++++++++++++++++++++++-- + 1 file changed, 31 insertions(+), 2 deletions(-) + +diff --git a/lib/rspec/support/encoded_string.rb b/lib/rspec/support/encoded_string.rb +index a6ca0cb6..66f75ca1 100644 +--- a/lib/rspec/support/encoded_string.rb ++++ b/lib/rspec/support/encoded_string.rb +@@ -112,11 +112,40 @@ def matching_encoding(string) + string = remove_invalid_bytes(string) + string.encode(@encoding) + rescue Encoding::UndefinedConversionError, Encoding::InvalidByteSequenceError +- string.encode(@encoding, ENCODE_UNCONVERTABLE_BYTES) ++ encode_unconvertable_bytes(string) + rescue Encoding::ConverterNotFoundError +- string.dup.force_encoding(@encoding).encode(ENCODE_NO_CONVERTER) ++ encode_no_converter(string.dup.force_encoding(@encoding)) + end + ++ private ++ ++ # On Ruby 2.7.0 keyword arguments mixed with conventional cause a warning to ++ # be issued requiring us to be explicit by using a ** to pass the hash as ++ # keyword arguments. Any keyword argument supporting Ruby supports this. ++ if RubyFeatures.kw_args_supported? ++ # Note on non keyword supporting Ruby ** causes a syntax error hence ++ # we must use eval. To be removed in RSpec 4. ++ binding.eval(<<-CODE, __FILE__, __LINE__) ++ def encode_unconvertable_bytes(string) ++ string.encode(@encoding, **ENCODE_UNCONVERTABLE_BYTES) ++ end ++ ++ def encode_no_converter(string) ++ string.encode(**ENCODE_NO_CONVERTER) ++ end ++ CODE ++ else ++ def encode_unconvertable_bytes(string) ++ string.encode(@encoding, ENCODE_UNCONVERTABLE_BYTES) ++ end ++ ++ def encode_no_converter(string) ++ string.encode(ENCODE_NO_CONVERTER) ++ end ++ end ++ ++ public ++ + # Prevents raising ArgumentError + if String.method_defined?(:scrub) + # https://github.com/ruby/ruby/blob/eeb05e8c11/doc/NEWS-2.1.0#L120-L123 diff --git a/rubygem-rspec-support.spec b/rubygem-rspec-support.spec index 94d2583..a9c3f45 100644 --- a/rubygem-rspec-support.spec +++ b/rubygem-rspec-support.spec @@ -7,7 +7,7 @@ %undefine __brp_mangle_shebangs Name: rubygem-%{gem_name} Version: %{mainver} -Release: 1 +Release: 2 Summary: Common functionality to Rspec series License: MIT URL: https://github.com/rspec/rspec-support @@ -15,7 +15,11 @@ Source0: https://rubygems.org/gems/%{gem_name}-%{mainver}%{?prever}.gem Source1: https://github.com/rspec/%{gem_name}/archive/v%{mainver}.tar.gz # tweak regex for search path Patch100: rubygem-rspec-support-3.2.1-callerfilter-searchpath-regex.patch -BuildRequires: rubygems-devel +#https://github.com/rspec/rspec-support/commit/b2f4a683f163cfbb663595464caed99a09f16bd1 +Patch101: Make-usage-of-keyword-arguments-for-string.patch +#https://github.com/rspec/rspec-support/commit/ed32a443ffab54d3aa3b4b599e1530dfabba8be7 +Patch102: Instance-vars-no-longer-emit-warnings-in-Ruby-3.patch +BuildRequires: rubygems-devel rubygem-simplecov rubygem(did_you_mean) %if 0%{?need_bootstrap_set} < 1 BuildRequires: rubygem(rspec) rubygem(thread_order) rubygem(bigdecimal) git %endif @@ -31,13 +35,13 @@ Requires: %{name} = %{version}-%{release} BuildArch: noarch %description doc Documentation for %{name} -%global version_orig %{version} -%global version %{version_orig}%{?prever} %prep %setup -q -T -n %{gem_name}-%{version} -b 1 gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec %patch100 -p1 +%patch101 -p1 +%patch102 -p1 %build gem build %{gem_name}.gemspec @@ -79,5 +83,8 @@ ruby -rrubygems -Ilib/ -S rspec spec/ || \ %doc %{gem_docdir} %changelog +* Tue Mar 1 2022 liyanan - 3.8.2-2 +- Fix build error + * Tue Aug 25 2020 fanjiachen - 3.8.2-1 - package init