commit:     2e53face582e29ee3553720d0a102d176398809f
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Tue Mar  5 14:02:29 2024 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Tue Mar  5 14:02:29 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2e53face

dev-python/pyotherside: add missing qt6 patch

Aaargh.

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 .../files/pyotherside-1.6.0-qt6.5.patch            | 34 ++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch 
b/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch
new file mode 100644
index 000000000000..08844cc8338d
--- /dev/null
+++ b/dev-python/pyotherside/files/pyotherside-1.6.0-qt6.5.patch
@@ -0,0 +1,34 @@
+From 45044252aaf73262cd46443acd049e7afcdf072b Mon Sep 17 00:00:00 2001
+From: Thomas Perl <m...@thp.io>
+Date: Sat, 2 Dec 2023 18:46:06 +0100
+Subject: [PATCH] Fix build error with Qt >= 6.5 (fixes #128)
+
+--- a/src/qpython_priv.cpp
++++ b/src/qpython_priv.cpp
+@@ -405,8 +405,25 @@ pyotherside_QObjectMethod_call(PyObject *callable_object, 
PyObject *args, PyObje
+             }
+ 
+             QVariant result;
++#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0)
++            QGenericReturnArgument returnArg = Q_RETURN_ARG(QVariant, result);
++#else
++            /**
++             * Starting with Qt 6.5, Q_RETURN_ARG() expands to a 
QMetaMethodReturnArgument,
++             * whereas previously it returned a QGenericReturnArgument. Since 
we are using
++             * the old, deprecated QMetaMethod::invoke() functions, and those 
take a
++             * QGenericReturnArgument and not a QMetaMethodReturnArgument, we 
need to
++             * create the QGenericReturnArgument ourselves by emulating what 
Q_RETURN_ARG()
++             * does in old Qt versions before 6.5.
++             *
++             * See also:
++             * https://bugreports.qt.io/browse/QTBUG-113147
++             * https://github.com/thp/pyotherside/issues/128
++             **/
++            QGenericReturnArgument returnArg {QT_STRINGIFY(QVariant), 
&result};
++#endif
+             if (method.invoke(o, Qt::DirectConnection,
+-                    Q_RETURN_ARG(QVariant, result), genericArguments.value(0),
++                    returnArg, genericArguments.value(0),
+                     genericArguments.value(1), genericArguments.value(2),
+                     genericArguments.value(3), genericArguments.value(4),
+                     genericArguments.value(5), genericArguments.value(6),

Reply via email to