From d2c1299abd39a72106d7d635ac657324d4976271 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Fri, 10 Aug 2018 15:25:06 +0200 Subject: Update the deps for KDE 5_18.07 Most prominent is the upgrade of Qt to 5.11.1 --- deps/PyQt5/.url | 2 +- deps/PyQt5/PyQt5.SlackBuild | 11 +- deps/PyQt5/patches/pyqt-qt5.11.patch | 17 + deps/PyQt5/patches/pyqt-support-new-qt.patch | 12 + deps/PyQt5/patches/pyqt5-cura-crash.patch | 559 +++++++++++++++++++++++++++ deps/poppler/poppler.SlackBuild | 5 +- deps/qt5/.url | 2 +- deps/qt5/patches/qt5.private-includes.patch | 53 +++ deps/qt5/qt5.SlackBuild | 32 +- 9 files changed, 668 insertions(+), 25 deletions(-) create mode 100644 deps/PyQt5/patches/pyqt-qt5.11.patch create mode 100644 deps/PyQt5/patches/pyqt-support-new-qt.patch create mode 100644 deps/PyQt5/patches/pyqt5-cura-crash.patch create mode 100644 deps/qt5/patches/qt5.private-includes.patch diff --git a/deps/PyQt5/.url b/deps/PyQt5/.url index ebc1ebc..dd28dc0 100644 --- a/deps/PyQt5/.url +++ b/deps/PyQt5/.url @@ -1,2 +1,2 @@ -https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.9.2/PyQt5_gpl-5.9.2.tar.gz +https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.10.1/PyQt5_gpl-5.10.1.tar.gz diff --git a/deps/PyQt5/PyQt5.SlackBuild b/deps/PyQt5/PyQt5.SlackBuild index 66f7b09..3ee77fe 100755 --- a/deps/PyQt5/PyQt5.SlackBuild +++ b/deps/PyQt5/PyQt5.SlackBuild @@ -27,10 +27,10 @@ # Modified by Eric Hameleers PKGNAM=PyQt5 -VERSION=${VERSION:-5.9.2} -BUILD=${BUILD:-2} +VERSION=${VERSION:-5.10.1} +BUILD=${BUILD:-1} -NUMJOBS=${NUMJOBS:--j7} +NUMJOBS=${NUMJOBS:-"j$(nproc)"} CWD=$(pwd) TMP=${TMP:-/tmp} @@ -71,6 +71,11 @@ rm -rf ${PKGNAM}_gpl-$VERSION tar xvf $CWD/${PKGNAM}_gpl-$VERSION.tar.?z* || exit 1 cd ${PKGNAM}_gpl-$VERSION || exit 1 +# Support new versions of Qt: +cat $CWD/patches/pyqt-support-new-qt.patch | patch -p1 --verbose || exit 1 +cat $CWD/patches/pyqt5-cura-crash.patch | patch -p1 --verbose || exit 1 +cat $CWD/patches/pyqt-qt5.11.patch | patch -p1 --verbose || exit 1 + chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ diff --git a/deps/PyQt5/patches/pyqt-qt5.11.patch b/deps/PyQt5/patches/pyqt-qt5.11.patch new file mode 100644 index 0000000..96c8a51 --- /dev/null +++ b/deps/PyQt5/patches/pyqt-qt5.11.patch @@ -0,0 +1,17 @@ +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/deps/PyQt5/patches/pyqt-support-new-qt.patch b/deps/PyQt5/patches/pyqt-support-new-qt.patch new file mode 100644 index 0000000..1464384 --- /dev/null +++ b/deps/PyQt5/patches/pyqt-support-new-qt.patch @@ -0,0 +1,12 @@ +diff -ru a/sip/QtCore/QtCoremod.sip b/sip/QtCore/QtCoremod.sip +--- a/sip/QtCore/QtCoremod.sip 2016-12-25 18:56:11.000000000 +0100 ++++ b/sip/QtCore/QtCoremod.sip 2017-01-24 12:03:50.707514377 +0100 +@@ -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_99 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0} + + %Platforms {WS_X11 WS_WIN WS_MACX} + diff --git a/deps/PyQt5/patches/pyqt5-cura-crash.patch b/deps/PyQt5/patches/pyqt5-cura-crash.patch new file mode 100644 index 0000000..9b79407 --- /dev/null +++ b/deps/PyQt5/patches/pyqt5-cura-crash.patch @@ -0,0 +1,559 @@ +diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquick_register_type.cpp PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquick_register_type.cpp +--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquick_register_type.cpp 2018-02-27 11:43:52.000000000 +0100 ++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquick_register_type.cpp 2018-03-29 03:32:17.000000000 +0200 +@@ -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 @@ + 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 @@ + 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; + } +diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.cpp PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickview.cpp +--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickview.cpp 2018-03-29 03:32:17.000000000 +0200 +@@ -0,0 +1,155 @@ ++// 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]; ++ ++ ++#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); \ ++} \ ++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); +diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.h PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickview.h +--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickview.h 1970-01-01 01:00:00.000000000 +0100 ++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickview.h 2018-03-29 03:32:17.000000000 +0200 +@@ -0,0 +1,87 @@ ++// 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 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 +diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.cpp PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickwindow.cpp +--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.cpp 1970-01-01 01:00:00.000000000 +0100 ++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickwindow.cpp 2018-03-29 03:32:17.000000000 +0200 +@@ -0,0 +1,155 @@ ++// 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]; ++ ++ ++#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); \ ++} \ ++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); +diff -ur --new-file PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.h PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickwindow.h +--- PyQt5_gpl-5.10.1/qpy/QtQuick/qpyquickwindow.h 1970-01-01 01:00:00.000000000 +0100 ++++ PyQt5_gpl-5.10.2.dev1803281228/qpy/QtQuick/qpyquickwindow.h 2018-03-29 03:32:17.000000000 +0200 +@@ -0,0 +1,87 @@ ++// 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 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 +diff -ur --new-file PyQt5_gpl-5.10.1/sip/QtQuick/qquickview.sip PyQt5_gpl-5.10.2.dev1803281228/sip/QtQuick/qquickview.sip +--- PyQt5_gpl-5.10.1/sip/QtQuick/qquickview.sip 2018-02-27 11:43:53.000000000 +0100 ++++ PyQt5_gpl-5.10.2.dev1803281228/sip/QtQuick/qquickview.sip 2018-03-29 03:32:18.000000000 +0200 +@@ -20,7 +20,7 @@ + // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +-class QQuickView : QQuickWindow ++class QQuickView : QQuickWindow /ExportDerived/ + { + %TypeHeaderCode + #include +diff -ur --new-file PyQt5_gpl-5.10.1/sip/QtQuick/qquickwindow.sip PyQt5_gpl-5.10.2.dev1803281228/sip/QtQuick/qquickwindow.sip +--- PyQt5_gpl-5.10.1/sip/QtQuick/qquickwindow.sip 2018-02-27 11:43:53.000000000 +0100 ++++ PyQt5_gpl-5.10.2.dev1803281228/sip/QtQuick/qquickwindow.sip 2018-03-29 03:32:18.000000000 +0200 +@@ -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/deps/poppler/poppler.SlackBuild b/deps/poppler/poppler.SlackBuild index 1825e13..292409f 100755 --- a/deps/poppler/poppler.SlackBuild +++ b/deps/poppler/poppler.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=poppler -VERSION=${VERSION:-0.66.0} +VERSION=${VERSION:-0.67.0} BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: @@ -77,9 +77,6 @@ rm -rf ${PKGNAM}-${VERSION} tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1 cd ${PKGNAM}-$VERSION || exit 1 -## This is needed for compilation with c++11 compiler: -#cat $CWD/patches/poppler_cpp11.patch | patch -p1 --verbose || exit 1 - # At least for now, we will revert this patch since we have # things that depend on it: cat $CWD/patches/poppler.remove.qt4.frontend.diff | patch -p1 -R --verbose || exit 1 diff --git a/deps/qt5/.url b/deps/qt5/.url index 5018bbc..a133eca 100644 --- a/deps/qt5/.url +++ b/deps/qt5/.url @@ -1 +1 @@ -http://download.qt.io/official_releases/qt/5.9/5.9.6/single/qt-everywhere-opensource-src-5.9.6.tar.xz +http://download.qt.io/official_releases/qt/5.11/5.11.1/single/qt-everywhere-src-5.11.1.tar.xz diff --git a/deps/qt5/patches/qt5.private-includes.patch b/deps/qt5/patches/qt5.private-includes.patch new file mode 100644 index 0000000..3ef8ebe --- /dev/null +++ b/deps/qt5/patches/qt5.private-includes.patch @@ -0,0 +1,53 @@ +# Taken from http://code.qt.io/cgit/qt/qtbase.git/patch/?id=67aa365d +# ------------------------------------------------------------------ + +From 67aa365d41ebfe082b4efcfd725e4d5f08be678c Mon Sep 17 00:00:00 2001 +From: Ulf Hermann +Date: Wed, 25 Apr 2018 12:48:21 +0200 +Subject: Do emit CMake declarations for existing private headers + +We need to make sure we don't emit CMake declarations for private +headers if those headers are absent. However, most of the time we have +private headers and should add them. + +Task-number: QTBUG-37417 +Change-Id: I639eb93d008de27928dedac540894af70c1883b9 +Reviewed-by: Oswald Buddenhagen +--- + mkspecs/features/create_cmake.prf | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf +index 66acedef55..2ed708e085 100644 +--- a/mkspecs/features/create_cmake.prf ++++ b/mkspecs/features/create_cmake.prf +@@ -28,9 +28,13 @@ CMAKE_OUT_DIR = $$MODULE_BASE_OUTDIR/lib/cmake + + CMAKE_MODULE_NAME = $$cmakeModuleName($${MODULE}) + ++!generated_privates { ++ isEmpty(SYNCQT.INJECTED_PRIVATE_HEADER_FILES):isEmpty(SYNCQT.PRIVATE_HEADER_FILES): \ ++ CMAKE_NO_PRIVATE_INCLUDES = true ++} ++ + split_incpath { + CMAKE_ADD_SOURCE_INCLUDE_DIRS = true +- CMAKE_NO_PRIVATE_INCLUDES = true # Don't add private includes in the build dir which don't exist + CMAKE_SOURCE_INCLUDES = \ + $$cmakeTargetPaths($$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/Qt$${CMAKE_MODULE_NAME}) + CMAKE_SOURCE_PRIVATE_INCLUDES = \ +@@ -53,10 +57,6 @@ contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") { + CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True + } + +-isEmpty(QT.$${MODULE}_private.includes)| \ +- !exists($$first(QT.$${MODULE}_private.includes)): \ +- CMAKE_NO_PRIVATE_INCLUDES = true +- + CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX]) + contains(CMAKE_LIB_DIR,"^\\.\\./.*") { + CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/ +-- +cgit v1.1-6-g87c4 + + diff --git a/deps/qt5/qt5.SlackBuild b/deps/qt5/qt5.SlackBuild index 8484b4a..3348695 100755 --- a/deps/qt5/qt5.SlackBuild +++ b/deps/qt5/qt5.SlackBuild @@ -56,9 +56,10 @@ # Modifications for qt 5.9.4 2018 by Eric Hameleers, Eindhoven, NL # Modifications for qt 5.9.5 2018 by Eric Hameleers, Eindhoven, NL # Modifications for qt 5.9.6 2018 by Eric Hameleers, Eindhoven, NL +# Modifications for qt 5.11.0 2018 by Eric Hameleers, Eindhoven, NL PKGNAM=qt5 -VERSION=${VERSION:-5.9.6} +VERSION=${VERSION:-5.11.1} BUILD=${BUILD:-1} PKGSRC=$(echo $VERSION |cut -d- -f1) PKGVER=$(echo $VERSION |tr - _) @@ -126,10 +127,10 @@ PKG=$TMP/package-${PKGNAM} rm -rf $PKG mkdir -p $TMP $PKG cd $TMP -rm -rf qt-everywhere-opensource-src-$VERSION -echo "Extracting qt-everywhere-opensource-src-$VERSION.tar.xz" -tar xf $CWD/qt-everywhere-opensource-src-$VERSION.tar.xz || exit 1 -cd qt-everywhere-opensource-src-$PKGSRC || exit 1 +rm -rf qt-everywhere-src-$VERSION +echo "Extracting qt-everywhere-src-$VERSION.tar.xz" +tar xf $CWD/qt-everywhere-src-$VERSION.tar.xz || exit 1 +cd qt-everywhere-src-$PKGSRC || exit 1 chown -R root:root . find . \ @@ -149,9 +150,10 @@ fi # Fix path to mysql header: cat $CWD/patches/qt5.mysql.h.diff | patch -p1 --verbose || exit 1 -# Fix missing private includes: QTBUG-37417 -sed -e '/CMAKE_NO_PRIVATE_INCLUDES\ \=\ true/d' \ - -i qtbase/mkspecs/features/create_cmake.prf +## Fix missing private includes: QTBUG-37417 +#cd qtbase +# cat $CWD/patches/qt5.private-includes.patch | patch -p1 --verbose || exit 1 +#cd - 1>/dev/null if ! pkg-config --exists libpulse 2>/dev/null ; then # Forcibly disable pulseaudio in qtwebengine: @@ -163,10 +165,10 @@ else fi # Use our custom compiler and linker flags: -#sed -i -e "s/-O2/$SLKCFLAGS/" qtbase/mkspecs/common/g++-base.conf || exit 1 -sed -i -e "s/-O2/$SLKCFLAGS/" qtbase/mkspecs/common/gcc-base.conf || exit 1 -sed -i -e "s/-O3/$SLKCFLAGS/" qtbase/mkspecs/common/gcc-base.conf || exit 1 -sed -i -e "/^QMAKE_LFLAGS\s/s,+=,+= $SLKLDFLAGS,g" qtbase/mkspecs/common/gcc-base.conf || exit 1 +sed -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${SLKCFLAGS}|" \ + -i qtbase/mkspecs/common/gcc-base.conf || exit 1 +sed -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${SLKLDFLAGS}|" \ + -i qtbase/mkspecs/common/g++-unix.conf || exit 1 # Enable h.264 codec support: echo "WEBENGINE_CONFIG += use_proprietary_codecs" >> qtwebengine/.qmake.conf @@ -177,10 +179,10 @@ echo "CONFIG += lang-all" >> qtvirtualkeyboard/.qmake.conf export CFLAGS="$SLKCFLAGS" export CXXFLAGS="$SLKCFLAGS" export OPENSOURCE_CXXFLAGS="$SLKCFLAGS" -export QTDIR="${TMP}/qt-everywhere-opensource-src-${PKGSRC}" +export QTDIR="${TMP}/qt-everywhere-src-${PKGSRC}" export LD_LIBRARY_PATH="${QTDIR}/qtbase/lib:${QTDIR}/qttools/lib:${LD_LIBRARY_PATH}" export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins" -./configure \ +./configure -v \ -confirm-license \ -opensource \ -prefix /usr \ @@ -218,8 +220,6 @@ export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins" ${PACONF} \ ${RELOCATIONS} \ -no-pch \ - OPENSSL_INCDIR="/usr/include/openssl-1.0" \ - OPENSSL_LIBDIR="/usr/lib${LIBDIRSUFFIX}/openssl-1.0" \ # No-precompiled-headers is ccache-friendly. # Sometimes a failure happens when parallelizing make. Try again if make fails, -- cgit v1.2.3