[packages/perl-XML-LibXML] add missing patch
atler
atler at pld-linux.org
Sun Jul 13 01:03:17 CEST 2025
commit af67e01d8b55012ba3d7fa933d42994cdb59f4c7
Author: Jan Palus <atler at pld-linux.org>
Date: Sat Jul 12 19:12:18 2025 +0200
add missing patch
XML-LibXML-libxml2-2.13-tests.patch | 242 ++++++++++++++++++++++++++++++++++++
1 file changed, 242 insertions(+)
---
diff --git a/XML-LibXML-libxml2-2.13-tests.patch b/XML-LibXML-libxml2-2.13-tests.patch
new file mode 100644
index 0000000..5433d3a
--- /dev/null
+++ b/XML-LibXML-libxml2-2.13-tests.patch
@@ -0,0 +1,242 @@
+From bee8338fd1cbd7aad4bf60c2965833343b6ead6f Mon Sep 17 00:00:00 2001
+From: Nick Wellnhofer <wellnhofer at aevum.de>
+Date: Tue, 21 May 2024 15:17:30 +0200
+Subject: [PATCH 1/3] Fix test suite with libxml2 2.13.0
+
+---
+ t/02parse.t | 7 ++++++-
+ t/08findnodes.t | 8 +++++++-
+ t/19die_on_invalid_utf8_rt_58848.t | 2 +-
+ t/25relaxng.t | 4 ++--
+ t/26schema.t | 4 ++--
+ t/60error_prev_chain.t | 8 ++++----
+ 6 files changed, 22 insertions(+), 11 deletions(-)
+
+diff --git a/t/02parse.t b/t/02parse.t
+index b111507b..40aa5f13 100644
+--- a/t/02parse.t
++++ b/t/02parse.t
+@@ -884,7 +884,12 @@ EOXML
+ eval {
+ $doc2 = $parser->parse_string( $xmldoc );
+ };
+- isnt($@, '', "error parsing $xmldoc");
++ # https://gitlab.gnome.org/GNOME/libxml2/-/commit/b717abdd
++ if (XML::LibXML::LIBXML_RUNTIME_VERSION() < 21300) {
++ isnt($@, '', "error parsing $xmldoc");
++ } else {
++ is( $doc2->documentElement()->firstChild()->nodeName(), "foo" );
++ }
+
+ $parser->validation(1);
+
+diff --git a/t/08findnodes.t b/t/08findnodes.t
+index 016c85a1..e9417bc5 100644
+--- a/t/08findnodes.t
++++ b/t/08findnodes.t
+@@ -123,7 +123,13 @@ my $docstring = q{
+ my @ns = $root->findnodes('namespace::*');
+ # TEST
+
+-is(scalar(@ns), 2, ' TODO : Add test name' );
++# https://gitlab.gnome.org/GNOME/libxml2/-/commit/aca16fb3
++# fixed xmlCopyNamespace with XML namespace.
++if (XML::LibXML::LIBXML_RUNTIME_VERSION() < 21300) {
++ is(scalar(@ns), 2, ' TODO : Add test name' );
++} else {
++ is(scalar(@ns), 3, ' TODO : Add test name' );
++}
+
+ # bad xpaths
+ # TEST:$badxpath=4;
+diff --git a/t/19die_on_invalid_utf8_rt_58848.t b/t/19die_on_invalid_utf8_rt_58848.t
+index aa8ad105..4160cb27 100644
+--- a/t/19die_on_invalid_utf8_rt_58848.t
++++ b/t/19die_on_invalid_utf8_rt_58848.t
+@@ -16,7 +16,7 @@ use XML::LibXML;
+ my $err = $@;
+
+ # TEST
+- like ("$err", qr{parser error : Input is not proper UTF-8},
++ like ("$err", qr{not proper UTF-8|Invalid bytes in character encoding},
+ 'Parser error.',
+ );
+ }
+diff --git a/t/25relaxng.t b/t/25relaxng.t
+index 93e61883..71383b2a 100644
+--- a/t/25relaxng.t
++++ b/t/25relaxng.t
+@@ -132,7 +132,7 @@ print "# 6 check that no_network => 1 works\n";
+ {
+ my $rng = eval { XML::LibXML::RelaxNG->new( location => $netfile, no_network => 1 ) };
+ # TEST
+- like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from file location with external import and no_network => 1 throws an exception.' );
++ like( $@, qr{Attempt to load network entity}, 'RNG from file location with external import and no_network => 1 throws an exception.' );
+ # TEST
+ ok( !defined $rng, 'RNG from file location with external import and no_network => 1 is not loaded.' );
+ }
+@@ -152,7 +152,7 @@ print "# 6 check that no_network => 1 works\n";
+ </grammar>
+ EOF
+ # TEST
+- like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from buffer with external import and no_network => 1 throws an exception.' );
++ like( $@, qr{Attempt to load network entity}, 'RNG from buffer with external import and no_network => 1 throws an exception.' );
+ # TEST
+ ok( !defined $rng, 'RNG from buffer with external import and no_network => 1 is not loaded.' );
+ }
+diff --git a/t/26schema.t b/t/26schema.t
+index 17f641e4..c404cedd 100644
+--- a/t/26schema.t
++++ b/t/26schema.t
+@@ -117,7 +117,7 @@ EOF
+ {
+ my $schema = eval { XML::LibXML::Schema->new( location => $netfile, no_network => 1 ) };
+ # TEST
+- like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from file location with external import and no_network => 1 throws an exception.' );
++ like( $@, qr{Attempt to load network entity}, 'Schema from file location with external import and no_network => 1 throws an exception.' );
+ # TEST
+ ok( !defined $schema, 'Schema from file location with external import and no_network => 1 is not loaded.' );
+ }
+@@ -129,7 +129,7 @@ EOF
+ </xsd:schema>
+ EOF
+ # TEST
+- like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from buffer with external import and no_network => 1 throws an exception.' );
++ like( $@, qr{Attempt to load network entity}, 'Schema from buffer with external import and no_network => 1 throws an exception.' );
+ # TEST
+ ok( !defined $schema, 'Schema from buffer with external import and no_network => 1 is not loaded.' );
+ }
+diff --git a/t/60error_prev_chain.t b/t/60error_prev_chain.t
+index e48215c4..55ac0b2e 100644
+--- a/t/60error_prev_chain.t
++++ b/t/60error_prev_chain.t
+@@ -16,13 +16,11 @@ use XML::LibXML;
+
+ {
+ my $parser = XML::LibXML->new();
+- $parser->validation(0);
+- $parser->load_ext_dtd(0);
+
+ eval
+ {
+ local $^W = 0;
+- $parser->parse_file('example/JBR-ALLENtrees.htm');
++ $parser->parse_string('<doc>“ ”</doc>');
+ };
+
+ my $err = $@;
+@@ -31,7 +29,7 @@ use XML::LibXML;
+ if( $err && !ref($err) ) {
+ plan skip_all => 'The local libxml library does not support errors as objects to $@';
+ }
+- plan tests => 1;
++ plan tests => 2;
+
+ while (defined($err) && $count < 200)
+ {
+@@ -44,6 +42,8 @@ use XML::LibXML;
+
+ # TEST
+ ok ((!$err), "Reached the end of the chain.");
++ # TEST
++ is ($count, 3, "Correct number of errors reported")
+ }
+
+ =head1 COPYRIGHT & LICENSE
+
+From c9f9c2fe51173b0a00969f01b577399f1098aa47 Mon Sep 17 00:00:00 2001
+From: Nick Wellnhofer <wellnhofer at aevum.de>
+Date: Thu, 13 Feb 2025 19:50:35 +0100
+Subject: [PATCH 2/3] Fix test suite with libxml2 2.14.0
+
+---
+ t/16docnodes.t | 7 ++++++-
+ t/49_load_html.t | 8 +++++++-
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/t/16docnodes.t b/t/16docnodes.t
+index db7bc1fc..0b0ae005 100644
+--- a/t/16docnodes.t
++++ b/t/16docnodes.t
+@@ -60,7 +60,12 @@ for my $time (0 .. 2) {
+ $doc->setDocumentElement($node);
+
+ # TEST
+- is( $node->serialize(), '<test contents="ä"/>', 'Node serialise works.' );
++ # libxml2 2.14 avoids unnecessary escaping of attribute values.
++ if (XML::LibXML::LIBXML_VERSION() >= 21400) {
++ is( $node->serialize(), "<test contents=\"\xE4\"/>", 'Node serialise works.' );
++ } else {
++ is( $node->serialize(), '<test contents="ä"/>', 'Node serialise works.' );
++ }
+
+ $doc->setEncoding('utf-8');
+ # Second output
+diff --git a/t/49_load_html.t b/t/49_load_html.t
+index 70d26607..3861edf8 100644
+--- a/t/49_load_html.t
++++ b/t/49_load_html.t
+@@ -52,7 +52,13 @@ use XML::LibXML;
+ </div>
+ EOS
+
+- {
++ SKIP: {
++ # libxml2 2.14 tokenizes HTML according to HTML5 where
++ # this isn't an error, see "13.2.5.73 Named character
++ # reference state".
++ skip("libxml2 version >= 21400", 1)
++ if XML::LibXML::LIBXML_VERSION >= 21400;
++
+ my $buf = '';
+ open my $fh, '>', \$buf;
+ # redirect STDERR there
+
+From ecbebc2f33fecb66b3d5487c6e48bea353e374f9 Mon Sep 17 00:00:00 2001
+From: Nick Wellnhofer <wellnhofer at aevum.de>
+Date: Fri, 16 May 2025 19:11:12 +0200
+Subject: [PATCH 3/3] Remove tests that disable line numbers
+
+Line numbers are always enabled since libxml2 2.15.0.
+---
+ t/02parse.t | 13 ++-----------
+ 1 file changed, 2 insertions(+), 11 deletions(-)
+
+diff --git a/t/02parse.t b/t/02parse.t
+index 40aa5f13..17419f8f 100644
+--- a/t/02parse.t
++++ b/t/02parse.t
+@@ -14,7 +14,7 @@ use locale;
+
+ POSIX::setlocale(LC_ALL, "C");
+
+-use Test::More tests => 533;
++use Test::More tests => 531;
+ use IO::File;
+
+ use XML::LibXML::Common qw(:libxml);
+@@ -25,7 +25,7 @@ use constant XML_DECL => "<?xml version=\"1.0\"?>\n";
+
+ use Errno qw(ENOENT);
+
+-# TEST*533
++# TEST*531
+
+ ##
+ # test values
+@@ -773,15 +773,6 @@ EOXML
+
+ my $newkid = $root->appendChild( $doc->createElement( "bar" ) );
+ is( $newkid->line_number(), 0, "line number is 0");
+-
+- $parser->line_numbers(0);
+- eval { $doc = $parser->parse_string( $goodxml ); };
+-
+- $root = $doc->documentElement();
+- is( $root->line_number(), 0, "line number is 0");
+-
+- @kids = $root->childNodes();
+- is( $kids[1]->line_number(), 0, "line number is 0");
+ }
+
+ SKIP: {
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/perl-XML-LibXML.git/commitdiff/af67e01d8b55012ba3d7fa933d42994cdb59f4c7
More information about the pld-cvs-commit
mailing list