From d121b275744cae5485bf74d55b2876e001d4bb12446c41bc035ee4bee95b09a0 Mon Sep 17 00:00:00 2001 From: Petr Gajdos Date: Thu, 25 Sep 2025 16:30:30 +0200 Subject: [PATCH] fix build with libxml2 2.14 --- ...bXML-fix-testsuite-with-libxml2-2.14.patch | 152 ++++++++++++++---- perl-XML-LibXML.changes | 9 ++ perl-XML-LibXML.spec | 5 +- 3 files changed, 137 insertions(+), 29 deletions(-) rename perl-XML-LibXML-fix-testsuite-with-libxml2-2.13.patch => perl-XML-LibXML-fix-testsuite-with-libxml2-2.14.patch (54%) diff --git a/perl-XML-LibXML-fix-testsuite-with-libxml2-2.13.patch b/perl-XML-LibXML-fix-testsuite-with-libxml2-2.14.patch similarity index 54% rename from perl-XML-LibXML-fix-testsuite-with-libxml2-2.13.patch rename to perl-XML-LibXML-fix-testsuite-with-libxml2-2.14.patch index c9442ae..09a8e85 100644 --- a/perl-XML-LibXML-fix-testsuite-with-libxml2-2.13.patch +++ b/perl-XML-LibXML-fix-testsuite-with-libxml2-2.14.patch @@ -1,7 +1,7 @@ From bee8338fd1cbd7aad4bf60c2965833343b6ead6f Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Tue, 21 May 2024 15:17:30 +0200 -Subject: [PATCH] Fix test suite with libxml2 2.13.0 +Subject: [PATCH 1/3] Fix test suite with libxml2 2.13.0 --- t/02parse.t | 7 ++++++- @@ -12,10 +12,10 @@ Subject: [PATCH] Fix test suite with libxml2 2.13.0 t/60error_prev_chain.t | 8 ++++---- 6 files changed, 22 insertions(+), 11 deletions(-) -Index: XML-LibXML-2.0210/t/02parse.t -=================================================================== ---- XML-LibXML-2.0210.orig/t/02parse.t -+++ XML-LibXML-2.0210/t/02parse.t +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 ); @@ -30,10 +30,10 @@ Index: XML-LibXML-2.0210/t/02parse.t $parser->validation(1); -Index: XML-LibXML-2.0210/t/08findnodes.t -=================================================================== ---- XML-LibXML-2.0210.orig/t/08findnodes.t -+++ XML-LibXML-2.0210/t/08findnodes.t +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 @@ -49,10 +49,10 @@ Index: XML-LibXML-2.0210/t/08findnodes.t # bad xpaths # TEST:$badxpath=4; -Index: XML-LibXML-2.0210/t/19die_on_invalid_utf8_rt_58848.t -=================================================================== ---- XML-LibXML-2.0210.orig/t/19die_on_invalid_utf8_rt_58848.t -+++ XML-LibXML-2.0210/t/19die_on_invalid_utf8_rt_58848.t +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 = $@; @@ -62,11 +62,11 @@ Index: XML-LibXML-2.0210/t/19die_on_invalid_utf8_rt_58848.t 'Parser error.', ); } -Index: XML-LibXML-2.0210/t/25relaxng.t -=================================================================== ---- XML-LibXML-2.0210.orig/t/25relaxng.t -+++ XML-LibXML-2.0210/t/25relaxng.t -@@ -132,7 +132,7 @@ print "# 6 check that no_network => 1 wo +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 @@ -75,7 +75,7 @@ Index: XML-LibXML-2.0210/t/25relaxng.t # 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 wo +@@ -152,7 +152,7 @@ print "# 6 check that no_network => 1 works\n"; EOF # TEST @@ -84,10 +84,10 @@ Index: XML-LibXML-2.0210/t/25relaxng.t # TEST ok( !defined $rng, 'RNG from buffer with external import and no_network => 1 is not loaded.' ); } -Index: XML-LibXML-2.0210/t/26schema.t -=================================================================== ---- XML-LibXML-2.0210.orig/t/26schema.t -+++ XML-LibXML-2.0210/t/26schema.t +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 ) }; @@ -106,10 +106,10 @@ Index: XML-LibXML-2.0210/t/26schema.t # TEST ok( !defined $schema, 'Schema from buffer with external import and no_network => 1 is not loaded.' ); } -Index: XML-LibXML-2.0210/t/60error_prev_chain.t -=================================================================== ---- XML-LibXML-2.0210.orig/t/60error_prev_chain.t -+++ XML-LibXML-2.0210/t/60error_prev_chain.t +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; { @@ -143,3 +143,101 @@ Index: XML-LibXML-2.0210/t/60error_prev_chain.t } =head1 COPYRIGHT & LICENSE + +From c9f9c2fe51173b0a00969f01b577399f1098aa47 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer +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(), '', 'Node serialise works.' ); ++ # libxml2 2.14 avoids unnecessary escaping of attribute values. ++ if (XML::LibXML::LIBXML_VERSION() >= 21400) { ++ is( $node->serialize(), "", 'Node serialise works.' ); ++ } else { ++ is( $node->serialize(), '', '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; + + 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 +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 => "\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: { + diff --git a/perl-XML-LibXML.changes b/perl-XML-LibXML.changes index bf58ce9..24e52f2 100644 --- a/perl-XML-LibXML.changes +++ b/perl-XML-LibXML.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Sep 24 11:55:34 UTC 2025 - pgajdos@suse.com + +- fix build with libxml2 2.14 +- deleted patches + * perl-XML-LibXML-fix-testsuite-with-libxml2-2.13.patch (adopted to 2.14) +- added patches + * perl-XML-LibXML-fix-testsuite-with-libxml2-2.14.patch + ------------------------------------------------------------------- Tue Jun 24 14:33:45 UTC 2025 - Bernhard Wiedemann diff --git a/perl-XML-LibXML.spec b/perl-XML-LibXML.spec index b645dd9..780053a 100644 --- a/perl-XML-LibXML.spec +++ b/perl-XML-LibXML.spec @@ -1,7 +1,7 @@ # # spec file for package perl-XML-LibXML # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -26,7 +26,8 @@ URL: https://metacpan.org/release/%{cpan_name} Source0: https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/%{cpan_name}-%{version}.tar.gz Source1: cpanspec.yml Source100: README.md -Patch1: perl-XML-LibXML-fix-testsuite-with-libxml2-2.13.patch +# https://github.com/shlomif/perl-XML-LibXML/pull/87 +Patch1: perl-XML-LibXML-fix-testsuite-with-libxml2-2.14.patch BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(Alien::Base::Wrapper)