diff --git a/.gitignore b/.gitignore index bb5c82c..cddfe55 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,68 @@ -/nokogiri-*.gem -/rubygem-nokogiri-*-full.tar.gz +nokogiri-1.4.2.gem +nokogiri-1.4.3.1.gem +/nokogiri-1.5.0.beta.2.gem +/nokogiri-1.5.0.beta.3.gem +/nokogiri-1.5.0.beta.4.gem +/nokogiri-1.5.0.gem +/nokogiri-1.5.2.gem +/nokogiri-1.5.5.gem +/nokogiri-1.5.6.gem +/nokogiri-1.5.9.gem +/nokogiri-1.6.0.gem +/nokogiri-1.6.1.gem +/nokogiri-1.6.2.1.gem +/nokogiri-1.6.3.1.gem +/nokogiri-1.6.4.1.gem +/nokogiri-1.6.5.gem +/nokogiri-1.6.6.1.gem +/nokogiri-1.6.6.2.gem +/nokogiri-1.6.7.rc3.gem +/nokogiri-1.6.7.2.gem +/nokogiri-1.6.8.gem +/nokogiri-1.6.8.1.gem +/nokogiri-1.7.0.gem +/nokogiri-1.7.0.1.gem +/nokogiri-1.7.1.gem +/nokogiri-1.7.2.gem +/nokogiri-1.8.0.gem +/nokogiri-1.8.1.gem +/nokogiri-1.8.2.gem +/nokogiri-1.8.3.gem +/nokogiri-1.8.4.gem +/nokogiri-1.8.5.gem +/nokogiri-1.9.1.gem +/rubygem-nokogiri-1.9.1-full.tar.gz +/nokogiri-1.10.0.gem +/rubygem-nokogiri-1.10.0-full.tar.gz +/nokogiri-1.10.1.gem +/rubygem-nokogiri-1.10.1-full.tar.gz +/nokogiri-1.10.2.gem +/rubygem-nokogiri-1.10.2-full.tar.gz +/nokogiri-1.10.3.gem +/rubygem-nokogiri-1.10.3-full.tar.gz +/nokogiri-1.10.4.gem +/rubygem-nokogiri-1.10.4-full.tar.gz +/rubygem-nokogiri-1.10.5-full.tar.gz +/nokogiri-1.10.5.gem +/nokogiri-1.10.7.gem +/rubygem-nokogiri-1.10.7-full.tar.gz +/nokogiri-1.10.8.gem +/rubygem-nokogiri-1.10.8-full.tar.gz +/nokogiri-1.10.9.gem +/rubygem-nokogiri-1.10.9-full.tar.gz +/nokogiri-1.10.10.gem +/rubygem-nokogiri-1.10.10-full.tar.gz +/nokogiri-1.11.0.rc4.gem +/rubygem-nokogiri-1.11.0.rc4-full.tar.gz +/rubygem-nokogiri-1.11.0-full.tar.gz +/nokogiri-1.11.0.gem +/rubygem-nokogiri-1.11.1-full.tar.gz +/nokogiri-1.11.1.gem +/nokogiri-1.11.2.gem +/rubygem-nokogiri-1.11.2-full.tar.gz +/nokogiri-1.11.3.gem +/rubygem-nokogiri-1.11.3-full.tar.gz +/nokogiri-1.11.4.gem +/rubygem-nokogiri-1.11.4-full.tar.gz +/nokogiri-1.11.7.gem +/rubygem-nokogiri-1.11.7-full.tar.gz diff --git a/nokogiri-create-full-tarball.sh b/nokogiri-create-full-tarball.sh index 1cb4822..d6fbd01 100644 --- a/nokogiri-create-full-tarball.sh +++ b/nokogiri-create-full-tarball.sh @@ -1,17 +1,5 @@ #!/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 " @@ -29,14 +17,10 @@ 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 \ - "--exclude=nokogiri-$2/./.git" \ - $1-$2/./ +tar czf ${CURRDIR}/rubygem-$1-$2-full.tar.gz $1-$2/./ popd 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 6a34634..c1ed61c 100644 --- a/rubygem-nokogiri-1.11.0.rc4-shutdown-libxml2-warning.patch +++ b/rubygem-nokogiri-1.11.0.rc4-shutdown-libxml2-warning.patch @@ -1,13 +1,10 @@ ---- 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 +--- 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 def warnings -+ [] -+ end -+ -+ def warnings_original warnings = [] ++ return warnings if libxml2? + if compiled_libxml_version != loaded_libxml_version diff --git a/rubygem-nokogiri-1.13.3-CVE-2022-24836-backport.patch b/rubygem-nokogiri-1.13.3-CVE-2022-24836-backport.patch new file mode 100644 index 0000000..6e61a18 --- /dev/null +++ b/rubygem-nokogiri-1.13.3-CVE-2022-24836-backport.patch @@ -0,0 +1,42 @@ +commit e444525ef1634b675cd1cf52d39f4320ef0aecfd +Author: Mike Dalessio +Date: Sun Apr 10 14:42:04 2022 -0400 + + fix(perf): HTML4::EncodingReader detection + +diff --git a/lib/nokogiri/html4/document.rb b/lib/nokogiri/html4/document.rb +index 177efc04..fbc22d20 100644 +--- a/lib/nokogiri/html/document.rb ++++ b/lib/nokogiri/html/document.rb +@@ -268,7 +268,7 @@ module Nokogiri + end + + def self.detect_encoding(chunk) +- m = chunk.match(/\A(<\?xml[ \t\r\n]+[^>]*>)/) and ++ m = chunk.match(/\A(<\?xml[ \t\r\n][^>]*>)/) and + return Nokogiri.XML(m[1]).encoding + + if Nokogiri.jruby? +diff --git a/test/html4/test_document_encoding.rb b/test/html4/test_document_encoding.rb +index 61153017..ecb4aa9a 100644 +--- a/test/html/test_document_encoding.rb ++++ b/test/html/test_document_encoding.rb +@@ -155,6 +155,18 @@ class TestNokogiriHtmlDocument < Nokogiri::TestCase + end + end + end ++ ++ it "does not start backtracking during detection of XHTML encoding" do ++ # this test is a quick and dirty version ++ # of the more complete perf test that is on main. ++ n = 40_000 ++ redos_string = " +Date: Fri, 6 May 2022 21:57:41 -0400 +Subject: [PATCH] fix: {HTML4,XML}::SAX::{Parser,ParserContext} check arg types + +Previously, arguments of the wrong type might cause segfault on CRuby. +--- + CHANGELOG.md | 3 ++- + ext/java/nokogiri/Html4SaxParserContext.java | 11 +++++++++++ + ext/java/nokogiri/XmlSaxParserContext.java | 7 +++++-- + ext/java/nokogiri/internals/ParserContext.java | 8 +++++++- + ext/nokogiri/html4_sax_parser_context.c | 5 ++--- + ext/nokogiri/xml_sax_parser_context.c | 13 ++++++++++--- + lib/nokogiri/html4/sax/parser.rb | 2 +- + test/html4/sax/test_parser.rb | 8 +++++++- + test/html4/sax/test_parser_context.rb | 9 +++++++++ + test/xml/sax/test_parser.rb | 8 +++++++- + test/xml/sax/test_parser_context.rb | 7 +++++++ + 11 files changed, 68 insertions(+), 13 deletions(-) + +diff --git a/ext/nokogiri/html_sax_parser_context.c b/ext/nokogiri/html_sax_parser_context.c +index dec0d88fe..54adca4cb 100644 +--- a/ext/nokogiri/html_sax_parser_context.c ++++ b/ext/nokogiri/html_sax_parser_context.c +@@ -19,9 +19,8 @@ parse_memory(VALUE klass, VALUE data, VALUE encoding) + { + htmlParserCtxtPtr ctxt; + +- if (NIL_P(data)) { +- rb_raise(rb_eArgError, "data cannot be nil"); +- } ++ Check_Type(data, T_STRING); ++ + if (!(int)RSTRING_LEN(data)) { + rb_raise(rb_eRuntimeError, "data cannot be empty"); + } +diff --git a/ext/nokogiri/xml_sax_parser_context.c b/ext/nokogiri/xml_sax_parser_context.c +index 60449347a..60c491984 100644 +--- a/ext/nokogiri/xml_sax_parser_context.c ++++ b/ext/nokogiri/xml_sax_parser_context.c +@@ -2,6 +2,8 @@ + + VALUE cNokogiriXmlSaxParserContext ; + ++static ID id_read; ++ + static void + deallocate(xmlParserCtxtPtr ctxt) + { +@@ -26,6 +28,10 @@ parse_io(VALUE klass, VALUE io, VALUE encoding) + xmlParserCtxtPtr ctxt; + xmlCharEncoding enc = (xmlCharEncoding)NUM2INT(encoding); + ++ if (!rb_respond_to(io, id_read)) { ++ rb_raise(rb_eTypeError, "argument expected to respond to :read"); ++ } ++ + ctxt = xmlCreateIOParserCtxt(NULL, NULL, + (xmlInputReadCallback)noko_io_read, + (xmlInputCloseCallback)noko_io_close, +@@ -62,9 +68,8 @@ parse_memory(VALUE klass, VALUE data) + { + xmlParserCtxtPtr ctxt; + +- if (NIL_P(data)) { +- rb_raise(rb_eArgError, "data cannot be nil"); +- } ++ Check_Type(data, T_STRING); ++ + if (!(int)RSTRING_LEN(data)) { + rb_raise(rb_eRuntimeError, "data cannot be empty"); + } +@@ -278,4 +283,6 @@ noko_init_xml_sax_parser_context() + rb_define_method(cNokogiriXmlSaxParserContext, "recovery", get_recovery, 0); + rb_define_method(cNokogiriXmlSaxParserContext, "line", line, 0); + rb_define_method(cNokogiriXmlSaxParserContext, "column", column, 0); ++ ++ id_read = rb_intern("read"); + } +diff --git a/lib/nokogiri/html/sax/parser.rb b/lib/nokogiri/html4/sax/parser.rb +index 2a074b6b9..1f8c03af6 100644 +--- a/lib/nokogiri/html/sax/parser.rb ++++ b/lib/nokogiri/html/sax/parser.rb +@@ -28,7 +28,7 @@ class Parser < Nokogiri::XML::SAX::Parser + ### + # Parse html stored in +data+ using +encoding+ + def parse_memory data, encoding = 'UTF-8' +- raise ArgumentError unless data ++ raise TypeError unless String === data + return unless data.length > 0 + ctx = ParserContext.memory(data, encoding) + yield ctx if block_given? +diff --git a/test/html/sax/test_parser.rb b/test/html/sax/test_parser.rb +index 3917dce2e..4dc6ac61f 100644 +--- a/test/html/sax/test_parser.rb ++++ b/test/html/sax/test_parser.rb +@@ -54,7 +54,7 @@ def test_parse_file_with_dir + end + + def test_parse_memory_nil +- assert_raise ArgumentError do ++ assert_raise TypeError do + @parser.parse_memory(nil) + end + end +@@ -161,6 +161,12 @@ def test_parsing_dom_error_from_io + def test_empty_processing_instruction + @parser.parse_memory("this will segfault") + end ++ ++ it "handles invalid types gracefully" do ++ assert_raises(TypeError) { Nokogiri::HTML::SAX::Parser.new.parse(0xcafecafe) } ++ assert_raises(TypeError) { Nokogiri::HTML::SAX::Parser.new.parse_memory(0xcafecafe) } ++ assert_raises(TypeError) { Nokogiri::HTML::SAX::Parser.new.parse_io(0xcafecafe) } ++ end + end + end + end +diff --git a/test/html/sax/test_parser_context.rb b/test/html/sax/test_parser_context.rb +index 0a0eda64c..594a3ac82 100644 +--- a/test/html/sax/test_parser_context.rb ++++ b/test/html/sax/test_parser_context.rb +@@ -40,6 +40,15 @@ def test_from_file + ctx.parse_with parser + # end + end ++ ++ def test_graceful_handling_of_invalid_types ++ assert_raises(TypeError) { ParserContext.new(0xcafecafe) } ++ assert_raises(TypeError) { ParserContext.memory(0xcafecafe, "UTF-8") } ++ assert_raises(TypeError) { ParserContext.io(0xcafecafe, 1) } ++ assert_raises(TypeError) { ParserContext.io(StringIO.new("asdf"), "should be an index into ENCODINGS") } ++ assert_raises(TypeError) { ParserContext.file(0xcafecafe, "UTF-8") } ++ assert_raises(TypeError) { ParserContext.file("path/to/file", 0xcafecafe) } ++ end + end + end + end +diff --git a/test/xml/sax/test_parser.rb b/test/xml/sax/test_parser.rb +index 6c0f1fc88..ac7d4ead0 100644 +--- a/test/xml/sax/test_parser.rb ++++ b/test/xml/sax/test_parser.rb +@@ -73,6 +73,12 @@ class TestCase + end + end + ++ def test_graceful_handling_of_invalid_types ++ assert_raises(TypeError) { Nokogiri::XML::SAX::Parser.new.parse(0xcafecafe) } ++ assert_raises(TypeError) { Nokogiri::XML::SAX::Parser.new.parse_memory(0xcafecafe) } ++ assert_raises(TypeError) { Nokogiri::XML::SAX::Parser.new.parse_io(0xcafecafe) } ++ end ++ + def test_namespace_declaration_order_is_saved + @parser.parse(<<~eoxml) + +@@ -263,7 +269,7 @@ def call_parse_io_with_encoding(encoding) + end + + def test_render_parse_nil_param +- assert_raises(ArgumentError) { @parser.parse_memory(nil) } ++ assert_raises(TypeError) { @parser.parse_memory(nil) } + end + + def test_bad_encoding_args +diff --git a/test/xml/sax/test_parser_context.rb b/test/xml/sax/test_parser_context.rb +index e38efd271..ba9857943 100644 +--- a/test/xml/sax/test_parser_context.rb ++++ b/test/xml/sax/test_parser_context.rb +@@ -6,6 +6,13 @@ + assert_equal true, pc.recovery + end + ++ def test_graceful_handling_of_invalid_types ++ assert_raises(TypeError) { ParserContext.new(0xcafecafe) } ++ assert_raises(TypeError) { ParserContext.memory(0xcafecafe) } ++ assert_raises(TypeError) { ParserContext.io(0xcafecafe, 1) } ++ assert_raises(TypeError) { ParserContext.io(StringIO.new("asdf"), "should be an index into ENCODINGS") } ++ end ++ + def test_from_io + ctx = ParserContext.new StringIO.new('fo'), 'UTF-8' + assert ctx diff --git a/rubygem-nokogiri-1.18.10-minitest6.patch b/rubygem-nokogiri-1.18.10-minitest6.patch deleted file mode 100644 index f2e2b8f..0000000 --- a/rubygem-nokogiri-1.18.10-minitest6.patch +++ /dev/null @@ -1,11 +0,0 @@ -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-1.5.0-allow-non-crosscompile.patch b/rubygem-nokogiri-1.5.0-allow-non-crosscompile.patch new file mode 100644 index 0000000..f45734b --- /dev/null +++ b/rubygem-nokogiri-1.5.0-allow-non-crosscompile.patch @@ -0,0 +1,26 @@ +--- nokogiri-1.5.0/Rakefile.debug 2012-01-18 16:23:02.472224272 +0900 ++++ nokogiri-1.5.0/Rakefile 2012-01-18 16:23:29.935430496 +0900 +@@ -83,14 +83,21 @@ + HOE.spec.files += ['lib/nokogiri/nokogiri.jar'] + end + else +- require 'tasks/cross_compile' ++ do_cross_compile = true ++ begin ++ require 'tasks/cross_compile' ++ rescue RuntimeError => e ++ warn "WARNING: Could not perform some cross-compiling: #{e}" ++ do_cross_compile = false ++ end + require "rake/extensiontask" + +- HOE.spec.files.reject! { |f| f =~ %r{^ext/java|\.jar$} } ++ HOE.spec.files.reject! { |f| f =~ %r{^ext/java|\.jar$} } if do_cross_compile + + Rake::ExtensionTask.new("nokogiri", HOE.spec) do |ext| + ext.lib_dir = File.join(*['lib', 'nokogiri', ENV['FAT_DIR']].compact) + ext.config_options << ENV['EXTOPTS'] ++ next unless do_cross_compile + ext.cross_compile = true + ext.cross_platform = ["x86-mswin32-60", "x86-mingw32"] + ext.cross_config_options << "--with-xml2-include=#{File.join($recipes[:libxml2].path, 'include', 'libxml2')}" diff --git a/rubygem-nokogiri.spec b/rubygem-nokogiri.spec index b28fa64..b631b2f 100644 --- a/rubygem-nokogiri.spec +++ b/rubygem-nokogiri.spec @@ -1,51 +1,44 @@ -%global mainver 1.19.0 +%global mainver 1.11.7 #%%global prever .rc4 -%global baserelease 2 +%global mainrel 3 %global prerpmver %(echo "%{?prever}" | sed -e 's|\\.||g') %global gem_name nokogiri %undefine __brp_mangle_shebangs +%undefine _changelog_trimtime Summary: An HTML, XML, SAX, and Reader parser Name: rubygem-%{gem_name} Version: %{mainver} -Release: %{?prever:0.}%{baserelease}%{?prever:.%{prerpmver}}%{?dist} - -# SPDX confirmed -# MIT: see LICENSE.md -# Apache-2.0 -# 1.12.0 bundles forked and modified gumbo - -# see gumbo-parser/src/attribute.c and ext/nokogiri/gumbo.c -# also lib/nokogiri/html5 is licensed under ASL 2.0 -License: MIT AND Apache-2.0 -Provides: bundled(gumbo-parser) = 0.10.1 - +Release: %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}%{?dist} +License: MIT URL: https://nokogiri.org Source0: https://rubygems.org/gems/%{gem_name}-%{mainver}%{?prever}.gem # %%{SOURCE2} %%{name} %%{version} Source1: rubygem-%{gem_name}-%{version}%{?prever}-full.tar.gz Source2: nokogiri-create-full-tarball.sh +# ./test/html/test_element_description.rb:62 fails, as usual...... +# Patch0: rubygem-nokogiri-1.5.0.beta3-test-failure.patch +#Patch0: rubygem-nokogiri-1.5.0-allow-non-crosscompile.patch # Shut down libxml2 version unmatching warning Patch0: %{name}-1.11.0.rc4-shutdown-libxml2-warning.patch +# https://github.com/sparklemotion/nokogiri/commit/e444525ef1634b675cd1cf52d39f4320ef0aecfd +# Fix for CVE-2022-24836, backported +Patch1: %{name}-1.13.3-CVE-2022-24836-backport.patch +# https://github.com/sparklemotion/nokogiri/commit/db05ba9a1bd4b90aa6c76742cf6102a7c7297267 +# Fix for CVE-2022-24836, backported +Patch2: %{name}-1.13.5-6-CVE-2022-29181-backport.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) ## -# test suite uses EUC-JP, SHIFT-JIS, etc -BuildRequires: glibc-all-langpacks ## Others BuildRequires: gcc BuildRequires: libxml2-devel @@ -53,6 +46,7 @@ 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 @@ -61,6 +55,16 @@ correctly implemented CSS3 selector support as well as XPath support. Nokogiri also features an Hpricot compatibility layer to help ease the change to using correct CSS and XPath. +%if 0 +%package jruby +Summary: JRuby support for %{name} +Requires: %{name} = %{version}-%{release} + +%description jruby +This package contains JRuby support for %{name}. +%endif + + %package doc Summary: Documentation for %{name} Requires: %{name} = %{version}-%{release} @@ -80,66 +84,40 @@ This package provides non-Gem support for %{gem_name}. %prep %setup -q -n %{gem_name}-%{version} -a 1 -cp -a %{gem_name}-%{version}/{.,*} . mv ../%{gem_name}-%{version}.gemspec . # patches -%patch -P0 -p1 +( +cd %{gem_name}-%{version}/ +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +cd .. +cp -a %{gem_name}-%{version}/{lib,ext} . +) # remove bundled external libraries sed -i \ -e 's|, "ports/archives/[^"][^"]*"||g' \ - -e 's|, "patches/[^"][^"]*"||g' \ + -e 's|, "ports/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 -# Don't use mini_portile2, but build libgumbo.a first and -# tell extconf.rb the path to the archive -sed -i \ - ext/nokogiri/extconf.rb \ - -e "s@^\(def process_recipe.*\)\$@\1 ; return true@" \ - -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} - -# #line directive can confuse debuginfo, removing for now -sed -i \ - gumbo-parser/src/char_ref.c \ - -e '\@^#line [0-9]@s|^\(.*\)$|// \1|' - -# Compile libgumbo.a with -fPIC -sed -i \ - gumbo-parser/src/Makefile \ - -e 's|^\(CFLAGS.*=.*\)$|\1 -fPIC|' - -%build # Ummm... env LANG=C.UTF-8 gem build %{gem_name}-%{version}.gemspec +%build # 1.6.0 needs this export NOKOGIRI_USE_SYSTEM_LIBRARIES=yes -%set_build_flags -# First build libgumbo.a -pushd gumbo-parser/src/ -make libgumbo.a -popd - %gem_install # Permission chmod 0644 .%{gem_dir}/cache/%{gem_name}-%{mainver}%{?prever}.gem # Remove precompiled Java .jar file -find .%{gem_instdir}/lib/ -name '*.jar' -delete +rm -f .%{gem_instdir}/lib/*.jar # For now remove JRuby support rm -rf .%{gem_instdir}/ext/java @@ -148,9 +126,6 @@ rm -rf .%{gem_instdir}/ext/java mkdir -p %{buildroot}%{gem_dir} cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir} -# Also first copy these, clean up later -cp -a ./gumbo-parser %{buildroot}%{gem_instdir}/ - # Remove backup file find %{buildroot} -name \*.orig_\* | xargs rm -vf @@ -176,28 +151,18 @@ do done # Copy document files from full source -cp -p [A-Z]* %{buildroot}%{gem_instdir}/ +cp -p %{gem_name}-%{version}/[A-Z]* %{buildroot}%{gem_instdir}/ # cleanups -# Remove bundled gumbo parser pushd %{buildroot}%{gem_instdir} rm -rf \ Gemfile* \ - Rakefile \ - Vagrantfile \ dependencies.yml \ ext \ *gemspec \ patches \ ports \ %{nil} -pushd gumbo-parser -find . -type f | \ - grep -v CHANGES.md | \ - grep -v THANKS | \ - grep -v README.md | \ - xargs rm -f - popd rm -f %{buildroot}%{gem_cache} @@ -210,12 +175,12 @@ export TZ="Asia/Tokyo" LANG=C.UTF-8 # Copy test files from full tarball -cp -a test/ ./%{gem_instdir} +cp -a %{gem_name}-%{version}/test/ ./%{gem_instdir} pushd ./%{gem_instdir} # Remove unneeded simplecov coverage test sed -i test/helper.rb \ - -e '\@^ require.*simplecov@,\@^ end$@s|^|#|' + -e '\@require.*simplecov@,\@^end$@d' # Remove minitest-reporters. It does not provide any additional value while # it blows up the dependency chain. @@ -223,23 +188,19 @@ sed -i '/require..minitest.reporters./ s/^/#/' test/helper.rb sed -i '/Minitest::Reporters/ s/^/#/' test/helper.rb # PPC64LE with ruby3.1 does not seem to support GC.compact -%ifarch ppc64le +# (On Fedora, the above is backported to 3.0 branch) +%ifarch ppc64le s390x export NOKOGIRI_TEST_GC_LEVEL=major %endif -%ifarch s390x -# With ruby 3.2 GC_LEVEL=compact seems to cause segfault: -# change to major for now -if pkg-config --atleast-version 3.2 ruby ; then -export NOKOGIRI_TEST_GC_LEVEL=major -fi -%endif +# Need investigation. For now anyway build env \ - RUBYLIB=".:lib:test:%{buildroot}%{gem_extdir_mri}" \ + RUBYLIB=".:lib:test:ext" \ ruby \ -e \ "require 'test/helper' ; Dir.glob('test/**/test_*.rb'){|f| require f}" || \ exit 1 + echo "Please investigate this" for f in $SKIPTEST do @@ -253,257 +214,22 @@ popd %{gem_extdir_mri}/ %dir %{gem_instdir}/ -%license %{gem_instdir}/LICENSE*.md -%doc %{gem_instdir}/CHANGELOG.md -%doc %{gem_instdir}/README.md +%doc %{gem_instdir}/[A-Z]* %{gem_instdir}/bin/ %{gem_instdir}/lib/ - -%dir %{gem_instdir}/gumbo-parser -%dir %{gem_instdir}/gumbo-parser/src -%doc %{gem_instdir}/gumbo-parser/[A-Z]* -%license %{gem_instdir}/gumbo-parser/src/README.md - %{gem_dir}/specifications/%{gem_name}-%{mainver}%{?prever}.gemspec %files doc %defattr(-,root,root,-) -%doc %{gem_instdir}/CODE_OF_CONDUCT.md -%doc %{gem_instdir}/CONTRIBUTING.md -%doc %{gem_instdir}/ROADMAP.md -%doc %{gem_instdir}/SECURITY.md -%doc %{gem_dir}/doc/%{gem_name}-%{mainver}%{?prever}/ +%{gem_dir}/doc/%{gem_name}-%{mainver}%{?prever}/ %changelog -* Thu Jan 08 2026 Mamoru TASAKA - 1.19.0-2 -- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_4.0 +* Tue May 10 2022 Mamoru TASAKA - 1.11.7-3 +- Backport CVE-2022-29181 from between 1.13.5 and 1.13.6 -* 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 -- Backport upstream patch for libxml2 2.12.0 error handling change - -* Sat Aug 12 2023 Mamoru TASAKA - 1.15.4-1 -- 1.15.4 - -* Sun Aug 6 2023 Mamoru TASAKA - 1.15.3-4 -- Prefer upstream patch for the previous change - -* Fri Aug 4 2023 Mamoru TASAKA - 1.15.3-3 -- Support MiniTest 5.19+ - -* Fri Jul 21 2023 Fedora Release Engineering - 1.15.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jul 6 2023 Mamoru TASAKA - 1.15.3-1 -- 1.15.3 - -* Thu May 25 2023 Mamoru TASAKA - 1.15.2-1 -- 1.15.2 - -* Sun May 21 2023 Mamoru TASAKA - 1.15.1-1 -- 1.15.1 - -* Tue May 16 2023 Mamoru TASAKA - 1.15.0-1 -- 1.15.0 - -* Fri May 12 2023 Mamoru TASAKA - 1.14.4-1 -- 1.14.4 -- Note that CVE-2022-34169 is for vendored xalan-j, not affecting Fedora - nokogiri - -* Wed Apr 12 2023 Mamoru TASAKA - 1.14.3-1 -- 1.14.3 -- SPDX confirmed - -* Tue Feb 14 2023 Mamoru TASAKA - 1.14.2-1 -- 1.14.2 - -* Tue Jan 31 2023 Mamoru TASAKA - 1.14.1-1 -- 1.14.1 - -* Fri Jan 20 2023 Fedora Release Engineering - 1.14.0-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sun Jan 15 2023 Mamoru TASAKA - 1.14.0-1 -- 1.14.0 - -* Tue Jan 03 2023 Mamoru TASAKA - 1.13.10-2.1 -- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2 - -* Sun Dec 25 2022 Mamoru TASAKA - 1.13.10-2 -- Use %%gem_extdir_mri instead of ext for %%check due to ruby3.2 change - for ext cleanup during build - -* Fri Dec 9 2022 Mamoru TASAKA - 1.13.10-1 -- 1.13.10 -- Address CVE-2022-23476 - -* Thu Oct 20 2022 Mamoru TASAKA - 1.13.9-2 -- s390x: change GC_LEVEL to major on ruby3.2 for now - -* Thu Oct 20 2022 Mamoru TASAKA - 1.13.9-1 -- 1.13.9 - -* Wed Jul 27 2022 Mamoru TASAKA - 1.13.8-1 -- 1.13.8 - -* Sat Jul 23 2022 Fedora Release Engineering - 1.13.7-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jul 13 2022 Mamoru TASAKA - 1.13.7-2 -- Bump release - -* Wed Jul 13 2022 Mamoru TASAKA - 1.13.7-1 -- 1.13.7 - -* Tue May 10 2022 Mamoru TASAKA - 1.13.6-1 -- 1.13.6 -- Addresses CVE-2022-29181 - -* Thu May 5 2022 Mamoru TASAKA - 1.13.5-1 -- 1.13.5 - -* Thu Apr 14 2022 Mamoru TASAKA - 1.13.4-1 -- 1.13.4 -- Addresses CVE-2022-24836 - -* Tue Feb 22 2022 Mamoru TASAKA - 1.13.3-1 -- 1.13.3 - -* Wed Jan 26 2022 Mamoru TASAKA - 1.13.1-2 -- Set NOKOGIRI_TEST_GC_LEVEL to major on ppc64le as - ruby31 does not seem to support GC.compat on the platform - -* Wed Jan 26 2022 Mamoru TASAKA - 1.13.1-1.2 -- F-36: rebuild against ruby31 - -* Fri Jan 21 2022 Fedora Release Engineering - 1.13.1-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jan 14 2022 Mamoru TASAKA - 1.13.1-1 -- 1.13.1 - -* Sun Jan 9 2022 Mamoru TASAKA - 1.13.0-1 -- 1.13.0 - -* Tue Sep 28 2021 Mamoru TASAKA - 1.12.5-1 -- 1.12.5 - -* Wed Sep 1 2021 Mamoru TASAKA - 1.12.4-1 -- 1.12.4 - -* Thu Aug 12 2021 Mamoru TASAKA - 1.12.3-1 -- 1.12.3 - -* Sat Aug 7 2021 Mamoru TASAKA - 1.12.2-1 -- 1.12.2 - -* Sat Aug 7 2021 Mamoru TASAKA - 1.12.1-1 -- 1.12.1 - -* Fri Jul 23 2021 Fedora Release Engineering - 1.11.7-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild +* Thu Apr 14 2022 Mamoru TASAKA - 1.11.7-2 +- Backport CVE-2022-24836 from between 1.13.3 and 1.13.4 * Sat Jun 19 2021 Mamoru TASAKA - 1.11.7-1 - 1.11.7 diff --git a/sources b/sources index 52222fb..4e7781e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rubygem-nokogiri-1.19.0-full.tar.gz) = 29dd894b176857d55eb5e670f50e69762e74c0a13e6949030af17e3c84b65f9dfe0087210b84a7c77749d3d1a4a33292d62f7005003745e8f087d822ee64f4b1 -SHA512 (nokogiri-1.19.0.gem) = d9326a2e60b6ea3152c5f9d53df738610f18ca57cffcd3bf2f8b07a2b08b30085d0fce2ca8206279ad6a0f1a613e9e76821c09aef45cf5e5b2d00ff766734872 +SHA512 (nokogiri-1.11.7.gem) = 9af016366aa9d7bcfa3e6aeaf9d45ab1893ccf7f87cc89e3bff4573f66af0773dbbbe2a955e0e111bd8159f99ea49cef72ae7641398b3015e9ccd918b6804b1a +SHA512 (rubygem-nokogiri-1.11.7-full.tar.gz) = 2d45181bbb760ace73accdf84def5f875040a2383d6b2b80f86d94edf2e0d03dce251b6accf611e66cda643037f80f178070194cc3ff553313b088caac647624