commit:     ce166ae08848bc2d89d4dce262e4be853714e1bb
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 26 14:34:08 2025 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Feb 26 14:40:09 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce166ae0

dev-python/pyqt6: fix build with Qt 6.9

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-python/pyqt6/files/pyqt6-6.8.1-qt690.patch | 43 ++++++++++++++++++++++++++
 dev-python/pyqt6/pyqt6-6.8.1.ebuild            |  4 +++
 2 files changed, 47 insertions(+)

diff --git a/dev-python/pyqt6/files/pyqt6-6.8.1-qt690.patch 
b/dev-python/pyqt6/files/pyqt6-6.8.1-qt690.patch
new file mode 100644
index 000000000000..898bda7810a5
--- /dev/null
+++ b/dev-python/pyqt6/files/pyqt6-6.8.1-qt690.patch
@@ -0,0 +1,43 @@
+Quick fix to build against (still unreleased) Qt 6.9.
+--- a/qpy/QtCore/qpycore_enums_flags_metatype.cpp
++++ b/qpy/QtCore/qpycore_enums_flags_metatype.cpp
+@@ -46,5 +46,9 @@
+         mti->alignment = alignof(unsigned);
+         mti->size = sizeof(unsigned);
++#if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0)
++        mti->flags = QtPrivate::QMetaTypeForType<unsigned>::flags() | 
QMetaType::IsEnumeration | QMetaType::IsUnsignedEnumeration;
++#else
+         mti->flags = QtPrivate::QMetaTypeForType<unsigned>::Flags | 
QMetaType::IsEnumeration | QMetaType::IsUnsignedEnumeration;
++#endif
+         mti->defaultCtr = 
QtPrivate::QMetaTypeForType<unsigned>::getDefaultCtr();
+         mti->copyCtr = QtPrivate::QMetaTypeForType<unsigned>::getCopyCtr();
+@@ -62,5 +66,9 @@
+         mti->alignment = alignof(int);
+         mti->size = sizeof(int);
++#if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0)
++        mti->flags = QtPrivate::QMetaTypeForType<int>::flags() | 
QMetaType::IsEnumeration;
++#else
+         mti->flags = QtPrivate::QMetaTypeForType<int>::Flags | 
QMetaType::IsEnumeration;
++#endif
+         mti->defaultCtr = QtPrivate::QMetaTypeForType<int>::getDefaultCtr();
+         mti->copyCtr = QtPrivate::QMetaTypeForType<int>::getCopyCtr();
+--- a/sip/QtCore/QtCoremod.sip
++++ b/sip/QtCore/QtCoremod.sip
+@@ -23,5 +23,5 @@
+ %Module(name=PyQt6.QtCore, call_super_init=True, 
default_VirtualErrorHandler=PyQt6, keyword_arguments="Optional", 
use_limited_api=True, py_ssize_t_clean=True)
+ 
+-%Timeline {Qt_6_0_0 Qt_6_1_0 Qt_6_2_0 Qt_6_3_0 Qt_6_4_0 Qt_6_5_0 Qt_6_6_0 
Qt_6_7_0 Qt_6_8_0}
++%Timeline {Qt_6_0_0 Qt_6_1_0 Qt_6_2_0 Qt_6_3_0 Qt_6_4_0 Qt_6_5_0 Qt_6_6_0 
Qt_6_7_0 Qt_6_8_0 Qt_6_9_0}
+ 
+ %Platforms {Android iOS Linux macOS WebAssembly Windows}
+--- a/sip/QtXml/qdom.sip
++++ b/sip/QtXml/qdom.sip
+@@ -159,6 +159,8 @@
+     QDomNodeList(const QDomNodeList &);
+     ~QDomNodeList();
++%If (- Qt_6_9_0)
+     bool operator==(const QDomNodeList &) const;
+     bool operator!=(const QDomNodeList &) const;
++%End
+     QDomNode item(int index) const;
+     QDomNode at(int index) const;

diff --git a/dev-python/pyqt6/pyqt6-6.8.1.ebuild 
b/dev-python/pyqt6/pyqt6-6.8.1.ebuild
index 2e3ee5c6dc7a..dd05b34a7311 100644
--- a/dev-python/pyqt6/pyqt6-6.8.1.ebuild
+++ b/dev-python/pyqt6/pyqt6-6.8.1.ebuild
@@ -97,6 +97,10 @@ BDEPEND="
        dbus? ( virtual/pkgconfig )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-6.8.1-qt690.patch
+)
+
 src_prepare() {
        default
 

Reply via email to