diff --git a/0001-Adapt-to-Qt-6.4.patch b/0001-Adapt-to-Qt-6.4.patch new file mode 100644 index 0000000..1757b78 --- /dev/null +++ b/0001-Adapt-to-Qt-6.4.patch @@ -0,0 +1,203 @@ +From 442b06ae456ec6c3d7eac9826bff43ee36188d07 Mon Sep 17 00:00:00 2001 +From: Friedemann Kleint +Date: Thu, 27 Jan 2022 16:28:19 +0100 +Subject: [PATCH] Adapt to Qt 6.4 + +Change-Id: I46f6291c1c363b1e509ef458e635f97f4423f81b +Reviewed-by: Qt CI Bot +Reviewed-by: Christian Tismer +--- + sources/pyside6/PySide6/QtCore/typesystem_core_common.xml | 4 ++-- + .../pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml | 5 ++++- + sources/pyside6/PySide6/QtNetwork/CMakeLists.txt | 5 ++++- + sources/pyside6/PySide6/QtNetwork/typesystem_network.xml | 2 ++ + .../PySide6/QtTextToSpeech/typesystem_texttospeech.xml | 2 ++ + sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt | 5 +++++ + .../pyside6/PySide6/QtWebSockets/typesystem_websockets.xml | 2 ++ + sources/pyside6/libpyside/signalmanager.cpp | 1 + + sources/pyside6/libpysideqml/pysideqmlregistertype.cpp | 4 +--- + .../files.dir/shibokensupport/signature/mapping.py | 3 ++- + 10 files changed, 25 insertions(+), 8 deletions(-) + +diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml +index 7b53c247a..522fe52fb 100644 +--- a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml ++++ b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml +@@ -2534,7 +2534,7 @@ + + +- ++ + + + +@@ -3121,7 +3121,7 @@ + + + +- ++ + + + +diff --git a/sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml b/sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml +index b264a4eb2..7d59b4398 100644 +--- a/sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml ++++ b/sources/pyside6/PySide6/QtMultimedia/typesystem_multimedia.xml +@@ -12,7 +12,7 @@ + + + +- ++ + + + +@@ -140,6 +140,9 @@ + + + ++ ++ ++ + + + +diff --git a/sources/pyside6/PySide6/QtNetwork/CMakeLists.txt b/sources/pyside6/PySide6/QtNetwork/CMakeLists.txt +index 2eb360b61..eadd3b982 100644 +--- a/sources/pyside6/PySide6/QtNetwork/CMakeLists.txt ++++ b/sources/pyside6/PySide6/QtNetwork/CMakeLists.txt +@@ -53,7 +53,7 @@ get_property(QtNetwork_disabled_features TARGET Qt${QT_MAJOR_VERSION}::Network + if("ssl" IN_LIST QtNetwork_disabled_features) + list(APPEND QtNetwork_DROPPED_ENTRIES QOcspResponse QSslCipher + QSslConfiguration QSslDiffieHellmanParameters QSslError +- QSslKey QSslPreSharedKeyAuthenticator QSslSocket) ++ QSslKey QSslPreSharedKeyAuthenticator QSslSocket QSslServer) + message(STATUS "Qt${QT_MAJOR_VERSION}Network: Dropping SSL classes") + else() + # Problems with operator==(QSslEllipticCurve,QSslEllipticCurve) +@@ -67,6 +67,9 @@ else() + ${QtNetwork_GEN_DIR}/qsslpresharedkeyauthenticator_wrapper.cpp + ${QtNetwork_GEN_DIR}/qsslsocket_wrapper.cpp + ${QtNetwork_GEN_DIR}/qocspresponse_wrapper.cpp) ++ if (Qt${QT_MAJOR_VERSION}Network_VERSION VERSION_GREATER_EQUAL 6.4.0) ++ list(APPEND QtNetwork_SRC ${QtNetwork_GEN_DIR}/qsslserver_wrapper.cpp) ++ endif() + message(STATUS "Qt${QT_MAJOR_VERSION}Network: Adding SSL classes") + endif() + +diff --git a/sources/pyside6/PySide6/QtNetwork/typesystem_network.xml b/sources/pyside6/PySide6/QtNetwork/typesystem_network.xml +index 3e21dd398..e58eb0ccc 100644 +--- a/sources/pyside6/PySide6/QtNetwork/typesystem_network.xml ++++ b/sources/pyside6/PySide6/QtNetwork/typesystem_network.xml +@@ -286,6 +286,8 @@ + + + ++ ++ + + + +diff --git a/sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml b/sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml +index 61e021aa8..4a0b4482a 100644 +--- a/sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml ++++ b/sources/pyside6/PySide6/QtTextToSpeech/typesystem_texttospeech.xml +@@ -8,6 +8,8 @@ + + + ++ ++ + + + +diff --git a/sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt b/sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt +index 0166f5767..657554a5e 100644 +--- a/sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt ++++ b/sources/pyside6/PySide6/QtWebSockets/CMakeLists.txt +@@ -10,6 +10,11 @@ ${QtWebSockets_GEN_DIR}/qwebsocketserver_wrapper.cpp + ${QtWebSockets_GEN_DIR}/qtwebsockets_module_wrapper.cpp + ) + ++if (Qt${QT_MAJOR_VERSION}WebSockets_VERSION VERSION_GREATER_EQUAL 6.4.0) ++ list(APPEND QtWebSockets_SRC ++ ${QtWebSockets_GEN_DIR}/qwebsockethandshakeoptions_wrapper.cpp) ++endif() ++ + set(QtWebSockets_include_dirs ${QtWebSockets_SOURCE_DIR} + ${QtWebSockets_BINARY_DIR} + ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS} +diff --git a/sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml b/sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml +index 7d4552e0a..914c8ce81 100644 +--- a/sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml ++++ b/sources/pyside6/PySide6/QtWebSockets/typesystem_websockets.xml +@@ -17,6 +17,8 @@ + + + ++ ++ + + + +diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp +index 828194e1e..f3f12cb72 100644 +--- a/sources/pyside6/libpyside/signalmanager.cpp ++++ b/sources/pyside6/libpyside/signalmanager.cpp +@@ -439,6 +439,7 @@ int SignalManager::qt_metacall(QObject *object, QMetaObject::Call call, int id, + case QMetaObject::CreateInstance: + case QMetaObject::IndexOfMethod: + case QMetaObject::RegisterMethodArgumentMetaType: ++ case QMetaObject::CustomCall: + id -= object->metaObject()->methodCount(); + break; + } +diff --git a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp +index 5857a8f9f..26398ae76 100644 +--- a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp ++++ b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp +@@ -111,7 +111,6 @@ int qmlRegisterType(PyObject *pyObj, const char *uri, int versionMajor, + const bool isQuickType = quickRegisterItemFunction && quickRegisterItemFunction(pyObj, &type); + + // Register as simple QObject rather than Qt Quick item. +- using QObjectQmlList = QQmlListProperty; + // Incref the type object, don't worry about decref'ing it because + // there's no way to unregister a QML type. + Py_INCREF(pyObj); +@@ -122,9 +121,8 @@ int qmlRegisterType(PyObject *pyObj, const char *uri, int versionMajor, + QByteArray ptrType = typeName + '*'; + QByteArray listType = QByteArrayLiteral("QQmlListProperty<") + typeName + '>'; + +- type.typeId = QMetaType(new QQmlMetaTypeInterface(ptrType, static_cast(nullptr))); ++ type.typeId = QMetaType(new QQmlMetaTypeInterface(ptrType)); + type.listId = QMetaType(new QQmlListMetaTypeInterface(listType, +- static_cast(nullptr), + type.typeId.iface())); + const auto typeInfo = qmlTypeInfo(pyObj); + auto info = qmlAttachedInfo(pyObjType, typeInfo); +diff --git a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py +index a71210c72..2118d7e39 100644 +--- a/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py ++++ b/sources/shiboken6/shibokenmodule/files.dir/shibokensupport/signature/mapping.py +@@ -330,6 +330,7 @@ type_map.update({ + "qint32*" : ResultVariable(int), + "qint64*" : ResultVariable(int), + "qreal*" : ResultVariable(float), ++ "qsizetype*" : ResultVariable(int), + "QString*" : ResultVariable(str), + "qintptr*" : ResultVariable(int), + "quintptr*" : ResultVariable(int), +@@ -574,7 +575,7 @@ def init_PySide6_QtWidgets(): + def init_PySide6_QtSql(): + from PySide6.QtSql import QSqlDatabase + type_map.update({ +- "QLatin1String(QSqlDatabase.defaultConnection)": QSqlDatabase.defaultConnection, ++ "QLatin1StringView(QSqlDatabase.defaultConnection)": QSqlDatabase.defaultConnection, + "QVariant.Invalid": Invalid("Variant"), # not sure what I should create, here... + }) + return locals() +-- +2.37.3 + diff --git a/python3-pyside6.changes b/python3-pyside6.changes index a678088..0319f21 100644 --- a/python3-pyside6.changes +++ b/python3-pyside6.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Sep 30 20:54:07 UTC 2022 - Christophe Giboudeaux + +- Add Qt 6.4 compatibility patch: + * 0001-Adapt-to-Qt-6.4.patch +- Add QtQuick3D and QtSpeech bindings +- Disable a failing test when building with Qt 6.4 + ------------------------------------------------------------------- Tue Sep 13 06:51:16 UTC 2022 - Christophe Giboudeaux diff --git a/python3-pyside6.spec b/python3-pyside6.spec index ec90a57..bda86dd 100644 --- a/python3-pyside6.spec +++ b/python3-pyside6.spec @@ -35,6 +35,8 @@ Source: https://download.qt.io/official_releases/QtForPython/pyside6/PyS Patch0: 0001-Don-t-install-CMake-files-into-versioned-directories.patch # PATCH-FIX-OPENSUSE Patch1: 0001-Always-link-to-python-libraries.patch +# PATCH-FIX-UPSTREAM +Patch2: 0001-Adapt-to-Qt-6.4.patch # SECTION common_dependencies BuildRequires: clang-devel BuildRequires: fdupes @@ -88,6 +90,7 @@ BuildRequires: cmake(Qt6OpenGLWidgets) BuildRequires: cmake(Qt6Positioning) BuildRequires: cmake(Qt6Qml) BuildRequires: cmake(Qt6Quick) +BuildRequires: cmake(Qt6Quick3D) BuildRequires: cmake(Qt6QuickControls2) BuildRequires: cmake(Qt6QuickWidgets) BuildRequires: cmake(Qt6RemoteObjects) @@ -97,6 +100,7 @@ BuildRequires: cmake(Qt6SerialPort) BuildRequires: cmake(Qt6StateMachine) BuildRequires: cmake(Qt6Svg) BuildRequires: cmake(Qt6SvgWidgets) +BuildRequires: cmake(Qt6TextToSpeech) BuildRequires: cmake(Qt6UiPlugin) BuildRequires: cmake(Qt6UiTools) BuildRequires: cmake(Qt6WebChannel) @@ -196,12 +200,13 @@ done %define xvfb_command xvfb-run -s "-screen 0 1600x1200x16 -ac +extension GLX +render -noreset" \\ %define excluded_tests 1 -# Excluded tests (last update: 2022-06-22) +# Excluded tests (last update: 2022-10-01) # registry_existence_test only works on the Qt CI # The QtWebEngineWidgets_pyside-474-qtwebengineview and QtWebEngineCore tests # pass locally but not on the build service (SIGTRAP) # QtGui_qpen_test times out -ctest_exclude_regex="registry_existence_test|QtWebEngineWidgets_pyside-474-qtwebengineview|QtWebEngineCore.*|QtGui_qpen_test" +# QtMultimediaWidgets_qmultimediawidgets aborts +ctest_exclude_regex="registry_existence_test|QtWebEngineWidgets_pyside-474-qtwebengineview|QtWebEngineCore.*|QtGui_qpen_test|QtMultimediaWidgets_qmultimediawidgets" # Qt3DExtras_qt3dextras_test fails on aarch64 (exception) and s390x (timeout) %ifarch aarch64 s390x ctest_exclude_regex="$ctest_exclude_regex|Qt3DExtras_qt3dextras_test"