diff --git a/files/qt_quick_crash_fix.patch b/files/qt_quick_crash_fix.patch deleted file mode 100644 --- a/files/qt_quick_crash_fix.patch +++ /dev/null @@ -1,721 +0,0 @@ -Description: upstream fixes related to Qt Quick support - - Handle QQuickWindow and QQuickView as special cases (cf. QQuickItem) - when exposing sub-classes to QML. - - Fixed the handling of QQuickItem and similar classes so that the - correct meta-object is returned by metaObject(). - - Improved the fix for QtQuick meta-objects so that the - customgeometry.py example works again. -Origin: upstream, changesets 78085eee5e7e, 8bf883e1619f and 7facd5e24cbb -Bug: https://bugs.launchpad.net/bugs/1766092 -Last-Update: 2018-04-23 - -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquick_register_type.cpp -=================================================================== ---- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquick_register_type.cpp -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquick_register_type.cpp -@@ -22,6 +22,8 @@ - #include "qpyquickframebufferobject.h" - #include "qpyquickitem.h" - #include "qpyquickpainteditem.h" -+#include "qpyquickview.h" -+#include "qpyquickwindow.h" - - #include "sipAPIQtQuick.h" - -@@ -30,6 +32,9 @@ sipErrorState qpyquick_register_type(PyT - const QMetaObject *mo, const QByteArray &ptr_name, - const QByteArray &list_name, QQmlPrivate::RegisterType **rtp) - { -+ // Make sure the types are tested in the right order (ie. more specific -+ // types first). -+ - #if QT_VERSION >= 0x050200 - if (PyType_IsSubtype(py_type, sipTypeAsPyTypeObject(sipType_QQuickFramebufferObject))) - return ((*rtp = QPyQuickFramebufferObject::addType(py_type, mo, ptr_name, list_name)) ? sipErrorNone : sipErrorFail); -@@ -41,6 +46,12 @@ sipErrorState qpyquick_register_type(PyT - if (PyType_IsSubtype(py_type, sipTypeAsPyTypeObject(sipType_QQuickItem))) - return ((*rtp = QPyQuickItem::addType(py_type, mo, ptr_name, list_name)) ? sipErrorNone : sipErrorFail); - -+ if (PyType_IsSubtype(py_type, sipTypeAsPyTypeObject(sipType_QQuickView))) -+ return ((*rtp = QPyQuickView::addType(py_type, mo, ptr_name, list_name)) ? sipErrorNone : sipErrorFail); -+ -+ if (PyType_IsSubtype(py_type, sipTypeAsPyTypeObject(sipType_QQuickWindow))) -+ return ((*rtp = QPyQuickWindow::addType(py_type, mo, ptr_name, list_name)) ? sipErrorNone : sipErrorFail); -+ - // We don't recognise the type. - return sipErrorContinue; - } -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickframebufferobject.cpp -=================================================================== ---- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickframebufferobject.cpp -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickframebufferobject.cpp -@@ -37,6 +37,10 @@ static QList pyqt_types; - - // The registration data for the canned types. - static QQmlPrivate::RegisterType canned_types[NrOfQuickFramebufferObjectTypes]; -+ -+// External declarations. -+extern const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, -+ const QMetaObject *static_mo); - - - #define QPYQUICKFRAMEBUFFEROBJECT_INIT(n) \ -@@ -143,6 +147,10 @@ QPyQuickFramebufferObject##n::QPyQuickFr - { \ - createPyObject(parent); \ - } \ -+const QMetaObject *QPyQuickFramebufferObject##n::metaObject() const \ -+{ \ -+ return qpyquick_pick_metaobject(QPyQuickFramebufferObject::metaObject(), &staticMetaObject); \ -+} \ - QMetaObject QPyQuickFramebufferObject##n::staticMetaObject - - -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickframebufferobject.h -=================================================================== ---- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickframebufferobject.h -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickframebufferobject.h -@@ -58,6 +58,7 @@ class QPyQuickFramebufferObject##n : pub - public: \ - QPyQuickFramebufferObject##n(QQuickItem *parent = 0); \ - static QMetaObject staticMetaObject; \ -+ virtual const QMetaObject *metaObject() const; \ - virtual int typeNr() const {return n##U;} \ - private: \ - QPyQuickFramebufferObject##n(const QPyQuickFramebufferObject##n &); \ -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickitem.cpp -=================================================================== ---- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickitem.cpp -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickitem.cpp -@@ -37,6 +37,22 @@ static QList pyqt_types; - static QQmlPrivate::RegisterType canned_types[NrOfQuickItemTypes]; - - -+// Pick the correct meta-object, either the one from the super-class or the -+// static meta-object. -+const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, -+ const QMetaObject *static_mo) -+{ -+ // If a Python type has been sub-classed in QML then we need to use the -+ // QtQuick supplied meta-object. In this case it's super-class meta-object -+ // will be the meta-object of the Python type. Otherwise we need to use -+ // the static meta-object (which is a copy of the meta-object of the Python -+ // type). We use the class names held by the meta-objects to determine the -+ // correct meta-object to return. -+ -+ return (qstrcmp(super_mo->superClass()->className(), static_mo->className()) == 0) ? super_mo : static_mo; -+} -+ -+ - #define QPYQUICKITEM_INIT(n) \ - case n##U: \ - QPyQuickItem##n::staticMetaObject = *mo; \ -@@ -140,6 +156,10 @@ QPyQuickItem##n::QPyQuickItem##n(QQuickI - { \ - createPyObject(parent); \ - } \ -+const QMetaObject *QPyQuickItem##n::metaObject() const \ -+{ \ -+ return qpyquick_pick_metaobject(QPyQuickItem::metaObject(), &staticMetaObject); \ -+} \ - QMetaObject QPyQuickItem##n::staticMetaObject - - -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickitem.h -=================================================================== ---- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickitem.h -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickitem.h -@@ -56,6 +56,7 @@ class QPyQuickItem##n : public QPyQuickI - public: \ - QPyQuickItem##n(QQuickItem *parent = 0); \ - static QMetaObject staticMetaObject; \ -+ virtual const QMetaObject *metaObject() const; \ - virtual int typeNr() const {return n##U;} \ - private: \ - QPyQuickItem##n(const QPyQuickItem##n &); \ -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickpainteditem.cpp -=================================================================== ---- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickpainteditem.cpp -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickpainteditem.cpp -@@ -36,6 +36,10 @@ static QList pyqt_types; - // The registration data for the canned types. - static QQmlPrivate::RegisterType canned_types[NrOfQuickPaintedItemTypes]; - -+// External declarations. -+extern const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, -+ const QMetaObject *static_mo); -+ - - #define QPYQUICKPAINTEDITEM_INIT(n) \ - case n##U: \ -@@ -141,6 +145,10 @@ QPyQuickPaintedItem##n::QPyQuickPaintedI - { \ - createPyObject(parent); \ - } \ -+const QMetaObject *QPyQuickPaintedItem##n::metaObject() const \ -+{ \ -+ return qpyquick_pick_metaobject(QPyQuickPaintedItem::metaObject(), &staticMetaObject); \ -+} \ - QMetaObject QPyQuickPaintedItem##n::staticMetaObject - - -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickpainteditem.h -=================================================================== ---- PyQt5_gpl-5.10.1.orig/qpy/QtQuick/qpyquickpainteditem.h -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickpainteditem.h -@@ -56,6 +56,7 @@ class QPyQuickPaintedItem##n : public QP - public: \ - QPyQuickPaintedItem##n(QQuickItem *parent = 0); \ - static QMetaObject staticMetaObject; \ -+ virtual const QMetaObject *metaObject() const; \ - virtual int typeNr() const {return n##U;} \ - private: \ - QPyQuickPaintedItem##n(const QPyQuickPaintedItem##n &); \ -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.cpp -=================================================================== ---- /dev/null -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.cpp -@@ -0,0 +1,163 @@ -+// This is the implementation of the QPyQuickWindow classes. -+// -+// Copyright (c) 2018 Riverbank Computing Limited -+// -+// This file is part of PyQt5. -+// -+// This file may be used under the terms of the GNU General Public License -+// version 3.0 as published by the Free Software Foundation and appearing in -+// the file LICENSE included in the packaging of this file. Please review the -+// following information to ensure the GNU General Public License version 3.0 -+// requirements will be met: http://www.gnu.org/copyleft/gpl.html. -+// -+// If you do not wish to use this file under the terms of the GPL version 3.0 -+// then you may purchase a commercial license. For more information contact -+// info@riverbankcomputing.com. -+// -+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -+ -+ -+#include -+ -+#include -+ -+#include "qpyquickview.h" -+ -+#include "sipAPIQtQuick.h" -+ -+ -+// The maximum number of Python QQuickView types. -+const int NrOfQuickViewTypes = 20; -+ -+// The list of registered Python types. -+static QList pyqt_types; -+ -+// The registration data for the canned types. -+static QQmlPrivate::RegisterType canned_types[NrOfQuickViewTypes]; -+ -+// External declarations. -+extern const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, -+ const QMetaObject *static_mo); -+ -+ -+#define QPYQUICKVIEW_INIT(n) \ -+ case n##U: \ -+ QPyQuickView##n::staticMetaObject = *mo; \ -+ rt->typeId = qRegisterNormalizedMetaType(ptr_name); \ -+ rt->listId = qRegisterNormalizedMetaType >(list_name); \ -+ rt->objectSize = sizeof(QPyQuickView##n); \ -+ rt->create = QQmlPrivate::createInto; \ -+ rt->metaObject = mo; \ -+ rt->attachedPropertiesFunction = QQmlPrivate::attachedPropertiesFunc(); \ -+ rt->attachedPropertiesMetaObject = QQmlPrivate::attachedPropertiesMetaObject(); \ -+ rt->parserStatusCast = QQmlPrivate::StaticCastSelector::cast(); \ -+ rt->valueSourceCast = QQmlPrivate::StaticCastSelector::cast(); \ -+ rt->valueInterceptorCast = QQmlPrivate::StaticCastSelector::cast(); \ -+ break -+ -+ -+// The ctor. -+QPyQuickView::QPyQuickView(QWindow *parent) : sipQQuickView(parent) -+{ -+} -+ -+ -+// Add a new Python type and return its number. -+QQmlPrivate::RegisterType *QPyQuickView::addType(PyTypeObject *type, -+ const QMetaObject *mo, const QByteArray &ptr_name, -+ const QByteArray &list_name) -+{ -+ int type_nr = pyqt_types.size(); -+ -+ // Check we have a spare canned type. -+ if (type_nr >= NrOfQuickViewTypes) -+ { -+ PyErr_Format(PyExc_TypeError, -+ "a maximum of %d QQuickView types may be registered with QML", -+ NrOfQuickViewTypes); -+ return 0; -+ } -+ -+ pyqt_types.append(type); -+ -+ QQmlPrivate::RegisterType *rt = &canned_types[type_nr]; -+ -+ // Initialise those members that depend on the C++ type. -+ switch (type_nr) -+ { -+ QPYQUICKVIEW_INIT(0); -+ QPYQUICKVIEW_INIT(1); -+ QPYQUICKVIEW_INIT(2); -+ QPYQUICKVIEW_INIT(3); -+ QPYQUICKVIEW_INIT(4); -+ QPYQUICKVIEW_INIT(5); -+ QPYQUICKVIEW_INIT(6); -+ QPYQUICKVIEW_INIT(7); -+ QPYQUICKVIEW_INIT(8); -+ QPYQUICKVIEW_INIT(9); -+ QPYQUICKVIEW_INIT(10); -+ QPYQUICKVIEW_INIT(11); -+ QPYQUICKVIEW_INIT(12); -+ QPYQUICKVIEW_INIT(13); -+ QPYQUICKVIEW_INIT(14); -+ QPYQUICKVIEW_INIT(15); -+ QPYQUICKVIEW_INIT(16); -+ QPYQUICKVIEW_INIT(17); -+ QPYQUICKVIEW_INIT(18); -+ QPYQUICKVIEW_INIT(19); -+ } -+ -+ return rt; -+} -+ -+ -+// Create the Python instance. -+void QPyQuickView::createPyObject(QWindow *parent) -+{ -+ SIP_BLOCK_THREADS -+ -+ // Assume C++ owns everything. -+ PyObject *obj = sipConvertFromNewPyType(this, pyqt_types.at(typeNr()), -+ NULL, &sipPySelf, "D", parent, sipType_QWindow, NULL); -+ -+ if (!obj) -+ pyqt5_qtquick_err_print(); -+ -+ SIP_UNBLOCK_THREADS -+} -+ -+ -+// The canned type implementations. -+#define QPYQUICKVIEW_IMPL(n) \ -+QPyQuickView##n::QPyQuickView##n(QWindow *parent) : QPyQuickView(parent) \ -+{ \ -+ createPyObject(parent); \ -+} \ -+const QMetaObject *QPyQuickView##n::metaObject() const \ -+{ \ -+ return qpyquick_pick_metaobject(QPyQuickView::metaObject(), &staticMetaObject); \ -+} \ -+QMetaObject QPyQuickView##n::staticMetaObject -+ -+ -+QPYQUICKVIEW_IMPL(0); -+QPYQUICKVIEW_IMPL(1); -+QPYQUICKVIEW_IMPL(2); -+QPYQUICKVIEW_IMPL(3); -+QPYQUICKVIEW_IMPL(4); -+QPYQUICKVIEW_IMPL(5); -+QPYQUICKVIEW_IMPL(6); -+QPYQUICKVIEW_IMPL(7); -+QPYQUICKVIEW_IMPL(8); -+QPYQUICKVIEW_IMPL(9); -+QPYQUICKVIEW_IMPL(10); -+QPYQUICKVIEW_IMPL(11); -+QPYQUICKVIEW_IMPL(12); -+QPYQUICKVIEW_IMPL(13); -+QPYQUICKVIEW_IMPL(14); -+QPYQUICKVIEW_IMPL(15); -+QPYQUICKVIEW_IMPL(16); -+QPYQUICKVIEW_IMPL(17); -+QPYQUICKVIEW_IMPL(18); -+QPYQUICKVIEW_IMPL(19); -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.h -=================================================================== ---- /dev/null -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.h -@@ -0,0 +1,88 @@ -+// This is the definition of the QPyQuickView classes. -+// -+// Copyright (c) 2018 Riverbank Computing Limited -+// -+// This file is part of PyQt5. -+// -+// This file may be used under the terms of the GNU General Public License -+// version 3.0 as published by the Free Software Foundation and appearing in -+// the file LICENSE included in the packaging of this file. Please review the -+// following information to ensure the GNU General Public License version 3.0 -+// requirements will be met: http://www.gnu.org/copyleft/gpl.html. -+// -+// If you do not wish to use this file under the terms of the GPL version 3.0 -+// then you may purchase a commercial license. For more information contact -+// info@riverbankcomputing.com. -+// -+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -+ -+ -+#ifndef _QPYQUICKVIEW_H -+#define _QPYQUICKVIEW_H -+ -+ -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include "sipAPIQtQuick.h" -+ -+ -+class QPyQuickView : public sipQQuickView -+{ -+public: -+ QPyQuickView(QWindow *parent = 0); -+ -+ virtual int typeNr() const = 0; -+ -+ static QQmlPrivate::RegisterType *addType(PyTypeObject *type, -+ const QMetaObject *mo, const QByteArray &ptr_name, -+ const QByteArray &list_name); -+ void createPyObject(QWindow *parent); -+ -+private: -+ QPyQuickView(const QPyQuickView &); -+}; -+ -+ -+// The canned type declarations. -+#define QPYQUICKVIEW_DECL(n) \ -+class QPyQuickView##n : public QPyQuickView \ -+{ \ -+public: \ -+ QPyQuickView##n(QWindow *parent = 0); \ -+ static QMetaObject staticMetaObject; \ -+ virtual const QMetaObject *metaObject() const; \ -+ virtual int typeNr() const {return n##U;} \ -+private: \ -+ QPyQuickView##n(const QPyQuickView##n &); \ -+} -+ -+ -+QPYQUICKVIEW_DECL(0); -+QPYQUICKVIEW_DECL(1); -+QPYQUICKVIEW_DECL(2); -+QPYQUICKVIEW_DECL(3); -+QPYQUICKVIEW_DECL(4); -+QPYQUICKVIEW_DECL(5); -+QPYQUICKVIEW_DECL(6); -+QPYQUICKVIEW_DECL(7); -+QPYQUICKVIEW_DECL(8); -+QPYQUICKVIEW_DECL(9); -+QPYQUICKVIEW_DECL(10); -+QPYQUICKVIEW_DECL(11); -+QPYQUICKVIEW_DECL(12); -+QPYQUICKVIEW_DECL(13); -+QPYQUICKVIEW_DECL(14); -+QPYQUICKVIEW_DECL(15); -+QPYQUICKVIEW_DECL(16); -+QPYQUICKVIEW_DECL(17); -+QPYQUICKVIEW_DECL(18); -+QPYQUICKVIEW_DECL(19); -+ -+ -+#endif -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.cpp -=================================================================== ---- /dev/null -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.cpp -@@ -0,0 +1,163 @@ -+// This is the implementation of the QPyQuickWindow classes. -+// -+// Copyright (c) 2018 Riverbank Computing Limited -+// -+// This file is part of PyQt5. -+// -+// This file may be used under the terms of the GNU General Public License -+// version 3.0 as published by the Free Software Foundation and appearing in -+// the file LICENSE included in the packaging of this file. Please review the -+// following information to ensure the GNU General Public License version 3.0 -+// requirements will be met: http://www.gnu.org/copyleft/gpl.html. -+// -+// If you do not wish to use this file under the terms of the GPL version 3.0 -+// then you may purchase a commercial license. For more information contact -+// info@riverbankcomputing.com. -+// -+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -+ -+ -+#include -+ -+#include -+ -+#include "qpyquickwindow.h" -+ -+#include "sipAPIQtQuick.h" -+ -+ -+// The maximum number of Python QQuickWindow types. -+const int NrOfQuickWindowTypes = 20; -+ -+// The list of registered Python types. -+static QList pyqt_types; -+ -+// The registration data for the canned types. -+static QQmlPrivate::RegisterType canned_types[NrOfQuickWindowTypes]; -+ -+// External declarations. -+extern const QMetaObject *qpyquick_pick_metaobject(const QMetaObject *super_mo, -+ const QMetaObject *static_mo); -+ -+ -+#define QPYQUICKWINDOW_INIT(n) \ -+ case n##U: \ -+ QPyQuickWindow##n::staticMetaObject = *mo; \ -+ rt->typeId = qRegisterNormalizedMetaType(ptr_name); \ -+ rt->listId = qRegisterNormalizedMetaType >(list_name); \ -+ rt->objectSize = sizeof(QPyQuickWindow##n); \ -+ rt->create = QQmlPrivate::createInto; \ -+ rt->metaObject = mo; \ -+ rt->attachedPropertiesFunction = QQmlPrivate::attachedPropertiesFunc(); \ -+ rt->attachedPropertiesMetaObject = QQmlPrivate::attachedPropertiesMetaObject(); \ -+ rt->parserStatusCast = QQmlPrivate::StaticCastSelector::cast(); \ -+ rt->valueSourceCast = QQmlPrivate::StaticCastSelector::cast(); \ -+ rt->valueInterceptorCast = QQmlPrivate::StaticCastSelector::cast(); \ -+ break -+ -+ -+// The ctor. -+QPyQuickWindow::QPyQuickWindow(QWindow *parent) : sipQQuickWindow(parent) -+{ -+} -+ -+ -+// Add a new Python type and return its number. -+QQmlPrivate::RegisterType *QPyQuickWindow::addType(PyTypeObject *type, -+ const QMetaObject *mo, const QByteArray &ptr_name, -+ const QByteArray &list_name) -+{ -+ int type_nr = pyqt_types.size(); -+ -+ // Check we have a spare canned type. -+ if (type_nr >= NrOfQuickWindowTypes) -+ { -+ PyErr_Format(PyExc_TypeError, -+ "a maximum of %d QQuickWindow types may be registered with QML", -+ NrOfQuickWindowTypes); -+ return 0; -+ } -+ -+ pyqt_types.append(type); -+ -+ QQmlPrivate::RegisterType *rt = &canned_types[type_nr]; -+ -+ // Initialise those members that depend on the C++ type. -+ switch (type_nr) -+ { -+ QPYQUICKWINDOW_INIT(0); -+ QPYQUICKWINDOW_INIT(1); -+ QPYQUICKWINDOW_INIT(2); -+ QPYQUICKWINDOW_INIT(3); -+ QPYQUICKWINDOW_INIT(4); -+ QPYQUICKWINDOW_INIT(5); -+ QPYQUICKWINDOW_INIT(6); -+ QPYQUICKWINDOW_INIT(7); -+ QPYQUICKWINDOW_INIT(8); -+ QPYQUICKWINDOW_INIT(9); -+ QPYQUICKWINDOW_INIT(10); -+ QPYQUICKWINDOW_INIT(11); -+ QPYQUICKWINDOW_INIT(12); -+ QPYQUICKWINDOW_INIT(13); -+ QPYQUICKWINDOW_INIT(14); -+ QPYQUICKWINDOW_INIT(15); -+ QPYQUICKWINDOW_INIT(16); -+ QPYQUICKWINDOW_INIT(17); -+ QPYQUICKWINDOW_INIT(18); -+ QPYQUICKWINDOW_INIT(19); -+ } -+ -+ return rt; -+} -+ -+ -+// Create the Python instance. -+void QPyQuickWindow::createPyObject(QWindow *parent) -+{ -+ SIP_BLOCK_THREADS -+ -+ // Assume C++ owns everything. -+ PyObject *obj = sipConvertFromNewPyType(this, pyqt_types.at(typeNr()), -+ NULL, &sipPySelf, "D", parent, sipType_QWindow, NULL); -+ -+ if (!obj) -+ pyqt5_qtquick_err_print(); -+ -+ SIP_UNBLOCK_THREADS -+} -+ -+ -+// The canned type implementations. -+#define QPYQUICKWINDOW_IMPL(n) \ -+QPyQuickWindow##n::QPyQuickWindow##n(QWindow *parent) : QPyQuickWindow(parent) \ -+{ \ -+ createPyObject(parent); \ -+} \ -+const QMetaObject *QPyQuickWindow##n::metaObject() const \ -+{ \ -+ return qpyquick_pick_metaobject(QPyQuickWindow::metaObject(), &staticMetaObject); \ -+} \ -+QMetaObject QPyQuickWindow##n::staticMetaObject -+ -+ -+QPYQUICKWINDOW_IMPL(0); -+QPYQUICKWINDOW_IMPL(1); -+QPYQUICKWINDOW_IMPL(2); -+QPYQUICKWINDOW_IMPL(3); -+QPYQUICKWINDOW_IMPL(4); -+QPYQUICKWINDOW_IMPL(5); -+QPYQUICKWINDOW_IMPL(6); -+QPYQUICKWINDOW_IMPL(7); -+QPYQUICKWINDOW_IMPL(8); -+QPYQUICKWINDOW_IMPL(9); -+QPYQUICKWINDOW_IMPL(10); -+QPYQUICKWINDOW_IMPL(11); -+QPYQUICKWINDOW_IMPL(12); -+QPYQUICKWINDOW_IMPL(13); -+QPYQUICKWINDOW_IMPL(14); -+QPYQUICKWINDOW_IMPL(15); -+QPYQUICKWINDOW_IMPL(16); -+QPYQUICKWINDOW_IMPL(17); -+QPYQUICKWINDOW_IMPL(18); -+QPYQUICKWINDOW_IMPL(19); -Index: PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.h -=================================================================== ---- /dev/null -+++ PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.h -@@ -0,0 +1,88 @@ -+// This is the definition of the QPyQuickWindow classes. -+// -+// Copyright (c) 2018 Riverbank Computing Limited -+// -+// This file is part of PyQt5. -+// -+// This file may be used under the terms of the GNU General Public License -+// version 3.0 as published by the Free Software Foundation and appearing in -+// the file LICENSE included in the packaging of this file. Please review the -+// following information to ensure the GNU General Public License version 3.0 -+// requirements will be met: http://www.gnu.org/copyleft/gpl.html. -+// -+// If you do not wish to use this file under the terms of the GPL version 3.0 -+// then you may purchase a commercial license. For more information contact -+// info@riverbankcomputing.com. -+// -+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -+ -+ -+#ifndef _QPYQUICKWINDOW_H -+#define _QPYQUICKWINDOW_H -+ -+ -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include "sipAPIQtQuick.h" -+ -+ -+class QPyQuickWindow : public sipQQuickWindow -+{ -+public: -+ QPyQuickWindow(QWindow *parent = 0); -+ -+ virtual int typeNr() const = 0; -+ -+ static QQmlPrivate::RegisterType *addType(PyTypeObject *type, -+ const QMetaObject *mo, const QByteArray &ptr_name, -+ const QByteArray &list_name); -+ void createPyObject(QWindow *parent); -+ -+private: -+ QPyQuickWindow(const QPyQuickWindow &); -+}; -+ -+ -+// The canned type declarations. -+#define QPYQUICKWINDOW_DECL(n) \ -+class QPyQuickWindow##n : public QPyQuickWindow \ -+{ \ -+public: \ -+ QPyQuickWindow##n(QWindow *parent = 0); \ -+ static QMetaObject staticMetaObject; \ -+ virtual const QMetaObject *metaObject() const; \ -+ virtual int typeNr() const {return n##U;} \ -+private: \ -+ QPyQuickWindow##n(const QPyQuickWindow##n &); \ -+} -+ -+ -+QPYQUICKWINDOW_DECL(0); -+QPYQUICKWINDOW_DECL(1); -+QPYQUICKWINDOW_DECL(2); -+QPYQUICKWINDOW_DECL(3); -+QPYQUICKWINDOW_DECL(4); -+QPYQUICKWINDOW_DECL(5); -+QPYQUICKWINDOW_DECL(6); -+QPYQUICKWINDOW_DECL(7); -+QPYQUICKWINDOW_DECL(8); -+QPYQUICKWINDOW_DECL(9); -+QPYQUICKWINDOW_DECL(10); -+QPYQUICKWINDOW_DECL(11); -+QPYQUICKWINDOW_DECL(12); -+QPYQUICKWINDOW_DECL(13); -+QPYQUICKWINDOW_DECL(14); -+QPYQUICKWINDOW_DECL(15); -+QPYQUICKWINDOW_DECL(16); -+QPYQUICKWINDOW_DECL(17); -+QPYQUICKWINDOW_DECL(18); -+QPYQUICKWINDOW_DECL(19); -+ -+ -+#endif -Index: PyQt5_gpl-5.10.1/sip/QtQuick/qquickview.sip -=================================================================== ---- PyQt5_gpl-5.10.1.orig/sip/QtQuick/qquickview.sip -+++ PyQt5_gpl-5.10.1/sip/QtQuick/qquickview.sip -@@ -20,7 +20,7 @@ - // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - - --class QQuickView : QQuickWindow -+class QQuickView : QQuickWindow /ExportDerived/ - { - %TypeHeaderCode - #include -Index: PyQt5_gpl-5.10.1/sip/QtQuick/qquickwindow.sip -=================================================================== ---- PyQt5_gpl-5.10.1.orig/sip/QtQuick/qquickwindow.sip -+++ PyQt5_gpl-5.10.1/sip/QtQuick/qquickwindow.sip -@@ -20,7 +20,7 @@ - // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - - --class QQuickWindow : QWindow -+class QQuickWindow : QWindow /ExportDerived/ - { - %TypeHeaderCode - #include diff --git a/files/remove-qtest-waitforevents.patch b/files/remove-qtest-waitforevents.patch deleted file mode 100644 --- a/files/remove-qtest-waitforevents.patch +++ /dev/null @@ -1,17 +0,0 @@ -From: Fabian Vogt -Subject: QTest::waitForEvents() is internal only - -Must not be used, got removed with Qt 5.11. - -Index: PyQt5_gpl-5.10.1/sip/QtTest/qtestmouse.sip -=================================================================== ---- PyQt5_gpl-5.10.1.orig/sip/QtTest/qtestmouse.sip -+++ PyQt5_gpl-5.10.1/sip/QtTest/qtestmouse.sip -@@ -41,7 +41,6 @@ namespace QTest - void mousePress(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1); - void mouseRelease(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier = 0, QPoint pos = QPoint(), int delay = -1); - void mouseEvent(QTest::MouseAction action, QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers modifier, QPoint pos, int delay = -1); -- void waitForEvents() /ReleaseGIL/; - void mouseEvent(QTest::MouseAction action, QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier, QPoint pos, int delay = -1); - void mousePress(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1); - void mouseRelease(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers modifier = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay = -1); diff --git a/files/series b/files/series deleted file mode 100644 --- a/files/series +++ /dev/null @@ -1,3 +0,0 @@ -qt_quick_crash_fix.patch -remove-qtest-waitforevents.patch -update-timeline.patch diff --git a/files/update-timeline.patch b/files/update-timeline.patch deleted file mode 100644 --- a/files/update-timeline.patch +++ /dev/null @@ -1,19 +0,0 @@ -From: Fabian Vogt -Subject: Update the Qt version timeline - -Is SIP unable to count or is there a different stupid reason all versions have -to be mentioned manually? - -Index: PyQt5_gpl-5.10.1/sip/QtCore/QtCoremod.sip -=================================================================== ---- PyQt5_gpl-5.10.1.orig/sip/QtCore/QtCoremod.sip -+++ PyQt5_gpl-5.10.1/sip/QtCore/QtCoremod.sip -@@ -22,7 +22,7 @@ - - %Module(name=PyQt5.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt5, keyword_arguments="Optional", use_limited_api=True) - --%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_99 Qt_5_10_0 Qt_5_10_1} -+%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_4 Qt_5_9_5 Qt_5_9_6 Qt_5_9_7 Qt_5_9_8 Qt_5_9_9 Qt_5_9_99 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0 Qt_5_11_1 Qt_5_11_2 Qt_5_12_0} - - %Platforms {WS_X11 WS_WIN WS_MACX} - diff --git a/package.yml b/package.yml --- a/package.yml +++ b/package.yml @@ -1,9 +1,9 @@ name : python3-qt5 -version : 5.10.1 -release : 23 +version : 5.11.3 +release : 24 source : - - https://jaist.dl.sourceforge.net/project/pyqt/PyQt5/PyQt-5.10.1/PyQt5_gpl-5.10.1.tar.gz : 9932e971e825ece4ea08f84ad95017837fa8f3f29c6b0496985fa1093661e9ef -license : GPL-3.0 + - https://jaist.dl.sourceforge.net/project/pyqt/PyQt5/PyQt-5.11.3/PyQt5_gpl-5.11.3.tar.gz : c9b57d15601d436faf35dacf8e0acefa220194829a653e771e80b189b3261073 +license : GPL-3.0-or-later component : programming.python summary : python3-qt5 are the python3 bindings for Qt5 description: | @@ -25,12 +25,12 @@ - pkgconfig(python3) - python3-dbus - python3-sip-devel + - python-enum34 rundeps : - python3-sip - python-qt5 + - python-enum34 setup : | - %apply_patches - python3 configure.py --confirm-license \ --no-sip-files \ -q /usr/bin/qmake \ @@ -40,6 +40,6 @@ build : | %make install : | - %make_install INSTALL_ROOT="$installdir" + %make_install INSTALL_ROOT="$installdir" -j1 rm -f $installdir/usr/bin/{pylupdate5,pyrcc5} rm -rf $installdir/usr/lib64 diff --git a/pspec_x86_64.xml b/pspec_x86_64.xml --- a/pspec_x86_64.xml +++ b/pspec_x86_64.xml @@ -2,10 +2,10 @@ python3-qt5 - Peter O'Connor - peter@solus-project.com + F. von Gellhorn + flinux@vongellhorn.ch - GPL-3.0 + GPL-3.0-or-later programming.python python3-qt5 are the python3 bindings for Qt5 python3-qt5 are the python3 bindings for Qt5. @@ -20,6 +20,9 @@ programming.python /usr/bin/pyuic5 + /usr/lib/python3.6/site-packages/PyQt5-5.11.3.dist-info/INSTALLER + /usr/lib/python3.6/site-packages/PyQt5-5.11.3.dist-info/METADATA + /usr/lib/python3.6/site-packages/PyQt5-5.11.3.dist-info/RECORD /usr/lib/python3.6/site-packages/PyQt5/Qt.so /usr/lib/python3.6/site-packages/PyQt5/QtBluetooth.pyi /usr/lib/python3.6/site-packages/PyQt5/QtBluetooth.so @@ -134,12 +137,12 @@ - - 2018-10-14 - 5.10.1 + + 2019-02-14 + 5.11.3 Packaging update - Peter O'Connor - peter@solus-project.com + F. von Gellhorn + flinux@vongellhorn.ch \ No newline at end of file