From 73e0b4570f1a888da5af8052d18609310d58ca53 Mon Sep 17 00:00:00 2001 From: bizhiyuan Date: Mon, 14 Aug 2023 16:27:44 +0800 Subject: [PATCH] fix regex_match error and build fail --- ....1.1-ruby32-regex_match-for-object-2.patch | 27 +++++++++++++++++++ ...-2.0.2-ruby32-regex_match-for-object.patch | 23 ++++++++++++++++ rubygem-mustermann.spec | 20 ++++++++------ 3 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 mustermann-1.1.1-ruby32-regex_match-for-object-2.patch create mode 100644 mustermann-2.0.2-ruby32-regex_match-for-object.patch diff --git a/mustermann-1.1.1-ruby32-regex_match-for-object-2.patch b/mustermann-1.1.1-ruby32-regex_match-for-object-2.patch new file mode 100644 index 0000000..257e314 --- /dev/null +++ b/mustermann-1.1.1-ruby32-regex_match-for-object-2.patch @@ -0,0 +1,27 @@ +From 82d5efc5796e8e4864e495da6280c6edd7d09375 Mon Sep 17 00:00:00 2001 +From: Olle Jonsson +Date: Thu, 17 Dec 2020 14:10:06 +0100 +Subject: [PATCH] Avoid "deprecated Object#=~ is called on Integer" + +In a test suite I was using, I saw this warning printed liberally: + + warning: deprecated Object#=~ is called on Integer; it always returns nil + +Change inspired by the same kind of fix here: https://github.com/rails/rails/commit/eafff15a023670974bd71efaec51e4c80364b95d +--- + mustermann/lib/mustermann/ast/translator.rb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mustermann/lib/mustermann/ast/translator.rb b/mustermann/lib/mustermann/ast/translator.rb +index 596e362..87b90c7 100644 +--- a/mustermann/lib/mustermann/ast/translator.rb ++++ b/mustermann/lib/mustermann/ast/translator.rb +@@ -120,7 +120,7 @@ def decorator_for(node) + # @!visibility private + def escape(char, parser: URI::DEFAULT_PARSER, escape: parser.regexp[:UNSAFE], also_escape: nil) + escape = Regexp.union(also_escape, escape) if also_escape +- char =~ escape ? parser.escape(char, Regexp.union(*escape)) : char ++ char.to_s =~ escape ? parser.escape(char, Regexp.union(*escape)) : char + end + end + end diff --git a/mustermann-2.0.2-ruby32-regex_match-for-object.patch b/mustermann-2.0.2-ruby32-regex_match-for-object.patch new file mode 100644 index 0000000..59d65aa --- /dev/null +++ b/mustermann-2.0.2-ruby32-regex_match-for-object.patch @@ -0,0 +1,23 @@ +From 8be5bd4ac3642d9c9582d0a7258f3197fa54bb96 Mon Sep 17 00:00:00 2001 +From: Paul Padier +Date: Wed, 20 Jul 2022 22:32:25 +0900 +Subject: [PATCH] Don't call #=~ on objects that don't respond to it + +`Kernel` defined `#=~` up until Ruby 3.2, but it just returned `nil` when the method wasn't redefined by a child class. +--- + mustermann/lib/mustermann/ast/expander.rb | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/mustermann/lib/mustermann/ast/expander.rb b/mustermann/lib/mustermann/ast/expander.rb +index 6cb9110..f5ca874 100644 +--- a/mustermann/lib/mustermann/ast/expander.rb ++++ b/mustermann/lib/mustermann/ast/expander.rb +@@ -124,6 +124,8 @@ def error_for(values) + # @see Mustermann::AST::Translator#expand + # @!visibility private + ruby2_keywords def escape(string, *args) ++ return super unless string.respond_to?(:=~) ++ + # URI::Parser is pretty slow, let's not send every string to it, even if it's unnecessary + string =~ /\A\w*\Z/ ? string : super + end diff --git a/rubygem-mustermann.spec b/rubygem-mustermann.spec index 6fa62f9..4c4e2a0 100644 --- a/rubygem-mustermann.spec +++ b/rubygem-mustermann.spec @@ -2,7 +2,7 @@ %{?_with_bootstrap: %global bootstrap 1} Name: rubygem-%{gem_name} Version: 1.1.1 -Release: 1 +Release: 2 Summary: Your personal string matching expert License: MIT URL: https://github.com/sinatra/mustermann @@ -13,6 +13,9 @@ Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem Source1: %{gem_name}-%{version}-support.tgz # tar czvf mustermann-1.1.1-mustermann-contrib.tgz mustermann-contrib/ Source2: %{gem_name}-%{version}-mustermann-contrib.tgz +Patch0: %{gem_name}-2.0.2-ruby32-regex_match-for-object.patch +# Similarly, from https://github.com/sinatra/mustermann/pull/113 +Patch1: %{gem_name}-1.1.1-ruby32-regex_match-for-object-2.patch BuildRequires: ruby(release) rubygems-devel ruby >= 2.2.0 rubygem(rspec) rubygem(rspec-its) %if ! 0%{?bootstrap} BuildRequires: rubygem(sinatra) @@ -22,16 +25,17 @@ BuildArch: noarch %description A library implementing patterns that behave like regular expressions. -%package doc +%package doc Summary: Documentation for %{name} Requires: %{name} = %{version}-%{release} BuildArch: noarch -%description doc +%description doc Documentation for %{name}. %prep %setup -q -n %{gem_name}-%{version} -b 1 -b 2 -%gemspec_remove_dep -g ruby2_keywords +%patch0 -p2 +%patch1 -p2 %build gem build ../%{gem_name}-%{version}.gemspec @@ -42,10 +46,6 @@ mkdir -p %{buildroot}%{gem_dir} cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ -pushd %{_builddir}/%{gem_name}-%{version}/%{gem_instdir} -mv spec/identity_spec.rb{,.disabled} -mv spec/concat_spec.rb{,.disabled} -popd %if ! 0%{?bootstrap} %check @@ -78,6 +78,9 @@ popd %{gem_instdir}/spec %changelog +* Mon Aug 14 2023 bizhiyuan - 1.1.1-2 +- fix regex_match error and build fail + * Thu Feb 24 2022 liyanan - 1.1.1-1 - update to 1.1.1 @@ -86,3 +89,4 @@ popd * Wed Aug 19 2020 geyanan - 1.0.2-1 - package init +