commit:     25616a65acf3a98a21c155c7a5ae11d8d83b63f6
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 22 12:02:21 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Nov 22 12:44:42 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25616a65

dev-qt/qtwebengine: fix build with >=libxml2-2.12 (qt6)

For convenience, use LIBXML_VERSION rather than has_version
so that can include in patchset tarball later if still needed.

Formerly meant to fix only in upcoming 6.6.1 (soon) but is a
simple and safe fix so let's fix the others too.

Closes: https://bugs.gentoo.org/917601
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/qtwebengine-6.5.3-libxml2-2.12.patch     | 39 ++++++++++++++++++++++
 dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild        |  1 +
 dev-qt/qtwebengine/qtwebengine-6.6.0.ebuild        |  1 +
 dev-qt/qtwebengine/qtwebengine-6.6.9999.ebuild     |  1 +
 4 files changed, 42 insertions(+)

diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.5.3-libxml2-2.12.patch 
b/dev-qt/qtwebengine/files/qtwebengine-6.5.3-libxml2-2.12.patch
new file mode 100644
index 000000000000..d725f3209106
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-6.5.3-libxml2-2.12.patch
@@ -0,0 +1,39 @@
+Patch status: fixed in >=chromium-121.0.6104.0 with caveat
+
+Fix build failure[1] with libxml2-2.12 due xmlError changes.
+
+For convenience, use LIBXML_VERSION like webkit did[2] rather than
+chromium's upstream fix[3] which relies on bundled libxml2 always
+being 2.12.x (spares having to use has_version).
+
+When fix lands in qtwebengine, will need to depend on >=libxml2-2.12
+unless Qt decides to do something different considering that cmake
+uses system libxml2 by default and it may be too early to enforce it.
+
+[1] https://bugs.gentoo.org/917601
+[2] 
https://github.com/WebKit/WebKit/commit/1bad176b2496579d760852c80cff3ad9fb7c3a4b
+[3] https://crrev.com/871f8ae9b65ce2679b0bc0be36902d65edf0c1e4
+--- 
a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
++++ 
b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor.h
+@@ -78,5 +78,9 @@
+   void reset();
+ 
++#if LIBXML_VERSION >= 21200
++  static void ParseErrorFunc(void* user_data, const xmlError*);
++#else
+   static void ParseErrorFunc(void* user_data, xmlError*);
++#endif
+   static void GenericErrorFunc(void* user_data, const char* msg, ...);
+ 
+--- 
a/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
++++ 
b/src/3rdparty/chromium/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
+@@ -67,5 +67,9 @@
+ }
+ 
++#if LIBXML_VERSION >= 21200
++void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
++#else
+ void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
++#endif
+   FrameConsole* console = static_cast<FrameConsole*>(user_data);
+   if (!console)

diff --git a/dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild 
b/dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild
index 41ccab685127..0ad7cbecdb1b 100644
--- a/dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-6.5.3.ebuild
@@ -104,6 +104,7 @@ PATCHES+=(
        "${FILESDIR}"/${PN}-6.5.2-libcxx17.patch
        "${FILESDIR}"/${PN}-6.5.2-cstdint.patch
        "${FILESDIR}"/${PN}-6.5.3-icu74.patch
+       "${FILESDIR}"/${PN}-6.5.3-libxml2-2.12.patch
 )
 
 python_check_deps() {

diff --git a/dev-qt/qtwebengine/qtwebengine-6.6.0.ebuild 
b/dev-qt/qtwebengine/qtwebengine-6.6.0.ebuild
index 234c81fd1039..c1271196f83f 100644
--- a/dev-qt/qtwebengine/qtwebengine-6.6.0.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-6.6.0.ebuild
@@ -112,6 +112,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} )
 PATCHES+=(
        # add extras as needed here, may merge in set if carries across versions
        "${FILESDIR}"/${PN}-6.5.3-icu74.patch
+       "${FILESDIR}"/${PN}-6.5.3-libxml2-2.12.patch
 )
 
 python_check_deps() {

diff --git a/dev-qt/qtwebengine/qtwebengine-6.6.9999.ebuild 
b/dev-qt/qtwebengine/qtwebengine-6.6.9999.ebuild
index b5b6023bdcaf..8154731705b2 100644
--- a/dev-qt/qtwebengine/qtwebengine-6.6.9999.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-6.6.9999.ebuild
@@ -112,6 +112,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} )
 PATCHES+=(
        # add extras as needed here, may merge in set if carries across versions
        "${FILESDIR}"/${PN}-6.5.3-icu74.patch
+       "${FILESDIR}"/${PN}-6.5.3-libxml2-2.12.patch
 )
 
 python_check_deps() {

Reply via email to