From c482c62836f00e111a86de91c39d70d40e72f77adf85c7a2e4a5cec90b47ac90 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Wed, 19 Feb 2020 10:09:00 +0000 Subject: [PATCH 01/33] OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=1 --- ...-platform-plugin-initialization-fail.patch | 36 -- ...-recent-Mesa-versions-for-multithrea.patch | 40 --- ...-nouveau-and-llvmpipe-for-multithrea.patch | 50 +++ 0001-Revert-Bump-version.patch | 23 -- ...e-when-a-QWidgetAction-fires-the-tri.patch | 139 -------- ...x-build-libs-with-no-feature-regular.patch | 280 +++++++++++++++ ...-LeaveEvent-for-accepted-QTabletEven.patch | 15 +- ...t-more-recent-Mesa-version-for-multi.patch | 102 ++++++ _service | 18 - _servicedata | 4 - libqt5-qtbase.changes | 331 +----------------- libqt5-qtbase.spec | 69 ++-- qtbase-everywhere-src-5.14.1.tar.xz | 3 + qtbase-everywhere-src-5.15.2+kde294.obscpio | 3 - qtbase-everywhere-src.obsinfo | 5 - qtlogging.ini | 3 - 16 files changed, 478 insertions(+), 643 deletions(-) delete mode 100644 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch delete mode 100644 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch create mode 100644 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch delete mode 100644 0001-Revert-Bump-version.patch delete mode 100644 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch create mode 100644 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch create mode 100644 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch delete mode 100644 _service delete mode 100644 _servicedata create mode 100644 qtbase-everywhere-src-5.14.1.tar.xz delete mode 100644 qtbase-everywhere-src-5.15.2+kde294.obscpio delete mode 100644 qtbase-everywhere-src.obsinfo delete mode 100644 qtlogging.ini diff --git a/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch b/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch deleted file mode 100644 index ba6f3af..0000000 --- a/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 127e467e5ff86d5aba085c0e3410b3198d29b61a Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Fri, 13 Nov 2020 15:51:50 +0100 -Subject: [PATCH] Avoid SIGABRT on platform plugin initialization failure - -If all platform plugins failed to initialize, Qt calls qFatal which in turn -calls abort. This causes SIGABRT and may generate a coredump. - -In the most common case it's because the connection to the display (Wayland, -X11, whatever) is missing or failed, and a coredump will not help analyzing -that at all. - -https://bugreports.qt.io/browse/QTBUG-88491 ---- - src/gui/kernel/qguiapplication.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp -index a95331e246..098c69d3c1 100644 ---- a/src/gui/kernel/qguiapplication.cpp -+++ b/src/gui/kernel/qguiapplication.cpp -@@ -1251,9 +1251,9 @@ static void init_platform(const QString &pluginNamesWithArguments, const QString - if (!QLibraryInfo::isDebugBuild() && !GetConsoleWindow()) - MessageBox(0, (LPCTSTR)fatalMessage.utf16(), (LPCTSTR)(QCoreApplication::applicationName().utf16()), MB_OK | MB_ICONERROR); - #endif // Q_OS_WIN && !Q_OS_WINRT -- qFatal("%s", qPrintable(fatalMessage)); -+ qCritical("%s", qPrintable(fatalMessage)); - -- return; -+ _exit(1); - } - - // Many platforms have created QScreens at this point. Finish initializing --- -2.25.1 - diff --git a/0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch b/0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch deleted file mode 100644 index 083e82a..0000000 --- a/0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8a053986b4c43a133f6824f839bd78a476d183e3 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Wed, 19 Feb 2020 11:42:06 +0100 -Subject: [PATCH] Don't white-list recent Mesa versions for multithreading - -It's not stable. ---- - .../gl_integrations/xcb_glx/qglxintegration.cpp | 16 ---------------- - 1 file changed, 16 deletions(-) - -diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -index 75189a9c80..e328ea2d4b 100644 ---- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -@@ -764,22 +764,6 @@ void QGLXContext::queryDummyContext() - m_supportsThreading = false; - } - -- if (mesaVersionStr) { -- // The issue was fixed in Xcb 1.11, but we can't check for that -- // at runtime, so instead assume it fixed with recent Mesa versions -- // released several years after the Xcb fix. --#if QT_CONFIG(regularexpression) -- QRegularExpression versionTest(QStringLiteral("Mesa (\\d+)")); -- QRegularExpressionMatch result = versionTest.match(QString::fromLatin1(mesaVersionStr)); -- int versionNr = 0; -- if (result.hasMatch()) -- versionNr = result.captured(1).toInt(); -- if (versionNr >= 17) { -- // White-listed -- m_supportsThreading = true; -- } --#endif -- } - if (!m_supportsThreading) { - qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " - "blacklisted vendor \"Mesa Project\""; --- -2.23.0 - diff --git a/0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch b/0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch new file mode 100644 index 0000000..1e02ff5 --- /dev/null +++ b/0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch @@ -0,0 +1,50 @@ +From 7525dcc085d0453209bd7c321adac9c54487afa6 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Thu, 14 Mar 2019 10:30:14 +0100 +Subject: [PATCH 1/3] Revert "Blacklist nouveau and llvmpipe for + multithreading" + +This reverts commit 96f6cab22cab252cbe7a98bbeadde95497e0bd75. +--- + .../xcb_glx/qglxintegration.cpp | 18 ------------------ + 1 file changed, 18 deletions(-) + +diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +index 476de6d1e5..d42a33c22b 100644 +--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp ++++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +@@ -652,12 +652,6 @@ static const char *qglx_threadedgl_blacklist_renderer[] = { + 0 + }; + +-static const char *qglx_threadedgl_blacklist_vendor[] = { +- "llvmpipe", // QTCREATORBUG-10666 +- "nouveau", // https://bugs.freedesktop.org/show_bug.cgi?id=91632 +- nullptr +-}; +- + void QGLXContext::queryDummyContext() + { + if (m_queriedDummyContext) +@@ -716,18 +710,6 @@ void QGLXContext::queryDummyContext() + } + } + } +- if (const char *vendor = (const char *) glGetString(GL_VENDOR)) { +- for (int i = 0; qglx_threadedgl_blacklist_vendor[i]; ++i) { +- if (strstr(vendor, qglx_threadedgl_blacklist_vendor[i]) != 0) { +- qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " +- "blacklisted vendor \"" +- << qglx_threadedgl_blacklist_vendor[i] +- << "\""; +- m_supportsThreading = false; +- break; +- } +- } +- } + + if (glxvendor && m_supportsThreading) { + // Blacklist Mesa drivers due to QTCREATORBUG-10875 (crash in creator), +-- +2.20.1 + diff --git a/0001-Revert-Bump-version.patch b/0001-Revert-Bump-version.patch deleted file mode 100644 index 4f67174..0000000 --- a/0001-Revert-Bump-version.patch +++ /dev/null @@ -1,23 +0,0 @@ -From e08cc7a0cec3c6fb69415b8e76e70b37088b561c Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Mon, 21 Jun 2021 12:29:39 +0200 -Subject: [PATCH] Revert "Bump version" - -This reverts commit 6344955d17e17e2398720fe60c34cfc2a4a95208. ---- - .qmake.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/.qmake.conf b/.qmake.conf -index 1bf1a80475..9476d20099 100644 ---- a/.qmake.conf -+++ b/.qmake.conf -@@ -6,4 +6,4 @@ DEFINES += QT_NO_JAVA_STYLE_ITERATORS - QT_SOURCE_TREE = $$PWD - QT_BUILD_TREE = $$shadowed($$PWD) - --MODULE_VERSION = 5.15.3 -+MODULE_VERSION = 5.15.2 --- -2.20.1 - diff --git a/0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch b/0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch deleted file mode 100644 index 25eb4e4..0000000 --- a/0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 9928d66764337494d0e99208a3418fcd01ac3e66 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Wed, 27 May 2020 10:48:45 +0200 -Subject: [PATCH] Revert "QMenu: hide when a QWidgetAction fires the trigged - signal" - -This reverts commit b4669b919048c1dbdac2b3e9b2e79f3d023aa078. ---- - src/widgets/widgets/qmenu.cpp | 9 +-- - .../auto/widgets/widgets/qmenu/tst_qmenu.cpp | 79 ------------------- - 2 files changed, 4 insertions(+), 84 deletions(-) - -diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp -index 865e3b2fb6..2878344f07 100644 ---- a/src/widgets/widgets/qmenu.cpp -+++ b/src/widgets/widgets/qmenu.cpp -@@ -1470,9 +1470,6 @@ void QMenuPrivate::_q_actionTriggered() - } - } - activateCausedStack(list, action, QAction::Trigger, false); -- // if a widget action fires, we need to hide the menu explicitly -- if (qobject_cast(action)) -- hideUpToMenuBar(); - } - } - } -@@ -1640,8 +1637,10 @@ void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action) - - Widgets can be inserted into menus with the QWidgetAction class. - Instances of this class are used to hold widgets, and are inserted -- into menus with the addAction() overload that takes a QAction. If the -- QWidgetAction fires the triggered() signal, the menu will close. -+ into menus with the addAction() overload that takes a QAction. -+ -+ Conversely, actions can be added to widgets with the addAction(), -+ addActions() and insertAction() functions. - - \warning To make QMenu visible on the screen, exec() or popup() should be - used instead of show(). -diff --git a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp -index 5a24995caf..22494f3d24 100644 ---- a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp -+++ b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp -@@ -116,7 +116,6 @@ private slots: - void QTBUG20403_nested_popup_on_shortcut_trigger(); - void QTBUG47515_widgetActionEnterLeave(); - void QTBUG8122_widgetActionCrashOnClose(); -- void widgetActionTriggerClosesMenu(); - - void QTBUG_10735_crashWithDialog(); - #ifdef Q_OS_MAC -@@ -1408,84 +1407,6 @@ void tst_QMenu::QTBUG8122_widgetActionCrashOnClose() - QTRY_VERIFY(menu->isHidden()); - } - --/*! -- Test that a QWidgetAction that fires closes the menus that it is in. --*/ --void tst_QMenu::widgetActionTriggerClosesMenu() --{ -- class ButtonAction : public QWidgetAction -- { -- public: -- ButtonAction() -- : QWidgetAction(nullptr) -- {} -- -- void click() -- { -- if (pushButton) -- pushButton->click(); -- } -- -- protected: -- QWidget *createWidget(QWidget *parent) -- { -- QPushButton *button = new QPushButton(QLatin1String("Button"), parent); -- connect(button, &QPushButton::clicked, this, &QAction::trigger); -- -- if (!pushButton) -- pushButton = button; -- return button; -- } -- -- private: -- QPointer pushButton; -- }; -- -- QMenu menu; -- QMenu submenu; -- -- int menuTriggeredCount = 0; -- int menuAboutToHideCount = 0; -- QAction *actionTriggered = nullptr; -- -- connect(&menu, &QMenu::triggered, this, [&](QAction *action){ -- ++menuTriggeredCount; -- actionTriggered = action; -- }); -- connect (&menu, &QMenu::aboutToHide, this, [&](){ -- ++menuAboutToHideCount; -- }); -- -- QAction regularAction(QLatin1String("Action")); -- ButtonAction widgetAction; -- -- submenu.addAction(®ularAction); -- submenu.addAction(&widgetAction); -- -- menu.addMenu(&submenu); -- menu.addAction(®ularAction); -- menu.addAction(&widgetAction); -- -- menu.popup(QPoint(200,200)); -- submenu.popup(QPoint(250,250)); -- if (!QTest::qWaitForWindowExposed(&menu) || !QTest::qWaitForWindowExposed(&submenu)) -- QSKIP("Failed to show menus, aborting test"); -- -- regularAction.trigger(); -- QVERIFY(menu.isVisible()); -- QVERIFY(submenu.isVisible()); -- QCOMPARE(menuTriggeredCount, 1); -- QCOMPARE(actionTriggered, ®ularAction); -- menuTriggeredCount = 0; -- actionTriggered = nullptr; -- -- widgetAction.click(); -- QVERIFY(!menu.isVisible()); -- QVERIFY(!submenu.isVisible()); -- QCOMPARE(menuTriggeredCount, 1); -- QCOMPARE(menuAboutToHideCount, 1); -- QCOMPARE(actionTriggered, &widgetAction); --} - - class MyMenu : public QMenu - { --- -2.25.1 - diff --git a/0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch b/0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch new file mode 100644 index 0000000..fb435d5 --- /dev/null +++ b/0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch @@ -0,0 +1,280 @@ +From 4f28ec6c8526d754849bd26c55e4c5faf61f4eb0 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Thu, 14 Mar 2019 10:32:10 +0100 +Subject: [PATCH 2/3] Revert "qtlite: Fix build libs with + -no-feature-regularexpression" + +This reverts commit 3b514f853595c686d4ed8830567c1f27ea533faf. +--- + src/corelib/kernel/qvariant.cpp | 4 ---- + src/corelib/serialization/qcborvalue.cpp | 12 ------------ + src/corelib/serialization/qcborvalue.h | 10 +--------- + src/corelib/serialization/qjsoncbor.cpp | 7 ------- + .../platforms/eglfs/api/qeglfsdeviceintegration.cpp | 4 +--- + .../xcb/gl_integrations/xcb_glx/qglxintegration.cpp | 6 +----- + src/testlib/qtaptestlogger.cpp | 11 +---------- + 7 files changed, 4 insertions(+), 50 deletions(-) + +Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/kernel/qvariant.cpp +=================================================================== +--- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/kernel/qvariant.cpp ++++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/kernel/qvariant.cpp +@@ -1052,13 +1052,11 @@ static bool convert(const QVariant::Priv + return false; + + #ifndef QT_BOOTSTRAPPED +-#if QT_CONFIG(regularexpression) + case QMetaType::QRegularExpression: + if (d->type != QMetaType::QCborValue || !v_cast(d)->isRegularExpression()) + return false; + *static_cast(result) = v_cast(d)->toRegularExpression(); + break; +-#endif + case QMetaType::QJsonValue: + switch (d->type) { + case QMetaType::Nullptr: +@@ -1234,11 +1232,9 @@ static bool convert(const QVariant::Priv + case QVariant::Url: + *static_cast(result) = QCborValue(*v_cast(d)); + break; +-#if QT_CONFIG(regularexpression) + case QVariant::RegularExpression: + *static_cast(result) = QCborValue(*v_cast(d)); + break; +-#endif + case QVariant::Uuid: + *static_cast(result) = QCborValue(*v_cast(d)); + break; +Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.cpp +=================================================================== +--- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qcborvalue.cpp ++++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.cpp +@@ -1772,7 +1772,6 @@ QCborValue::QCborValue(const QUrl &url) + container->elements[1].type = String; + } + +-#if QT_CONFIG(regularexpression) + /*! + Creates a QCborValue object of the regular expression pattern extended type + and containing the value represented by \a rx. The value can later be retrieved +@@ -1791,7 +1790,6 @@ QCborValue::QCborValue(const QRegularExp + // change type + t = RegularExpression; + } +-#endif // QT_CONFIG(regularexpression) + + /*! + Creates a QCborValue object of the UUID extended type and containing the +@@ -1945,7 +1943,6 @@ QUrl QCborValue::toUrl(const QUrl &defau + return QUrl::fromEncoded(byteData->asByteArrayView()); + } + +-#if QT_CONFIG(regularexpression) + /*! + Returns the regular expression value stored in this QCborValue, if it is of + the regular expression pattern extended type. Otherwise, it returns \a +@@ -1964,7 +1961,6 @@ QRegularExpression QCborValue::toRegular + Q_ASSERT(n == -1); + return QRegularExpression(container->stringAt(1)); + } +-#endif // QT_CONFIG(regularexpression) + + /*! + Returns the UUID value stored in this QCborValue, if it is of the UUID +@@ -2874,16 +2870,12 @@ uint qHash(const QCborValue &value, uint + return qHash(value.toDateTime(), seed); + case QCborValue::Url: + return qHash(value.toUrl(), seed); +-#if QT_CONFIG(regularexpression) + case QCborValue::RegularExpression: + return qHash(value.toRegularExpression(), seed); +-#endif + case QCborValue::Uuid: + return qHash(value.toUuid(), seed); + case QCborValue::Invalid: + return seed; +- default: +- break; + } + + Q_ASSERT(value.isSimpleType()); +@@ -2928,16 +2920,12 @@ static QDebug debugContents(QDebug &dbg, + return dbg << v.toDateTime(); + case QCborValue::Url: + return dbg << v.toUrl(); +-#if QT_CONFIG(regularexpression) + case QCborValue::RegularExpression: + return dbg << v.toRegularExpression(); +-#endif + case QCborValue::Uuid: + return dbg << v.toUuid(); + case QCborValue::Invalid: + return dbg << ""; +- default: +- break; + } + if (v.isSimpleType()) + return dbg << v.toSimpleType(); +Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.h +=================================================================== +--- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qcborvalue.h ++++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.h +@@ -43,9 +43,7 @@ + #include + #include + #include +-#if QT_CONFIG(regularexpression) +-# include +-#endif ++#include + #include + #include + #include +@@ -159,9 +157,7 @@ public: + + explicit QCborValue(const QDateTime &dt); + explicit QCborValue(const QUrl &url); +-#if QT_CONFIG(regularexpression) + explicit QCborValue(const QRegularExpression &rx); +-#endif + explicit QCborValue(const QUuid &uuid); + + ~QCborValue() { if (container) dispose(); } +@@ -239,9 +235,7 @@ public: + QString toString(const QString &defaultValue = {}) const; + QDateTime toDateTime(const QDateTime &defaultValue = {}) const; + QUrl toUrl(const QUrl &defaultValue = {}) const; +-#if QT_CONFIG(regularexpression) + QRegularExpression toRegularExpression(const QRegularExpression &defaultValue = {}) const; +-#endif + QUuid toUuid(const QUuid &defaultValue = {}) const; + + // only forward-declared, need split functions +@@ -386,10 +380,8 @@ public: + { return concrete().toDateTime(defaultValue); } + QUrl toUrl(const QUrl &defaultValue = {}) const + { return concrete().toUrl(defaultValue); } +-#if QT_CONFIG(regularexpression) + QRegularExpression toRegularExpression(const QRegularExpression &defaultValue = {}) const + { return concrete().toRegularExpression(defaultValue); } +-#endif + QUuid toUuid(const QUuid &defaultValue = {}) const + { return concrete().toUuid(defaultValue); } + +Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qjsoncbor.cpp +=================================================================== +--- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qjsoncbor.cpp ++++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qjsoncbor.cpp +@@ -543,19 +543,14 @@ QVariant QCborValue::toVariant() const + case Url: + return toUrl(); + +-#if QT_CONFIG(regularexpression) + case RegularExpression: + return toRegularExpression(); +-#endif + + case Uuid: + return toUuid(); + + case Invalid: + return QVariant(); +- +- default: +- break; + } + + if (isSimpleType()) +@@ -719,10 +714,8 @@ QCborValue QCborValue::fromVariant(const + case QVariant::Hash: + return QCborMap::fromVariantHash(variant.toHash()); + #ifndef QT_BOOTSTRAPPED +-#if QT_CONFIG(regularexpression) + case QVariant::RegularExpression: + return QCborValue(variant.toRegularExpression()); +-#endif + case QMetaType::QJsonValue: + return fromJsonValue(variant.toJsonValue()); + case QMetaType::QJsonObject: +Index: qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp +=================================================================== +--- qtbase-everywhere-src-5.13.0-beta2.orig/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp ++++ qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp +@@ -51,9 +51,7 @@ + #include + #include + #include +-#if QT_CONFIG(regularexpression) +-# include +-#endif ++#include + #include + + #if defined(Q_OS_LINUX) +Index: qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +=================================================================== +--- qtbase-everywhere-src-5.13.0-beta2.orig/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp ++++ qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +@@ -48,9 +48,7 @@ + #undef register + #include + +-#if QT_CONFIG(regularexpression) +-# include +-#endif ++#include + #include + #include + +@@ -724,7 +722,6 @@ void QGLXContext::queryDummyContext() + // The issue was fixed in Xcb 1.11, but we can't check for that + // at runtime, so instead assume it fixed with recent Mesa versions + // released several years after the Xcb fix. +-#if QT_CONFIG(regularexpression) + QRegularExpression versionTest(QStringLiteral("Mesa (\\d+)")); + QRegularExpressionMatch result = versionTest.match(QString::fromLatin1(mesaVersionStr)); + int versionNr = 0; +@@ -734,7 +731,6 @@ void QGLXContext::queryDummyContext() + // White-listed + m_supportsThreading = true; + } +-#endif + } + if (!m_supportsThreading) { + qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " +Index: qtbase-everywhere-src-5.13.0-beta2/src/testlib/qtaptestlogger.cpp +=================================================================== +--- qtbase-everywhere-src-5.13.0-beta2.orig/src/testlib/qtaptestlogger.cpp ++++ qtbase-everywhere-src-5.13.0-beta2/src/testlib/qtaptestlogger.cpp +@@ -43,9 +43,7 @@ + #include "qtestresult_p.h" + #include "qtestassert.h" + +-#if QT_CONFIG(regularexpression) +-# include +-#endif ++#include + + QT_BEGIN_NAMESPACE + +@@ -150,7 +148,6 @@ void QTapTestLogger::addIncident(Inciden + outputString(YAML_INDENT "---\n"); + + if (type != XFail) { +-#if QT_CONFIG(regularexpression) + // This is fragile, but unfortunately testlib doesn't plumb + // the expected and actual values to the loggers (yet). + static QRegularExpression verifyRegex( +@@ -211,12 +208,6 @@ void QTapTestLogger::addIncident(Inciden + YAML_INDENT "# %s\n", description); + outputString(unparsableDescription.data()); + } +-#else +- QTestCharBuffer unparsableDescription; +- QTest::qt_asprintf(&unparsableDescription, +- YAML_INDENT "# %s\n", description); +- outputString(unparsableDescription.data()); +-#endif + } + + if (file) { diff --git a/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch b/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch index 497ffb5..67c65fa 100644 --- a/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch +++ b/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch @@ -22,11 +22,11 @@ Change-Id: Ifbad6284483ee282ad129db54606f5d0d9ddd633 src/widgets/kernel/qwidgetwindow.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) -Index: qtbase-everywhere-src-5.15.0-alpha/src/widgets/kernel/qwidgetwindow.cpp -=================================================================== ---- qtbase-everywhere-src-5.15.0-alpha.orig/src/widgets/kernel/qwidgetwindow.cpp -+++ qtbase-everywhere-src-5.15.0-alpha/src/widgets/kernel/qwidgetwindow.cpp -@@ -1075,6 +1075,18 @@ void QWidgetWindow::handleTabletEvent(QT +diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp +index fbc71cd0ea..729a7f701a 100644 +--- a/src/widgets/kernel/qwidgetwindow.cpp ++++ b/src/widgets/kernel/qwidgetwindow.cpp +@@ -1051,6 +1051,18 @@ void QWidgetWindow::handleTabletEvent(QTabletEvent *event) event->setAccepted(ev.isAccepted()); } @@ -43,5 +43,8 @@ Index: qtbase-everywhere-src-5.15.0-alpha/src/widgets/kernel/qwidgetwindow.cpp + } + if (event->type() == QEvent::TabletRelease && event->buttons() == Qt::NoButton) - qt_tablet_target = nullptr; + qt_tablet_target = 0; } +-- +2.21.0 + diff --git a/0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch b/0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch new file mode 100644 index 0000000..d4a22ca --- /dev/null +++ b/0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch @@ -0,0 +1,102 @@ +From e0bf494295398cbc3ba5a84380525f9c00e3f8ad Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Thu, 14 Mar 2019 10:32:16 +0100 +Subject: [PATCH 3/3] Revert "White-list more recent Mesa version for + multi-threading" + +This reverts commit 97600d2c2885e667ced0926815b5a12a7f25285c. +--- + .../xcb_glx/qglxintegration.cpp | 60 +++++++++++-------- + 1 file changed, 35 insertions(+), 25 deletions(-) + +diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +index ddb8f45188..41012c0b04 100644 +--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp ++++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +@@ -48,7 +48,6 @@ + #undef register + #include + +-#include + #include + #include + +@@ -650,6 +649,32 @@ static const char *qglx_threadedgl_blacklist_renderer[] = { + 0 + }; + ++// This disables threaded rendering on anything using mesa, e.g. ++// - nvidia/nouveau ++// - amd/gallium ++// - intel ++// - some software opengl implementations ++// ++// The client glx vendor string is used to identify those setups as that seems to show the least ++// variance between the bad configurations. It's always "Mesa Project and SGI". There are some ++// configurations which don't use mesa and which can do threaded rendering (amd and nvidia chips ++// with their own proprietary drivers). ++// ++// This, of course, is very broad and disables threaded rendering on a lot of devices which would ++// be able to use it. However, the bugs listed below don't follow any easily recognizable pattern ++// and we should rather be safe. ++// ++// http://cgit.freedesktop.org/xcb/libxcb/commit/?id=be0fe56c3bcad5124dcc6c47a2fad01acd16f71a will ++// fix some of the issues. Basically, the proprietary drivers seem to have a way of working around ++// a fundamental flaw with multithreaded access to xcb, but mesa doesn't. The blacklist should be ++// reevaluated once that patch is released in some version of xcb. ++static const char *qglx_threadedgl_blacklist_vendor[] = { ++ "Mesa Project and SGI", // QTCREATORBUG-10875 (crash in creator) ++ // QTBUG-34492 (flickering in fullscreen) ++ // QTBUG-38221 ++ 0 ++}; ++ + void QGLXContext::queryDummyContext() + { + if (m_queriedDummyContext) +@@ -709,33 +734,18 @@ void QGLXContext::queryDummyContext() + } + } + +- if (glxvendor && m_supportsThreading) { +- // Blacklist Mesa drivers due to QTCREATORBUG-10875 (crash in creator), +- // QTBUG-34492 (flickering in fullscreen) and QTBUG-38221 +- const char *mesaVersionStr = nullptr; +- if (strstr(glxvendor, "Mesa Project") != 0) { +- mesaVersionStr = (const char *) glGetString(GL_VERSION); +- m_supportsThreading = false; +- } ++ if (glxvendor) { ++ for (int i = 0; qglx_threadedgl_blacklist_vendor[i]; ++i) { ++ if (strstr(glxvendor, qglx_threadedgl_blacklist_vendor[i]) != 0) { ++ qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " ++ "blacklisted vendor \"" ++ << qglx_threadedgl_blacklist_vendor[i] ++ << "\""; + +- if (mesaVersionStr) { +- // The issue was fixed in Xcb 1.11, but we can't check for that +- // at runtime, so instead assume it fixed with recent Mesa versions +- // released several years after the Xcb fix. +- QRegularExpression versionTest(QStringLiteral("Mesa (\\d+)")); +- QRegularExpressionMatch result = versionTest.match(QString::fromLatin1(mesaVersionStr)); +- int versionNr = 0; +- if (result.hasMatch()) +- versionNr = result.captured(1).toInt(); +- if (versionNr >= 17) { +- // White-listed +- m_supportsThreading = true; ++ m_supportsThreading = false; ++ break; + } + } +- if (!m_supportsThreading) { +- qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " +- "blacklisted vendor \"Mesa Project\""; +- } + } + + context.doneCurrent(); +-- +2.20.1 + diff --git a/_service b/_service deleted file mode 100644 index 81ae6f2..0000000 --- a/_service +++ /dev/null @@ -1,18 +0,0 @@ - - - enable - 5.15.2+kde@TAG_OFFSET@ - https://invent.kde.org/qt/qt/qtbase.git - git - qtbase-everywhere-src - kde/5.15 - v5.15.2 - enable - - - - - *.tar - xz - - diff --git a/_servicedata b/_servicedata deleted file mode 100644 index 7581037..0000000 --- a/_servicedata +++ /dev/null @@ -1,4 +0,0 @@ - - - https://invent.kde.org/qt/qt/qtbase.git - 366350c2e4a7eccbda0f3936e69c6b9c4fa28f55 \ No newline at end of file diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 561b4f0..d4afe4d 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,334 +1,9 @@ -------------------------------------------------------------------- -Fri Jan 21 08:04:30 UTC 2022 - Fabian Vogt - -- Update to version 5.15.2+kde294: - * QTzTimeZonePrivate::init(): fix handling of empty ID - * Restore support for reading /etc/timezone for system zone name - * QPathEdge: Fix array initialization - * QTzTimeZonePrivate: fix UB (data race on m_icu) - * Don't access QObject::objectName during QThread start - * Restore C++11 compatibility after e8b9f4c28d3ab5e960dc54f2dc0c4b749b0b50e0 - * QVarLengthArray: fix size update on failed append() - * Call statx() with AT_NO_AUTOMOUNT - * QThread: Remove superfluous initialization of threadId on Unix - * QThread: Reset the system thread ID when thread exits on Unix - * Add missing macOS header file that was indirectly included before - * QXcb: don't dereference pointer before checking - * xcb: avoid to use invalid pointers - * QVarLengthArray: fix insert() type/alias mismatch between decl and impl - * Use qint64 to replace int while qt_transform_image_rasterize - * QVarLengthArray: assert that the range passed to erase() is valid - * Fix pattern type matching - * QThread: fix UB (invalid enum value) on Private::Priority - * Use block char format to render list item bullets and numbers - * QDateTime: Don't require c++17 - * QVariantAnimation: fix UB (FP 0/0) in interpolated() arg calculation - * QDateTime: fix UB (signed overflow) in addDays() - * QString: fix UB (pointer arithmetic on nullptr) in qLastIndexOf - * tst_QIODevice: fix UB (precondition violation) in SequentialReadBuffer::readData() - * QVarLengthArray: fix UB (precondition violation) in range-erase() - * Fix segmentation fault in QObject::dumpObjectInfo - -------------------------------------------------------------------- -Fri Dec 24 11:45:16 UTC 2021 - fabian@ritter-vogt.de - -- Update to version 5.15.2+kde268: - * Adapt for q_EVP_PKEY_base_id → q_EVP_PKEY_get_base_id rename in OpenSSL 3 - * Don't use a deprecated function if built/linked with OpenSSL v3 - * Diffie-Hellman parameters: remove useless 'fix' - * Dont's use DTLS_MAX_VERSION when setting SSL_CTX - * Avoid mixing atomic futex changes and QAtomic - * Fix qtdeclarative baseline test failure for text tables - * Don't let text table cells shrink below their minimum width (boo#1176530) - * Don't shrink a column when it spans multiple columns - * Use icon themes in QPrintPreviewDialog [if they exist] - * QAbstractFileEngine: fix UB (data race) on qt_file_engine_handlers_in_use - * Increment reference count when restoring reference - * Reject truncated and corrupt ascii pnm images - * Fix handling of Sunday in POSIX time-zone rules - * Fix developer build -- Drop patches, support for OpenSSL < 1.1.0 is no longer necessary: - * 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch - * fix-build-openssl-1.1.0.patch - -------------------------------------------------------------------- -Thu Oct 28 07:14:35 UTC 2021 - Fabian Vogt - -- Update to version 5.15.2+kde254: - * Revert "QPushButton: fix support of style sheet rule for text alignment" - * Revert "Fix invalid text layout data when a full layout run is interrupted" - * Optimize mime type matching - * fix potential mem leak on connection lost - * tst_QSslSocket - replace an old certificate - * tst_QSslCertificate::verify - remove QSKIP - * tst_QSslCertificate::verify - skip auto-test - * Doc: bump the OpenSSL minimum supported version to 1.1.1 - * QHttpSocketEngine: Fix memory leak - * QSslCertificate(OpenSSL) - harden protection against nullpointers - * QSslCertificate: Guard against accessing empty QByteArray - * Make QStyle::proxy() always return the leaf proxy - * Prefer previously used channels in QHttpNetworkConnection - * Fix populating selection clipboard with keyboard - * QSslCertificate::operator == - cleanup error queue - * Revert "Fix highdpi conversion of QTabletEvent coordinates on xcb" - * Fix highdpi conversion of QTabletEvent coordinates on xcb - * Support transformations in pattern/texture brushes in pdf - * Respect font stretch if set together with font style - * Fix QPainterPath with QFont::SmallCaps - * Avoid generating large pdf files when using dashed cosmetic pens - * PDF generation: disentangle native pen from transforms - * qmake: Switch to using Xcode's new build system - * Explicitly set input files for qtpreprocess - * Only embed launch screen when building an app - * Explicitly set output files for qtpreprocess - * Fix memory leak - * Fix reading gamma from PNGs without ICC profile - * QPlatformWindow: fix isAncestorOf not breaking recursion - * Cater for upstream changes in eglplatform.h - * QTextOdfWriter: fix exporting pixmaps to ODT - * Fix access to content: URLs with transient read/write permissions - -------------------------------------------------------------------- -Fri Aug 27 17:51:39 UTC 2021 - Fabian Vogt - -- Update to version 5.15.2+kde222: - * Revert "QString::lastIndexOf: fix off-by-one for zero length matches" - * MySQL: treat the MYSQL_FIELD as read-only - * Remove checks for glibc < 2 from qplatformdefs.h files - * linux-clang/qplatformdefs: fix building with musl libc - * Refix for avoiding huge number of tiny dashes - * Improve fix for avoiding huge number of tiny dashes - * Avoid processing-intensive painting of high number of tiny dashes - * xcb: add a timeout control when reading INCR property - * Remove another usage of mysql_get_client_version() - * MySQL: remove the version number checks in favor of actual functionality - * QLibraryInfo: Add MSVC 2022 - * doCrypt() - check the error codes - * Restore C++11 compatibility of QSharedPointer code - * opengl: fix a typo in QOpenGLPaintDevice::dotsPerMeterY() - * Fix rvalue overload of qobject_pointer_cast for GCC 9.3 - * QVarLengthArray: fix aliasing error in insert(it, n, v) - * Fix memory leak of QOffscreenScreen in QOffscreenIntegration - * Fix tst_moc for C++17 - * Add missing limits include - * xcb: Avoid use-after-free in QXcbConnection::initializeScreens() - * xcb: Remove need for QXCBScreen to resolve QXcbGlIntegration - * Update shared-mime-info to the 2.1 release, adjust implementation - -------------------------------------------------------------------- -Thu Jun 24 19:16:41 UTC 2021 - Fabian Vogt - -- Revert to the default platform plugin list ("wayland;xcb") - -------------------------------------------------------------------- -Thu Jun 24 09:02:42 UTC 2021 - Fabian Vogt - -- Update to version 5.15.2+kde200: - * Optimize quadratic-time insertion in QSortFilterProxyModel - -------------------------------------------------------------------- -Mon Jun 21 08:07:20 UTC 2021 - Fabian Vogt - -- Switch to KDE's maintenance branch -- Update to version 5.15.2+kde199: - * Too many changes to list here -- Add patch to reset version to 5.15.2: - * 0001-Revert-Bump-version.patch -- Drop patches, now upstream: - * 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch - * 0001-Fix-allocated-memory-of-QByteArray.patch - * 0001-Fix-build-with-GCC-11-include-limits.patch - * 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch - * 0002-Build-fixes-for-GCC-11.patch - -------------------------------------------------------------------- -Wed May 26 11:49:02 UTC 2021 - Fabian Vogt - -- Add trailing newline to qtlogging.ini - -------------------------------------------------------------------- -Tue Apr 13 07:06:06 UTC 2021 - Fabian Vogt - -- Add patch to fix possible crash caused by GCC 11 build fix: - * 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch - -------------------------------------------------------------------- -Mon Feb 8 09:16:47 UTC 2021 - Fabian Vogt - -- Add patch to fix build with GCC 11 (boo#1181861, QTBUG-90395): - * 0001-Fix-build-with-GCC-11-include-limits.patch - * 0002-Build-fixes-for-GCC-11.patch - -------------------------------------------------------------------- -Tue Jan 19 07:46:43 UTC 2021 - Stefan Brüns - -- Add patch to fix infinite loop in KWin on XServer exit: - * 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch -- Spec file cleanup, remove conditionals for Leap 42.x - -------------------------------------------------------------------- -Tue Dec 29 11:48:35 UTC 2020 - Arjen de Korte - -- Add patch to avoid excessive use of memory by lconvert: - * 0001-Fix-allocated-memory-of-QByteArray.patch - -------------------------------------------------------------------- -Fri Nov 20 12:08:44 UTC 2020 - Fabian Vogt - -- Update to 5.15.2: - * New bugfix release - * For more details please see: - http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.2/?h=5.15.2 - * Fallback to /tmp/runtime-$USER if XDG_RUNTIME_DIR is not set - or is unsafe (bsc#1172515) -- Drop patches, now upstream: - * 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch -- Pass -confirm-license option, drop duplicates -- BuildRequire xcb-util - -------------------------------------------------------------------- -Fri Nov 13 15:50:40 UTC 2020 - Fabian Vogt - -- Add patch to avoid coredumps with missing display: - * 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch - -------------------------------------------------------------------- -Wed Oct 28 13:22:24 UTC 2020 - Fabian Vogt - -- Disable -reduce-relocations for now (boo#1175278, QTBUG-86173) - -------------------------------------------------------------------- -Wed Oct 14 19:28:37 UTC 2020 - Stefan Brüns - -- Silence xcb errors and qml connection warnings by default, see - boo#1115541 (xcb) and kde#418793. - -------------------------------------------------------------------- -Mon Oct 12 13:57:55 UTC 2020 - Stefan Brüns - -- Remove some no longer required build dependencies: libpulse, - alsa (now used via QtMultimedia), libmng (obsolete). - -------------------------------------------------------------------- -Mon Sep 21 09:55:25 UTC 2020 - Fabian Vogt - -- Revert commit to fix screen geometry on startup (boo#1176750, QTBUG-86604): - * 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch - -------------------------------------------------------------------- -Thu Sep 10 07:57:00 UTC 2020 - Fabian Vogt - -- Update to 5.15.1: - * New bugfix release - * Fixes CVE-2020-17507, bsc#1176315 - * For more details please see: - http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.1/?h=5.15.1 -- Drop patches, now upstream: - * 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch - * 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch -- Adjust fix-build-openssl-1.1.0.patch - -------------------------------------------------------------------- -Sun Jul 5 10:16:48 UTC 2020 - Fabian Vogt - -- Add patch to prevent stuck image conversion (boo#1172599, QTBUG-84619): - * 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch - -------------------------------------------------------------------- -Wed Jun 10 12:31:44 UTC 2020 - Fabian Vogt - -- Add patch to fix tool menu placement (boo#1172754, QTBUG-84462): - * 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch - -------------------------------------------------------------------- -Wed May 27 08:48:52 UTC 2020 - Fabian Vogt - -- Add patch to avoid behaviour change causing crashes (kde#419526): - * 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch - -------------------------------------------------------------------- -Tue May 26 09:44:55 UTC 2020 - Callum Farmer - -- Update to 5.15.0: - * No changelog available - -------------------------------------------------------------------- -Wed May 20 15:38:18 UTC 2020 - Callum Farmer - -- Update to 5.15.0-rc2 - * No changelog available - -------------------------------------------------------------------- -Wed May 6 11:26:35 UTC 2020 - Fabian Vogt - -- Update to 5.15.0-rc: - * New bugfix release - * For the changes between 5.14.2 and 5.15.0 please see: - http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.0/?h=5.15.0 -- Drop patches, now upstream: - * 0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch -- Add patch to fix build on Leap 15.1: - * fix-build-openssl-1.1.0.patch - -------------------------------------------------------------------- -Mon Apr 27 12:45:07 UTC 2020 - Fabian Vogt - -- Add patch to fix use-after-free (boo#1170582, CVE-2020-12267): - * 0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch - -------------------------------------------------------------------- -Fri Apr 24 07:11:04 UTC 2020 - Fabian Vogt - -- Update to 5.15.0-beta4: - * New bugfix release - * No changelog available - * Qt incorrectly calls SSL_shutdown() in OpenSSL mid-handshake - causing denial of service in TLS applications (bsc#1172726, - CVE-2020-13962, QTBUG-83450) - -------------------------------------------------------------------- -Tue Apr 14 06:47:19 UTC 2020 - Fabian Vogt - -- Update to 5.15.0-beta3: - * New bugfix release - * No changelog available -- Add patch to fix build on Leap 15.1: - * 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch - -------------------------------------------------------------------- -Tue Mar 24 12:13:29 UTC 2020 - Fabian Vogt - -- Update to 5.15.0-beta2: - * New bugfix release - * No changelog available - -------------------------------------------------------------------- -Fri Feb 28 09:58:42 UTC 2020 - Fabian Vogt - -- Update to 5.15.0-beta1: - * New bugfix release - * No changelog available - -------------------------------------------------------------------- -Wed Feb 19 10:16:14 UTC 2020 - Fabian Vogt - -- Update to 5.15.0-alpha: - * New feature release - * For more details please see: - https://wiki.qt.io/New_Features_in_Qt_5.15 -- Replace patches with single patch - 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch: - * 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch - * 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch: - * 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch -- Refresh 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch - ------------------------------------------------------------------- Mon Jan 27 13:13:57 UTC 2020 - Fabian Vogt - Update to 5.14.1: * New bugfix release - * Fixes CVE-2020-0570, bsc#1161167, bsc#1162191, QTBUG-81272 + * Fixes CVE-2020-0570 * For more details please see: http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.14.1/?h=v5.14.1 - Drop patch, should be addressed by applications meanwhile: @@ -390,8 +65,6 @@ Thu Oct 24 13:22:25 UTC 2019 - Fabian Vogt - Update to 5.14.0-beta2: * New bugfix release * No changelog available - * Fix segfaults due to unaligned stack in QtCore5 (bsc#1155955) - * Add support for PostgreSQL 12 (bsc#1173758) - Refresh patches: * 0001-Revert-Always-escape-the-table-names-when-creating-t.patch @@ -598,8 +271,6 @@ Thu Mar 21 10:24:28 UTC 2019 - fabian@ritter-vogt.de * New feature release * For more details about Qt 5.13 please see: * http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.13.0/?h=5.13 - * Qt headers redefine opengl types differently than khronos headers - (bsc#1176130) - Remove patches, now upstream: * qapplication-emit-palettechanged.patch * reproducible-qrc-time.patch diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 2481b93..e2d7ce7 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -1,7 +1,7 @@ # # spec file for package libqt5-qtbase # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,11 +12,11 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# Please submit bugfixes or comments via http://bugs.opensuse.org/ # -%define qt5_snapshot 1 +%define qt5_snapshot 0 %define journald 1 %ifarch %arm aarch64 @@ -25,32 +25,34 @@ %global gles 0 %endif +%if 0%{?suse_version} >= 1330 %global vulkan 1 %bcond_without harfbuzz +%else +# Harfbuzz too old +%bcond_with harfbuzz +# Vulkan headers too old +%global vulkan 0 +%endif Name: libqt5-qtbase -Version: 5.15.2+kde294 +Version: 5.14.1 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.2 -%define so_version 5.15.2 -%define tar_version qtbase-everywhere-src-%{version} -Source: %{tar_version}.tar.xz +%define real_version 5.14.1 +%define so_version 5.14.1 +%define tar_version qtbase-everywhere-src-5.14.1 +Source: https://download.qt.io/official_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes Source2: macros.qt5 Source3: baselibs.conf -Source4: qtlogging.ini Source99: libqt5-qtbase-rpmlintrc # patches 0-1000 are openSUSE and/or non-upstream(able) patches # -Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch -# Proposed: https://bugreports.qt.io/browse/QTBUG-88491 -Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch -Patch5: 0001-Revert-Bump-version.patch # PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default Patch6: disable-rc4-ciphers-bnc865241.diff Patch8: tell-the-truth-about-private-api.patch @@ -59,16 +61,20 @@ Patch10: libqt5-prioritise-gtk2-platformtheme.patch # PATCH-FEATURE-OPENSUSE 0001-Add-remote-print-queue-support.patch fate#322052 -- Automatically recognize and allow printing to remote cups servers Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE -Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch +Patch21: 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch +Patch22: 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch +Patch23: 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch Patch24: fix-fixqt4headers.patch -# patches 1000-2000 and above from upstream 5.15 branch # -# patches 2000-3000 and above from upstream qt6/dev branch # +# patches 1000-2000 and above from upstream 5.14 branch # +# patches 2000-3000 and above from upstream 5.15/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch +BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: double-conversion-devel BuildRequires: gcc-c++ BuildRequires: libjpeg-devel +BuildRequires: libmng-devel BuildRequires: libmysqlclient-devel BuildRequires: libpng-devel BuildRequires: libproxy-devel @@ -95,6 +101,7 @@ BuildRequires: Mesa-libGLESv3-devel BuildRequires: pkgconfig(glesv2) %endif BuildRequires: libicu-devel +BuildRequires: libpulse-devel BuildRequires: tslib-devel %if %{vulkan} BuildRequires: vulkan-devel @@ -110,7 +117,6 @@ BuildRequires: pkgconfig(xcb-render) BuildRequires: pkgconfig(xcb-shape) BuildRequires: pkgconfig(xcb-shm) BuildRequires: pkgconfig(xcb-sync) -BuildRequires: pkgconfig(xcb-util) BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-xinerama) BuildRequires: pkgconfig(xcb-xkb) @@ -828,13 +834,8 @@ sed -i 's|qt_instdate=`date +%Y-%m-%d`|qt_instdate=$CHANGES|g' configure sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf # -no-feature-relocatable is needed to support /usr/lib/sse2 etc., see QTBUG-78948 -# -reduce-relocations means copy relocations aren't allowed, and so special -# flags like -fPIC need to be passed when building an application. This breaks -# with LTO (PIE overrides that) and CMake (doesn't pass -fPIC when linking). -# Due to a binutils bug/misunderstanding, this option didn't do as much before 2.35, -# so just disable it for now until a proper alternative appears. -./configure \ +echo yes | ./configure \ -prefix %{_prefix} \ -L %{libqt5_libdir} \ -libdir %{libqt5_libdir} \ @@ -850,7 +851,11 @@ sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf -sysconfdir %{libqt5_sysconfdir} \ -translationdir %{libqt5_translationdir} \ -verbose \ +%ifarch %ix86 x86_64 + -reduce-relocations \ +%else -no-reduce-relocations \ +%endif %ifarch %ix86 %if 0%{?sle_version} < 150000 -no-sse2 -no-pch \ @@ -859,12 +864,10 @@ sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf -accessibility \ -no-strip \ -opensource \ - -confirm-license \ -no-separate-debug-info \ -force-debug-info \ -shared \ - -xkbcommon \ - -no-bundled-xcb-xinput \ + -xkb \ -dbus-linked \ -sm \ -no-rpath \ @@ -883,6 +886,7 @@ sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf -glib \ -sctp \ -system-sqlite \ + -no-sql-mysql \ %if %journald -journald \ %endif @@ -901,7 +905,9 @@ sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf -plugin-sql-psql -I/usr/include/pgsql/ -I/usr/include/pgsql/server \ -plugin-sql-odbc \ -plugin-sql-mysql -I/usr/include/mysql/ \ + -qpa "xcb;wayland" \ -no-feature-relocatable \ + -v \ QMAKE_CFLAGS+="$CFLAGS" \ QMAKE_CXXFLAGS+="$CXXFLAGS" @@ -960,10 +966,6 @@ popd chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png -# Silence logging of xcb errors and qml deprecated connection -# warnings by default -install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini - %post -n libQt5Core5 -p /sbin/ldconfig %post -n libQt5Concurrent5 -p /sbin/ldconfig @@ -1046,8 +1048,6 @@ install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini %{libqt5_libdir}/sse2/libQt5Core.so.* %endif %endif -%dir %{libqt5_datadir} -%{libqt5_datadir}/qtlogging.ini %files -n libQt5Core-devel %license LICENSE.* @@ -1058,8 +1058,6 @@ install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini %{libqt5_libdir}/cmake/Qt5/ %{libqt5_libdir}/pkgconfig/Qt5Core.pc %{libqt5_includedir}/QtCore/ -%dir %{libqt5_libdir}/metatypes/ -%{libqt5_libdir}/metatypes/qt5core_metatypes.json %exclude %{libqt5_includedir}/QtCore/%{so_version} %{libqt5_docdir} @@ -1187,7 +1185,6 @@ install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini %{libqt5_libdir}/cmake/Qt5Widgets/ %{libqt5_libdir}/pkgconfig/Qt5Widgets.pc %{libqt5_includedir}/QtWidgets/ -%{libqt5_libdir}/metatypes/qt5widgets_metatypes.json %exclude %{libqt5_includedir}/QtWidgets/%{so_version} %files -n libQt5Gui5 @@ -1240,7 +1237,6 @@ install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini %{libqt5_includedir}/QtGui/ %{libqt5_includedir}/QtEglFSDeviceIntegration/ %{libqt5_includedir}/QtXkbCommonSupport -%{libqt5_libdir}/metatypes/qt5gui_metatypes.json %exclude %{libqt5_includedir}/QtGui/%{so_version} %exclude %{libqt5_includedir}/QtEglFSDeviceIntegration/%{so_version} %exclude %{libqt5_includedir}/QtXkbCommonSupport/%{so_version} @@ -1294,6 +1290,7 @@ install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini %doc *.txt %{libqt5_libdir}/libQt5Bootstrap.a %{libqt5_libdir}/libQt5Bootstrap.prl +%{libqt5_libdir}/cmake/Qt5Bootstrap/ %files -n libQt5OpenGLExtensions-devel-static %license LICENSE.* diff --git a/qtbase-everywhere-src-5.14.1.tar.xz b/qtbase-everywhere-src-5.14.1.tar.xz new file mode 100644 index 0000000..7c77e9b --- /dev/null +++ b/qtbase-everywhere-src-5.14.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9d423a6e7bcf1055c0372fc029f14a6fe67dd62c67b83095cde68b60b762cf7 +size 49828188 diff --git a/qtbase-everywhere-src-5.15.2+kde294.obscpio b/qtbase-everywhere-src-5.15.2+kde294.obscpio deleted file mode 100644 index 600f8a4..0000000 --- a/qtbase-everywhere-src-5.15.2+kde294.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e6ec08431d9f5a84615b0381db9c80bdeb71de1e813f18a08b664336c290eeed -size 291332110 diff --git a/qtbase-everywhere-src.obsinfo b/qtbase-everywhere-src.obsinfo deleted file mode 100644 index 0b132c9..0000000 --- a/qtbase-everywhere-src.obsinfo +++ /dev/null @@ -1,5 +0,0 @@ -name: qtbase-everywhere-src -version: 5.15.2+kde294 -mtime: 1642610092 -commit: 366350c2e4a7eccbda0f3936e69c6b9c4fa28f55 - diff --git a/qtlogging.ini b/qtlogging.ini deleted file mode 100644 index 571dac6..0000000 --- a/qtlogging.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Rules] -qt.qpa.xcb.warning=false -qt.qml.connections.warning=false From 281c7502cd88955fbc4478792238eeecae7396f3c6a69a2edc0f5c65e1becaba Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 26 Feb 2020 12:43:12 +0000 Subject: [PATCH 02/33] Qt 5.15 Alpha OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=2 --- ...-recent-Mesa-versions-for-multithrea.patch | 40 +++ ...-nouveau-and-llvmpipe-for-multithrea.patch | 50 ---- ...x-build-libs-with-no-feature-regular.patch | 280 ------------------ ...-LeaveEvent-for-accepted-QTabletEven.patch | 15 +- ...t-more-recent-Mesa-version-for-multi.patch | 102 ------- libqt5-qtbase.changes | 14 + libqt5-qtbase.spec | 21 +- qtbase-everywhere-src-5.14.1.tar.xz | 3 - qtbase-everywhere-src-5.15.0-alpha.tar.xz | 3 + 9 files changed, 75 insertions(+), 453 deletions(-) create mode 100644 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch delete mode 100644 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch delete mode 100644 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch delete mode 100644 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch delete mode 100644 qtbase-everywhere-src-5.14.1.tar.xz create mode 100644 qtbase-everywhere-src-5.15.0-alpha.tar.xz diff --git a/0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch b/0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch new file mode 100644 index 0000000..083e82a --- /dev/null +++ b/0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch @@ -0,0 +1,40 @@ +From 8a053986b4c43a133f6824f839bd78a476d183e3 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Wed, 19 Feb 2020 11:42:06 +0100 +Subject: [PATCH] Don't white-list recent Mesa versions for multithreading + +It's not stable. +--- + .../gl_integrations/xcb_glx/qglxintegration.cpp | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +index 75189a9c80..e328ea2d4b 100644 +--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp ++++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +@@ -764,22 +764,6 @@ void QGLXContext::queryDummyContext() + m_supportsThreading = false; + } + +- if (mesaVersionStr) { +- // The issue was fixed in Xcb 1.11, but we can't check for that +- // at runtime, so instead assume it fixed with recent Mesa versions +- // released several years after the Xcb fix. +-#if QT_CONFIG(regularexpression) +- QRegularExpression versionTest(QStringLiteral("Mesa (\\d+)")); +- QRegularExpressionMatch result = versionTest.match(QString::fromLatin1(mesaVersionStr)); +- int versionNr = 0; +- if (result.hasMatch()) +- versionNr = result.captured(1).toInt(); +- if (versionNr >= 17) { +- // White-listed +- m_supportsThreading = true; +- } +-#endif +- } + if (!m_supportsThreading) { + qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " + "blacklisted vendor \"Mesa Project\""; +-- +2.23.0 + diff --git a/0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch b/0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch deleted file mode 100644 index 1e02ff5..0000000 --- a/0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 7525dcc085d0453209bd7c321adac9c54487afa6 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Thu, 14 Mar 2019 10:30:14 +0100 -Subject: [PATCH 1/3] Revert "Blacklist nouveau and llvmpipe for - multithreading" - -This reverts commit 96f6cab22cab252cbe7a98bbeadde95497e0bd75. ---- - .../xcb_glx/qglxintegration.cpp | 18 ------------------ - 1 file changed, 18 deletions(-) - -diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -index 476de6d1e5..d42a33c22b 100644 ---- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -@@ -652,12 +652,6 @@ static const char *qglx_threadedgl_blacklist_renderer[] = { - 0 - }; - --static const char *qglx_threadedgl_blacklist_vendor[] = { -- "llvmpipe", // QTCREATORBUG-10666 -- "nouveau", // https://bugs.freedesktop.org/show_bug.cgi?id=91632 -- nullptr --}; -- - void QGLXContext::queryDummyContext() - { - if (m_queriedDummyContext) -@@ -716,18 +710,6 @@ void QGLXContext::queryDummyContext() - } - } - } -- if (const char *vendor = (const char *) glGetString(GL_VENDOR)) { -- for (int i = 0; qglx_threadedgl_blacklist_vendor[i]; ++i) { -- if (strstr(vendor, qglx_threadedgl_blacklist_vendor[i]) != 0) { -- qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " -- "blacklisted vendor \"" -- << qglx_threadedgl_blacklist_vendor[i] -- << "\""; -- m_supportsThreading = false; -- break; -- } -- } -- } - - if (glxvendor && m_supportsThreading) { - // Blacklist Mesa drivers due to QTCREATORBUG-10875 (crash in creator), --- -2.20.1 - diff --git a/0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch b/0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch deleted file mode 100644 index fb435d5..0000000 --- a/0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch +++ /dev/null @@ -1,280 +0,0 @@ -From 4f28ec6c8526d754849bd26c55e4c5faf61f4eb0 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Thu, 14 Mar 2019 10:32:10 +0100 -Subject: [PATCH 2/3] Revert "qtlite: Fix build libs with - -no-feature-regularexpression" - -This reverts commit 3b514f853595c686d4ed8830567c1f27ea533faf. ---- - src/corelib/kernel/qvariant.cpp | 4 ---- - src/corelib/serialization/qcborvalue.cpp | 12 ------------ - src/corelib/serialization/qcborvalue.h | 10 +--------- - src/corelib/serialization/qjsoncbor.cpp | 7 ------- - .../platforms/eglfs/api/qeglfsdeviceintegration.cpp | 4 +--- - .../xcb/gl_integrations/xcb_glx/qglxintegration.cpp | 6 +----- - src/testlib/qtaptestlogger.cpp | 11 +---------- - 7 files changed, 4 insertions(+), 50 deletions(-) - -Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/kernel/qvariant.cpp -=================================================================== ---- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/kernel/qvariant.cpp -+++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/kernel/qvariant.cpp -@@ -1052,13 +1052,11 @@ static bool convert(const QVariant::Priv - return false; - - #ifndef QT_BOOTSTRAPPED --#if QT_CONFIG(regularexpression) - case QMetaType::QRegularExpression: - if (d->type != QMetaType::QCborValue || !v_cast(d)->isRegularExpression()) - return false; - *static_cast(result) = v_cast(d)->toRegularExpression(); - break; --#endif - case QMetaType::QJsonValue: - switch (d->type) { - case QMetaType::Nullptr: -@@ -1234,11 +1232,9 @@ static bool convert(const QVariant::Priv - case QVariant::Url: - *static_cast(result) = QCborValue(*v_cast(d)); - break; --#if QT_CONFIG(regularexpression) - case QVariant::RegularExpression: - *static_cast(result) = QCborValue(*v_cast(d)); - break; --#endif - case QVariant::Uuid: - *static_cast(result) = QCborValue(*v_cast(d)); - break; -Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.cpp -=================================================================== ---- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qcborvalue.cpp -+++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.cpp -@@ -1772,7 +1772,6 @@ QCborValue::QCborValue(const QUrl &url) - container->elements[1].type = String; - } - --#if QT_CONFIG(regularexpression) - /*! - Creates a QCborValue object of the regular expression pattern extended type - and containing the value represented by \a rx. The value can later be retrieved -@@ -1791,7 +1790,6 @@ QCborValue::QCborValue(const QRegularExp - // change type - t = RegularExpression; - } --#endif // QT_CONFIG(regularexpression) - - /*! - Creates a QCborValue object of the UUID extended type and containing the -@@ -1945,7 +1943,6 @@ QUrl QCborValue::toUrl(const QUrl &defau - return QUrl::fromEncoded(byteData->asByteArrayView()); - } - --#if QT_CONFIG(regularexpression) - /*! - Returns the regular expression value stored in this QCborValue, if it is of - the regular expression pattern extended type. Otherwise, it returns \a -@@ -1964,7 +1961,6 @@ QRegularExpression QCborValue::toRegular - Q_ASSERT(n == -1); - return QRegularExpression(container->stringAt(1)); - } --#endif // QT_CONFIG(regularexpression) - - /*! - Returns the UUID value stored in this QCborValue, if it is of the UUID -@@ -2874,16 +2870,12 @@ uint qHash(const QCborValue &value, uint - return qHash(value.toDateTime(), seed); - case QCborValue::Url: - return qHash(value.toUrl(), seed); --#if QT_CONFIG(regularexpression) - case QCborValue::RegularExpression: - return qHash(value.toRegularExpression(), seed); --#endif - case QCborValue::Uuid: - return qHash(value.toUuid(), seed); - case QCborValue::Invalid: - return seed; -- default: -- break; - } - - Q_ASSERT(value.isSimpleType()); -@@ -2928,16 +2920,12 @@ static QDebug debugContents(QDebug &dbg, - return dbg << v.toDateTime(); - case QCborValue::Url: - return dbg << v.toUrl(); --#if QT_CONFIG(regularexpression) - case QCborValue::RegularExpression: - return dbg << v.toRegularExpression(); --#endif - case QCborValue::Uuid: - return dbg << v.toUuid(); - case QCborValue::Invalid: - return dbg << ""; -- default: -- break; - } - if (v.isSimpleType()) - return dbg << v.toSimpleType(); -Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.h -=================================================================== ---- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qcborvalue.h -+++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.h -@@ -43,9 +43,7 @@ - #include - #include - #include --#if QT_CONFIG(regularexpression) --# include --#endif -+#include - #include - #include - #include -@@ -159,9 +157,7 @@ public: - - explicit QCborValue(const QDateTime &dt); - explicit QCborValue(const QUrl &url); --#if QT_CONFIG(regularexpression) - explicit QCborValue(const QRegularExpression &rx); --#endif - explicit QCborValue(const QUuid &uuid); - - ~QCborValue() { if (container) dispose(); } -@@ -239,9 +235,7 @@ public: - QString toString(const QString &defaultValue = {}) const; - QDateTime toDateTime(const QDateTime &defaultValue = {}) const; - QUrl toUrl(const QUrl &defaultValue = {}) const; --#if QT_CONFIG(regularexpression) - QRegularExpression toRegularExpression(const QRegularExpression &defaultValue = {}) const; --#endif - QUuid toUuid(const QUuid &defaultValue = {}) const; - - // only forward-declared, need split functions -@@ -386,10 +380,8 @@ public: - { return concrete().toDateTime(defaultValue); } - QUrl toUrl(const QUrl &defaultValue = {}) const - { return concrete().toUrl(defaultValue); } --#if QT_CONFIG(regularexpression) - QRegularExpression toRegularExpression(const QRegularExpression &defaultValue = {}) const - { return concrete().toRegularExpression(defaultValue); } --#endif - QUuid toUuid(const QUuid &defaultValue = {}) const - { return concrete().toUuid(defaultValue); } - -Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qjsoncbor.cpp -=================================================================== ---- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qjsoncbor.cpp -+++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qjsoncbor.cpp -@@ -543,19 +543,14 @@ QVariant QCborValue::toVariant() const - case Url: - return toUrl(); - --#if QT_CONFIG(regularexpression) - case RegularExpression: - return toRegularExpression(); --#endif - - case Uuid: - return toUuid(); - - case Invalid: - return QVariant(); -- -- default: -- break; - } - - if (isSimpleType()) -@@ -719,10 +714,8 @@ QCborValue QCborValue::fromVariant(const - case QVariant::Hash: - return QCborMap::fromVariantHash(variant.toHash()); - #ifndef QT_BOOTSTRAPPED --#if QT_CONFIG(regularexpression) - case QVariant::RegularExpression: - return QCborValue(variant.toRegularExpression()); --#endif - case QMetaType::QJsonValue: - return fromJsonValue(variant.toJsonValue()); - case QMetaType::QJsonObject: -Index: qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp -=================================================================== ---- qtbase-everywhere-src-5.13.0-beta2.orig/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp -+++ qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp -@@ -51,9 +51,7 @@ - #include - #include - #include --#if QT_CONFIG(regularexpression) --# include --#endif -+#include - #include - - #if defined(Q_OS_LINUX) -Index: qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -=================================================================== ---- qtbase-everywhere-src-5.13.0-beta2.orig/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -+++ qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -@@ -48,9 +48,7 @@ - #undef register - #include - --#if QT_CONFIG(regularexpression) --# include --#endif -+#include - #include - #include - -@@ -724,7 +722,6 @@ void QGLXContext::queryDummyContext() - // The issue was fixed in Xcb 1.11, but we can't check for that - // at runtime, so instead assume it fixed with recent Mesa versions - // released several years after the Xcb fix. --#if QT_CONFIG(regularexpression) - QRegularExpression versionTest(QStringLiteral("Mesa (\\d+)")); - QRegularExpressionMatch result = versionTest.match(QString::fromLatin1(mesaVersionStr)); - int versionNr = 0; -@@ -734,7 +731,6 @@ void QGLXContext::queryDummyContext() - // White-listed - m_supportsThreading = true; - } --#endif - } - if (!m_supportsThreading) { - qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " -Index: qtbase-everywhere-src-5.13.0-beta2/src/testlib/qtaptestlogger.cpp -=================================================================== ---- qtbase-everywhere-src-5.13.0-beta2.orig/src/testlib/qtaptestlogger.cpp -+++ qtbase-everywhere-src-5.13.0-beta2/src/testlib/qtaptestlogger.cpp -@@ -43,9 +43,7 @@ - #include "qtestresult_p.h" - #include "qtestassert.h" - --#if QT_CONFIG(regularexpression) --# include --#endif -+#include - - QT_BEGIN_NAMESPACE - -@@ -150,7 +148,6 @@ void QTapTestLogger::addIncident(Inciden - outputString(YAML_INDENT "---\n"); - - if (type != XFail) { --#if QT_CONFIG(regularexpression) - // This is fragile, but unfortunately testlib doesn't plumb - // the expected and actual values to the loggers (yet). - static QRegularExpression verifyRegex( -@@ -211,12 +208,6 @@ void QTapTestLogger::addIncident(Inciden - YAML_INDENT "# %s\n", description); - outputString(unparsableDescription.data()); - } --#else -- QTestCharBuffer unparsableDescription; -- QTest::qt_asprintf(&unparsableDescription, -- YAML_INDENT "# %s\n", description); -- outputString(unparsableDescription.data()); --#endif - } - - if (file) { diff --git a/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch b/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch index 67c65fa..497ffb5 100644 --- a/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch +++ b/0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch @@ -22,11 +22,11 @@ Change-Id: Ifbad6284483ee282ad129db54606f5d0d9ddd633 src/widgets/kernel/qwidgetwindow.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) -diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp -index fbc71cd0ea..729a7f701a 100644 ---- a/src/widgets/kernel/qwidgetwindow.cpp -+++ b/src/widgets/kernel/qwidgetwindow.cpp -@@ -1051,6 +1051,18 @@ void QWidgetWindow::handleTabletEvent(QTabletEvent *event) +Index: qtbase-everywhere-src-5.15.0-alpha/src/widgets/kernel/qwidgetwindow.cpp +=================================================================== +--- qtbase-everywhere-src-5.15.0-alpha.orig/src/widgets/kernel/qwidgetwindow.cpp ++++ qtbase-everywhere-src-5.15.0-alpha/src/widgets/kernel/qwidgetwindow.cpp +@@ -1075,6 +1075,18 @@ void QWidgetWindow::handleTabletEvent(QT event->setAccepted(ev.isAccepted()); } @@ -43,8 +43,5 @@ index fbc71cd0ea..729a7f701a 100644 + } + if (event->type() == QEvent::TabletRelease && event->buttons() == Qt::NoButton) - qt_tablet_target = 0; + qt_tablet_target = nullptr; } --- -2.21.0 - diff --git a/0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch b/0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch deleted file mode 100644 index d4a22ca..0000000 --- a/0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch +++ /dev/null @@ -1,102 +0,0 @@ -From e0bf494295398cbc3ba5a84380525f9c00e3f8ad Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Thu, 14 Mar 2019 10:32:16 +0100 -Subject: [PATCH 3/3] Revert "White-list more recent Mesa version for - multi-threading" - -This reverts commit 97600d2c2885e667ced0926815b5a12a7f25285c. ---- - .../xcb_glx/qglxintegration.cpp | 60 +++++++++++-------- - 1 file changed, 35 insertions(+), 25 deletions(-) - -diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -index ddb8f45188..41012c0b04 100644 ---- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp -@@ -48,7 +48,6 @@ - #undef register - #include - --#include - #include - #include - -@@ -650,6 +649,32 @@ static const char *qglx_threadedgl_blacklist_renderer[] = { - 0 - }; - -+// This disables threaded rendering on anything using mesa, e.g. -+// - nvidia/nouveau -+// - amd/gallium -+// - intel -+// - some software opengl implementations -+// -+// The client glx vendor string is used to identify those setups as that seems to show the least -+// variance between the bad configurations. It's always "Mesa Project and SGI". There are some -+// configurations which don't use mesa and which can do threaded rendering (amd and nvidia chips -+// with their own proprietary drivers). -+// -+// This, of course, is very broad and disables threaded rendering on a lot of devices which would -+// be able to use it. However, the bugs listed below don't follow any easily recognizable pattern -+// and we should rather be safe. -+// -+// http://cgit.freedesktop.org/xcb/libxcb/commit/?id=be0fe56c3bcad5124dcc6c47a2fad01acd16f71a will -+// fix some of the issues. Basically, the proprietary drivers seem to have a way of working around -+// a fundamental flaw with multithreaded access to xcb, but mesa doesn't. The blacklist should be -+// reevaluated once that patch is released in some version of xcb. -+static const char *qglx_threadedgl_blacklist_vendor[] = { -+ "Mesa Project and SGI", // QTCREATORBUG-10875 (crash in creator) -+ // QTBUG-34492 (flickering in fullscreen) -+ // QTBUG-38221 -+ 0 -+}; -+ - void QGLXContext::queryDummyContext() - { - if (m_queriedDummyContext) -@@ -709,33 +734,18 @@ void QGLXContext::queryDummyContext() - } - } - -- if (glxvendor && m_supportsThreading) { -- // Blacklist Mesa drivers due to QTCREATORBUG-10875 (crash in creator), -- // QTBUG-34492 (flickering in fullscreen) and QTBUG-38221 -- const char *mesaVersionStr = nullptr; -- if (strstr(glxvendor, "Mesa Project") != 0) { -- mesaVersionStr = (const char *) glGetString(GL_VERSION); -- m_supportsThreading = false; -- } -+ if (glxvendor) { -+ for (int i = 0; qglx_threadedgl_blacklist_vendor[i]; ++i) { -+ if (strstr(glxvendor, qglx_threadedgl_blacklist_vendor[i]) != 0) { -+ qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " -+ "blacklisted vendor \"" -+ << qglx_threadedgl_blacklist_vendor[i] -+ << "\""; - -- if (mesaVersionStr) { -- // The issue was fixed in Xcb 1.11, but we can't check for that -- // at runtime, so instead assume it fixed with recent Mesa versions -- // released several years after the Xcb fix. -- QRegularExpression versionTest(QStringLiteral("Mesa (\\d+)")); -- QRegularExpressionMatch result = versionTest.match(QString::fromLatin1(mesaVersionStr)); -- int versionNr = 0; -- if (result.hasMatch()) -- versionNr = result.captured(1).toInt(); -- if (versionNr >= 17) { -- // White-listed -- m_supportsThreading = true; -+ m_supportsThreading = false; -+ break; - } - } -- if (!m_supportsThreading) { -- qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: " -- "blacklisted vendor \"Mesa Project\""; -- } - } - - context.doneCurrent(); --- -2.20.1 - diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index d4afe4d..74de906 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Wed Feb 19 10:16:14 UTC 2020 - Fabian Vogt + +- Update to 5.15.0-alpha: + * New feature release + * For more details please see: + https://wiki.qt.io/New_Features_in_Qt_5.15 +- Replace patches with single patch + 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch: + * 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch + * 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch: + * 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch +- Refresh 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch + ------------------------------------------------------------------- Mon Jan 27 13:13:57 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index e2d7ce7..f549c88 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,17 +36,17 @@ %endif Name: libqt5-qtbase -Version: 5.14.1 +Version: 5.15.0~alpha Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.14.1 -%define so_version 5.14.1 -%define tar_version qtbase-everywhere-src-5.14.1 -Source: https://download.qt.io/official_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz +%define real_version 5.15.0-alpha +%define so_version 5.15.0 +%define tar_version qtbase-everywhere-src-5.15.0-alpha +Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes Source2: macros.qt5 @@ -61,9 +61,7 @@ Patch10: libqt5-prioritise-gtk2-platformtheme.patch # PATCH-FEATURE-OPENSUSE 0001-Add-remote-print-queue-support.patch fate#322052 -- Automatically recognize and allow printing to remote cups servers Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE -Patch21: 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch -Patch22: 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch -Patch23: 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch +Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch # patches 1000-2000 and above from upstream 5.14 branch # # patches 2000-3000 and above from upstream 5.15/dev branch # @@ -867,7 +865,8 @@ echo yes | ./configure \ -no-separate-debug-info \ -force-debug-info \ -shared \ - -xkb \ + -xkbcommon \ + -no-bundled-xcb-xinput \ -dbus-linked \ -sm \ -no-rpath \ @@ -1058,6 +1057,8 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png %{libqt5_libdir}/cmake/Qt5/ %{libqt5_libdir}/pkgconfig/Qt5Core.pc %{libqt5_includedir}/QtCore/ +%dir %{libqt5_libdir}/metatypes/ +%{libqt5_libdir}/metatypes/qt5core_metatypes.json %exclude %{libqt5_includedir}/QtCore/%{so_version} %{libqt5_docdir} @@ -1185,6 +1186,7 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png %{libqt5_libdir}/cmake/Qt5Widgets/ %{libqt5_libdir}/pkgconfig/Qt5Widgets.pc %{libqt5_includedir}/QtWidgets/ +%{libqt5_libdir}/metatypes/qt5widgets_metatypes.json %exclude %{libqt5_includedir}/QtWidgets/%{so_version} %files -n libQt5Gui5 @@ -1237,6 +1239,7 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png %{libqt5_includedir}/QtGui/ %{libqt5_includedir}/QtEglFSDeviceIntegration/ %{libqt5_includedir}/QtXkbCommonSupport +%{libqt5_libdir}/metatypes/qt5gui_metatypes.json %exclude %{libqt5_includedir}/QtGui/%{so_version} %exclude %{libqt5_includedir}/QtEglFSDeviceIntegration/%{so_version} %exclude %{libqt5_includedir}/QtXkbCommonSupport/%{so_version} diff --git a/qtbase-everywhere-src-5.14.1.tar.xz b/qtbase-everywhere-src-5.14.1.tar.xz deleted file mode 100644 index 7c77e9b..0000000 --- a/qtbase-everywhere-src-5.14.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9d423a6e7bcf1055c0372fc029f14a6fe67dd62c67b83095cde68b60b762cf7 -size 49828188 diff --git a/qtbase-everywhere-src-5.15.0-alpha.tar.xz b/qtbase-everywhere-src-5.15.0-alpha.tar.xz new file mode 100644 index 0000000..0152ec0 --- /dev/null +++ b/qtbase-everywhere-src-5.15.0-alpha.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7294f5f97ad3ee30dc3f1274375013772b103c69738c40db69d202de7938adec +size 49873976 From d03038494fed894861b348037d8d8ec9a7277ce3466f101a26844750d034f6a6 Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Sun, 1 Mar 2020 08:57:54 +0000 Subject: [PATCH 03/33] Qt 5.15 Beta 1 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=3 --- libqt5-qtbase.changes | 7 +++++++ libqt5-qtbase.spec | 6 +++--- qtbase-everywhere-src-5.15.0-alpha.tar.xz | 3 --- qtbase-everywhere-src-5.15.0-beta1.tar.xz | 3 +++ 4 files changed, 13 insertions(+), 6 deletions(-) delete mode 100644 qtbase-everywhere-src-5.15.0-alpha.tar.xz create mode 100644 qtbase-everywhere-src-5.15.0-beta1.tar.xz diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 74de906..dfd42f6 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Feb 28 09:58:42 UTC 2020 - Fabian Vogt + +- Update to 5.15.0-beta1: + * New bugfix release + * No changelog available + ------------------------------------------------------------------- Wed Feb 19 10:16:14 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index f549c88..8069060 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.0~alpha +Version: 5.15.0~beta1 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0-alpha +%define real_version 5.15.0-beta1 %define so_version 5.15.0 -%define tar_version qtbase-everywhere-src-5.15.0-alpha +%define tar_version qtbase-everywhere-src-5.15.0-beta1 Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes diff --git a/qtbase-everywhere-src-5.15.0-alpha.tar.xz b/qtbase-everywhere-src-5.15.0-alpha.tar.xz deleted file mode 100644 index 0152ec0..0000000 --- a/qtbase-everywhere-src-5.15.0-alpha.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7294f5f97ad3ee30dc3f1274375013772b103c69738c40db69d202de7938adec -size 49873976 diff --git a/qtbase-everywhere-src-5.15.0-beta1.tar.xz b/qtbase-everywhere-src-5.15.0-beta1.tar.xz new file mode 100644 index 0000000..92e1b7f --- /dev/null +++ b/qtbase-everywhere-src-5.15.0-beta1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d835c6ba15e1a443bb0114a5eeea4efd512bc74700bb1ae003514d1465cd7b94 +size 49882136 From dcc1ebf9aaa87faac2b8d4919ffe0dffd4a0bb0ff66b57e6768704ccb149d463 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 25 Mar 2020 07:19:56 +0000 Subject: [PATCH 04/33] Qt 5.15 Beta 2 - untested, as usual OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=4 --- libqt5-qtbase.changes | 7 +++++++ libqt5-qtbase.spec | 6 +++--- qtbase-everywhere-src-5.15.0-beta1.tar.xz | 3 --- qtbase-everywhere-src-5.15.0-beta2.tar.xz | 3 +++ 4 files changed, 13 insertions(+), 6 deletions(-) delete mode 100644 qtbase-everywhere-src-5.15.0-beta1.tar.xz create mode 100644 qtbase-everywhere-src-5.15.0-beta2.tar.xz diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index dfd42f6..af2c8b3 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Mar 24 12:13:29 UTC 2020 - Fabian Vogt + +- Update to 5.15.0-beta2: + * New bugfix release + * No changelog available + ------------------------------------------------------------------- Fri Feb 28 09:58:42 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 8069060..5691afa 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.0~beta1 +Version: 5.15.0~beta2 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0-beta1 +%define real_version 5.15.0-beta2 %define so_version 5.15.0 -%define tar_version qtbase-everywhere-src-5.15.0-beta1 +%define tar_version qtbase-everywhere-src-5.15.0-beta2 Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes diff --git a/qtbase-everywhere-src-5.15.0-beta1.tar.xz b/qtbase-everywhere-src-5.15.0-beta1.tar.xz deleted file mode 100644 index 92e1b7f..0000000 --- a/qtbase-everywhere-src-5.15.0-beta1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d835c6ba15e1a443bb0114a5eeea4efd512bc74700bb1ae003514d1465cd7b94 -size 49882136 diff --git a/qtbase-everywhere-src-5.15.0-beta2.tar.xz b/qtbase-everywhere-src-5.15.0-beta2.tar.xz new file mode 100644 index 0000000..7380f82 --- /dev/null +++ b/qtbase-everywhere-src-5.15.0-beta2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b07983d9b8ae611bbb65388beea0629990080b99813788e4e7db56cb7897677 +size 49887468 From 4b190a38a075ed5a157fc8b8bc0c244f0055d77d4e10492458ef4aa4fb5ebe13 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 15 Apr 2020 08:52:22 +0000 Subject: [PATCH 05/33] Qt 5.15.0 Beta 3 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=5 --- ...required-version-of-OpenSSL-to-1.1.0.patch | 44 +++++++++++++++++++ libqt5-qtbase.changes | 9 ++++ libqt5-qtbase.spec | 7 +-- qtbase-everywhere-src-5.15.0-beta2.tar.xz | 3 -- qtbase-everywhere-src-5.15.0-beta3.tar.xz | 3 ++ 5 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch delete mode 100644 qtbase-everywhere-src-5.15.0-beta2.tar.xz create mode 100644 qtbase-everywhere-src-5.15.0-beta3.tar.xz diff --git a/0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch b/0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch new file mode 100644 index 0000000..cf09a28 --- /dev/null +++ b/0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch @@ -0,0 +1,44 @@ +From 5fbcd6b8f1635916c0a2669649d3c96312b54288 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Tue, 14 Apr 2020 11:33:23 +0200 +Subject: [PATCH] Lower required version of OpenSSL to 1.1.0 + +SLE 15 until SP2 (so Leap < 15.2) ships 1.1.0 which won't get upgraded. +--- + src/network/configure.json | 4 ++-- + src/network/ssl/qsslsocket_openssl.cpp | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/network/configure.json b/src/network/configure.json +index 289d84fbb4..c414e729d7 100644 +--- a/src/network/configure.json ++++ b/src/network/configure.json +@@ -61,8 +61,8 @@ + "export": "openssl", + "test": { + "tail": [ +- "#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10101000L", +- "# error OpenSSL >= 1.1.1 is required", ++ "#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10100000L", ++ "# error OpenSSL >= 1.1.0 is required", + "#endif", + "#if !defined(OPENSSL_NO_EC) && !defined(SSL_CTRL_SET_CURVES)", + "# error OpenSSL was reported as >= 1.1.1 but is missing required features, possibly it's libressl which is unsupported", +diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp +index 9b28d52e21..daddea1feb 100644 +--- a/src/network/ssl/qsslsocket_openssl.cpp ++++ b/src/network/ssl/qsslsocket_openssl.cpp +@@ -1943,8 +1943,8 @@ bool QSslSocketPrivate::ensureLibraryLoaded() + if (q_OPENSSL_init_ssl(0, nullptr) != 1) + return false; + +- if (q_OpenSSL_version_num() < 0x10101000L) { +- qCWarning(lcSsl, "QSslSocket: OpenSSL >= 1.1.1 is required; %s was found instead", q_OpenSSL_version(OPENSSL_VERSION)); ++ if (q_OpenSSL_version_num() < 0x10100000L) { ++ qCWarning(lcSsl, "QSslSocket: OpenSSL >= 1.1.0 is required; %s was found instead", q_OpenSSL_version(OPENSSL_VERSION)); + return false; + } + +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index af2c8b3..3c49983 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue Apr 14 06:47:19 UTC 2020 - Fabian Vogt + +- Update to 5.15.0-beta3: + * New bugfix release + * No changelog available +- Add patch to fix build on Leap 15.1: + * 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch + ------------------------------------------------------------------- Tue Mar 24 12:13:29 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 5691afa..6f7211e 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.0~beta2 +Version: 5.15.0~beta3 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0-beta2 +%define real_version 5.15.0-beta3 %define so_version 5.15.0 -%define tar_version qtbase-everywhere-src-5.15.0-beta2 +%define tar_version qtbase-everywhere-src-5.15.0-beta3 Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes @@ -53,6 +53,7 @@ Source2: macros.qt5 Source3: baselibs.conf Source99: libqt5-qtbase-rpmlintrc # patches 0-1000 are openSUSE and/or non-upstream(able) patches # +Patch1: 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch # PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default Patch6: disable-rc4-ciphers-bnc865241.diff Patch8: tell-the-truth-about-private-api.patch diff --git a/qtbase-everywhere-src-5.15.0-beta2.tar.xz b/qtbase-everywhere-src-5.15.0-beta2.tar.xz deleted file mode 100644 index 7380f82..0000000 --- a/qtbase-everywhere-src-5.15.0-beta2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4b07983d9b8ae611bbb65388beea0629990080b99813788e4e7db56cb7897677 -size 49887468 diff --git a/qtbase-everywhere-src-5.15.0-beta3.tar.xz b/qtbase-everywhere-src-5.15.0-beta3.tar.xz new file mode 100644 index 0000000..46f0717 --- /dev/null +++ b/qtbase-everywhere-src-5.15.0-beta3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a12551eb7a8924fe4bc01a2c14cdcbe884839146b6eb687fe87a35f55e0fbc5 +size 49912588 From 32e06d62e26e6c4f0e7d908a7503a7f14de1913235fe189540a67a9c8be2b272 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sat, 25 Apr 2020 19:51:49 +0000 Subject: [PATCH 06/33] Qt 5.15.0 Beta 4 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=6 --- libqt5-qtbase.changes | 7 +++++++ libqt5-qtbase.spec | 6 +++--- qtbase-everywhere-src-5.15.0-beta3.tar.xz | 3 --- qtbase-everywhere-src-5.15.0-beta4.tar.xz | 3 +++ 4 files changed, 13 insertions(+), 6 deletions(-) delete mode 100644 qtbase-everywhere-src-5.15.0-beta3.tar.xz create mode 100644 qtbase-everywhere-src-5.15.0-beta4.tar.xz diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 3c49983..4ff64b7 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Apr 24 07:11:04 UTC 2020 - Fabian Vogt + +- Update to 5.15.0-beta4: + * New bugfix release + * No changelog available + ------------------------------------------------------------------- Tue Apr 14 06:47:19 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 6f7211e..1dd3692 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.0~beta3 +Version: 5.15.0~beta4 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0-beta3 +%define real_version 5.15.0-beta4 %define so_version 5.15.0 -%define tar_version qtbase-everywhere-src-5.15.0-beta3 +%define tar_version qtbase-everywhere-src-5.15.0-beta4 Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes diff --git a/qtbase-everywhere-src-5.15.0-beta3.tar.xz b/qtbase-everywhere-src-5.15.0-beta3.tar.xz deleted file mode 100644 index 46f0717..0000000 --- a/qtbase-everywhere-src-5.15.0-beta3.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a12551eb7a8924fe4bc01a2c14cdcbe884839146b6eb687fe87a35f55e0fbc5 -size 49912588 diff --git a/qtbase-everywhere-src-5.15.0-beta4.tar.xz b/qtbase-everywhere-src-5.15.0-beta4.tar.xz new file mode 100644 index 0000000..0f570ec --- /dev/null +++ b/qtbase-everywhere-src-5.15.0-beta4.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77c59eb2de03f63ae98c0394db8f4574c97e53c50033b004e78971e3c0a891ee +size 49928780 From 7a21285489d9bd5325618a0da9b6be9a66c5be465e58704757b5dc5220757455 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sat, 9 May 2020 06:33:21 +0000 Subject: [PATCH 07/33] Qt 5.15.0 RC OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=7 --- fix-build-openssl-1.1.0.patch | 31 +++++++++++++++++++++++ libqt5-qtbase.changes | 18 +++++++++++++ libqt5-qtbase.spec | 7 ++--- qtbase-everywhere-src-5.15.0-beta4.tar.xz | 3 --- qtbase-everywhere-src-5.15.0-rc.tar.xz | 3 +++ 5 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 fix-build-openssl-1.1.0.patch delete mode 100644 qtbase-everywhere-src-5.15.0-beta4.tar.xz create mode 100644 qtbase-everywhere-src-5.15.0-rc.tar.xz diff --git a/fix-build-openssl-1.1.0.patch b/fix-build-openssl-1.1.0.patch new file mode 100644 index 0000000..ad6dd74 --- /dev/null +++ b/fix-build-openssl-1.1.0.patch @@ -0,0 +1,31 @@ +From: Fabian Vogt +Subject: Fix build against OpenSSL 1.1.0 + +Leap 15.1 still has it and we can't switch away without breaking the world. + +Index: qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbols.cpp +=================================================================== +--- qtbase-everywhere-src-5.15.0-rc.orig/src/network/ssl/qsslsocket_openssl_symbols.cpp ++++ qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbols.cpp +@@ -373,7 +373,7 @@ DEFINEFUNC3(void, SSL_set_bio, SSL *a, a + DEFINEFUNC(void, SSL_set_accept_state, SSL *a, a, return, DUMMYARG) + DEFINEFUNC(void, SSL_set_connect_state, SSL *a, a, return, DUMMYARG) + DEFINEFUNC(int, SSL_shutdown, SSL *a, a, return -1, return) +-DEFINEFUNC(int, SSL_in_init, const SSL *a, a, return 0, return) ++DEFINEFUNC(int, SSL_in_init, SSL *a, a, return 0, return) + DEFINEFUNC(int, SSL_get_shutdown, const SSL *ssl, ssl, return 0, return) + DEFINEFUNC2(int, SSL_set_session, SSL* to, to, SSL_SESSION *session, session, return -1, return) + DEFINEFUNC(void, SSL_SESSION_free, SSL_SESSION *ses, ses, return, DUMMYARG) +Index: qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbols_p.h +=================================================================== +--- qtbase-everywhere-src-5.15.0-rc.orig/src/network/ssl/qsslsocket_openssl_symbols_p.h ++++ qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbols_p.h +@@ -516,7 +516,7 @@ void q_SSL_set_bio(SSL *a, BIO *b, BIO * + void q_SSL_set_accept_state(SSL *a); + void q_SSL_set_connect_state(SSL *a); + int q_SSL_shutdown(SSL *a); +-int q_SSL_in_init(const SSL *s); ++int q_SSL_in_init(SSL *s); + int q_SSL_get_shutdown(const SSL *ssl); + int q_SSL_set_session(SSL *to, SSL_SESSION *session); + void q_SSL_SESSION_free(SSL_SESSION *ses); diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 4ff64b7..f394da6 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Wed May 6 11:26:35 UTC 2020 - Fabian Vogt + +- Update to 5.15.0-rc: + * New bugfix release + * For the changes between 5.14.2 and 5.15.0 please see: + http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.0/?h=5.15.0 +- Drop patches, now upstream: + * 0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch +- Add patch to fix build on Leap 15.1: + * fix-build-openssl-1.1.0.patch + +------------------------------------------------------------------- +Mon Apr 27 12:45:07 UTC 2020 - Fabian Vogt + +- Add patch to fix use-after-free (boo#1170582, CVE-2020-12267): + * 0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch + ------------------------------------------------------------------- Fri Apr 24 07:11:04 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 1dd3692..c2ce903 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.0~beta4 +Version: 5.15.0~rc Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0-beta4 +%define real_version 5.15.0-rc %define so_version 5.15.0 -%define tar_version qtbase-everywhere-src-5.15.0-beta4 +%define tar_version qtbase-everywhere-src-5.15.0-rc Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes @@ -54,6 +54,7 @@ Source3: baselibs.conf Source99: libqt5-qtbase-rpmlintrc # patches 0-1000 are openSUSE and/or non-upstream(able) patches # Patch1: 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch +Patch2: fix-build-openssl-1.1.0.patch # PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default Patch6: disable-rc4-ciphers-bnc865241.diff Patch8: tell-the-truth-about-private-api.patch diff --git a/qtbase-everywhere-src-5.15.0-beta4.tar.xz b/qtbase-everywhere-src-5.15.0-beta4.tar.xz deleted file mode 100644 index 0f570ec..0000000 --- a/qtbase-everywhere-src-5.15.0-beta4.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77c59eb2de03f63ae98c0394db8f4574c97e53c50033b004e78971e3c0a891ee -size 49928780 diff --git a/qtbase-everywhere-src-5.15.0-rc.tar.xz b/qtbase-everywhere-src-5.15.0-rc.tar.xz new file mode 100644 index 0000000..ee17a3d --- /dev/null +++ b/qtbase-everywhere-src-5.15.0-rc.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adde0de674a5e22a34fbf1034926e9e338cc3f1208286df5614543269d1778af +size 49951072 From ae6cb46af6275ec48719a9855aaf401d667ddbbe39b90105d8b83115deb22f62 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Fri, 22 May 2020 13:54:05 +0000 Subject: [PATCH 08/33] OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=8 --- libqt5-qtbase.changes | 6 ++++++ libqt5-qtbase.spec | 6 +++--- qtbase-everywhere-src-5.15.0-rc.tar.xz | 3 --- qtbase-everywhere-src-5.15.0-rc2.tar.xz | 3 +++ 4 files changed, 12 insertions(+), 6 deletions(-) delete mode 100644 qtbase-everywhere-src-5.15.0-rc.tar.xz create mode 100644 qtbase-everywhere-src-5.15.0-rc2.tar.xz diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index f394da6..e7c22e3 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed May 20 15:38:18 UTC 2020 - Callum Farmer + +- Update to 5.15.0-rc2 + * No changelog available + ------------------------------------------------------------------- Wed May 6 11:26:35 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index c2ce903..49af283 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.0~rc +Version: 5.15.0~rc2 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0-rc +%define real_version 5.15.0-rc2 %define so_version 5.15.0 -%define tar_version qtbase-everywhere-src-5.15.0-rc +%define tar_version qtbase-everywhere-src-5.15.0-rc2 Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes diff --git a/qtbase-everywhere-src-5.15.0-rc.tar.xz b/qtbase-everywhere-src-5.15.0-rc.tar.xz deleted file mode 100644 index ee17a3d..0000000 --- a/qtbase-everywhere-src-5.15.0-rc.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:adde0de674a5e22a34fbf1034926e9e338cc3f1208286df5614543269d1778af -size 49951072 diff --git a/qtbase-everywhere-src-5.15.0-rc2.tar.xz b/qtbase-everywhere-src-5.15.0-rc2.tar.xz new file mode 100644 index 0000000..1d93946 --- /dev/null +++ b/qtbase-everywhere-src-5.15.0-rc2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d5b8cf628cfe793b671938bd92a88540fec8a87cde264607ddaf06119270836 +size 49940656 From 5a9a62781b4854849ce993f75deb02ca7ff93f52e91fff69fcd171c0205dd7b9 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Wed, 27 May 2020 08:38:42 +0000 Subject: [PATCH 09/33] OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=9 --- libqt5-qtbase.changes | 6 ++++++ libqt5-qtbase.spec | 12 ++++++------ qtbase-everywhere-src-5.15.0-rc2.tar.xz | 3 --- qtbase-everywhere-src-5.15.0.tar.xz | 3 +++ 4 files changed, 15 insertions(+), 9 deletions(-) delete mode 100644 qtbase-everywhere-src-5.15.0-rc2.tar.xz create mode 100644 qtbase-everywhere-src-5.15.0.tar.xz diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index e7c22e3..96842d9 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue May 26 09:44:55 UTC 2020 - Callum Farmer + +- Update to 5.15.0: + * No changelog available + ------------------------------------------------------------------- Wed May 20 15:38:18 UTC 2020 - Callum Farmer diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 49af283..773534a 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -1,7 +1,7 @@ # # spec file for package libqt5-qtbase # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -36,17 +36,17 @@ %endif Name: libqt5-qtbase -Version: 5.15.0~rc2 +Version: 5.15.0 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0-rc2 +%define real_version 5.15.0 %define so_version 5.15.0 -%define tar_version qtbase-everywhere-src-5.15.0-rc2 -Source: https://download.qt.io/development_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz +%define tar_version qtbase-everywhere-src-5.15.0 +Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes Source2: macros.qt5 diff --git a/qtbase-everywhere-src-5.15.0-rc2.tar.xz b/qtbase-everywhere-src-5.15.0-rc2.tar.xz deleted file mode 100644 index 1d93946..0000000 --- a/qtbase-everywhere-src-5.15.0-rc2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3d5b8cf628cfe793b671938bd92a88540fec8a87cde264607ddaf06119270836 -size 49940656 diff --git a/qtbase-everywhere-src-5.15.0.tar.xz b/qtbase-everywhere-src-5.15.0.tar.xz new file mode 100644 index 0000000..ab3d57b --- /dev/null +++ b/qtbase-everywhere-src-5.15.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5 +size 49931940 From fd024df5367b896ad93579765e6a7c41907bd1ecce49d253e1bace0274322bcf Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 27 May 2020 09:57:19 +0000 Subject: [PATCH 10/33] OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=10 --- ...e-when-a-QWidgetAction-fires-the-tri.patch | 139 ++++++++++++++++++ libqt5-qtbase.changes | 6 + libqt5-qtbase.spec | 1 + 3 files changed, 146 insertions(+) create mode 100644 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch diff --git a/0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch b/0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch new file mode 100644 index 0000000..25eb4e4 --- /dev/null +++ b/0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch @@ -0,0 +1,139 @@ +From 9928d66764337494d0e99208a3418fcd01ac3e66 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Wed, 27 May 2020 10:48:45 +0200 +Subject: [PATCH] Revert "QMenu: hide when a QWidgetAction fires the trigged + signal" + +This reverts commit b4669b919048c1dbdac2b3e9b2e79f3d023aa078. +--- + src/widgets/widgets/qmenu.cpp | 9 +-- + .../auto/widgets/widgets/qmenu/tst_qmenu.cpp | 79 ------------------- + 2 files changed, 4 insertions(+), 84 deletions(-) + +diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp +index 865e3b2fb6..2878344f07 100644 +--- a/src/widgets/widgets/qmenu.cpp ++++ b/src/widgets/widgets/qmenu.cpp +@@ -1470,9 +1470,6 @@ void QMenuPrivate::_q_actionTriggered() + } + } + activateCausedStack(list, action, QAction::Trigger, false); +- // if a widget action fires, we need to hide the menu explicitly +- if (qobject_cast(action)) +- hideUpToMenuBar(); + } + } + } +@@ -1640,8 +1637,10 @@ void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action) + + Widgets can be inserted into menus with the QWidgetAction class. + Instances of this class are used to hold widgets, and are inserted +- into menus with the addAction() overload that takes a QAction. If the +- QWidgetAction fires the triggered() signal, the menu will close. ++ into menus with the addAction() overload that takes a QAction. ++ ++ Conversely, actions can be added to widgets with the addAction(), ++ addActions() and insertAction() functions. + + \warning To make QMenu visible on the screen, exec() or popup() should be + used instead of show(). +diff --git a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp +index 5a24995caf..22494f3d24 100644 +--- a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp ++++ b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp +@@ -116,7 +116,6 @@ private slots: + void QTBUG20403_nested_popup_on_shortcut_trigger(); + void QTBUG47515_widgetActionEnterLeave(); + void QTBUG8122_widgetActionCrashOnClose(); +- void widgetActionTriggerClosesMenu(); + + void QTBUG_10735_crashWithDialog(); + #ifdef Q_OS_MAC +@@ -1408,84 +1407,6 @@ void tst_QMenu::QTBUG8122_widgetActionCrashOnClose() + QTRY_VERIFY(menu->isHidden()); + } + +-/*! +- Test that a QWidgetAction that fires closes the menus that it is in. +-*/ +-void tst_QMenu::widgetActionTriggerClosesMenu() +-{ +- class ButtonAction : public QWidgetAction +- { +- public: +- ButtonAction() +- : QWidgetAction(nullptr) +- {} +- +- void click() +- { +- if (pushButton) +- pushButton->click(); +- } +- +- protected: +- QWidget *createWidget(QWidget *parent) +- { +- QPushButton *button = new QPushButton(QLatin1String("Button"), parent); +- connect(button, &QPushButton::clicked, this, &QAction::trigger); +- +- if (!pushButton) +- pushButton = button; +- return button; +- } +- +- private: +- QPointer pushButton; +- }; +- +- QMenu menu; +- QMenu submenu; +- +- int menuTriggeredCount = 0; +- int menuAboutToHideCount = 0; +- QAction *actionTriggered = nullptr; +- +- connect(&menu, &QMenu::triggered, this, [&](QAction *action){ +- ++menuTriggeredCount; +- actionTriggered = action; +- }); +- connect (&menu, &QMenu::aboutToHide, this, [&](){ +- ++menuAboutToHideCount; +- }); +- +- QAction regularAction(QLatin1String("Action")); +- ButtonAction widgetAction; +- +- submenu.addAction(®ularAction); +- submenu.addAction(&widgetAction); +- +- menu.addMenu(&submenu); +- menu.addAction(®ularAction); +- menu.addAction(&widgetAction); +- +- menu.popup(QPoint(200,200)); +- submenu.popup(QPoint(250,250)); +- if (!QTest::qWaitForWindowExposed(&menu) || !QTest::qWaitForWindowExposed(&submenu)) +- QSKIP("Failed to show menus, aborting test"); +- +- regularAction.trigger(); +- QVERIFY(menu.isVisible()); +- QVERIFY(submenu.isVisible()); +- QCOMPARE(menuTriggeredCount, 1); +- QCOMPARE(actionTriggered, ®ularAction); +- menuTriggeredCount = 0; +- actionTriggered = nullptr; +- +- widgetAction.click(); +- QVERIFY(!menu.isVisible()); +- QVERIFY(!submenu.isVisible()); +- QCOMPARE(menuTriggeredCount, 1); +- QCOMPARE(menuAboutToHideCount, 1); +- QCOMPARE(actionTriggered, &widgetAction); +-} + + class MyMenu : public QMenu + { +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 96842d9..fe1b4cf 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed May 27 08:48:52 UTC 2020 - Fabian Vogt + +- Add patch to avoid behaviour change causing crashes (kde#419526): + * 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch + ------------------------------------------------------------------- Tue May 26 09:44:55 UTC 2020 - Callum Farmer diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 773534a..45331bf 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -55,6 +55,7 @@ Source99: libqt5-qtbase-rpmlintrc # patches 0-1000 are openSUSE and/or non-upstream(able) patches # Patch1: 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch Patch2: fix-build-openssl-1.1.0.patch +Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch # PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default Patch6: disable-rc4-ciphers-bnc865241.diff Patch8: tell-the-truth-about-private-api.patch From e547eca9f8cc895ce26451178fbd9ccd6df3b312314a7859b04b0f5743399c36 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 10 Jun 2020 16:50:47 +0000 Subject: [PATCH 11/33] - Add patch to fix tool menu placement (boo#1172754, QTBUG-84462): * 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=11 --- ...menus-showing-on-primary-screens-in-.patch | 37 +++++++++++++++++++ libqt5-qtbase.changes | 6 +++ libqt5-qtbase.spec | 6 ++- 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch diff --git a/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch b/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch new file mode 100644 index 0000000..4501a30 --- /dev/null +++ b/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch @@ -0,0 +1,37 @@ +From f16d0e41bb638ffc1d83ca48321073eca1b86b42 Mon Sep 17 00:00:00 2001 +From: Friedemann Kleint +Date: Wed, 10 Jun 2020 11:26:00 +0200 +Subject: [PATCH] Fix QToolButton menus showing on primary screens in + multiscreen setups + +Calculate an initial position based on the current size hint +and pass it to QMenuPrivate::exec(), which does screen checks +based on it. + +Amends a78d66743171557d79b16c08be775e3ac15bb4ef. + +Pick-to: 5.15 +Fixes: QTBUG-84462 +Task-number: QTBUG-78966 +Change-Id: Icae8d2bc0fb50c4c853cfebaa2b2250fc06542e3 +--- + src/widgets/widgets/qtoolbutton.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/widgets/widgets/qtoolbutton.cpp b/src/widgets/widgets/qtoolbutton.cpp +index edd4788806..0b090d2bac 100644 +--- a/src/widgets/widgets/qtoolbutton.cpp ++++ b/src/widgets/widgets/qtoolbutton.cpp +@@ -805,7 +805,8 @@ void QToolButtonPrivate::popupTimerDone() + // QTBUG-78966, Delay positioning until after aboutToShow(). + auto positionFunction = [q, horizontal](const QSize &sizeHint) { + return positionMenu(q, horizontal, sizeHint); }; +- actualMenu->d_func()->exec({}, nullptr, positionFunction); ++ const auto initialPos = positionFunction(actualMenu->sizeHint()); ++ actualMenu->d_func()->exec(initialPos, nullptr, positionFunction); + + if (!that) + return; +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index fe1b4cf..b647f74 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Jun 10 12:31:44 UTC 2020 - Fabian Vogt + +- Add patch to fix tool menu placement (boo#1172754, QTBUG-84462): + * 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch + ------------------------------------------------------------------- Wed May 27 08:48:52 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 45331bf..700fd33 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -66,10 +66,12 @@ Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch -# patches 1000-2000 and above from upstream 5.14 branch # -# patches 2000-3000 and above from upstream 5.15/dev branch # +# patches 1000-2000 and above from upstream 5.15 branch # +# patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch +# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/303786 +Patch2002: 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: double-conversion-devel From 953a0fe6ee8d610e1a27d87303a45969715173f5dd0921f1440b07f33223f687 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sun, 5 Jul 2020 11:57:52 +0000 Subject: [PATCH 12/33] - Add patch to prevent stuck image conversion (boo#1172599, QTBUG-84619): * 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=12 --- ...ad-if-already-in-a-global-threadpool.patch | 225 ++++++++++++++++++ libqt5-qtbase.changes | 6 + libqt5-qtbase.spec | 1 + 3 files changed, 232 insertions(+) create mode 100644 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch diff --git a/0001-Do-not-multithread-if-already-in-a-global-threadpool.patch b/0001-Do-not-multithread-if-already-in-a-global-threadpool.patch new file mode 100644 index 0000000..3d0a50b --- /dev/null +++ b/0001-Do-not-multithread-if-already-in-a-global-threadpool.patch @@ -0,0 +1,225 @@ +From 5801eb483cce1a9c459b3e86d57dc6fe6f643480 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Tue, 2 Jun 2020 10:59:21 +0200 +Subject: [PATCH] Do not multithread if already in a global threadpool thread + +This can lead to a deadlock if we block all the worker threads, waiting +for the worker threads to finish. + +Fixes: QTBUG-84619 +Change-Id: I92b7f96007897d86ece0c34223bab0df4ccbed9a +Reviewed-by: Sona Kurazyan +(cherry picked from commit 87d32424de2f471a520c1f3ba0c3035fbff7ee06) +Reviewed-by: Qt Cherry-pick Bot +--- + src/corelib/thread/qthreadpool.cpp | 24 ++++++++++++++++++++++++ + src/corelib/thread/qthreadpool.h | 2 ++ + src/gui/image/qimage.cpp | 7 ++++--- + src/gui/image/qimage_conversions.cpp | 15 +++++++++------ + src/gui/painting/qimagescale.cpp | 5 +++-- + src/gui/painting/qimagescale_neon.cpp | 5 +++-- + src/gui/painting/qimagescale_sse4.cpp | 5 +++-- + 7 files changed, 48 insertions(+), 15 deletions(-) + +diff --git a/src/corelib/thread/qthreadpool.cpp b/src/corelib/thread/qthreadpool.cpp +index 44cdf071df..a583298f01 100644 +--- a/src/corelib/thread/qthreadpool.cpp ++++ b/src/corelib/thread/qthreadpool.cpp +@@ -52,6 +52,7 @@ Q_GLOBAL_STATIC(QThreadPool, theInstance) + */ + class QThreadPoolThread : public QThread + { ++ Q_OBJECT + public: + QThreadPoolThread(QThreadPoolPrivate *manager); + void run() override; +@@ -745,6 +746,28 @@ void QThreadPool::clear() + d->clear(); + } + ++#if QT_VERSION < QT_VERSION_CHECK(6,0,0) ++/*! ++ \internal ++ ++ Returns \c true if \a thread is a thread managed by this thread pool. ++*/ ++#else ++/*! ++ \since 6.0 ++ ++ Returns \c true if \a thread is a thread managed by this thread pool. ++*/ ++#endif ++bool QThreadPool::contains(const QThread *thread) const ++{ ++ Q_D(const QThreadPool); ++ const QThreadPoolThread *poolThread = qobject_cast(thread); ++ if (!poolThread) ++ return false; ++ return d->allThreads.contains(const_cast(poolThread)); ++} ++ + #if QT_DEPRECATED_SINCE(5, 9) + /*! + \since 5.5 +@@ -766,3 +789,4 @@ void QThreadPool::cancel(QRunnable *runnable) + QT_END_NAMESPACE + + #include "moc_qthreadpool.cpp" ++#include "qthreadpool.moc" +diff --git a/src/corelib/thread/qthreadpool.h b/src/corelib/thread/qthreadpool.h +index e3691ab010..004f76a240 100644 +--- a/src/corelib/thread/qthreadpool.h ++++ b/src/corelib/thread/qthreadpool.h +@@ -93,6 +93,8 @@ public: + + void clear(); + ++ bool contains(const QThread *thread) const; ++ + #if QT_DEPRECATED_SINCE(5, 9) + QT_DEPRECATED_X("use tryTake(), but note the different deletion rules") + void cancel(QRunnable *runnable); +diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp +index 2646d298e9..17c31cd8ae 100644 +--- a/src/gui/image/qimage.cpp ++++ b/src/gui/image/qimage.cpp +@@ -5047,15 +5047,16 @@ void QImage::applyColorTransform(const QColorTransform &transform) + }; + } + +-#if QT_CONFIG(thread) ++#if QT_CONFIG(thread) && !defined(Q_OS_WASM) + int segments = sizeInBytes() / (1<<16); + segments = std::min(segments, height()); +- if (segments > 1) { ++ QThreadPool *threadPool = QThreadPool::globalInstance(); ++ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { + QSemaphore semaphore; + int y = 0; + for (int i = 0; i < segments; ++i) { + int yn = (height() - y) / (segments - i); +- QThreadPool::globalInstance()->start([&, y, yn]() { ++ threadPool->start([&, y, yn]() { + transformSegment(y, y + yn); + semaphore.release(1); + }); +diff --git a/src/gui/image/qimage_conversions.cpp b/src/gui/image/qimage_conversions.cpp +index 506ebc797f..cbfdbdeadb 100644 +--- a/src/gui/image/qimage_conversions.cpp ++++ b/src/gui/image/qimage_conversions.cpp +@@ -236,14 +236,15 @@ void convert_generic(QImageData *dest, const QImageData *src, Qt::ImageConversio + int segments = src->nbytes / (1<<16); + segments = std::min(segments, src->height); + +- if (segments <= 1) ++ QThreadPool *threadPool = QThreadPool::globalInstance(); ++ if (segments <= 1 || threadPool->contains(QThread::currentThread())) + return convertSegment(0, src->height); + + QSemaphore semaphore; + int y = 0; + for (int i = 0; i < segments; ++i) { + int yn = (src->height - y) / (segments - i); +- QThreadPool::globalInstance()->start([&, y, yn]() { ++ threadPool->start([&, y, yn]() { + convertSegment(y, y + yn); + semaphore.release(1); + }); +@@ -290,14 +291,15 @@ void convert_generic_to_rgb64(QImageData *dest, const QImageData *src, Qt::Image + int segments = src->nbytes / (1<<16); + segments = std::min(segments, src->height); + +- if (segments <= 1) ++ QThreadPool *threadPool = QThreadPool::globalInstance(); ++ if (segments <= 1 || threadPool->contains(QThread::currentThread())) + return convertSegment(0, src->height); + + QSemaphore semaphore; + int y = 0; + for (int i = 0; i < segments; ++i) { + int yn = (src->height - y) / (segments - i); +- QThreadPool::globalInstance()->start([&, y, yn]() { ++ threadPool->start([&, y, yn]() { + convertSegment(y, y + yn); + semaphore.release(1); + }); +@@ -396,12 +398,13 @@ bool convert_generic_inplace(QImageData *data, QImage::Format dst_format, Qt::Im + #ifdef QT_USE_THREAD_PARALLEL_IMAGE_CONVERSIONS + int segments = data->nbytes / (1<<16); + segments = std::min(segments, data->height); +- if (segments > 1) { ++ QThreadPool *threadPool = QThreadPool::globalInstance(); ++ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { + QSemaphore semaphore; + int y = 0; + for (int i = 0; i < segments; ++i) { + int yn = (data->height - y) / (segments - i); +- QThreadPool::globalInstance()->start([&, y, yn]() { ++ threadPool->start([&, y, yn]() { + convertSegment(y, y + yn); + semaphore.release(1); + }); +diff --git a/src/gui/painting/qimagescale.cpp b/src/gui/painting/qimagescale.cpp +index 2395c891ce..aac1e20f7b 100644 +--- a/src/gui/painting/qimagescale.cpp ++++ b/src/gui/painting/qimagescale.cpp +@@ -307,12 +307,13 @@ static inline void multithread_pixels_function(QImageScaleInfo *isi, int dh, con + #if QT_CONFIG(thread) && !defined(Q_OS_WASM) + int segments = (qsizetype(isi->sh) * isi->sw) / (1<<16); + segments = std::min(segments, dh); +- if (segments > 1) { ++ QThreadPool *threadPool = QThreadPool::globalInstance(); ++ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { + QSemaphore semaphore; + int y = 0; + for (int i = 0; i < segments; ++i) { + int yn = (dh - y) / (segments - i); +- QThreadPool::globalInstance()->start([&, y, yn]() { ++ threadPool->start([&, y, yn]() { + scaleSection(y, y + yn); + semaphore.release(1); + }); +diff --git a/src/gui/painting/qimagescale_neon.cpp b/src/gui/painting/qimagescale_neon.cpp +index 65fe3fac3c..046e56b419 100644 +--- a/src/gui/painting/qimagescale_neon.cpp ++++ b/src/gui/painting/qimagescale_neon.cpp +@@ -58,12 +58,13 @@ static inline void multithread_pixels_function(QImageScaleInfo *isi, int dh, con + #if QT_CONFIG(thread) && !defined(Q_OS_WASM) + int segments = (qsizetype(isi->sh) * isi->sw) / (1<<16); + segments = std::min(segments, dh); +- if (segments > 1) { ++ QThreadPool *threadPool = QThreadPool::globalInstance(); ++ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { + QSemaphore semaphore; + int y = 0; + for (int i = 0; i < segments; ++i) { + int yn = (dh - y) / (segments - i); +- QThreadPool::globalInstance()->start([&, y, yn]() { ++ threadPool->start([&, y, yn]() { + scaleSection(y, y + yn); + semaphore.release(1); + }); +diff --git a/src/gui/painting/qimagescale_sse4.cpp b/src/gui/painting/qimagescale_sse4.cpp +index 1760e72f65..70cfa08d95 100644 +--- a/src/gui/painting/qimagescale_sse4.cpp ++++ b/src/gui/painting/qimagescale_sse4.cpp +@@ -59,12 +59,13 @@ static inline void multithread_pixels_function(QImageScaleInfo *isi, int dh, con + #if QT_CONFIG(thread) && !defined(Q_OS_WASM) + int segments = (qsizetype(isi->sh) * isi->sw) / (1<<16); + segments = std::min(segments, dh); +- if (segments > 1) { ++ QThreadPool *threadPool = QThreadPool::globalInstance(); ++ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { + QSemaphore semaphore; + int y = 0; + for (int i = 0; i < segments; ++i) { + int yn = (dh - y) / (segments - i); +- QThreadPool::globalInstance()->start([&, y, yn]() { ++ threadPool->start([&, y, yn]() { + scaleSection(y, y + yn); + semaphore.release(1); + }); +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index b647f74..9103893 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun Jul 5 10:16:48 UTC 2020 - Fabian Vogt + +- Add patch to prevent stuck image conversion (boo#1172599, QTBUG-84619): + * 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch + ------------------------------------------------------------------- Wed Jun 10 12:31:44 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 700fd33..c27b9e6 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -67,6 +67,7 @@ Patch12: 0001-Add-remote-print-queue-support.patch Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch # patches 1000-2000 and above from upstream 5.15 branch # +Patch1000: 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch From 384e05d86cce14f965b70c93daae12f31a80657f26c8360156cd4f3fb4688dfc Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Fri, 11 Sep 2020 06:29:58 +0000 Subject: [PATCH 13/33] Qt 5.15.1 - not built yet OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=13 --- ...ad-if-already-in-a-global-threadpool.patch | 225 ------------------ ...menus-showing-on-primary-screens-in-.patch | 37 --- fix-build-openssl-1.1.0.patch | 36 ++- libqt5-qtbase.changes | 13 + libqt5-qtbase.spec | 11 +- qtbase-everywhere-src-5.15.0.tar.xz | 3 - qtbase-everywhere-src-5.15.1.tar.xz | 3 + 7 files changed, 48 insertions(+), 280 deletions(-) delete mode 100644 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch delete mode 100644 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch delete mode 100644 qtbase-everywhere-src-5.15.0.tar.xz create mode 100644 qtbase-everywhere-src-5.15.1.tar.xz diff --git a/0001-Do-not-multithread-if-already-in-a-global-threadpool.patch b/0001-Do-not-multithread-if-already-in-a-global-threadpool.patch deleted file mode 100644 index 3d0a50b..0000000 --- a/0001-Do-not-multithread-if-already-in-a-global-threadpool.patch +++ /dev/null @@ -1,225 +0,0 @@ -From 5801eb483cce1a9c459b3e86d57dc6fe6f643480 Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen -Date: Tue, 2 Jun 2020 10:59:21 +0200 -Subject: [PATCH] Do not multithread if already in a global threadpool thread - -This can lead to a deadlock if we block all the worker threads, waiting -for the worker threads to finish. - -Fixes: QTBUG-84619 -Change-Id: I92b7f96007897d86ece0c34223bab0df4ccbed9a -Reviewed-by: Sona Kurazyan -(cherry picked from commit 87d32424de2f471a520c1f3ba0c3035fbff7ee06) -Reviewed-by: Qt Cherry-pick Bot ---- - src/corelib/thread/qthreadpool.cpp | 24 ++++++++++++++++++++++++ - src/corelib/thread/qthreadpool.h | 2 ++ - src/gui/image/qimage.cpp | 7 ++++--- - src/gui/image/qimage_conversions.cpp | 15 +++++++++------ - src/gui/painting/qimagescale.cpp | 5 +++-- - src/gui/painting/qimagescale_neon.cpp | 5 +++-- - src/gui/painting/qimagescale_sse4.cpp | 5 +++-- - 7 files changed, 48 insertions(+), 15 deletions(-) - -diff --git a/src/corelib/thread/qthreadpool.cpp b/src/corelib/thread/qthreadpool.cpp -index 44cdf071df..a583298f01 100644 ---- a/src/corelib/thread/qthreadpool.cpp -+++ b/src/corelib/thread/qthreadpool.cpp -@@ -52,6 +52,7 @@ Q_GLOBAL_STATIC(QThreadPool, theInstance) - */ - class QThreadPoolThread : public QThread - { -+ Q_OBJECT - public: - QThreadPoolThread(QThreadPoolPrivate *manager); - void run() override; -@@ -745,6 +746,28 @@ void QThreadPool::clear() - d->clear(); - } - -+#if QT_VERSION < QT_VERSION_CHECK(6,0,0) -+/*! -+ \internal -+ -+ Returns \c true if \a thread is a thread managed by this thread pool. -+*/ -+#else -+/*! -+ \since 6.0 -+ -+ Returns \c true if \a thread is a thread managed by this thread pool. -+*/ -+#endif -+bool QThreadPool::contains(const QThread *thread) const -+{ -+ Q_D(const QThreadPool); -+ const QThreadPoolThread *poolThread = qobject_cast(thread); -+ if (!poolThread) -+ return false; -+ return d->allThreads.contains(const_cast(poolThread)); -+} -+ - #if QT_DEPRECATED_SINCE(5, 9) - /*! - \since 5.5 -@@ -766,3 +789,4 @@ void QThreadPool::cancel(QRunnable *runnable) - QT_END_NAMESPACE - - #include "moc_qthreadpool.cpp" -+#include "qthreadpool.moc" -diff --git a/src/corelib/thread/qthreadpool.h b/src/corelib/thread/qthreadpool.h -index e3691ab010..004f76a240 100644 ---- a/src/corelib/thread/qthreadpool.h -+++ b/src/corelib/thread/qthreadpool.h -@@ -93,6 +93,8 @@ public: - - void clear(); - -+ bool contains(const QThread *thread) const; -+ - #if QT_DEPRECATED_SINCE(5, 9) - QT_DEPRECATED_X("use tryTake(), but note the different deletion rules") - void cancel(QRunnable *runnable); -diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp -index 2646d298e9..17c31cd8ae 100644 ---- a/src/gui/image/qimage.cpp -+++ b/src/gui/image/qimage.cpp -@@ -5047,15 +5047,16 @@ void QImage::applyColorTransform(const QColorTransform &transform) - }; - } - --#if QT_CONFIG(thread) -+#if QT_CONFIG(thread) && !defined(Q_OS_WASM) - int segments = sizeInBytes() / (1<<16); - segments = std::min(segments, height()); -- if (segments > 1) { -+ QThreadPool *threadPool = QThreadPool::globalInstance(); -+ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { - QSemaphore semaphore; - int y = 0; - for (int i = 0; i < segments; ++i) { - int yn = (height() - y) / (segments - i); -- QThreadPool::globalInstance()->start([&, y, yn]() { -+ threadPool->start([&, y, yn]() { - transformSegment(y, y + yn); - semaphore.release(1); - }); -diff --git a/src/gui/image/qimage_conversions.cpp b/src/gui/image/qimage_conversions.cpp -index 506ebc797f..cbfdbdeadb 100644 ---- a/src/gui/image/qimage_conversions.cpp -+++ b/src/gui/image/qimage_conversions.cpp -@@ -236,14 +236,15 @@ void convert_generic(QImageData *dest, const QImageData *src, Qt::ImageConversio - int segments = src->nbytes / (1<<16); - segments = std::min(segments, src->height); - -- if (segments <= 1) -+ QThreadPool *threadPool = QThreadPool::globalInstance(); -+ if (segments <= 1 || threadPool->contains(QThread::currentThread())) - return convertSegment(0, src->height); - - QSemaphore semaphore; - int y = 0; - for (int i = 0; i < segments; ++i) { - int yn = (src->height - y) / (segments - i); -- QThreadPool::globalInstance()->start([&, y, yn]() { -+ threadPool->start([&, y, yn]() { - convertSegment(y, y + yn); - semaphore.release(1); - }); -@@ -290,14 +291,15 @@ void convert_generic_to_rgb64(QImageData *dest, const QImageData *src, Qt::Image - int segments = src->nbytes / (1<<16); - segments = std::min(segments, src->height); - -- if (segments <= 1) -+ QThreadPool *threadPool = QThreadPool::globalInstance(); -+ if (segments <= 1 || threadPool->contains(QThread::currentThread())) - return convertSegment(0, src->height); - - QSemaphore semaphore; - int y = 0; - for (int i = 0; i < segments; ++i) { - int yn = (src->height - y) / (segments - i); -- QThreadPool::globalInstance()->start([&, y, yn]() { -+ threadPool->start([&, y, yn]() { - convertSegment(y, y + yn); - semaphore.release(1); - }); -@@ -396,12 +398,13 @@ bool convert_generic_inplace(QImageData *data, QImage::Format dst_format, Qt::Im - #ifdef QT_USE_THREAD_PARALLEL_IMAGE_CONVERSIONS - int segments = data->nbytes / (1<<16); - segments = std::min(segments, data->height); -- if (segments > 1) { -+ QThreadPool *threadPool = QThreadPool::globalInstance(); -+ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { - QSemaphore semaphore; - int y = 0; - for (int i = 0; i < segments; ++i) { - int yn = (data->height - y) / (segments - i); -- QThreadPool::globalInstance()->start([&, y, yn]() { -+ threadPool->start([&, y, yn]() { - convertSegment(y, y + yn); - semaphore.release(1); - }); -diff --git a/src/gui/painting/qimagescale.cpp b/src/gui/painting/qimagescale.cpp -index 2395c891ce..aac1e20f7b 100644 ---- a/src/gui/painting/qimagescale.cpp -+++ b/src/gui/painting/qimagescale.cpp -@@ -307,12 +307,13 @@ static inline void multithread_pixels_function(QImageScaleInfo *isi, int dh, con - #if QT_CONFIG(thread) && !defined(Q_OS_WASM) - int segments = (qsizetype(isi->sh) * isi->sw) / (1<<16); - segments = std::min(segments, dh); -- if (segments > 1) { -+ QThreadPool *threadPool = QThreadPool::globalInstance(); -+ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { - QSemaphore semaphore; - int y = 0; - for (int i = 0; i < segments; ++i) { - int yn = (dh - y) / (segments - i); -- QThreadPool::globalInstance()->start([&, y, yn]() { -+ threadPool->start([&, y, yn]() { - scaleSection(y, y + yn); - semaphore.release(1); - }); -diff --git a/src/gui/painting/qimagescale_neon.cpp b/src/gui/painting/qimagescale_neon.cpp -index 65fe3fac3c..046e56b419 100644 ---- a/src/gui/painting/qimagescale_neon.cpp -+++ b/src/gui/painting/qimagescale_neon.cpp -@@ -58,12 +58,13 @@ static inline void multithread_pixels_function(QImageScaleInfo *isi, int dh, con - #if QT_CONFIG(thread) && !defined(Q_OS_WASM) - int segments = (qsizetype(isi->sh) * isi->sw) / (1<<16); - segments = std::min(segments, dh); -- if (segments > 1) { -+ QThreadPool *threadPool = QThreadPool::globalInstance(); -+ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { - QSemaphore semaphore; - int y = 0; - for (int i = 0; i < segments; ++i) { - int yn = (dh - y) / (segments - i); -- QThreadPool::globalInstance()->start([&, y, yn]() { -+ threadPool->start([&, y, yn]() { - scaleSection(y, y + yn); - semaphore.release(1); - }); -diff --git a/src/gui/painting/qimagescale_sse4.cpp b/src/gui/painting/qimagescale_sse4.cpp -index 1760e72f65..70cfa08d95 100644 ---- a/src/gui/painting/qimagescale_sse4.cpp -+++ b/src/gui/painting/qimagescale_sse4.cpp -@@ -59,12 +59,13 @@ static inline void multithread_pixels_function(QImageScaleInfo *isi, int dh, con - #if QT_CONFIG(thread) && !defined(Q_OS_WASM) - int segments = (qsizetype(isi->sh) * isi->sw) / (1<<16); - segments = std::min(segments, dh); -- if (segments > 1) { -+ QThreadPool *threadPool = QThreadPool::globalInstance(); -+ if (segments > 1 && !threadPool->contains(QThread::currentThread())) { - QSemaphore semaphore; - int y = 0; - for (int i = 0; i < segments; ++i) { - int yn = (dh - y) / (segments - i); -- QThreadPool::globalInstance()->start([&, y, yn]() { -+ threadPool->start([&, y, yn]() { - scaleSection(y, y + yn); - semaphore.release(1); - }); --- -2.25.1 - diff --git a/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch b/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch deleted file mode 100644 index 4501a30..0000000 --- a/0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch +++ /dev/null @@ -1,37 +0,0 @@ -From f16d0e41bb638ffc1d83ca48321073eca1b86b42 Mon Sep 17 00:00:00 2001 -From: Friedemann Kleint -Date: Wed, 10 Jun 2020 11:26:00 +0200 -Subject: [PATCH] Fix QToolButton menus showing on primary screens in - multiscreen setups - -Calculate an initial position based on the current size hint -and pass it to QMenuPrivate::exec(), which does screen checks -based on it. - -Amends a78d66743171557d79b16c08be775e3ac15bb4ef. - -Pick-to: 5.15 -Fixes: QTBUG-84462 -Task-number: QTBUG-78966 -Change-Id: Icae8d2bc0fb50c4c853cfebaa2b2250fc06542e3 ---- - src/widgets/widgets/qtoolbutton.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/widgets/widgets/qtoolbutton.cpp b/src/widgets/widgets/qtoolbutton.cpp -index edd4788806..0b090d2bac 100644 ---- a/src/widgets/widgets/qtoolbutton.cpp -+++ b/src/widgets/widgets/qtoolbutton.cpp -@@ -805,7 +805,8 @@ void QToolButtonPrivate::popupTimerDone() - // QTBUG-78966, Delay positioning until after aboutToShow(). - auto positionFunction = [q, horizontal](const QSize &sizeHint) { - return positionMenu(q, horizontal, sizeHint); }; -- actualMenu->d_func()->exec({}, nullptr, positionFunction); -+ const auto initialPos = positionFunction(actualMenu->sizeHint()); -+ actualMenu->d_func()->exec(initialPos, nullptr, positionFunction); - - if (!that) - return; --- -2.25.1 - diff --git a/fix-build-openssl-1.1.0.patch b/fix-build-openssl-1.1.0.patch index ad6dd74..51f1fa3 100644 --- a/fix-build-openssl-1.1.0.patch +++ b/fix-build-openssl-1.1.0.patch @@ -3,11 +3,21 @@ Subject: Fix build against OpenSSL 1.1.0 Leap 15.1 still has it and we can't switch away without breaking the world. -Index: qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbols.cpp +Index: qtbase-everywhere-src-5.15.1/src/network/ssl/qsslsocket_openssl_symbols.cpp =================================================================== ---- qtbase-everywhere-src-5.15.0-rc.orig/src/network/ssl/qsslsocket_openssl_symbols.cpp -+++ qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbols.cpp -@@ -373,7 +373,7 @@ DEFINEFUNC3(void, SSL_set_bio, SSL *a, a +--- qtbase-everywhere-src-5.15.1.orig/src/network/ssl/qsslsocket_openssl_symbols.cpp ++++ qtbase-everywhere-src-5.15.1/src/network/ssl/qsslsocket_openssl_symbols.cpp +@@ -146,7 +146,9 @@ DEFINEFUNC2(int, BN_is_word, BIGNUM *a, + DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return) + DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return) + DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return) ++#if OPENSSL_VERSION_NUMBER >= 0x10101000L + DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return) ++#endif + DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return) + DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return) + DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return) +@@ -376,7 +378,7 @@ DEFINEFUNC3(void, SSL_set_bio, SSL *a, a DEFINEFUNC(void, SSL_set_accept_state, SSL *a, a, return, DUMMYARG) DEFINEFUNC(void, SSL_set_connect_state, SSL *a, a, return, DUMMYARG) DEFINEFUNC(int, SSL_shutdown, SSL *a, a, return -1, return) @@ -16,11 +26,21 @@ Index: qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbol DEFINEFUNC(int, SSL_get_shutdown, const SSL *ssl, ssl, return 0, return) DEFINEFUNC2(int, SSL_set_session, SSL* to, to, SSL_SESSION *session, session, return -1, return) DEFINEFUNC(void, SSL_SESSION_free, SSL_SESSION *ses, ses, return, DUMMYARG) -Index: qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbols_p.h +Index: qtbase-everywhere-src-5.15.1/src/network/ssl/qsslsocket_openssl_symbols_p.h =================================================================== ---- qtbase-everywhere-src-5.15.0-rc.orig/src/network/ssl/qsslsocket_openssl_symbols_p.h -+++ qtbase-everywhere-src-5.15.0-rc/src/network/ssl/qsslsocket_openssl_symbols_p.h -@@ -516,7 +516,7 @@ void q_SSL_set_bio(SSL *a, BIO *b, BIO * +--- qtbase-everywhere-src-5.15.1.orig/src/network/ssl/qsslsocket_openssl_symbols_p.h ++++ qtbase-everywhere-src-5.15.1/src/network/ssl/qsslsocket_openssl_symbols_p.h +@@ -235,7 +235,9 @@ int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CT + Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a); + EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); + void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); ++#if OPENSSL_VERSION_NUMBER >= 0x10101000L + int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); ++#endif + int q_EVP_PKEY_base_id(EVP_PKEY *a); + int q_RSA_bits(RSA *a); + Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a); +@@ -519,7 +521,7 @@ void q_SSL_set_bio(SSL *a, BIO *b, BIO * void q_SSL_set_accept_state(SSL *a); void q_SSL_set_connect_state(SSL *a); int q_SSL_shutdown(SSL *a); diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 9103893..f3865fd 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu Sep 10 07:57:00 UTC 2020 - Fabian Vogt + +- Update to 5.15.1: + * New bugfix release + * Fixes CVE-2020-17507 + * For more details please see: + http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.1/?h=5.15.1 +- Drop patches, now upstream: + * 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch + * 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch +- Adjust fix-build-openssl-1.1.0.patch + ------------------------------------------------------------------- Sun Jul 5 10:16:48 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index c27b9e6..d98b69a 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.0 +Version: 5.15.1 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.0 -%define so_version 5.15.0 -%define tar_version qtbase-everywhere-src-5.15.0 +%define real_version 5.15.1 +%define so_version 5.15.1 +%define tar_version qtbase-everywhere-src-5.15.1 Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes @@ -67,12 +67,9 @@ Patch12: 0001-Add-remote-print-queue-support.patch Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch # patches 1000-2000 and above from upstream 5.15 branch # -Patch1000: 0001-Do-not-multithread-if-already-in-a-global-threadpool.patch # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch -# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/303786 -Patch2002: 0001-Fix-QToolButton-menus-showing-on-primary-screens-in-.patch BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: double-conversion-devel diff --git a/qtbase-everywhere-src-5.15.0.tar.xz b/qtbase-everywhere-src-5.15.0.tar.xz deleted file mode 100644 index ab3d57b..0000000 --- a/qtbase-everywhere-src-5.15.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5 -size 49931940 diff --git a/qtbase-everywhere-src-5.15.1.tar.xz b/qtbase-everywhere-src-5.15.1.tar.xz new file mode 100644 index 0000000..e8ac513 --- /dev/null +++ b/qtbase-everywhere-src-5.15.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33960404d579675b7210de103ed06a72613bfc4305443e278e2d32a3eb1f3d8c +size 50153132 From 1cf222f1ba42a285240b14438c014078498aebc4cfdf6da24e103351492c9eba Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Tue, 22 Sep 2020 07:03:57 +0000 Subject: [PATCH 14/33] - Revert commit to fix screen geometry on startup (boo#1176750, QTBUG-86604): * 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=14 --- ...een-availableG-g-eometryChanged-on-l.patch | 98 +++++++++++++++++++ libqt5-qtbase.changes | 6 ++ libqt5-qtbase.spec | 1 + 3 files changed, 105 insertions(+) create mode 100644 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch diff --git a/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch b/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch new file mode 100644 index 0000000..2898de0 --- /dev/null +++ b/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch @@ -0,0 +1,98 @@ +From b885b4a189db2889f3f934a18a9ffc17a9c9077f Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Sun, 20 Sep 2020 18:19:10 +0200 +Subject: [PATCH] Revert "Emit QScreen::(availableG|g)eometryChanged() on + logical DPI change" + +This reverts commit 370289bef68d8505b66cb27150a3f596e23c5ed3. +--- + src/gui/kernel/qguiapplication.cpp | 10 ++++++++-- + src/gui/kernel/qscreen.cpp | 24 +++--------------------- + src/gui/kernel/qscreen_p.h | 2 -- + 3 files changed, 11 insertions(+), 25 deletions(-) + +diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp +index 239a78313c..2eee145f27 100644 +--- a/src/gui/kernel/qguiapplication.cpp ++++ b/src/gui/kernel/qguiapplication.cpp +@@ -3178,7 +3178,14 @@ void QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfaceP + updateFilteredScreenOrientation(s); + } + +- s->d_func()->emitGeometryChangeSignals(geometryChanged, availableGeometryChanged); ++ if (availableGeometryChanged) ++ emit s->availableGeometryChanged(s->availableGeometry()); ++ ++ if (geometryChanged || availableGeometryChanged) { ++ const auto siblings = s->virtualSiblings(); ++ for (QScreen* sibling : siblings) ++ emit sibling->virtualGeometryChanged(sibling->virtualGeometry()); ++ } + + resetCachedDevicePixelRatio(); + } +@@ -3198,7 +3205,6 @@ void QGuiApplicationPrivate::processScreenLogicalDotsPerInchChange(QWindowSystem + s->d_func()->logicalDpi = QDpi(e->dpiX, e->dpiY); + + emit s->logicalDotsPerInchChanged(s->logicalDotsPerInch()); +- s->d_func()->updateGeometriesWithSignals(); + + resetCachedDevicePixelRatio(); + } +diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp +index df628fcc73..d5a4b7c027 100644 +--- a/src/gui/kernel/qscreen.cpp ++++ b/src/gui/kernel/qscreen.cpp +@@ -77,33 +77,15 @@ QScreen::QScreen(QPlatformScreen *screen) + d->setPlatformScreen(screen); + } + +-void QScreenPrivate::updateGeometriesWithSignals() +-{ +- const QRect oldGeometry = geometry; +- const QRect oldAvailableGeometry = availableGeometry; +- updateHighDpi(); +- emitGeometryChangeSignals(oldGeometry != geometry, oldAvailableGeometry != availableGeometry); +-} +- +-void QScreenPrivate::emitGeometryChangeSignals(bool geometryChanged, bool availableGeometryChanged) +-{ +- Q_Q(QScreen); +- if (availableGeometryChanged) +- emit q->availableGeometryChanged(availableGeometry); +- +- if (geometryChanged || availableGeometryChanged) { +- const auto siblings = q->virtualSiblings(); +- for (QScreen* sibling : siblings) +- emit sibling->virtualGeometryChanged(sibling->virtualGeometry()); +- } +-} +- + void QScreenPrivate::setPlatformScreen(QPlatformScreen *screen) + { + Q_Q(QScreen); + platformScreen = screen; + platformScreen->d_func()->screen = q; + orientation = platformScreen->orientation(); ++ geometry = platformScreen->deviceIndependentGeometry(); ++ availableGeometry = QHighDpi::fromNative(platformScreen->availableGeometry(), ++ QHighDpiScaling::factor(platformScreen), geometry.topLeft()); + + logicalDpi = QPlatformScreen::overrideDpi(platformScreen->logicalDpi()); + +diff --git a/src/gui/kernel/qscreen_p.h b/src/gui/kernel/qscreen_p.h +index 7da542c25e..e5988ff829 100644 +--- a/src/gui/kernel/qscreen_p.h ++++ b/src/gui/kernel/qscreen_p.h +@@ -72,8 +72,6 @@ public: + } + + void updatePrimaryOrientation(); +- void updateGeometriesWithSignals(); +- void emitGeometryChangeSignals(bool geometryChanged, bool availableGeometryChanged); + + QPlatformScreen *platformScreen = nullptr; + +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index f3865fd..5ed341a 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Sep 21 09:55:25 UTC 2020 - Fabian Vogt + +- Revert commit to fix screen geometry on startup (boo#1176750, QTBUG-86604): + * 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch + ------------------------------------------------------------------- Thu Sep 10 07:57:00 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index d98b69a..5ef26a4 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -66,6 +66,7 @@ Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch +Patch25: 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch # patches 1000-2000 and above from upstream 5.15 branch # # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 From f2b97997e88554ef3cc394f9b9b5fddc73f9c0a5d856e5248526ea15545408b0 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Mon, 12 Oct 2020 15:02:53 +0000 Subject: [PATCH 15/33] - Remove some no longer required build dependencies: libpulse, alsa (now used via QtMultimedia), libmng (obsolete). OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=15 --- libqt5-qtbase.changes | 6 ++++++ libqt5-qtbase.spec | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 5ed341a..30da4d3 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Oct 12 13:57:55 UTC 2020 - Stefan Brüns + +- Remove some no longer required build dependencies: libpulse, + alsa (now used via QtMultimedia), libmng (obsolete). + ------------------------------------------------------------------- Mon Sep 21 09:55:25 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 5ef26a4..b289643 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -71,12 +71,10 @@ Patch25: 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch -BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: double-conversion-devel BuildRequires: gcc-c++ BuildRequires: libjpeg-devel -BuildRequires: libmng-devel BuildRequires: libmysqlclient-devel BuildRequires: libpng-devel BuildRequires: libproxy-devel @@ -103,7 +101,6 @@ BuildRequires: Mesa-libGLESv3-devel BuildRequires: pkgconfig(glesv2) %endif BuildRequires: libicu-devel -BuildRequires: libpulse-devel BuildRequires: tslib-devel %if %{vulkan} BuildRequires: vulkan-devel From 292f9d58c0d283a20ab535eea2076a370f81ca066f39a5bfa8c62a58fa991af4 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Thu, 15 Oct 2020 11:27:12 +0000 Subject: [PATCH 16/33] - Silence xcb errors and qml connection warnings by default, see boo#1115541 (xcb) and kde#418793. OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=16 --- libqt5-qtbase.changes | 6 ++++++ libqt5-qtbase.spec | 7 +++++++ qtlogging.ini | 3 +++ 3 files changed, 16 insertions(+) create mode 100644 qtlogging.ini diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 30da4d3..ddd0615 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Oct 14 19:28:37 UTC 2020 - Stefan Brüns + +- Silence xcb errors and qml connection warnings by default, see + boo#1115541 (xcb) and kde#418793. + ------------------------------------------------------------------- Mon Oct 12 13:57:55 UTC 2020 - Stefan Brüns diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index b289643..6c19574 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -51,6 +51,7 @@ Source: https://download.qt.io/official_releases/qt/5.15/%{real_version} Source1: libqt5-qtbase.changes Source2: macros.qt5 Source3: baselibs.conf +Source4: qtlogging.ini Source99: libqt5-qtbase-rpmlintrc # patches 0-1000 are openSUSE and/or non-upstream(able) patches # Patch1: 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch @@ -966,6 +967,10 @@ popd chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png +# Silence logging of xcb errors and qml deprecated connection +# warnings by default +install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini + %post -n libQt5Core5 -p /sbin/ldconfig %post -n libQt5Concurrent5 -p /sbin/ldconfig @@ -1048,6 +1053,8 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png %{libqt5_libdir}/sse2/libQt5Core.so.* %endif %endif +%dir %{libqt5_datadir} +%{libqt5_datadir}/qtlogging.ini %files -n libQt5Core-devel %license LICENSE.* diff --git a/qtlogging.ini b/qtlogging.ini new file mode 100644 index 0000000..136fe58 --- /dev/null +++ b/qtlogging.ini @@ -0,0 +1,3 @@ +[Rules] +qt.qpa.xcb.warning=false +qt.qml.connections.warning=false \ No newline at end of file From a6d290fa712314b9d5d4cf0201fc8441316300748c6b8c2aadc6d7c7eaa7dc9c Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Fri, 30 Oct 2020 15:48:53 +0000 Subject: [PATCH 17/33] - Disable -reduce-relocations for now (boo#1175278, QTBUG-86173) OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=17 --- libqt5-qtbase.changes | 5 +++++ libqt5-qtbase.spec | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index ddd0615..30215f5 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Oct 28 13:22:24 UTC 2020 - Fabian Vogt + +- Disable -reduce-relocations for now (boo#1175278, QTBUG-86173) + ------------------------------------------------------------------- Wed Oct 14 19:28:37 UTC 2020 - Stefan Brüns diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 6c19574..2eb96f1 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -834,6 +834,11 @@ sed -i 's|qt_instdate=`date +%Y-%m-%d`|qt_instdate=$CHANGES|g' configure sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf # -no-feature-relocatable is needed to support /usr/lib/sse2 etc., see QTBUG-78948 +# -reduce-relocations means copy relocations aren't allowed, and so special +# flags like -fPIC need to be passed when building an application. This breaks +# with LTO (PIE overrides that) and CMake (doesn't pass -fPIC when linking). +# Due to a binutils bug/misunderstanding, this option didn't do as much before 2.35, +# so just disable it for now until a proper alternative appears. echo yes | ./configure \ -prefix %{_prefix} \ @@ -851,11 +856,7 @@ echo yes | ./configure \ -sysconfdir %{libqt5_sysconfdir} \ -translationdir %{libqt5_translationdir} \ -verbose \ -%ifarch %ix86 x86_64 - -reduce-relocations \ -%else -no-reduce-relocations \ -%endif %ifarch %ix86 %if 0%{?sle_version} < 150000 -no-sse2 -no-pch \ From a65beb60e90fe32b797ba29e6ef4492f9d07a00a0fa4e3baf4d988b0c175a576 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sun, 22 Nov 2020 21:09:28 +0000 Subject: [PATCH 18/33] Qt 5.15.2. qt3d on Leap now without assimp OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=18 --- ...-platform-plugin-initialization-fail.patch | 36 +++++++ ...een-availableG-g-eometryChanged-on-l.patch | 98 ------------------- libqt5-qtbase.changes | 18 ++++ libqt5-qtbase.spec | 16 +-- qtbase-everywhere-src-5.15.1.tar.xz | 3 - qtbase-everywhere-src-5.15.2.tar.xz | 3 + 6 files changed, 65 insertions(+), 109 deletions(-) create mode 100644 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch delete mode 100644 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch delete mode 100644 qtbase-everywhere-src-5.15.1.tar.xz create mode 100644 qtbase-everywhere-src-5.15.2.tar.xz diff --git a/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch b/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch new file mode 100644 index 0000000..ba6f3af --- /dev/null +++ b/0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch @@ -0,0 +1,36 @@ +From 127e467e5ff86d5aba085c0e3410b3198d29b61a Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Fri, 13 Nov 2020 15:51:50 +0100 +Subject: [PATCH] Avoid SIGABRT on platform plugin initialization failure + +If all platform plugins failed to initialize, Qt calls qFatal which in turn +calls abort. This causes SIGABRT and may generate a coredump. + +In the most common case it's because the connection to the display (Wayland, +X11, whatever) is missing or failed, and a coredump will not help analyzing +that at all. + +https://bugreports.qt.io/browse/QTBUG-88491 +--- + src/gui/kernel/qguiapplication.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp +index a95331e246..098c69d3c1 100644 +--- a/src/gui/kernel/qguiapplication.cpp ++++ b/src/gui/kernel/qguiapplication.cpp +@@ -1251,9 +1251,9 @@ static void init_platform(const QString &pluginNamesWithArguments, const QString + if (!QLibraryInfo::isDebugBuild() && !GetConsoleWindow()) + MessageBox(0, (LPCTSTR)fatalMessage.utf16(), (LPCTSTR)(QCoreApplication::applicationName().utf16()), MB_OK | MB_ICONERROR); + #endif // Q_OS_WIN && !Q_OS_WINRT +- qFatal("%s", qPrintable(fatalMessage)); ++ qCritical("%s", qPrintable(fatalMessage)); + +- return; ++ _exit(1); + } + + // Many platforms have created QScreens at this point. Finish initializing +-- +2.25.1 + diff --git a/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch b/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch deleted file mode 100644 index 2898de0..0000000 --- a/0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch +++ /dev/null @@ -1,98 +0,0 @@ -From b885b4a189db2889f3f934a18a9ffc17a9c9077f Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Sun, 20 Sep 2020 18:19:10 +0200 -Subject: [PATCH] Revert "Emit QScreen::(availableG|g)eometryChanged() on - logical DPI change" - -This reverts commit 370289bef68d8505b66cb27150a3f596e23c5ed3. ---- - src/gui/kernel/qguiapplication.cpp | 10 ++++++++-- - src/gui/kernel/qscreen.cpp | 24 +++--------------------- - src/gui/kernel/qscreen_p.h | 2 -- - 3 files changed, 11 insertions(+), 25 deletions(-) - -diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp -index 239a78313c..2eee145f27 100644 ---- a/src/gui/kernel/qguiapplication.cpp -+++ b/src/gui/kernel/qguiapplication.cpp -@@ -3178,7 +3178,14 @@ void QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfaceP - updateFilteredScreenOrientation(s); - } - -- s->d_func()->emitGeometryChangeSignals(geometryChanged, availableGeometryChanged); -+ if (availableGeometryChanged) -+ emit s->availableGeometryChanged(s->availableGeometry()); -+ -+ if (geometryChanged || availableGeometryChanged) { -+ const auto siblings = s->virtualSiblings(); -+ for (QScreen* sibling : siblings) -+ emit sibling->virtualGeometryChanged(sibling->virtualGeometry()); -+ } - - resetCachedDevicePixelRatio(); - } -@@ -3198,7 +3205,6 @@ void QGuiApplicationPrivate::processScreenLogicalDotsPerInchChange(QWindowSystem - s->d_func()->logicalDpi = QDpi(e->dpiX, e->dpiY); - - emit s->logicalDotsPerInchChanged(s->logicalDotsPerInch()); -- s->d_func()->updateGeometriesWithSignals(); - - resetCachedDevicePixelRatio(); - } -diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp -index df628fcc73..d5a4b7c027 100644 ---- a/src/gui/kernel/qscreen.cpp -+++ b/src/gui/kernel/qscreen.cpp -@@ -77,33 +77,15 @@ QScreen::QScreen(QPlatformScreen *screen) - d->setPlatformScreen(screen); - } - --void QScreenPrivate::updateGeometriesWithSignals() --{ -- const QRect oldGeometry = geometry; -- const QRect oldAvailableGeometry = availableGeometry; -- updateHighDpi(); -- emitGeometryChangeSignals(oldGeometry != geometry, oldAvailableGeometry != availableGeometry); --} -- --void QScreenPrivate::emitGeometryChangeSignals(bool geometryChanged, bool availableGeometryChanged) --{ -- Q_Q(QScreen); -- if (availableGeometryChanged) -- emit q->availableGeometryChanged(availableGeometry); -- -- if (geometryChanged || availableGeometryChanged) { -- const auto siblings = q->virtualSiblings(); -- for (QScreen* sibling : siblings) -- emit sibling->virtualGeometryChanged(sibling->virtualGeometry()); -- } --} -- - void QScreenPrivate::setPlatformScreen(QPlatformScreen *screen) - { - Q_Q(QScreen); - platformScreen = screen; - platformScreen->d_func()->screen = q; - orientation = platformScreen->orientation(); -+ geometry = platformScreen->deviceIndependentGeometry(); -+ availableGeometry = QHighDpi::fromNative(platformScreen->availableGeometry(), -+ QHighDpiScaling::factor(platformScreen), geometry.topLeft()); - - logicalDpi = QPlatformScreen::overrideDpi(platformScreen->logicalDpi()); - -diff --git a/src/gui/kernel/qscreen_p.h b/src/gui/kernel/qscreen_p.h -index 7da542c25e..e5988ff829 100644 ---- a/src/gui/kernel/qscreen_p.h -+++ b/src/gui/kernel/qscreen_p.h -@@ -72,8 +72,6 @@ public: - } - - void updatePrimaryOrientation(); -- void updateGeometriesWithSignals(); -- void emitGeometryChangeSignals(bool geometryChanged, bool availableGeometryChanged); - - QPlatformScreen *platformScreen = nullptr; - --- -2.25.1 - diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 30215f5..ac9add5 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Fri Nov 20 12:08:44 UTC 2020 - Fabian Vogt + +- Update to 5.15.2: + * New bugfix release + * For more details please see: + http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.2/?h=5.15.2 +- Drop patches, now upstream: + * 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch +- Pass -confirm-license option, drop duplicates +- BuildRequire xcb-util + +------------------------------------------------------------------- +Fri Nov 13 15:50:40 UTC 2020 - Fabian Vogt + +- Add patch to avoid coredumps with missing display: + * 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch + ------------------------------------------------------------------- Wed Oct 28 13:22:24 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 2eb96f1..71105b3 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -36,16 +36,16 @@ %endif Name: libqt5-qtbase -Version: 5.15.1 +Version: 5.15.2 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Group: System/Libraries Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.15.1 -%define so_version 5.15.1 -%define tar_version qtbase-everywhere-src-5.15.1 +%define real_version 5.15.2 +%define so_version 5.15.2 +%define tar_version qtbase-everywhere-src-5.15.2 Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes @@ -57,6 +57,8 @@ Source99: libqt5-qtbase-rpmlintrc Patch1: 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch Patch2: fix-build-openssl-1.1.0.patch Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch +# Proposed: https://bugreports.qt.io/browse/QTBUG-88491 +Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch # PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default Patch6: disable-rc4-ciphers-bnc865241.diff Patch8: tell-the-truth-about-private-api.patch @@ -67,7 +69,6 @@ Patch12: 0001-Add-remote-print-queue-support.patch # PATCH-FIX-OPENSUSE Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch -Patch25: 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch # patches 1000-2000 and above from upstream 5.15 branch # # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 @@ -117,6 +118,7 @@ BuildRequires: pkgconfig(xcb-render) BuildRequires: pkgconfig(xcb-shape) BuildRequires: pkgconfig(xcb-shm) BuildRequires: pkgconfig(xcb-sync) +BuildRequires: pkgconfig(xcb-util) BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-xinerama) BuildRequires: pkgconfig(xcb-xkb) @@ -865,6 +867,7 @@ echo yes | ./configure \ -accessibility \ -no-strip \ -opensource \ + -confirm-license \ -no-separate-debug-info \ -force-debug-info \ -shared \ @@ -888,7 +891,6 @@ echo yes | ./configure \ -glib \ -sctp \ -system-sqlite \ - -no-sql-mysql \ %if %journald -journald \ %endif @@ -909,7 +911,6 @@ echo yes | ./configure \ -plugin-sql-mysql -I/usr/include/mysql/ \ -qpa "xcb;wayland" \ -no-feature-relocatable \ - -v \ QMAKE_CFLAGS+="$CFLAGS" \ QMAKE_CXXFLAGS+="$CXXFLAGS" @@ -1302,7 +1303,6 @@ install -Dm644 %{SOURCE4} %{buildroot}%{libqt5_datadir}/qtlogging.ini %doc *.txt %{libqt5_libdir}/libQt5Bootstrap.a %{libqt5_libdir}/libQt5Bootstrap.prl -%{libqt5_libdir}/cmake/Qt5Bootstrap/ %files -n libQt5OpenGLExtensions-devel-static %license LICENSE.* diff --git a/qtbase-everywhere-src-5.15.1.tar.xz b/qtbase-everywhere-src-5.15.1.tar.xz deleted file mode 100644 index e8ac513..0000000 --- a/qtbase-everywhere-src-5.15.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:33960404d579675b7210de103ed06a72613bfc4305443e278e2d32a3eb1f3d8c -size 50153132 diff --git a/qtbase-everywhere-src-5.15.2.tar.xz b/qtbase-everywhere-src-5.15.2.tar.xz new file mode 100644 index 0000000..b8bea25 --- /dev/null +++ b/qtbase-everywhere-src-5.15.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:909fad2591ee367993a75d7e2ea50ad4db332f05e1c38dd7a5a274e156a4e0f8 +size 50179672 From a823690ca4ad604715c452460417ecf736e4ff5dcdf554616fba77dcd33461f9 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sun, 22 Nov 2020 21:09:42 +0000 Subject: [PATCH 19/33] - Update to 5.15.2: * New bugfix release * For more details please see: http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.2/?h=5.15.2 - Drop patches, now upstream: * 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch - Pass -confirm-license option, drop duplicates - BuildRequire xcb-util - Add patch to avoid coredumps with missing display: * 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=19 --- libqt5-qtbase.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 71105b3..abd0e57 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -842,7 +842,7 @@ sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf # Due to a binutils bug/misunderstanding, this option didn't do as much before 2.35, # so just disable it for now until a proper alternative appears. -echo yes | ./configure \ +./configure \ -prefix %{_prefix} \ -L %{libqt5_libdir} \ -libdir %{libqt5_libdir} \ From 3b5d02df317701a09b54df5b511061e6e8788d64fded96ecb908a31cc73ba823 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Tue, 29 Dec 2020 12:34:11 +0000 Subject: [PATCH 20/33] - Add patch to avoid excessive use of memory by lconvert: * 0001-Fix-allocated-memory-of-QByteArray.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=20 --- 0001-Fix-allocated-memory-of-QByteArray.patch | 49 +++++++++++++++++++ libqt5-qtbase.changes | 6 +++ libqt5-qtbase.spec | 2 + 3 files changed, 57 insertions(+) create mode 100644 0001-Fix-allocated-memory-of-QByteArray.patch diff --git a/0001-Fix-allocated-memory-of-QByteArray.patch b/0001-Fix-allocated-memory-of-QByteArray.patch new file mode 100644 index 0000000..66515be --- /dev/null +++ b/0001-Fix-allocated-memory-of-QByteArray.patch @@ -0,0 +1,49 @@ +From 6485b6d45ad165cf976138cf8ab683c42515e794 Mon Sep 17 00:00:00 2001 +From: Kai Koehne +Date: Tue, 13 Oct 2020 15:47:31 +0200 +Subject: [PATCH] Fix allocated memory of QByteArray returned by QIODevice::readLine + +If the maxSize argument is 0 (the default), QIODevice::readLine will +allocate a QByteArray with the size of the next chunk of data, which +may be quite large. Before returning, it then resizes the byte array +to the actual size that was read. + +But since change 6b884d2aa129, QByteArray::resize() does no +longer shrink the capacity. This means that the returned QByteArray +keeps it's maximum size as allocated memory. This can lead to +excessive memory consumption, especially if the returned QByteArray's +are stored for further processing in the client code. + +Fix this by explicitly calling QByteArray::squeeze() before returning. + +[ChangeLog][QtCore][QIODevice] Fixes a regression in Qt 5.15 causing +QByteArray's that are returned by QIODevice::readLine() to +consume large amounts of memory. + +Fixes: QTBUG-87010 +Change-Id: I1f95fc4098849e900680fc945238bfeda881022c +Reviewed-by: Thiago Macieira +(cherry picked from commit 263b29eedb223dec1ecaee193302070af87a1852, +limited squeeze() call if bytes are actually read to preserve retVal.isNull() +behavior in 5.15) +--- + +diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp +index cc1d110..0f11c2e 100644 +--- a/src/corelib/io/qiodevice.cpp ++++ b/src/corelib/io/qiodevice.cpp +@@ -1480,10 +1480,12 @@ + } else + readBytes = readLine(result.data(), result.size()); + +- if (readBytes <= 0) ++ if (readBytes <= 0) { + result.clear(); +- else ++ } else { + result.resize(readBytes); ++ result.squeeze(); ++ } + + return result; + } diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index ac9add5..15cb341 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Dec 29 11:48:35 UTC 2020 - Arjen de Korte + +- Add patch to avoid excessive use of memory by lconvert: + * 0001-Fix-allocated-memory-of-QByteArray.patch + ------------------------------------------------------------------- Fri Nov 20 12:08:44 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index abd0e57..75a754d 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -70,6 +70,8 @@ Patch12: 0001-Add-remote-print-queue-support.patch Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch # patches 1000-2000 and above from upstream 5.15 branch # +# Merged: https://bugreports.qt.io/browse/QTBUG-87010 +Patch1000: 0001-Fix-allocated-memory-of-QByteArray.patch # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch From a291362ba36a2c7e619f25a2819889611ed4f2df483158b0876dbf1f1ff35066 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Tue, 19 Jan 2021 11:23:48 +0000 Subject: [PATCH 21/33] - Add patch to fix infinite loop in KWin on XServer exit: * 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch - Spec file cleanup, remove conditionals for Leap 42.x OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=21 --- ...on-getTimestamp-properly-exit-when-X.patch | 69 +++++++++++++++++++ libqt5-qtbase.changes | 7 ++ libqt5-qtbase.spec | 9 +-- 3 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch diff --git a/0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch b/0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch new file mode 100644 index 0000000..ae28670 --- /dev/null +++ b/0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch @@ -0,0 +1,69 @@ +From 5519447b9db4023deca98e5b882845416a9c33f1 Mon Sep 17 00:00:00 2001 +From: Sheng Mao +Date: Fri, 13 Nov 2020 22:34:46 -0700 +Subject: [PATCH] Let QXcbConnection::getTimestamp properly exit when X server + quits +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +QXcbConnection::getTimestamp uses dummy events to get timestamp from +X server. However, in some cases, X server shuts down while client tries +to get timestamp. In this case, QXcbConnection::getTimestamp keeps +getting null event and thus falls into indefinite loop. + +This fix checks if xcb connection is still valid and use a special +xcb_timestamp_t value, CurrentTime (0L), as returned value. +CurrentTime should not be generated by X server and if getTimestamp +returns this value, it means an "exception" case is triggered. + +This fix is introduced because in kwin_x11 (KDE project), X server can +exit on logout. kwin_x11 should handle disconnection from X server. +But the indefinite loop prevents kwin_x11 to process disconnection +event and therefore kwin_x11 cannot quit properly. + +Fixes: QTBUG-88435 +Change-Id: Iaf7ef3f8a35fa8389d22a608e3c49041bf90e1b9 +Reviewed-by: Qt CI Bot +Reviewed-by: Liang Qi +Reviewed-by: Tor Arne Vestbø +(cherry picked from commit dbd1c8b047700bb6d0adae848d6cbb89fa2fcfff) +Reviewed-by: Qt Cherry-pick Bot +--- + src/plugins/platforms/xcb/qxcbconnection.cpp | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp +index c557109bd1..9abdae6a7c 100644 +--- a/src/plugins/platforms/xcb/qxcbconnection.cpp ++++ b/src/plugins/platforms/xcb/qxcbconnection.cpp +@@ -763,7 +763,10 @@ xcb_timestamp_t QXcbConnection::getTimestamp() + + xcb_generic_event_t *event = nullptr; + +- while (!event) { ++ // When disconnection is caused by X server, event will never be able to hold ++ // a valid pointer. isConnected(), which calls xcb_connection_has_error(), ++ // can handle this type of disconnection and properly quits the loop. ++ while (isConnected() && !event) { + connection()->sync(); + event = eventQueue()->peek([window, dummyAtom](xcb_generic_event_t *event, int type) { + if (type != XCB_PROPERTY_NOTIFY) +@@ -773,6 +776,14 @@ xcb_timestamp_t QXcbConnection::getTimestamp() + }); + } + ++ if (!event) { ++ // https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#glossary ++ // > One timestamp value (named CurrentTime) is never generated by the ++ // > server. This value is reserved for use in requests to represent the ++ // > current server time. ++ return XCB_CURRENT_TIME; ++ } ++ + xcb_property_notify_event_t *pn = reinterpret_cast(event); + xcb_timestamp_t timestamp = pn->time; + free(event); +-- +2.30.0 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 15cb341..8dddbf8 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Jan 19 07:46:43 UTC 2021 - Stefan Brüns + +- Add patch to fix infinite loop in KWin on XServer exit: + * 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch +- Spec file cleanup, remove conditionals for Leap 42.x + ------------------------------------------------------------------- Tue Dec 29 11:48:35 UTC 2020 - Arjen de Korte diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 75a754d..daf45a7 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -25,15 +25,8 @@ %global gles 0 %endif -%if 0%{?suse_version} >= 1330 %global vulkan 1 %bcond_without harfbuzz -%else -# Harfbuzz too old -%bcond_with harfbuzz -# Vulkan headers too old -%global vulkan 0 -%endif Name: libqt5-qtbase Version: 5.15.2 @@ -72,6 +65,8 @@ Patch24: fix-fixqt4headers.patch # patches 1000-2000 and above from upstream 5.15 branch # # Merged: https://bugreports.qt.io/browse/QTBUG-87010 Patch1000: 0001-Fix-allocated-memory-of-QByteArray.patch +# Merged: https://bugreports.qt.io/browse/QTBUG-88435 +Patch1001: 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch From c01c6af42e21ed26498f78cc64fec4eba449b2532b72c59b0b4e97988cbc6c7d Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Mon, 8 Feb 2021 10:10:03 +0000 Subject: [PATCH 22/33] - Add patch to fix build with GCC 11 (boo#1181861, QTBUG-90395): * 0001-Fix-build-with-GCC-11-include-limits.patch * 0001-Include-limits-in-qbytearraymatcher.h.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=22 --- ...Fix-build-with-GCC-11-include-limits.patch | 53 +++++++++++++++++++ ...nclude-limits-in-qbytearraymatcher.h.patch | 25 +++++++++ libqt5-qtbase.changes | 7 +++ libqt5-qtbase.spec | 3 ++ 4 files changed, 88 insertions(+) create mode 100644 0001-Fix-build-with-GCC-11-include-limits.patch create mode 100644 0001-Include-limits-in-qbytearraymatcher.h.patch diff --git a/0001-Fix-build-with-GCC-11-include-limits.patch b/0001-Fix-build-with-GCC-11-include-limits.patch new file mode 100644 index 0000000..95f2f85 --- /dev/null +++ b/0001-Fix-build-with-GCC-11-include-limits.patch @@ -0,0 +1,53 @@ +From 924424120a2c468511256072e05d1ecc7c0c74a7 Mon Sep 17 00:00:00 2001 +From: Thiago Macieira +Date: Mon, 18 Jan 2021 07:40:54 -0800 +Subject: [PATCH] Fix build with GCC 11: include + +Fixes: QTBUG-90395 +Change-Id: Iecc74d2000eb40dfbe7bfffd165b5dd3708b7a40 +(cherry picked from commit 9c56d4da2ff631a8c1c30475bd792f6c86bda53c) +Reviewed-by: Edward Welbourne +(cherry picked from commit b2af6332ea37e45ab230a7a5d2d278f86d961b83) +--- + src/corelib/global/qendian.h | 6 ++++-- + src/corelib/global/qfloat16.h | 1 + + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h +index 257efbbdbe..339f53abb6 100644 +--- a/src/corelib/global/qendian.h ++++ b/src/corelib/global/qendian.h +@@ -1,7 +1,7 @@ + /**************************************************************************** + ** +-** Copyright (C) 2016 The Qt Company Ltd. +-** Copyright (C) 2016 Intel Corporation. ++** Copyright (C) 2021 The Qt Company Ltd. ++** Copyright (C) 2021 Intel Corporation. + ** Contact: https://www.qt.io/licensing/ + ** + ** This file is part of the QtCore module of the Qt Toolkit. +@@ -44,6 +44,8 @@ + #include + #include + ++#include ++ + // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems + #include + #include +diff --git a/src/corelib/global/qfloat16.h b/src/corelib/global/qfloat16.h +index c7a9c87af3..5302be072e 100644 +--- a/src/corelib/global/qfloat16.h ++++ b/src/corelib/global/qfloat16.h +@@ -43,6 +43,7 @@ + + #include + #include ++#include + #include + + #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__) +-- +2.25.1 + diff --git a/0001-Include-limits-in-qbytearraymatcher.h.patch b/0001-Include-limits-in-qbytearraymatcher.h.patch new file mode 100644 index 0000000..4054b32 --- /dev/null +++ b/0001-Include-limits-in-qbytearraymatcher.h.patch @@ -0,0 +1,25 @@ +From 5c8acc8a047956dc79ee4f0bfbee32daa981d0fa Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Mon, 8 Feb 2021 10:29:27 +0100 +Subject: [PATCH] Include in qbytearraymatcher.h + +--- + src/corelib/text/qbytearraymatcher.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/corelib/text/qbytearraymatcher.h b/src/corelib/text/qbytearraymatcher.h +index 0eedfc1d20..26754829f1 100644 +--- a/src/corelib/text/qbytearraymatcher.h ++++ b/src/corelib/text/qbytearraymatcher.h +@@ -40,6 +40,8 @@ + #ifndef QBYTEARRAYMATCHER_H + #define QBYTEARRAYMATCHER_H + ++#include ++ + #include + + QT_BEGIN_NAMESPACE +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 8dddbf8..e1fad88 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Feb 8 09:16:47 UTC 2021 - Fabian Vogt + +- Add patch to fix build with GCC 11 (boo#1181861, QTBUG-90395): + * 0001-Fix-build-with-GCC-11-include-limits.patch + * 0001-Include-limits-in-qbytearraymatcher.h.patch + ------------------------------------------------------------------- Tue Jan 19 07:46:43 UTC 2021 - Stefan Brüns diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index daf45a7..3203963 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -70,6 +70,9 @@ Patch1001: 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch +Patch2002: 0001-Fix-build-with-GCC-11-include-limits.patch +# Theoretically for upstream, but upstream is dead +Patch2003: 0001-Include-limits-in-qbytearraymatcher.h.patch BuildRequires: cups-devel BuildRequires: double-conversion-devel BuildRequires: gcc-c++ From c6a676aa7ad4379f824fe565b2dfba73df55150b1535b3cdd2a9a394d6dfb58d Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Mon, 8 Feb 2021 10:25:07 +0000 Subject: [PATCH 23/33] * 0002-Build-fixes-for-GCC-11.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=23 --- ...Fix-build-with-GCC-11-include-limits.patch | 2 +- ...nclude-limits-in-qbytearraymatcher.h.patch | 25 -------- 0002-Build-fixes-for-GCC-11.patch | 59 +++++++++++++++++++ libqt5-qtbase.changes | 2 +- libqt5-qtbase.spec | 3 +- 5 files changed, 62 insertions(+), 29 deletions(-) delete mode 100644 0001-Include-limits-in-qbytearraymatcher.h.patch create mode 100644 0002-Build-fixes-for-GCC-11.patch diff --git a/0001-Fix-build-with-GCC-11-include-limits.patch b/0001-Fix-build-with-GCC-11-include-limits.patch index 95f2f85..3f81ae5 100644 --- a/0001-Fix-build-with-GCC-11-include-limits.patch +++ b/0001-Fix-build-with-GCC-11-include-limits.patch @@ -1,7 +1,7 @@ From 924424120a2c468511256072e05d1ecc7c0c74a7 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 18 Jan 2021 07:40:54 -0800 -Subject: [PATCH] Fix build with GCC 11: include +Subject: [PATCH 1/2] Fix build with GCC 11: include Fixes: QTBUG-90395 Change-Id: Iecc74d2000eb40dfbe7bfffd165b5dd3708b7a40 diff --git a/0001-Include-limits-in-qbytearraymatcher.h.patch b/0001-Include-limits-in-qbytearraymatcher.h.patch deleted file mode 100644 index 4054b32..0000000 --- a/0001-Include-limits-in-qbytearraymatcher.h.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5c8acc8a047956dc79ee4f0bfbee32daa981d0fa Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Mon, 8 Feb 2021 10:29:27 +0100 -Subject: [PATCH] Include in qbytearraymatcher.h - ---- - src/corelib/text/qbytearraymatcher.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/corelib/text/qbytearraymatcher.h b/src/corelib/text/qbytearraymatcher.h -index 0eedfc1d20..26754829f1 100644 ---- a/src/corelib/text/qbytearraymatcher.h -+++ b/src/corelib/text/qbytearraymatcher.h -@@ -40,6 +40,8 @@ - #ifndef QBYTEARRAYMATCHER_H - #define QBYTEARRAYMATCHER_H - -+#include -+ - #include - - QT_BEGIN_NAMESPACE --- -2.25.1 - diff --git a/0002-Build-fixes-for-GCC-11.patch b/0002-Build-fixes-for-GCC-11.patch new file mode 100644 index 0000000..03277cb --- /dev/null +++ b/0002-Build-fixes-for-GCC-11.patch @@ -0,0 +1,59 @@ +From 896bcb186161c38965bd002b28156a2aab4b4a76 Mon Sep 17 00:00:00 2001 +From: Ville Voutilainen +Date: Mon, 18 Jan 2021 09:58:17 +0200 +Subject: [PATCH 2/2] Build fixes for GCC 11 + +Task-number: QTBUG-89977 +Change-Id: Ic1b7ddbffb8a0a00f8c621d09a868f1d94a52c21 +Reviewed-by: Lars Knoll +Reviewed-by: Thiago Macieira +(cherry picked from commit 813a928c7c3cf98670b6043149880ed5c955efb9) +--- + src/corelib/text/qbytearraymatcher.h | 2 ++ + src/corelib/tools/qsharedpointer_impl.h | 3 --- + src/plugins/platforms/xcb/qxcbwindow.cpp | 2 +- + 3 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/corelib/text/qbytearraymatcher.h b/src/corelib/text/qbytearraymatcher.h +index 0eedfc1d20..f5f9bef7b8 100644 +--- a/src/corelib/text/qbytearraymatcher.h ++++ b/src/corelib/text/qbytearraymatcher.h +@@ -42,6 +42,8 @@ + + #include + ++#include ++ + QT_BEGIN_NAMESPACE + + +diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h +index 790c187cb9..4aee98af53 100644 +--- a/src/corelib/tools/qsharedpointer_impl.h ++++ b/src/corelib/tools/qsharedpointer_impl.h +@@ -155,9 +155,6 @@ namespace QtSharedPointer { + #endif + inline void checkQObjectShared(...) { } + inline void setQObjectShared(...) { } +- +- inline void operator delete(void *ptr) { ::operator delete(ptr); } +- inline void operator delete(void *, void *) { } + }; + // sizeof(ExternalRefCountData) = 12 (32-bit) / 16 (64-bit) + +diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp +index 9e7e1a5572..f0866a90ac 100644 +--- a/src/plugins/platforms/xcb/qxcbwindow.cpp ++++ b/src/plugins/platforms/xcb/qxcbwindow.cpp +@@ -698,7 +698,7 @@ void QXcbWindow::show() + if (isTransient(window())) { + const QWindow *tp = window()->transientParent(); + if (tp && tp->handle()) +- transientXcbParent = static_cast(tp->handle())->winId(); ++ transientXcbParent = tp->handle()->winId(); + // Default to client leader if there is no transient parent, else modal dialogs can + // be hidden by their parents. + if (!transientXcbParent) +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index e1fad88..9b2cf3f 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -3,7 +3,7 @@ Mon Feb 8 09:16:47 UTC 2021 - Fabian Vogt - Add patch to fix build with GCC 11 (boo#1181861, QTBUG-90395): * 0001-Fix-build-with-GCC-11-include-limits.patch - * 0001-Include-limits-in-qbytearraymatcher.h.patch + * 0002-Build-fixes-for-GCC-11.patch ------------------------------------------------------------------- Tue Jan 19 07:46:43 UTC 2021 - Stefan Brüns diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 3203963..6ef3233 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -71,8 +71,7 @@ Patch1001: 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch Patch2002: 0001-Fix-build-with-GCC-11-include-limits.patch -# Theoretically for upstream, but upstream is dead -Patch2003: 0001-Include-limits-in-qbytearraymatcher.h.patch +Patch2003: 0002-Build-fixes-for-GCC-11.patch BuildRequires: cups-devel BuildRequires: double-conversion-devel BuildRequires: gcc-c++ From c3b6237665f1769483cf56689856f53e0806ccda1587a6e7fccd49bba2f9d15a Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Tue, 13 Apr 2021 07:58:57 +0000 Subject: [PATCH 24/33] - Add patch to fix possible crash caused by GCC 11 build fix: * 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=24 --- ...-813a928c7c3cf98670b6043149880ed5c95.patch | 32 +++++++++++++++++++ libqt5-qtbase.changes | 6 ++++ libqt5-qtbase.spec | 1 + 3 files changed, 39 insertions(+) create mode 100644 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch diff --git a/0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch b/0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch new file mode 100644 index 0000000..d6b1a5c --- /dev/null +++ b/0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch @@ -0,0 +1,32 @@ +From 45b201ea42f69510713ddd09fb092ed6f93ad1db Mon Sep 17 00:00:00 2001 +From: Ulf Hermann +Date: Wed, 20 Jan 2021 10:42:36 +0100 +Subject: [PATCH] Partially revert 813a928c7c3cf98670b6043149880ed5c955efb9 + +Otherwise ASAN complains about mismatched new/delete. + +Change-Id: I76ddcc388309e20055c93c68b9b6fa8a11b884e1 +Reviewed-by: Andrei Golubev +Reviewed-by: Ville Voutilainen +(cherry picked from commit 606b03d0a35e71565c3a91588ef2db45b9262e27) +--- + src/corelib/tools/qsharedpointer_impl.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h +index 4aee98af53..790c187cb9 100644 +--- a/src/corelib/tools/qsharedpointer_impl.h ++++ b/src/corelib/tools/qsharedpointer_impl.h +@@ -155,6 +155,9 @@ namespace QtSharedPointer { + #endif + inline void checkQObjectShared(...) { } + inline void setQObjectShared(...) { } ++ ++ inline void operator delete(void *ptr) { ::operator delete(ptr); } ++ inline void operator delete(void *, void *) { } + }; + // sizeof(ExternalRefCountData) = 12 (32-bit) / 16 (64-bit) + +-- +2.25.1 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 9b2cf3f..e1f75ec 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Apr 13 07:06:06 UTC 2021 - Fabian Vogt + +- Add patch to fix possible crash caused by GCC 11 build fix: + * 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch + ------------------------------------------------------------------- Mon Feb 8 09:16:47 UTC 2021 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 6ef3233..47681e7 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -72,6 +72,7 @@ Patch1001: 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch Patch2002: 0001-Fix-build-with-GCC-11-include-limits.patch Patch2003: 0002-Build-fixes-for-GCC-11.patch +Patch2004: 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch BuildRequires: cups-devel BuildRequires: double-conversion-devel BuildRequires: gcc-c++ From 5916020b0d93eb88298a9e8f95cfaeed03dc10f3ea7dbd7a2348657d9394c69c Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Wed, 26 May 2021 12:34:08 +0000 Subject: [PATCH 25/33] - Add trailing newline to qtlogging.ini OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=25 --- libqt5-qtbase.changes | 5 +++++ qtlogging.ini | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index e1f75ec..43c372e 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed May 26 11:49:02 UTC 2021 - Fabian Vogt + +- Add trailing newline to qtlogging.ini + ------------------------------------------------------------------- Tue Apr 13 07:06:06 UTC 2021 - Fabian Vogt diff --git a/qtlogging.ini b/qtlogging.ini index 136fe58..571dac6 100644 --- a/qtlogging.ini +++ b/qtlogging.ini @@ -1,3 +1,3 @@ [Rules] qt.qpa.xcb.warning=false -qt.qml.connections.warning=false \ No newline at end of file +qt.qml.connections.warning=false From f04bc9a03cfe337f981d6a76783fc3637dc5d66991b581a37dc27be1cf7ef866 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Thu, 24 Jun 2021 12:00:03 +0000 Subject: [PATCH 26/33] Qt from KDE git OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=26 --- 0001-Fix-allocated-memory-of-QByteArray.patch | 49 ------------- ...Fix-build-with-GCC-11-include-limits.patch | 53 -------------- ...on-getTimestamp-properly-exit-when-X.patch | 69 ------------------- ...-813a928c7c3cf98670b6043149880ed5c95.patch | 32 --------- 0001-Revert-Bump-version.patch | 23 +++++++ 0002-Build-fixes-for-GCC-11.patch | 59 ---------------- _service | 18 +++++ _servicedata | 4 ++ libqt5-qtbase.changes | 21 ++++++ libqt5-qtbase.spec | 16 ++--- qtbase-everywhere-src-5.15.2+kde200.obscpio | 3 + qtbase-everywhere-src-5.15.2.tar.xz | 3 - qtbase-everywhere-src.obsinfo | 5 ++ 13 files changed, 79 insertions(+), 276 deletions(-) delete mode 100644 0001-Fix-allocated-memory-of-QByteArray.patch delete mode 100644 0001-Fix-build-with-GCC-11-include-limits.patch delete mode 100644 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch delete mode 100644 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch create mode 100644 0001-Revert-Bump-version.patch delete mode 100644 0002-Build-fixes-for-GCC-11.patch create mode 100644 _service create mode 100644 _servicedata create mode 100644 qtbase-everywhere-src-5.15.2+kde200.obscpio delete mode 100644 qtbase-everywhere-src-5.15.2.tar.xz create mode 100644 qtbase-everywhere-src.obsinfo diff --git a/0001-Fix-allocated-memory-of-QByteArray.patch b/0001-Fix-allocated-memory-of-QByteArray.patch deleted file mode 100644 index 66515be..0000000 --- a/0001-Fix-allocated-memory-of-QByteArray.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 6485b6d45ad165cf976138cf8ab683c42515e794 Mon Sep 17 00:00:00 2001 -From: Kai Koehne -Date: Tue, 13 Oct 2020 15:47:31 +0200 -Subject: [PATCH] Fix allocated memory of QByteArray returned by QIODevice::readLine - -If the maxSize argument is 0 (the default), QIODevice::readLine will -allocate a QByteArray with the size of the next chunk of data, which -may be quite large. Before returning, it then resizes the byte array -to the actual size that was read. - -But since change 6b884d2aa129, QByteArray::resize() does no -longer shrink the capacity. This means that the returned QByteArray -keeps it's maximum size as allocated memory. This can lead to -excessive memory consumption, especially if the returned QByteArray's -are stored for further processing in the client code. - -Fix this by explicitly calling QByteArray::squeeze() before returning. - -[ChangeLog][QtCore][QIODevice] Fixes a regression in Qt 5.15 causing -QByteArray's that are returned by QIODevice::readLine() to -consume large amounts of memory. - -Fixes: QTBUG-87010 -Change-Id: I1f95fc4098849e900680fc945238bfeda881022c -Reviewed-by: Thiago Macieira -(cherry picked from commit 263b29eedb223dec1ecaee193302070af87a1852, -limited squeeze() call if bytes are actually read to preserve retVal.isNull() -behavior in 5.15) ---- - -diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp -index cc1d110..0f11c2e 100644 ---- a/src/corelib/io/qiodevice.cpp -+++ b/src/corelib/io/qiodevice.cpp -@@ -1480,10 +1480,12 @@ - } else - readBytes = readLine(result.data(), result.size()); - -- if (readBytes <= 0) -+ if (readBytes <= 0) { - result.clear(); -- else -+ } else { - result.resize(readBytes); -+ result.squeeze(); -+ } - - return result; - } diff --git a/0001-Fix-build-with-GCC-11-include-limits.patch b/0001-Fix-build-with-GCC-11-include-limits.patch deleted file mode 100644 index 3f81ae5..0000000 --- a/0001-Fix-build-with-GCC-11-include-limits.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 924424120a2c468511256072e05d1ecc7c0c74a7 Mon Sep 17 00:00:00 2001 -From: Thiago Macieira -Date: Mon, 18 Jan 2021 07:40:54 -0800 -Subject: [PATCH 1/2] Fix build with GCC 11: include - -Fixes: QTBUG-90395 -Change-Id: Iecc74d2000eb40dfbe7bfffd165b5dd3708b7a40 -(cherry picked from commit 9c56d4da2ff631a8c1c30475bd792f6c86bda53c) -Reviewed-by: Edward Welbourne -(cherry picked from commit b2af6332ea37e45ab230a7a5d2d278f86d961b83) ---- - src/corelib/global/qendian.h | 6 ++++-- - src/corelib/global/qfloat16.h | 1 + - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h -index 257efbbdbe..339f53abb6 100644 ---- a/src/corelib/global/qendian.h -+++ b/src/corelib/global/qendian.h -@@ -1,7 +1,7 @@ - /**************************************************************************** - ** --** Copyright (C) 2016 The Qt Company Ltd. --** Copyright (C) 2016 Intel Corporation. -+** Copyright (C) 2021 The Qt Company Ltd. -+** Copyright (C) 2021 Intel Corporation. - ** Contact: https://www.qt.io/licensing/ - ** - ** This file is part of the QtCore module of the Qt Toolkit. -@@ -44,6 +44,8 @@ - #include - #include - -+#include -+ - // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems - #include - #include -diff --git a/src/corelib/global/qfloat16.h b/src/corelib/global/qfloat16.h -index c7a9c87af3..5302be072e 100644 ---- a/src/corelib/global/qfloat16.h -+++ b/src/corelib/global/qfloat16.h -@@ -43,6 +43,7 @@ - - #include - #include -+#include - #include - - #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__) --- -2.25.1 - diff --git a/0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch b/0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch deleted file mode 100644 index ae28670..0000000 --- a/0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 5519447b9db4023deca98e5b882845416a9c33f1 Mon Sep 17 00:00:00 2001 -From: Sheng Mao -Date: Fri, 13 Nov 2020 22:34:46 -0700 -Subject: [PATCH] Let QXcbConnection::getTimestamp properly exit when X server - quits -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -QXcbConnection::getTimestamp uses dummy events to get timestamp from -X server. However, in some cases, X server shuts down while client tries -to get timestamp. In this case, QXcbConnection::getTimestamp keeps -getting null event and thus falls into indefinite loop. - -This fix checks if xcb connection is still valid and use a special -xcb_timestamp_t value, CurrentTime (0L), as returned value. -CurrentTime should not be generated by X server and if getTimestamp -returns this value, it means an "exception" case is triggered. - -This fix is introduced because in kwin_x11 (KDE project), X server can -exit on logout. kwin_x11 should handle disconnection from X server. -But the indefinite loop prevents kwin_x11 to process disconnection -event and therefore kwin_x11 cannot quit properly. - -Fixes: QTBUG-88435 -Change-Id: Iaf7ef3f8a35fa8389d22a608e3c49041bf90e1b9 -Reviewed-by: Qt CI Bot -Reviewed-by: Liang Qi -Reviewed-by: Tor Arne Vestbø -(cherry picked from commit dbd1c8b047700bb6d0adae848d6cbb89fa2fcfff) -Reviewed-by: Qt Cherry-pick Bot ---- - src/plugins/platforms/xcb/qxcbconnection.cpp | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp -index c557109bd1..9abdae6a7c 100644 ---- a/src/plugins/platforms/xcb/qxcbconnection.cpp -+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp -@@ -763,7 +763,10 @@ xcb_timestamp_t QXcbConnection::getTimestamp() - - xcb_generic_event_t *event = nullptr; - -- while (!event) { -+ // When disconnection is caused by X server, event will never be able to hold -+ // a valid pointer. isConnected(), which calls xcb_connection_has_error(), -+ // can handle this type of disconnection and properly quits the loop. -+ while (isConnected() && !event) { - connection()->sync(); - event = eventQueue()->peek([window, dummyAtom](xcb_generic_event_t *event, int type) { - if (type != XCB_PROPERTY_NOTIFY) -@@ -773,6 +776,14 @@ xcb_timestamp_t QXcbConnection::getTimestamp() - }); - } - -+ if (!event) { -+ // https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#glossary -+ // > One timestamp value (named CurrentTime) is never generated by the -+ // > server. This value is reserved for use in requests to represent the -+ // > current server time. -+ return XCB_CURRENT_TIME; -+ } -+ - xcb_property_notify_event_t *pn = reinterpret_cast(event); - xcb_timestamp_t timestamp = pn->time; - free(event); --- -2.30.0 - diff --git a/0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch b/0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch deleted file mode 100644 index d6b1a5c..0000000 --- a/0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 45b201ea42f69510713ddd09fb092ed6f93ad1db Mon Sep 17 00:00:00 2001 -From: Ulf Hermann -Date: Wed, 20 Jan 2021 10:42:36 +0100 -Subject: [PATCH] Partially revert 813a928c7c3cf98670b6043149880ed5c955efb9 - -Otherwise ASAN complains about mismatched new/delete. - -Change-Id: I76ddcc388309e20055c93c68b9b6fa8a11b884e1 -Reviewed-by: Andrei Golubev -Reviewed-by: Ville Voutilainen -(cherry picked from commit 606b03d0a35e71565c3a91588ef2db45b9262e27) ---- - src/corelib/tools/qsharedpointer_impl.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h -index 4aee98af53..790c187cb9 100644 ---- a/src/corelib/tools/qsharedpointer_impl.h -+++ b/src/corelib/tools/qsharedpointer_impl.h -@@ -155,6 +155,9 @@ namespace QtSharedPointer { - #endif - inline void checkQObjectShared(...) { } - inline void setQObjectShared(...) { } -+ -+ inline void operator delete(void *ptr) { ::operator delete(ptr); } -+ inline void operator delete(void *, void *) { } - }; - // sizeof(ExternalRefCountData) = 12 (32-bit) / 16 (64-bit) - --- -2.25.1 - diff --git a/0001-Revert-Bump-version.patch b/0001-Revert-Bump-version.patch new file mode 100644 index 0000000..4f67174 --- /dev/null +++ b/0001-Revert-Bump-version.patch @@ -0,0 +1,23 @@ +From e08cc7a0cec3c6fb69415b8e76e70b37088b561c Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Mon, 21 Jun 2021 12:29:39 +0200 +Subject: [PATCH] Revert "Bump version" + +This reverts commit 6344955d17e17e2398720fe60c34cfc2a4a95208. +--- + .qmake.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.qmake.conf b/.qmake.conf +index 1bf1a80475..9476d20099 100644 +--- a/.qmake.conf ++++ b/.qmake.conf +@@ -6,4 +6,4 @@ DEFINES += QT_NO_JAVA_STYLE_ITERATORS + QT_SOURCE_TREE = $$PWD + QT_BUILD_TREE = $$shadowed($$PWD) + +-MODULE_VERSION = 5.15.3 ++MODULE_VERSION = 5.15.2 +-- +2.20.1 + diff --git a/0002-Build-fixes-for-GCC-11.patch b/0002-Build-fixes-for-GCC-11.patch deleted file mode 100644 index 03277cb..0000000 --- a/0002-Build-fixes-for-GCC-11.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 896bcb186161c38965bd002b28156a2aab4b4a76 Mon Sep 17 00:00:00 2001 -From: Ville Voutilainen -Date: Mon, 18 Jan 2021 09:58:17 +0200 -Subject: [PATCH 2/2] Build fixes for GCC 11 - -Task-number: QTBUG-89977 -Change-Id: Ic1b7ddbffb8a0a00f8c621d09a868f1d94a52c21 -Reviewed-by: Lars Knoll -Reviewed-by: Thiago Macieira -(cherry picked from commit 813a928c7c3cf98670b6043149880ed5c955efb9) ---- - src/corelib/text/qbytearraymatcher.h | 2 ++ - src/corelib/tools/qsharedpointer_impl.h | 3 --- - src/plugins/platforms/xcb/qxcbwindow.cpp | 2 +- - 3 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/src/corelib/text/qbytearraymatcher.h b/src/corelib/text/qbytearraymatcher.h -index 0eedfc1d20..f5f9bef7b8 100644 ---- a/src/corelib/text/qbytearraymatcher.h -+++ b/src/corelib/text/qbytearraymatcher.h -@@ -42,6 +42,8 @@ - - #include - -+#include -+ - QT_BEGIN_NAMESPACE - - -diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h -index 790c187cb9..4aee98af53 100644 ---- a/src/corelib/tools/qsharedpointer_impl.h -+++ b/src/corelib/tools/qsharedpointer_impl.h -@@ -155,9 +155,6 @@ namespace QtSharedPointer { - #endif - inline void checkQObjectShared(...) { } - inline void setQObjectShared(...) { } -- -- inline void operator delete(void *ptr) { ::operator delete(ptr); } -- inline void operator delete(void *, void *) { } - }; - // sizeof(ExternalRefCountData) = 12 (32-bit) / 16 (64-bit) - -diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp -index 9e7e1a5572..f0866a90ac 100644 ---- a/src/plugins/platforms/xcb/qxcbwindow.cpp -+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp -@@ -698,7 +698,7 @@ void QXcbWindow::show() - if (isTransient(window())) { - const QWindow *tp = window()->transientParent(); - if (tp && tp->handle()) -- transientXcbParent = static_cast(tp->handle())->winId(); -+ transientXcbParent = tp->handle()->winId(); - // Default to client leader if there is no transient parent, else modal dialogs can - // be hidden by their parents. - if (!transientXcbParent) --- -2.25.1 - diff --git a/_service b/_service new file mode 100644 index 0000000..81ae6f2 --- /dev/null +++ b/_service @@ -0,0 +1,18 @@ + + + enable + 5.15.2+kde@TAG_OFFSET@ + https://invent.kde.org/qt/qt/qtbase.git + git + qtbase-everywhere-src + kde/5.15 + v5.15.2 + enable + + + + + *.tar + xz + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..c5556e2 --- /dev/null +++ b/_servicedata @@ -0,0 +1,4 @@ + + + https://invent.kde.org/qt/qt/qtbase.git + b8841b34c5b90bf32394568102888ddc559f3ddc \ No newline at end of file diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 43c372e..1762c00 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Thu Jun 24 09:02:42 UTC 2021 - Fabian Vogt + +- Update to version 5.15.2+kde200: + * Optimize quadratic-time insertion in QSortFilterProxyModel + +------------------------------------------------------------------- +Mon Jun 21 08:07:20 UTC 2021 - Fabian Vogt + +- Switch to KDE's maintenance branch +- Update to version 5.15.2+kde199: + * Too many changes to list here +- Add patch to reset version to 5.15.2: + * 0001-Revert-Bump-version.patch +- Drop patches, now upstream: + * 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch + * 0001-Fix-allocated-memory-of-QByteArray.patch + * 0001-Fix-build-with-GCC-11-include-limits.patch + * 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch + * 0002-Build-fixes-for-GCC-11.patch + ------------------------------------------------------------------- Wed May 26 11:49:02 UTC 2021 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 47681e7..7274267 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -16,7 +16,7 @@ # -%define qt5_snapshot 0 +%define qt5_snapshot 1 %define journald 1 %ifarch %arm aarch64 @@ -29,7 +29,7 @@ %bcond_without harfbuzz Name: libqt5-qtbase -Version: 5.15.2 +Version: 5.15.2+kde200 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 @@ -38,8 +38,8 @@ Url: https://www.qt.io %define base_name libqt5 %define real_version 5.15.2 %define so_version 5.15.2 -%define tar_version qtbase-everywhere-src-5.15.2 -Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz +%define tar_version qtbase-everywhere-src-%{version} +Source: %{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes Source2: macros.qt5 @@ -52,6 +52,7 @@ Patch2: fix-build-openssl-1.1.0.patch Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch # Proposed: https://bugreports.qt.io/browse/QTBUG-88491 Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch +Patch5: 0001-Revert-Bump-version.patch # PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default Patch6: disable-rc4-ciphers-bnc865241.diff Patch8: tell-the-truth-about-private-api.patch @@ -63,16 +64,9 @@ Patch12: 0001-Add-remote-print-queue-support.patch Patch21: 0001-Don-t-white-list-recent-Mesa-versions-for-multithrea.patch Patch24: fix-fixqt4headers.patch # patches 1000-2000 and above from upstream 5.15 branch # -# Merged: https://bugreports.qt.io/browse/QTBUG-87010 -Patch1000: 0001-Fix-allocated-memory-of-QByteArray.patch -# Merged: https://bugreports.qt.io/browse/QTBUG-88435 -Patch1001: 0001-Let-QXcbConnection-getTimestamp-properly-exit-when-X.patch # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch -Patch2002: 0001-Fix-build-with-GCC-11-include-limits.patch -Patch2003: 0002-Build-fixes-for-GCC-11.patch -Patch2004: 0001-Partially-revert-813a928c7c3cf98670b6043149880ed5c95.patch BuildRequires: cups-devel BuildRequires: double-conversion-devel BuildRequires: gcc-c++ diff --git a/qtbase-everywhere-src-5.15.2+kde200.obscpio b/qtbase-everywhere-src-5.15.2+kde200.obscpio new file mode 100644 index 0000000..d7957ca --- /dev/null +++ b/qtbase-everywhere-src-5.15.2+kde200.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec691c39f69fbb46f9e1221543f4f41ddd62455b4b62a7c26f0d3c1ee8faa204 +size 291136015 diff --git a/qtbase-everywhere-src-5.15.2.tar.xz b/qtbase-everywhere-src-5.15.2.tar.xz deleted file mode 100644 index b8bea25..0000000 --- a/qtbase-everywhere-src-5.15.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:909fad2591ee367993a75d7e2ea50ad4db332f05e1c38dd7a5a274e156a4e0f8 -size 50179672 diff --git a/qtbase-everywhere-src.obsinfo b/qtbase-everywhere-src.obsinfo new file mode 100644 index 0000000..1bbfcd9 --- /dev/null +++ b/qtbase-everywhere-src.obsinfo @@ -0,0 +1,5 @@ +name: qtbase-everywhere-src +version: 5.15.2+kde200 +mtime: 1624296086 +commit: b8841b34c5b90bf32394568102888ddc559f3ddc + From 1ba81316946556c8cb5ea975746300529de0c8dfd140bea19613b86e27bef7b9 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sat, 26 Jun 2021 10:06:27 +0000 Subject: [PATCH 27/33] lessxwl OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=27 --- libqt5-qtbase.changes | 5 +++++ libqt5-qtbase.spec | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 1762c00..4724591 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Jun 24 19:16:41 UTC 2021 - Fabian Vogt + +- Revert to the default platform plugin list ("wayland;xcb") + ------------------------------------------------------------------- Thu Jun 24 09:02:42 UTC 2021 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 7274267..c4609d8 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -903,7 +903,6 @@ sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf -plugin-sql-psql -I/usr/include/pgsql/ -I/usr/include/pgsql/server \ -plugin-sql-odbc \ -plugin-sql-mysql -I/usr/include/mysql/ \ - -qpa "xcb;wayland" \ -no-feature-relocatable \ QMAKE_CFLAGS+="$CFLAGS" \ QMAKE_CXXFLAGS+="$CXXFLAGS" From c8e5003932d1e240c5c59eeae927a920158aeb87ab4036e72a90cba4eefe7248 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sat, 28 Aug 2021 10:59:14 +0000 Subject: [PATCH 28/33] Tested, no issues found. No private ABI changes. - Update to version 5.15.2+kde222: * Revert "QString::lastIndexOf: fix off-by-one for zero length matches" * MySQL: treat the MYSQL_FIELD as read-only * Remove checks for glibc < 2 from qplatformdefs.h files * linux-clang/qplatformdefs: fix building with musl libc * Refix for avoiding huge number of tiny dashes * Improve fix for avoiding huge number of tiny dashes * Avoid processing-intensive painting of high number of tiny dashes * xcb: add a timeout control when reading INCR property * Remove another usage of mysql_get_client_version() * MySQL: remove the version number checks in favor of actual functionality * QLibraryInfo: Add MSVC 2022 * doCrypt() - check the error codes * Restore C++11 compatibility of QSharedPointer code * opengl: fix a typo in QOpenGLPaintDevice::dotsPerMeterY() * Fix rvalue overload of qobject_pointer_cast for GCC 9.3 * QVarLengthArray: fix aliasing error in insert(it, n, v) * Fix memory leak of QOffscreenScreen in QOffscreenIntegration * Fix tst_moc for C++17 * Add missing limits include * xcb: Avoid use-after-free in QXcbConnection::initializeScreens() * xcb: Remove need for QXCBScreen to resolve QXcbGlIntegration * Update shared-mime-info to the 2.1 release, adjust implementation OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=28 --- _servicedata | 2 +- libqt5-qtbase.changes | 27 +++++++++++++++++++++ libqt5-qtbase.spec | 2 +- qtbase-everywhere-src-5.15.2+kde200.obscpio | 3 --- qtbase-everywhere-src-5.15.2+kde222.obscpio | 3 +++ qtbase-everywhere-src.obsinfo | 6 ++--- 6 files changed, 35 insertions(+), 8 deletions(-) delete mode 100644 qtbase-everywhere-src-5.15.2+kde200.obscpio create mode 100644 qtbase-everywhere-src-5.15.2+kde222.obscpio diff --git a/_servicedata b/_servicedata index c5556e2..f7d2340 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ https://invent.kde.org/qt/qt/qtbase.git - b8841b34c5b90bf32394568102888ddc559f3ddc \ No newline at end of file + d2bd04d9fe03912097d3246b7d03ef14f425256b \ No newline at end of file diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 4724591..cca9e0d 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,30 @@ +------------------------------------------------------------------- +Fri Aug 27 17:51:39 UTC 2021 - Fabian Vogt + +- Update to version 5.15.2+kde222: + * Revert "QString::lastIndexOf: fix off-by-one for zero length matches" + * MySQL: treat the MYSQL_FIELD as read-only + * Remove checks for glibc < 2 from qplatformdefs.h files + * linux-clang/qplatformdefs: fix building with musl libc + * Refix for avoiding huge number of tiny dashes + * Improve fix for avoiding huge number of tiny dashes + * Avoid processing-intensive painting of high number of tiny dashes + * xcb: add a timeout control when reading INCR property + * Remove another usage of mysql_get_client_version() + * MySQL: remove the version number checks in favor of actual functionality + * QLibraryInfo: Add MSVC 2022 + * doCrypt() - check the error codes + * Restore C++11 compatibility of QSharedPointer code + * opengl: fix a typo in QOpenGLPaintDevice::dotsPerMeterY() + * Fix rvalue overload of qobject_pointer_cast for GCC 9.3 + * QVarLengthArray: fix aliasing error in insert(it, n, v) + * Fix memory leak of QOffscreenScreen in QOffscreenIntegration + * Fix tst_moc for C++17 + * Add missing limits include + * xcb: Avoid use-after-free in QXcbConnection::initializeScreens() + * xcb: Remove need for QXCBScreen to resolve QXcbGlIntegration + * Update shared-mime-info to the 2.1 release, adjust implementation + ------------------------------------------------------------------- Thu Jun 24 19:16:41 UTC 2021 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index c4609d8..cb403cd 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -29,7 +29,7 @@ %bcond_without harfbuzz Name: libqt5-qtbase -Version: 5.15.2+kde200 +Version: 5.15.2+kde222 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 diff --git a/qtbase-everywhere-src-5.15.2+kde200.obscpio b/qtbase-everywhere-src-5.15.2+kde200.obscpio deleted file mode 100644 index d7957ca..0000000 --- a/qtbase-everywhere-src-5.15.2+kde200.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ec691c39f69fbb46f9e1221543f4f41ddd62455b4b62a7c26f0d3c1ee8faa204 -size 291136015 diff --git a/qtbase-everywhere-src-5.15.2+kde222.obscpio b/qtbase-everywhere-src-5.15.2+kde222.obscpio new file mode 100644 index 0000000..3e1e476 --- /dev/null +++ b/qtbase-everywhere-src-5.15.2+kde222.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68e14831dcd9d7573b2c1008663d31e7a0a9683031d38e2a9db3c4ced2d79e1e +size 291323406 diff --git a/qtbase-everywhere-src.obsinfo b/qtbase-everywhere-src.obsinfo index 1bbfcd9..581de88 100644 --- a/qtbase-everywhere-src.obsinfo +++ b/qtbase-everywhere-src.obsinfo @@ -1,5 +1,5 @@ name: qtbase-everywhere-src -version: 5.15.2+kde200 -mtime: 1624296086 -commit: b8841b34c5b90bf32394568102888ddc559f3ddc +version: 5.15.2+kde222 +mtime: 1629930532 +commit: d2bd04d9fe03912097d3246b7d03ef14f425256b From 0f6796c7f167887735844b956a1de624a91eba5f80a1305752d4d3990043077b Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Fri, 29 Oct 2021 07:18:34 +0000 Subject: [PATCH 29/33] Qt 5.15.2 update from KDE git OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=29 --- _servicedata | 2 +- libqt5-qtbase.changes | 37 +++++++++++++++++++++ libqt5-qtbase.spec | 2 +- qtbase-everywhere-src-5.15.2+kde222.obscpio | 3 -- qtbase-everywhere-src-5.15.2+kde254.obscpio | 3 ++ qtbase-everywhere-src.obsinfo | 6 ++-- 6 files changed, 45 insertions(+), 8 deletions(-) delete mode 100644 qtbase-everywhere-src-5.15.2+kde222.obscpio create mode 100644 qtbase-everywhere-src-5.15.2+kde254.obscpio diff --git a/_servicedata b/_servicedata index f7d2340..18cdc17 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ https://invent.kde.org/qt/qt/qtbase.git - d2bd04d9fe03912097d3246b7d03ef14f425256b \ No newline at end of file + c9fde86b0a2440133bc08f4811b6ca793be47f0a \ No newline at end of file diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index cca9e0d..c8a8bd5 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,40 @@ +------------------------------------------------------------------- +Thu Oct 28 07:14:35 UTC 2021 - Fabian Vogt + +- Update to version 5.15.2+kde254: + * Revert "QPushButton: fix support of style sheet rule for text alignment" + * Revert "Fix invalid text layout data when a full layout run is interrupted" + * Optimize mime type matching + * fix potential mem leak on connection lost + * tst_QSslSocket - replace an old certificate + * tst_QSslCertificate::verify - remove QSKIP + * tst_QSslCertificate::verify - skip auto-test + * Doc: bump the OpenSSL minimum supported version to 1.1.1 + * QHttpSocketEngine: Fix memory leak + * QSslCertificate(OpenSSL) - harden protection against nullpointers + * QSslCertificate: Guard against accessing empty QByteArray + * Make QStyle::proxy() always return the leaf proxy + * Prefer previously used channels in QHttpNetworkConnection + * Fix populating selection clipboard with keyboard + * QSslCertificate::operator == - cleanup error queue + * Revert "Fix highdpi conversion of QTabletEvent coordinates on xcb" + * Fix highdpi conversion of QTabletEvent coordinates on xcb + * Support transformations in pattern/texture brushes in pdf + * Respect font stretch if set together with font style + * Fix QPainterPath with QFont::SmallCaps + * Avoid generating large pdf files when using dashed cosmetic pens + * PDF generation: disentangle native pen from transforms + * qmake: Switch to using Xcode's new build system + * Explicitly set input files for qtpreprocess + * Only embed launch screen when building an app + * Explicitly set output files for qtpreprocess + * Fix memory leak + * Fix reading gamma from PNGs without ICC profile + * QPlatformWindow: fix isAncestorOf not breaking recursion + * Cater for upstream changes in eglplatform.h + * QTextOdfWriter: fix exporting pixmaps to ODT + * Fix access to content: URLs with transient read/write permissions + ------------------------------------------------------------------- Fri Aug 27 17:51:39 UTC 2021 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index cb403cd..2fae7de 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -29,7 +29,7 @@ %bcond_without harfbuzz Name: libqt5-qtbase -Version: 5.15.2+kde222 +Version: 5.15.2+kde254 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 diff --git a/qtbase-everywhere-src-5.15.2+kde222.obscpio b/qtbase-everywhere-src-5.15.2+kde222.obscpio deleted file mode 100644 index 3e1e476..0000000 --- a/qtbase-everywhere-src-5.15.2+kde222.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68e14831dcd9d7573b2c1008663d31e7a0a9683031d38e2a9db3c4ced2d79e1e -size 291323406 diff --git a/qtbase-everywhere-src-5.15.2+kde254.obscpio b/qtbase-everywhere-src-5.15.2+kde254.obscpio new file mode 100644 index 0000000..52bd059 --- /dev/null +++ b/qtbase-everywhere-src-5.15.2+kde254.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da0b42cf37b1fc680ea58c3c4b98275bc27f30afa708ec37c6ecbb1bd00de6f5 +size 291323918 diff --git a/qtbase-everywhere-src.obsinfo b/qtbase-everywhere-src.obsinfo index 581de88..b43b2d6 100644 --- a/qtbase-everywhere-src.obsinfo +++ b/qtbase-everywhere-src.obsinfo @@ -1,5 +1,5 @@ name: qtbase-everywhere-src -version: 5.15.2+kde222 -mtime: 1629930532 -commit: d2bd04d9fe03912097d3246b7d03ef14f425256b +version: 5.15.2+kde254 +mtime: 1635027294 +commit: c9fde86b0a2440133bc08f4811b6ca793be47f0a From 72c472dd05651b66371d45ab39e13fcecf1710e5c04e7824c9fc09e8c68b7eac Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Fri, 24 Dec 2021 17:03:35 +0000 Subject: [PATCH 30/33] =?UTF-8?q?-=20Update=20to=20version=205.15.2+kde268?= =?UTF-8?q?:=20=20=20*=20Adapt=20for=20q=5FEVP=5FPKEY=5Fbase=5Fid=20?= =?UTF-8?q?=E2=86=92=20q=5FEVP=5FPKEY=5Fget=5Fbase=5Fid=20rename=20in=20Op?= =?UTF-8?q?enSSL=203=20=20=20*=20Don't=20use=20a=20deprecated=20function?= =?UTF-8?q?=20if=20built/linked=20with=20OpenSSL=20v3=20=20=20*=20Diffie-H?= =?UTF-8?q?ellman=20parameters:=20remove=20useless=20'fix'=20=20=20*=20Don?= =?UTF-8?q?t's=20use=20DTLS=5FMAX=5FVERSION=20when=20setting=20SSL=5FCTX?= =?UTF-8?q?=20=20=20*=20Avoid=20mixing=20atomic=20futex=20changes=20and=20?= =?UTF-8?q?QAtomic=20=20=20*=20Fix=20qtdeclarative=20baseline=20test=20fai?= =?UTF-8?q?lure=20for=20text=20tables=20=20=20*=20Don't=20let=20text=20tab?= =?UTF-8?q?le=20cells=20shrink=20below=20their=20minimum=20width=20(boo#11?= =?UTF-8?q?76530)=20=20=20*=20Don't=20shrink=20a=20column=20when=20it=20sp?= =?UTF-8?q?ans=20multiple=20columns=20=20=20*=20Use=20icon=20themes=20in?= =?UTF-8?q?=20QPrintPreviewDialog=20[if=20they=20exist]=20=20=20*=20QAbstr?= =?UTF-8?q?actFileEngine:=20fix=20UB=20(data=20race)=20on=20qt=5Ffile=5Fen?= =?UTF-8?q?gine=5Fhandlers=5Fin=5Fuse=20=20=20*=20Increment=20reference=20?= =?UTF-8?q?count=20when=20restoring=20reference=20=20=20*=20Reject=20trunc?= =?UTF-8?q?ated=20and=20corrupt=20ascii=20pnm=20images=20=20=20*=20Fix=20h?= =?UTF-8?q?andling=20of=20Sunday=20in=20POSIX=20time-zone=20rules=20=20=20?= =?UTF-8?q?*=20Fix=20developer=20build=20-=20Drop=20patches,=20support=20f?= =?UTF-8?q?or=20OpenSSL=20<=201.1.0=20is=20no=20longer=20necessary:=20=20?= =?UTF-8?q?=20*=200001-Lower-required-version-of-OpenSSL-to-1.1.0.patch=20?= =?UTF-8?q?=20=20*=20fix-build-openssl-1.1.0.patch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=30 --- ...required-version-of-OpenSSL-to-1.1.0.patch | 44 ---------------- _servicedata | 2 +- fix-build-openssl-1.1.0.patch | 51 ------------------- libqt5-qtbase.changes | 22 ++++++++ libqt5-qtbase.spec | 4 +- qtbase-everywhere-src-5.15.2+kde254.obscpio | 3 -- qtbase-everywhere-src-5.15.2+kde268.obscpio | 3 ++ qtbase-everywhere-src.obsinfo | 6 +-- 8 files changed, 30 insertions(+), 105 deletions(-) delete mode 100644 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch delete mode 100644 fix-build-openssl-1.1.0.patch delete mode 100644 qtbase-everywhere-src-5.15.2+kde254.obscpio create mode 100644 qtbase-everywhere-src-5.15.2+kde268.obscpio diff --git a/0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch b/0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch deleted file mode 100644 index cf09a28..0000000 --- a/0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 5fbcd6b8f1635916c0a2669649d3c96312b54288 Mon Sep 17 00:00:00 2001 -From: Fabian Vogt -Date: Tue, 14 Apr 2020 11:33:23 +0200 -Subject: [PATCH] Lower required version of OpenSSL to 1.1.0 - -SLE 15 until SP2 (so Leap < 15.2) ships 1.1.0 which won't get upgraded. ---- - src/network/configure.json | 4 ++-- - src/network/ssl/qsslsocket_openssl.cpp | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/network/configure.json b/src/network/configure.json -index 289d84fbb4..c414e729d7 100644 ---- a/src/network/configure.json -+++ b/src/network/configure.json -@@ -61,8 +61,8 @@ - "export": "openssl", - "test": { - "tail": [ -- "#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10101000L", -- "# error OpenSSL >= 1.1.1 is required", -+ "#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER-0 < 0x10100000L", -+ "# error OpenSSL >= 1.1.0 is required", - "#endif", - "#if !defined(OPENSSL_NO_EC) && !defined(SSL_CTRL_SET_CURVES)", - "# error OpenSSL was reported as >= 1.1.1 but is missing required features, possibly it's libressl which is unsupported", -diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp -index 9b28d52e21..daddea1feb 100644 ---- a/src/network/ssl/qsslsocket_openssl.cpp -+++ b/src/network/ssl/qsslsocket_openssl.cpp -@@ -1943,8 +1943,8 @@ bool QSslSocketPrivate::ensureLibraryLoaded() - if (q_OPENSSL_init_ssl(0, nullptr) != 1) - return false; - -- if (q_OpenSSL_version_num() < 0x10101000L) { -- qCWarning(lcSsl, "QSslSocket: OpenSSL >= 1.1.1 is required; %s was found instead", q_OpenSSL_version(OPENSSL_VERSION)); -+ if (q_OpenSSL_version_num() < 0x10100000L) { -+ qCWarning(lcSsl, "QSslSocket: OpenSSL >= 1.1.0 is required; %s was found instead", q_OpenSSL_version(OPENSSL_VERSION)); - return false; - } - --- -2.25.1 - diff --git a/_servicedata b/_servicedata index 18cdc17..b323df0 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ https://invent.kde.org/qt/qt/qtbase.git - c9fde86b0a2440133bc08f4811b6ca793be47f0a \ No newline at end of file + edb0f568ca1380623325cb18365b0af81cbf65bf \ No newline at end of file diff --git a/fix-build-openssl-1.1.0.patch b/fix-build-openssl-1.1.0.patch deleted file mode 100644 index 51f1fa3..0000000 --- a/fix-build-openssl-1.1.0.patch +++ /dev/null @@ -1,51 +0,0 @@ -From: Fabian Vogt -Subject: Fix build against OpenSSL 1.1.0 - -Leap 15.1 still has it and we can't switch away without breaking the world. - -Index: qtbase-everywhere-src-5.15.1/src/network/ssl/qsslsocket_openssl_symbols.cpp -=================================================================== ---- qtbase-everywhere-src-5.15.1.orig/src/network/ssl/qsslsocket_openssl_symbols.cpp -+++ qtbase-everywhere-src-5.15.1/src/network/ssl/qsslsocket_openssl_symbols.cpp -@@ -146,7 +146,9 @@ DEFINEFUNC2(int, BN_is_word, BIGNUM *a, - DEFINEFUNC(int, EVP_CIPHER_CTX_reset, EVP_CIPHER_CTX *c, c, return 0, return) - DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return) - DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return) -+#if OPENSSL_VERSION_NUMBER >= 0x10101000L - DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return) -+#endif - DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return) - DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return) - DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return) -@@ -376,7 +378,7 @@ DEFINEFUNC3(void, SSL_set_bio, SSL *a, a - DEFINEFUNC(void, SSL_set_accept_state, SSL *a, a, return, DUMMYARG) - DEFINEFUNC(void, SSL_set_connect_state, SSL *a, a, return, DUMMYARG) - DEFINEFUNC(int, SSL_shutdown, SSL *a, a, return -1, return) --DEFINEFUNC(int, SSL_in_init, const SSL *a, a, return 0, return) -+DEFINEFUNC(int, SSL_in_init, SSL *a, a, return 0, return) - DEFINEFUNC(int, SSL_get_shutdown, const SSL *ssl, ssl, return 0, return) - DEFINEFUNC2(int, SSL_set_session, SSL* to, to, SSL_SESSION *session, session, return -1, return) - DEFINEFUNC(void, SSL_SESSION_free, SSL_SESSION *ses, ses, return, DUMMYARG) -Index: qtbase-everywhere-src-5.15.1/src/network/ssl/qsslsocket_openssl_symbols_p.h -=================================================================== ---- qtbase-everywhere-src-5.15.1.orig/src/network/ssl/qsslsocket_openssl_symbols_p.h -+++ qtbase-everywhere-src-5.15.1/src/network/ssl/qsslsocket_openssl_symbols_p.h -@@ -235,7 +235,9 @@ int q_EVP_CIPHER_CTX_reset(EVP_CIPHER_CT - Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a); - EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); - void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); -+#if OPENSSL_VERSION_NUMBER >= 0x10101000L - int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); -+#endif - int q_EVP_PKEY_base_id(EVP_PKEY *a); - int q_RSA_bits(RSA *a); - Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a); -@@ -519,7 +521,7 @@ void q_SSL_set_bio(SSL *a, BIO *b, BIO * - void q_SSL_set_accept_state(SSL *a); - void q_SSL_set_connect_state(SSL *a); - int q_SSL_shutdown(SSL *a); --int q_SSL_in_init(const SSL *s); -+int q_SSL_in_init(SSL *s); - int q_SSL_get_shutdown(const SSL *ssl); - int q_SSL_set_session(SSL *to, SSL_SESSION *session); - void q_SSL_SESSION_free(SSL_SESSION *ses); diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index c8a8bd5..1577332 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Fri Dec 24 11:45:16 UTC 2021 - fabian@ritter-vogt.de + +- Update to version 5.15.2+kde268: + * Adapt for q_EVP_PKEY_base_id → q_EVP_PKEY_get_base_id rename in OpenSSL 3 + * Don't use a deprecated function if built/linked with OpenSSL v3 + * Diffie-Hellman parameters: remove useless 'fix' + * Dont's use DTLS_MAX_VERSION when setting SSL_CTX + * Avoid mixing atomic futex changes and QAtomic + * Fix qtdeclarative baseline test failure for text tables + * Don't let text table cells shrink below their minimum width (boo#1176530) + * Don't shrink a column when it spans multiple columns + * Use icon themes in QPrintPreviewDialog [if they exist] + * QAbstractFileEngine: fix UB (data race) on qt_file_engine_handlers_in_use + * Increment reference count when restoring reference + * Reject truncated and corrupt ascii pnm images + * Fix handling of Sunday in POSIX time-zone rules + * Fix developer build +- Drop patches, support for OpenSSL < 1.1.0 is no longer necessary: + * 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch + * fix-build-openssl-1.1.0.patch + ------------------------------------------------------------------- Thu Oct 28 07:14:35 UTC 2021 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 2fae7de..5e5d19f 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -29,7 +29,7 @@ %bcond_without harfbuzz Name: libqt5-qtbase -Version: 5.15.2+kde254 +Version: 5.15.2+kde268 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 @@ -47,8 +47,6 @@ Source3: baselibs.conf Source4: qtlogging.ini Source99: libqt5-qtbase-rpmlintrc # patches 0-1000 are openSUSE and/or non-upstream(able) patches # -Patch1: 0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch -Patch2: fix-build-openssl-1.1.0.patch Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch # Proposed: https://bugreports.qt.io/browse/QTBUG-88491 Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch diff --git a/qtbase-everywhere-src-5.15.2+kde254.obscpio b/qtbase-everywhere-src-5.15.2+kde254.obscpio deleted file mode 100644 index 52bd059..0000000 --- a/qtbase-everywhere-src-5.15.2+kde254.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da0b42cf37b1fc680ea58c3c4b98275bc27f30afa708ec37c6ecbb1bd00de6f5 -size 291323918 diff --git a/qtbase-everywhere-src-5.15.2+kde268.obscpio b/qtbase-everywhere-src-5.15.2+kde268.obscpio new file mode 100644 index 0000000..78f13f5 --- /dev/null +++ b/qtbase-everywhere-src-5.15.2+kde268.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3147c0f0236b8823d67c200f0eb796d500de92686fee2a5abc809051781040f3 +size 291326478 diff --git a/qtbase-everywhere-src.obsinfo b/qtbase-everywhere-src.obsinfo index b43b2d6..9cd4c0c 100644 --- a/qtbase-everywhere-src.obsinfo +++ b/qtbase-everywhere-src.obsinfo @@ -1,5 +1,5 @@ name: qtbase-everywhere-src -version: 5.15.2+kde254 -mtime: 1635027294 -commit: c9fde86b0a2440133bc08f4811b6ca793be47f0a +version: 5.15.2+kde268 +mtime: 1640345034 +commit: edb0f568ca1380623325cb18365b0af81cbf65bf From 726eb122592294cfbeb89b9602120b31deb9b09869846f68e7ddd1318e0e3670 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Thu, 13 Jan 2022 10:26:42 +0000 Subject: [PATCH 31/33] Add bug references so we don't miss them when updating Qt in SLE/Leap * Fallback to /tmp/runtime-$USER if XDG_RUNTIME_DIR is not set or is unsafe (bsc#1172515) * Fixes CVE-2020-17507, bsc#1176315 * Qt incorrectly calls SSL_shutdown() in OpenSSL mid-handshake causing denial of service in TLS applications (bsc#1172726, CVE-2020-13962, QTBUG-83450) * Fixes CVE-2020-0570, bsc#1161167, bsc#1162191, QTBUG-81272 * Fix segfaults due to unaligned stack in QtCore5 (bsc#1155955) * Add support for PostgreSQL 12 (bsc#1173758) * Qt headers redefine opengl types differently than khronos headers (bsc#1176130) OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=31 --- libqt5-qtbase.changes | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 1577332..2d3d82c 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -148,6 +148,8 @@ Fri Nov 20 12:08:44 UTC 2020 - Fabian Vogt * New bugfix release * For more details please see: http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.2/?h=5.15.2 + * Fallback to /tmp/runtime-$USER if XDG_RUNTIME_DIR is not set + or is unsafe (bsc#1172515) - Drop patches, now upstream: * 0001-Revert-Emit-QScreen-availableG-g-eometryChanged-on-l.patch - Pass -confirm-license option, drop duplicates @@ -187,7 +189,7 @@ Thu Sep 10 07:57:00 UTC 2020 - Fabian Vogt - Update to 5.15.1: * New bugfix release - * Fixes CVE-2020-17507 + * Fixes CVE-2020-17507, bsc#1176315 * For more details please see: http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.15.1/?h=5.15.1 - Drop patches, now upstream: @@ -249,6 +251,9 @@ Fri Apr 24 07:11:04 UTC 2020 - Fabian Vogt - Update to 5.15.0-beta4: * New bugfix release * No changelog available + * Qt incorrectly calls SSL_shutdown() in OpenSSL mid-handshake + causing denial of service in TLS applications (bsc#1172726, + CVE-2020-13962, QTBUG-83450) ------------------------------------------------------------------- Tue Apr 14 06:47:19 UTC 2020 - Fabian Vogt @@ -292,7 +297,7 @@ Mon Jan 27 13:13:57 UTC 2020 - Fabian Vogt - Update to 5.14.1: * New bugfix release - * Fixes CVE-2020-0570 + * Fixes CVE-2020-0570, bsc#1161167, bsc#1162191, QTBUG-81272 * For more details please see: http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.14.1/?h=v5.14.1 - Drop patch, should be addressed by applications meanwhile: @@ -354,6 +359,8 @@ Thu Oct 24 13:22:25 UTC 2019 - Fabian Vogt - Update to 5.14.0-beta2: * New bugfix release * No changelog available + * Fix segfaults due to unaligned stack in QtCore5 (bsc#1155955) + * Add support for PostgreSQL 12 (bsc#1173758) - Refresh patches: * 0001-Revert-Always-escape-the-table-names-when-creating-t.patch @@ -560,6 +567,8 @@ Thu Mar 21 10:24:28 UTC 2019 - fabian@ritter-vogt.de * New feature release * For more details about Qt 5.13 please see: * http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.13.0/?h=5.13 + * Qt headers redefine opengl types differently than khronos headers + (bsc#1176130) - Remove patches, now upstream: * qapplication-emit-palettechanged.patch * reproducible-qrc-time.patch From 7babdec880976f0c914e54128ec8a8db3bb0567488cae18086e28dcdd7610b8b Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sat, 22 Jan 2022 20:32:09 +0000 Subject: [PATCH 32/33] Import latest revisions OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=32 --- _servicedata | 2 +- libqt5-qtbase.changes | 31 +++++++++++++++++++++ libqt5-qtbase.spec | 2 +- qtbase-everywhere-src-5.15.2+kde268.obscpio | 3 -- qtbase-everywhere-src-5.15.2+kde294.obscpio | 3 ++ qtbase-everywhere-src.obsinfo | 6 ++-- 6 files changed, 39 insertions(+), 8 deletions(-) delete mode 100644 qtbase-everywhere-src-5.15.2+kde268.obscpio create mode 100644 qtbase-everywhere-src-5.15.2+kde294.obscpio diff --git a/_servicedata b/_servicedata index b323df0..7581037 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ https://invent.kde.org/qt/qt/qtbase.git - edb0f568ca1380623325cb18365b0af81cbf65bf \ No newline at end of file + 366350c2e4a7eccbda0f3936e69c6b9c4fa28f55 \ No newline at end of file diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 2d3d82c..561b4f0 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Fri Jan 21 08:04:30 UTC 2022 - Fabian Vogt + +- Update to version 5.15.2+kde294: + * QTzTimeZonePrivate::init(): fix handling of empty ID + * Restore support for reading /etc/timezone for system zone name + * QPathEdge: Fix array initialization + * QTzTimeZonePrivate: fix UB (data race on m_icu) + * Don't access QObject::objectName during QThread start + * Restore C++11 compatibility after e8b9f4c28d3ab5e960dc54f2dc0c4b749b0b50e0 + * QVarLengthArray: fix size update on failed append() + * Call statx() with AT_NO_AUTOMOUNT + * QThread: Remove superfluous initialization of threadId on Unix + * QThread: Reset the system thread ID when thread exits on Unix + * Add missing macOS header file that was indirectly included before + * QXcb: don't dereference pointer before checking + * xcb: avoid to use invalid pointers + * QVarLengthArray: fix insert() type/alias mismatch between decl and impl + * Use qint64 to replace int while qt_transform_image_rasterize + * QVarLengthArray: assert that the range passed to erase() is valid + * Fix pattern type matching + * QThread: fix UB (invalid enum value) on Private::Priority + * Use block char format to render list item bullets and numbers + * QDateTime: Don't require c++17 + * QVariantAnimation: fix UB (FP 0/0) in interpolated() arg calculation + * QDateTime: fix UB (signed overflow) in addDays() + * QString: fix UB (pointer arithmetic on nullptr) in qLastIndexOf + * tst_QIODevice: fix UB (precondition violation) in SequentialReadBuffer::readData() + * QVarLengthArray: fix UB (precondition violation) in range-erase() + * Fix segmentation fault in QObject::dumpObjectInfo + ------------------------------------------------------------------- Fri Dec 24 11:45:16 UTC 2021 - fabian@ritter-vogt.de diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 5e5d19f..2481b93 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -29,7 +29,7 @@ %bcond_without harfbuzz Name: libqt5-qtbase -Version: 5.15.2+kde268 +Version: 5.15.2+kde294 Release: 0 Summary: C++ Program Library, Core Components License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 diff --git a/qtbase-everywhere-src-5.15.2+kde268.obscpio b/qtbase-everywhere-src-5.15.2+kde268.obscpio deleted file mode 100644 index 78f13f5..0000000 --- a/qtbase-everywhere-src-5.15.2+kde268.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3147c0f0236b8823d67c200f0eb796d500de92686fee2a5abc809051781040f3 -size 291326478 diff --git a/qtbase-everywhere-src-5.15.2+kde294.obscpio b/qtbase-everywhere-src-5.15.2+kde294.obscpio new file mode 100644 index 0000000..600f8a4 --- /dev/null +++ b/qtbase-everywhere-src-5.15.2+kde294.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6ec08431d9f5a84615b0381db9c80bdeb71de1e813f18a08b664336c290eeed +size 291332110 diff --git a/qtbase-everywhere-src.obsinfo b/qtbase-everywhere-src.obsinfo index 9cd4c0c..0b132c9 100644 --- a/qtbase-everywhere-src.obsinfo +++ b/qtbase-everywhere-src.obsinfo @@ -1,5 +1,5 @@ name: qtbase-everywhere-src -version: 5.15.2+kde268 -mtime: 1640345034 -commit: edb0f568ca1380623325cb18365b0af81cbf65bf +version: 5.15.2+kde294 +mtime: 1642610092 +commit: 366350c2e4a7eccbda0f3936e69c6b9c4fa28f55 From dbcea5cadf9cfec844ccc522f19a8103cb3870d02b969b726687c17b521cfbf9 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Thu, 3 Feb 2022 21:11:04 +0000 Subject: [PATCH 33/33] - Add patch to avoid unintentionally using binaries from CWD (boo#1195386, CVE-2022-23853): * 0001-QProcess-Unix-ensure-we-don-t-accidentally-execute-s.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/libqt5-qtbase?expand=0&rev=33 --- ...sure-we-don-t-accidentally-execute-s.patch | 182 ++++++++++++++++++ libqt5-qtbase.changes | 7 + libqt5-qtbase.spec | 2 + 3 files changed, 191 insertions(+) create mode 100644 0001-QProcess-Unix-ensure-we-don-t-accidentally-execute-s.patch diff --git a/0001-QProcess-Unix-ensure-we-don-t-accidentally-execute-s.patch b/0001-QProcess-Unix-ensure-we-don-t-accidentally-execute-s.patch new file mode 100644 index 0000000..afb25a7 --- /dev/null +++ b/0001-QProcess-Unix-ensure-we-don-t-accidentally-execute-s.patch @@ -0,0 +1,182 @@ +From 96cdea05674e782a1f1a3fbb1e77676d314f6900 Mon Sep 17 00:00:00 2001 +From: Thiago Macieira +Date: Mon, 31 Jan 2022 11:00:19 -0800 +Subject: [PATCH] QProcess/Unix: ensure we don't accidentally execute something + from CWD + +Unless "." (or the empty string) is in $PATH, we're not supposed to find +executables in the current directory. This is how the Unix shells behave +and we match their behavior. It's also the behavior Qt had prior to 5.9 +(commit 28666d167aa8e602c0bea25ebc4d51b55005db13). On Windows, searching +the current directory is the norm, so we keep that behavior. + +This commit does not add an explicit check for an empty return from +QStandardPaths::findExecutable(). Instead, we allow that empty string to +go all the way to execve(2), which will fail with ENOENT. We could catch +it early, before fork(2), but why add code for the error case? + +execve() calls in strace of the new test: + +[pid 38201] execve("", [""], 0x12100d0 /* 120 vars */) = -1 ENOENT (No such file or directory) +[pid 38201] +++ exited with 255 +++ +--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=38201, si_uid=1000, si_status=255, si_utime=0, si_stime=0} --- +PASS : tst_QProcess::startFromCurrentWorkingDir(without-dot-slash) + +[pid 38202] execve("./testProcessNormal", ["./testProcessNormal"], 0x12100d0 /* 120 vars */) = 0 +[pid 38202] +++ exited with 0 +++ +--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=38202, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- +PASS : tst_QProcess::startFromCurrentWorkingDir(with-dot-slash) + +See https://kde.org/info/security/advisory-20220131-1.txt + +[ChangeLog][Important Behavior Changes] When passed a simple program +name with no slashes, QProcess on Unix systems will now only search the +current directory if "." is one of the entries in the PATH environment +variable. This bug fix restores the behavior QProcess had before Qt 5.9. +If launching an executable in the current path is intended, pass a +program name starting with "./". To run a binary auxiliary to the +application, instead calculate an absolute path starting from +QCoreApplication::applicationDirPath(). + +Pick-to: 5.15 6.2 6.3 +Change-Id: I54f205f6b7314351b078fffd16cf7013c97ee9fb +--- + src/corelib/io/qprocess_unix.cpp | 13 +++--- + .../auto/corelib/io/qprocess/tst_qprocess.cpp | 45 ++++++++++++++++++- + .../corelib/kernel/qobject/tst_qobject.cpp | 2 +- + .../kernel/qapplication/tst_qapplication.cpp | 4 +- + 4 files changed, 54 insertions(+), 10 deletions(-) + +diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp +index 50390e57f5..94d32076d0 100644 +--- a/src/corelib/io/qprocess_unix.cpp ++++ b/src/corelib/io/qprocess_unix.cpp +@@ -422,14 +422,15 @@ void QProcessPrivate::startProcess() + // Add the program name to the argument list. + argv[0] = nullptr; + if (!program.contains(QLatin1Char('/'))) { ++ // findExecutable() returns its argument if it's an absolute path, ++ // otherwise it searches $PATH; returns empty if not found (we handle ++ // that case much later) + const QString &exeFilePath = QStandardPaths::findExecutable(program); +- if (!exeFilePath.isEmpty()) { +- const QByteArray &tmp = QFile::encodeName(exeFilePath); +- argv[0] = ::strdup(tmp.constData()); +- } +- } +- if (!argv[0]) ++ const QByteArray &tmp = QFile::encodeName(exeFilePath); ++ argv[0] = ::strdup(tmp.constData()); ++ } else { + argv[0] = ::strdup(encodedProgramName.constData()); ++ } + + // Add every argument to the list + for (int i = 0; i < arguments.count(); ++i) +diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp +index bc9df3f1f3..17b148379f 100644 +--- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp ++++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp +@@ -1,7 +1,7 @@ + /**************************************************************************** + ** + ** Copyright (C) 2020 The Qt Company Ltd. +-** Copyright (C) 2020 Intel Corporation. ++** Copyright (C) 2022 Intel Corporation. + ** Contact: https://www.qt.io/licensing/ + ** + ** This file is part of the test suite of the Qt Toolkit. +@@ -149,6 +149,8 @@ private slots: + void startStopStartStopBuffers(); + void processEventsInAReadyReadSlot_data(); + void processEventsInAReadyReadSlot(); ++ void startFromCurrentWorkingDir_data(); ++ void startFromCurrentWorkingDir(); + + // keep these at the end, since they use lots of processes and sometimes + // caused obscure failures to occur in tests that followed them (esp. on the Mac) +@@ -2732,5 +2734,46 @@ void tst_QProcess::finishProcessBeforeReadingDone_deprecated() + + #endif + ++void tst_QProcess::startFromCurrentWorkingDir_data() ++{ ++ QTest::addColumn("program"); ++ QTest::addColumn("success"); // on Unix ++ QTest::newRow("without-dot-slash") << "testProcessNormal" << false; ++ QTest::newRow("with-dot-slash") << "./testProcessNormal" << true; ++} ++ ++void tst_QProcess::startFromCurrentWorkingDir() ++{ ++ QFETCH(QString, program); ++ QFETCH(bool, success); ++#ifdef Q_OS_WIN ++ // Windows always searches the current working dir ++ success = true; ++#endif ++ ++ QProcess process; ++ qRegisterMetaType(); ++ QSignalSpy errorSpy(&process, &QProcess::errorOccurred); ++ QVERIFY(errorSpy.isValid()); ++ ++ process.setWorkingDirectory("testProcessNormal"); ++ process.setProgram(program); ++ ++#ifdef Q_OS_UNIX ++ // reset PATH, to be sure it doesn't contain . or the empty path ++ QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); ++ env.insert("PATH", "/"); // doesn't matter what it is ++#endif ++ ++ process.start(); ++ QCOMPARE(process.waitForStarted(), success); ++ QCOMPARE(errorSpy.count(), int(!success)); ++ if (success) { ++ QVERIFY(process.waitForFinished()); ++ } else { ++ QCOMPARE(process.error(), QProcess::FailedToStart); ++ } ++} ++ + QTEST_MAIN(tst_QProcess) + #include "tst_qprocess.moc" +diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +index 63d06497ce..9b6287e885 100644 +--- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp ++++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +@@ -3024,7 +3024,7 @@ void tst_QObject::recursiveSignalEmission() + #else + QProcess proc; + // signalbug helper app should always be next to this test binary +- const QString path = QStringLiteral("signalbug_helper"); ++ const QString path = QCoreApplication::applicationDirPath() + QDir::separator() + QStringLiteral("signalbug_helper"); + proc.start(path); + QVERIFY2(proc.waitForStarted(), qPrintable(QString::fromLatin1("Cannot start '%1': %2").arg(path, proc.errorString()))); + QVERIFY(proc.waitForFinished()); +diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp +index e159e22d2a..820831f9c5 100644 +--- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp ++++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp +@@ -1449,7 +1449,7 @@ void tst_QApplication::desktopSettingsAware() + { + #if QT_CONFIG(process) + QProcess testProcess; +- testProcess.start("desktopsettingsaware_helper"); ++ testProcess.start("./desktopsettingsaware_helper"); + QVERIFY2(testProcess.waitForStarted(), + qPrintable(QString::fromLatin1("Cannot start 'desktopsettingsaware_helper': %1").arg(testProcess.errorString()))); + QVERIFY(testProcess.waitForFinished(10000)); +@@ -2365,7 +2365,7 @@ void tst_QApplication::qtbug_12673() + #if QT_CONFIG(process) + QProcess testProcess; + QStringList arguments; +- testProcess.start("modal_helper", arguments); ++ testProcess.start("./modal_helper", arguments); + QVERIFY2(testProcess.waitForStarted(), + qPrintable(QString::fromLatin1("Cannot start 'modal_helper': %1").arg(testProcess.errorString()))); + QVERIFY(testProcess.waitForFinished(20000)); +-- +2.34.0 + diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 561b4f0..d69c0c9 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Feb 3 11:28:46 UTC 2022 - Fabian Vogt + +- Add patch to avoid unintentionally using binaries from CWD + (boo#1195386, CVE-2022-23853): + * 0001-QProcess-Unix-ensure-we-don-t-accidentally-execute-s.patch + ------------------------------------------------------------------- Fri Jan 21 08:04:30 UTC 2022 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 2481b93..fde43c1 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -65,6 +65,8 @@ Patch24: fix-fixqt4headers.patch # patches 2000-3000 and above from upstream qt6/dev branch # # Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384 Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch +# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/393113 +Patch2002: 0001-QProcess-Unix-ensure-we-don-t-accidentally-execute-s.patch BuildRequires: cups-devel BuildRequires: double-conversion-devel BuildRequires: gcc-c++