diff --git a/nokogiri-create-full-tarball.sh b/nokogiri-create-full-tarball.sh index d6fbd01..1cb4822 100644 --- a/nokogiri-create-full-tarball.sh +++ b/nokogiri-create-full-tarball.sh @@ -1,5 +1,17 @@ #!/bin/bash +git_restore_timestamp() +{ + set +x + echo "Restore timestamps" + git ls-tree -r --name-only HEAD | while read f + do + unixtime=$(git log -n 1 --pretty='%ct' -- $f) + touch -d "@${unixtime}" $f + done + set -x +} + if [ $# -lt 2 ] then echo "$0 " @@ -17,10 +29,14 @@ pushd $TMPDIRPATH git clone https://github.com/sparklemotion/$1.git pushd $1 git reset --hard v$2 +git_restore_timestamp popd ln -sf $1 $1-$2 -tar czf ${CURRDIR}/rubygem-$1-$2-full.tar.gz $1-$2/./ +tar czf \ + ${CURRDIR}/rubygem-$1-$2-full.tar.gz \ + "--exclude=nokogiri-$2/./.git" \ + $1-$2/./ popd diff --git a/nokogiri-pr2973-libxml2-2_12_0-error-msg-change.patch b/nokogiri-pr2973-libxml2-2_12_0-error-msg-change.patch deleted file mode 100644 index 94e1345..0000000 --- a/nokogiri-pr2973-libxml2-2_12_0-error-msg-change.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 374f3281a67ab3a3e52ebe6deacc0548b3f1b96a Mon Sep 17 00:00:00 2001 -From: Mike Dalessio -Date: Mon, 4 Sep 2023 12:58:45 -0400 -Subject: [PATCH] test: update to handle upstream libxml2 error changes - -The behavior changed in libxml2 commit 53050b1d ---- - test/xml/test_reader.rb | 14 ++++++++++++-- - 1 file changed, 12 insertions(+), 2 deletions(-) - -diff --git a/test/xml/test_reader.rb b/test/xml/test_reader.rb -index 4b5b5c5728..e5f01d32ec 100644 ---- a/test/xml/test_reader.rb -+++ b/test/xml/test_reader.rb -@@ -765,7 +765,12 @@ def test_broken_markup_attribute_hash - e = assert_raises(Nokogiri::XML::SyntaxError) do - reader.attribute_hash - end -- assert_includes(e.message, "FATAL: Extra content at the end of the document") -+ expected = if Nokogiri.uses_libxml?(">= 2.12.0") # upstream commit 53050b1d -+ "FATAL: Premature end of data in tag foo line 1" -+ else -+ "FATAL: Extra content at the end of the document" -+ end -+ assert_includes(e.message, expected) - end - - assert_equal(1, reader.errors.length) -@@ -796,7 +801,12 @@ def test_broken_markup_namespaces - e = assert_raises(Nokogiri::XML::SyntaxError) do - reader.namespaces - end -- assert_includes(e.message, "FATAL: Extra content at the end of the document") -+ expected = if Nokogiri.uses_libxml?(">= 2.12.0") # upstream commit 53050b1d -+ "FATAL: Premature end of data in tag foo line 1" -+ else -+ "FATAL: Extra content at the end of the document" -+ end -+ assert_includes(e.message, expected) - end - - assert_equal(1, reader.errors.length) diff --git a/nokogiri-pr3013-libxml2-2_12_0-recovery-char-change.patch b/nokogiri-pr3013-libxml2-2_12_0-recovery-char-change.patch deleted file mode 100644 index f6e84d8..0000000 --- a/nokogiri-pr3013-libxml2-2_12_0-recovery-char-change.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 5e60c08c6ec75ec8767f3edbfcba0d8e39d06495 Mon Sep 17 00:00:00 2001 -From: Mike Dalessio -Date: Tue, 24 Oct 2023 08:54:19 -0400 -Subject: [PATCH] fix: work around change in upstream libxml2 recovery - -See: - -- https://gitlab.gnome.org/GNOME/libxml2/-/issues/598 -- https://gitlab.gnome.org/GNOME/libxml2/-/commit/c082ef4644ce1f0af2a7c01e27c4a75f4d7d4feb ---- - test/xml/sax/test_push_parser.rb | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/test/xml/sax/test_push_parser.rb b/test/xml/sax/test_push_parser.rb -index 5c9ddd3840..aa7ce84e8e 100644 ---- a/test/xml/sax/test_push_parser.rb -+++ b/test/xml/sax/test_push_parser.rb -@@ -182,12 +182,18 @@ def error(msg) - - it :test_broken_encoding do - skip_unless_libxml2("ultra hard to fix for pure Java version") -+ - parser.options |= Nokogiri::XML::ParseOptions::RECOVER - # This is ISO_8859-1: - parser << "Gau\337" - parser.finish -+ - assert(parser.document.errors.size >= 1) -- assert_equal "Gau\337", parser.document.data.join -+ -+ # the interpretation of the byte may vary by libxml2 version in recovery mode -+ # see for example https://gitlab.gnome.org/GNOME/libxml2/-/issues/598 -+ assert(parser.document.data.join.start_with?("Gau")) -+ - assert_equal [["r"]], parser.document.end_elements - end - diff --git a/rubygem-nokogiri-1.11.0.rc4-shutdown-libxml2-warning.patch b/rubygem-nokogiri-1.11.0.rc4-shutdown-libxml2-warning.patch index c1ed61c..6a34634 100644 --- a/rubygem-nokogiri-1.11.0.rc4-shutdown-libxml2-warning.patch +++ b/rubygem-nokogiri-1.11.0.rc4-shutdown-libxml2-warning.patch @@ -1,10 +1,13 @@ ---- nokogiri-1.11.0.rc4/lib/nokogiri/version/info.rb.warn 2020-12-31 16:56:11.533949657 +0900 -+++ nokogiri-1.11.0.rc4/lib/nokogiri/version/info.rb 2020-12-31 16:59:38.576697147 +0900 -@@ -58,6 +58,7 @@ module Nokogiri +--- nokogiri-1.18.5/lib/nokogiri/version/info.rb.warn 2023-11-29 01:25:54.000000000 +0900 ++++ nokogiri-1.18.5/lib/nokogiri/version/info.rb 2025-03-26 15:51:51.468291434 +0900 +@@ -70,6 +70,10 @@ module Nokogiri + end def warnings ++ [] ++ end ++ ++ def warnings_original warnings = [] -+ return warnings if libxml2? - if compiled_libxml_version != loaded_libxml_version diff --git a/rubygem-nokogiri-1.18.10-minitest6.patch b/rubygem-nokogiri-1.18.10-minitest6.patch new file mode 100644 index 0000000..f2e2b8f --- /dev/null +++ b/rubygem-nokogiri-1.18.10-minitest6.patch @@ -0,0 +1,11 @@ +diff -urp '--exclude=*~' nokogiri-1.18.10.orig/test/helper.rb nokogiri-1.18.10/test/helper.rb +--- nokogiri-1.18.10.orig/test/helper.rb 2025-12-24 12:29:06.569389292 +0900 ++++ nokogiri-1.18.10/test/helper.rb 2025-12-24 12:39:48.443826371 +0900 +@@ -41,6 +41,7 @@ warn + + require "minitest/autorun" + require "minitest/benchmark" ++require "minitest/mock" + + if !Nokogiri.jruby? && ENV["NCPU"].to_i > 1 + require "minitest/parallel_fork" diff --git a/rubygem-nokogiri.spec b/rubygem-nokogiri.spec index 0fd0ed1..b28fa64 100644 --- a/rubygem-nokogiri.spec +++ b/rubygem-nokogiri.spec @@ -1,7 +1,7 @@ -%global mainver 1.15.6 +%global mainver 1.19.0 #%%global prever .rc4 -%global baserelease 1 +%global baserelease 2 %global prerpmver %(echo "%{?prever}" | sed -e 's|\\.||g') %global gem_name nokogiri @@ -29,16 +29,17 @@ Source1: rubygem-%{gem_name}-%{version}%{?prever}-full.tar.gz Source2: nokogiri-create-full-tarball.sh # Shut down libxml2 version unmatching warning Patch0: %{name}-1.11.0.rc4-shutdown-libxml2-warning.patch -# https://github.com/sparklemotion/nokogiri/pull/2973 -Patch1: nokogiri-pr2973-libxml2-2_12_0-error-msg-change.patch -# https://github.com/sparklemotion/nokogiri/pull/3013 -Patch2: nokogiri-pr3013-libxml2-2_12_0-recovery-char-change.patch BuildRequires: ruby(release) BuildRequires: ruby(rubygems) ## ## For %%check BuildRequires: rubygem(minitest) +BuildRequires: rubygem(minitest-mock) +%if !0%{?rhel} +# For test/xml/test_document_encoding.rb +# Drop rubygem(rubyzip) build dependency in RHEL BuildRequires: rubygem(rubyzip) +%endif BuildRequires: rubygems-devel Obsoletes: ruby-%{gem_name} <= 1.5.2-2 #BuildRequires: ruby(racc) @@ -52,7 +53,6 @@ BuildRequires: libxslt-devel BuildRequires: ruby-devel # ruby27 needs this explicitly BuildRequires: rubygem(racc) -Requires: rubygem(racc) %description Nokogiri parses and searches XML/HTML very quickly, and also has @@ -85,14 +85,18 @@ mv ../%{gem_name}-%{version}.gemspec . # patches %patch -P0 -p1 -%patch -P1 -p1 -%patch -P2 -p1 # remove bundled external libraries sed -i \ -e 's|, "ports/archives/[^"][^"]*"||g' \ - -e 's|, "ports/patches/[^"][^"]*"||g' \ + -e 's|, "patches/[^"][^"]*"||g' \ %{gem_name}-%{version}.gemspec +# Make sure gem build will complain later if the previous regex is not enough. +rm -rf \ + ports \ + patches \ + %{nil} + # Actually not needed when using system libraries sed -i -e '\@mini_portile@d' %{gem_name}-%{version}.gemspec @@ -101,7 +105,7 @@ sed -i -e '\@mini_portile@d' %{gem_name}-%{version}.gemspec sed -i \ ext/nokogiri/extconf.rb \ -e "s@^\(def process_recipe.*\)\$@\1 ; return true@" \ - -e "s@^\(append_cppflags\).*gumbo.*\$@\1(\"-I$(pwd)/gumbo-parser/src\")@" \ + -e "s@^\([ \t]*append_cppflags\).*gumbo.*\$@\1(\"-I$(pwd)/gumbo-parser/src\")@" \ -e "\@libs.*gumbo@s@File\.join.*@\"$(pwd)/gumbo-parser/src/libgumbo.a\"@" \ -e "\@LIBPATH.*gumbo@s|^\(.*\)\$|# \1|" \ %{nil} @@ -211,7 +215,7 @@ pushd ./%{gem_instdir} # Remove unneeded simplecov coverage test sed -i test/helper.rb \ - -e '\@require.*simplecov@,\@^end$@s|^|#|' + -e '\@^ require.*simplecov@,\@^ end$@s|^|#|' # Remove minitest-reporters. It does not provide any additional value while # it blows up the dependency chain. @@ -272,8 +276,108 @@ popd %doc %{gem_dir}/doc/%{gem_name}-%{mainver}%{?prever}/ %changelog -* Sun Mar 17 2024 Mamoru TASAKA - 1.15.6-1 -- 1.15.6 +* Thu Jan 08 2026 Mamoru TASAKA - 1.19.0-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_4.0 + +* Tue Dec 30 2025 Mamoru TASAKA - 1.19.0-1 +- 1.19.0 + +* Wed Dec 24 2025 Mamoru TASAKA - 1.18.10-2 +- Handle minitest 6 compatibility + +* Mon Sep 15 2025 Mamoru TASAKA - 1.18.10-1 +- 1.18.10 + +* Fri Jul 25 2025 Fedora Release Engineering - 1.18.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jul 21 2025 Mamoru TASAKA - 1.18.9-1 +- 1.18.9 + +* Wed Apr 23 2025 Mamoru TASAKA - 1.18.8-1 +- 1.18.8 + +* Mon Apr 07 2025 Mamoru TASAKA - 1.18.7-1 +- 1.18.7 + +* Sat Mar 29 2025 Mamoru TASAKA - 1.18.6-1 +- 1.18.6 + +* Wed Mar 26 2025 Mamoru TASAKA - 1.18.5-2 +- Suppress warnings from Nokogiri::VERSION_INFO (bug 2354787) + +* Thu Mar 20 2025 Mamoru TASAKA - 1.18.5-1 +- 1.18.5 + +* Sun Mar 16 2025 Mamoru TASAKA - 1.18.4-1 +- 1.18.4 + +* Wed Feb 19 2025 Mamoru TASAKA - 1.18.3-1 +- 1.18.3 + +* Mon Jan 20 2025 Mamoru TASAKA - 1.18.2-1 +- 1.18.2 + +* Sat Jan 18 2025 Fedora Release Engineering - 1.18.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Jan 07 2025 Mamoru TASAKA - 1.18.1-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.4 + +* Mon Dec 30 2024 Mamoru TASAKA - 1.18.1-1 +- 1.18.1 + +* Sat Dec 28 2024 Mamoru TASAKA - 1.18.0-1 +- 1.18.0 + +* Fri Dec 13 2024 Mamoru TASAKA - 1.17.2-1 +- 1.17.2 + +* Wed Dec 11 2024 Mamoru TASAKA - 1.17.1-1 +- 1.17.1 + +* Mon Dec 09 2024 Mamoru TASAKA - 1.17.0-1 +- 1.17.0 + +* Thu Dec 05 2024 Mamoru TASAKA - 1.16.8-1 +- 1.16.8 + +* Wed Jul 31 2024 Mamoru TASAKA - 1.16.7-1 +- 1.16.7 + +* Fri Jul 19 2024 Fedora Release Engineering - 1.16.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Sun Jun 16 2024 Mamoru TASAKA - 1.16.6-1 +- 1.16.6 + +* Tue May 14 2024 Mamoru TASAKA - 1.16.5-1 +- 1.16.5 + +* Thu Apr 25 2024 Mamoru TASAKA - 1.16.4-2 +- Make rubygem-minizip testsuite dependency optional, drop on RHEL + (Patch by Jun Aruga ) + +* Thu Apr 11 2024 Mamoru TASAKA - 1.16.4-1 +- 1.16.4 + +* Sun Mar 17 2024 Mamoru TASAKA - 1.16.3-1 +- 1.16.3 + +* Mon Feb 05 2024 Mamoru TASAKA - 1.16.2-1 +- 1.16.2 + +* Sun Feb 04 2024 Mamoru TASAKA - 1.16.1-1 +- 1.16.1 + +* Fri Jan 26 2024 Fedora Release Engineering - 1.16.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jan 03 2024 Mamoru TASAKA - 1.16.0-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3 + +* Fri Dec 29 2023 Mamoru TASAKA - 1.16.0-1 +- 1.16.0 * Sat Nov 18 2023 Mamoru TASAKA - 1.15.5-1 - 1.15.5 diff --git a/sources b/sources index 4a35517..52222fb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (nokogiri-1.15.6.gem) = 3b400a23c9a9aedaabe3aab903ce821ede651edfb83d151b83d53bbfb83b2368bc1ddf9eb6b65ec8f1b17bfa5d22879864e98eb9d98021ad7abe6a6714ff3d38 -SHA512 (rubygem-nokogiri-1.15.6-full.tar.gz) = e1818c7e18cca272185b964392a34b5a74eb5eacf1c8b2702ad519ee46c05850b414a9083f428e86776bbd979df733bfe4fada248592cdfd0e3cc5e59519c4b6 +SHA512 (rubygem-nokogiri-1.19.0-full.tar.gz) = 29dd894b176857d55eb5e670f50e69762e74c0a13e6949030af17e3c84b65f9dfe0087210b84a7c77749d3d1a4a33292d62f7005003745e8f087d822ee64f4b1 +SHA512 (nokogiri-1.19.0.gem) = d9326a2e60b6ea3152c5f9d53df738610f18ca57cffcd3bf2f8b07a2b08b30085d0fce2ca8206279ad6a0f1a613e9e76821c09aef45cf5e5b2d00ff766734872