From 5fb396e9b0ff78a3cefba0f24c468aa723bc79d4cded0d43371f43f983e73e0e Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Wed, 19 Feb 2020 10:09:00 +0000 Subject: [PATCH 01/10] OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtbase?expand=0&rev=1 --- ...orter-fix-use-after-free-add-fuzz-ge.patch | 142 ------------------ libqt5-qtbase.changes | 6 - libqt5-qtbase.spec | 1 - 3 files changed, 149 deletions(-) delete mode 100644 0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch diff --git a/0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch b/0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch deleted file mode 100644 index 5a0a82e..0000000 --- a/0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 9dcf75766469dbe61c19389bae0413767360c234 Mon Sep 17 00:00:00 2001 -From: Shawn Rutledge -Date: Mon, 24 Feb 2020 16:23:27 +0100 -Subject: [PATCH] QTextMarkdownImporter: fix use after free; add fuzz-generated - tests - -It was possible to end up with a dangling pointer in m_listStack. -This is now avoided by using QPointer and doing nullptr checks before -accessing any QTextList pointer stored there. - -We have 2 specimens of garbage that caused crashes before; now they don't. -But only fuzz20450 triggered the dangling pointer in the list stack. -The crash caused by fuzz20580 was fixed by updating md4c from upstream: -4b0fc030777cd541604f5ebaaad47a2b76d61ff9 - -Change-Id: I8e1eca23b281256a03aea0f55e9ae20f1bdd2a38 -Reviewed-by: Robert Loehning ---- - src/gui/text/qtextmarkdownimporter.cpp | 7 ++++-- - src/gui/text/qtextmarkdownimporter_p.h | 2 +- - .../qtextmarkdownimporter/data/fuzz20450.md | 5 ++++ - .../qtextmarkdownimporter/data/fuzz20580.md | 1 + - .../qtextmarkdownimporter.pro | 2 ++ - .../tst_qtextmarkdownimporter.cpp | 24 +++++++++++++++++++ - 6 files changed, 38 insertions(+), 3 deletions(-) - create mode 100644 tests/auto/gui/text/qtextmarkdownimporter/data/fuzz20450.md - create mode 100644 tests/auto/gui/text/qtextmarkdownimporter/data/fuzz20580.md - -diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdownimporter.cpp -index 88965046ce..ea62d5c2e5 100644 ---- a/src/gui/text/qtextmarkdownimporter.cpp -+++ b/src/gui/text/qtextmarkdownimporter.cpp -@@ -575,7 +575,10 @@ void QTextMarkdownImporter::insertBlock() - QTextBlockFormat blockFormat; - if (!m_listStack.isEmpty() && !m_needsInsertList && m_listItem) { - QTextList *list = m_listStack.top(); -- blockFormat = list->item(list->count() - 1).blockFormat(); -+ if (list) -+ blockFormat = list->item(list->count() - 1).blockFormat(); -+ else -+ qWarning() << "attempted to insert into a list that no longer exists"; - } - if (m_blockQuoteDepth) { - blockFormat.setProperty(QTextFormat::BlockQuoteLevel, m_blockQuoteDepth); -@@ -605,7 +608,7 @@ void QTextMarkdownImporter::insertBlock() - } - if (m_needsInsertList) { - m_listStack.push(m_cursor->createList(m_listFormat)); -- } else if (!m_listStack.isEmpty() && m_listItem) { -+ } else if (!m_listStack.isEmpty() && m_listItem && m_listStack.top()) { - m_listStack.top()->add(m_cursor->block()); - } - m_needsInsertList = false; -diff --git a/src/gui/text/qtextmarkdownimporter_p.h b/src/gui/text/qtextmarkdownimporter_p.h -index f450da5eb3..e3b4bcd0f2 100644 ---- a/src/gui/text/qtextmarkdownimporter_p.h -+++ b/src/gui/text/qtextmarkdownimporter_p.h -@@ -113,7 +113,7 @@ private: - #endif - QString m_blockCodeLanguage; - QVector m_nonEmptyTableCells; // in the current row -- QStack m_listStack; -+ QStack> m_listStack; - QStack m_spanFormatStack; - QFont m_monoFont; - QPalette m_palette; -diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/fuzz20450.md b/tests/auto/gui/text/qtextmarkdownimporter/data/fuzz20450.md -new file mode 100644 -index 0000000000..d7005cb01e ---- /dev/null -+++ b/tests/auto/gui/text/qtextmarkdownimporter/data/fuzz20450.md -@@ -0,0 +1,5 @@ -+ÿ -+* ÿ -+ -+ ÿ -+* ÿ -\ No newline at end of file -diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/fuzz20580.md b/tests/auto/gui/text/qtextmarkdownimporter/data/fuzz20580.md -new file mode 100644 -index 0000000000..22006f5876 ---- /dev/null -+++ b/tests/auto/gui/text/qtextmarkdownimporter/data/fuzz20580.md -@@ -0,0 +1 @@ -+| --:| ("warning"); -+ QTest::newRow("fuzz20450") << "attempted to insert into a list that no longer exists"; -+ QTest::newRow("fuzz20580") << ""; -+} -+ -+void tst_QTextMarkdownImporter::pathological() // avoid crashing on crazy input -+{ -+ QFETCH(QString, warning); -+ QString filename = QLatin1String("data/") + QTest::currentDataTag() + QLatin1String(".md"); -+ QFile f(QFINDTESTDATA(filename)); -+ QVERIFY(f.open(QFile::ReadOnly)); -+#ifdef QT_NO_DEBUG -+ Q_UNUSED(warning) -+#else -+ if (!warning.isEmpty()) -+ QTest::ignoreMessage(QtWarningMsg, warning.toLatin1()); -+#endif -+ QTextDocument().setMarkdown(f.readAll()); -+} -+ - QTEST_MAIN(tst_QTextMarkdownImporter) - #include "tst_qtextmarkdownimporter.moc" --- -2.25.1 - diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index 3d405d0..d4afe4d 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,9 +1,3 @@ -------------------------------------------------------------------- -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 - ------------------------------------------------------------------- Mon Jan 27 13:13:57 UTC 2020 - Fabian Vogt diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 57f800a..e2d7ce7 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -66,7 +66,6 @@ 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.14 branch # -Patch1000: 0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch # 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 From 62b812102764e3a86909ee630355d105d6cca30f5a57617fdc48e18cdc56b181 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 26 Feb 2020 12:43:12 +0000 Subject: [PATCH 02/10] Qt 5.15 Alpha OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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 8af21c4d0fe7dc7c81445c80b31636171590e2d0a2c75009a75bdd16ff9e0434 Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Sun, 1 Mar 2020 08:57:54 +0000 Subject: [PATCH 03/10] Qt 5.15 Beta 1 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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 ee571818e582eb0b6a8688236d0c6f2b82bd0bb44748c8cbc74280b977b47a6a Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 25 Mar 2020 07:19:56 +0000 Subject: [PATCH 04/10] Qt 5.15 Beta 2 - untested, as usual OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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 26e6930f0536669578c1b98f4aaea5cf97d28e4a71525520751b87c4e9ea83a3 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 15 Apr 2020 08:52:22 +0000 Subject: [PATCH 05/10] Qt 5.15.0 Beta 3 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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 50f3e821036a31e3cbc0bef30d9456c8fc0b36e5ea809a988a16ebd07d5c722f Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sat, 25 Apr 2020 19:51:49 +0000 Subject: [PATCH 06/10] Qt 5.15.0 Beta 4 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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 826925744a61e21f0d0838c2446e3088f535beecbc38c8672510332d2663b715 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Sat, 9 May 2020 06:33:21 +0000 Subject: [PATCH 07/10] Qt 5.15.0 RC OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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 1b1eba12064a0a7ef84e0038669d23d8542d71b81c73b5932ddf22ebb54b6cbf Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Fri, 22 May 2020 13:54:05 +0000 Subject: [PATCH 08/10] OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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 e67dc8d21313173c9debfbaa78d33308fc6ded8ba45f9c7596f49ab97748a8a8 Mon Sep 17 00:00:00 2001 From: Fabian Vogt Date: Wed, 27 May 2020 08:38:42 +0000 Subject: [PATCH 09/10] OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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 41a0ed5f3fa58617536d2104c5bab08ce95957920a447a26bbe7a8b2adfcccf9 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux Date: Wed, 27 May 2020 09:57:19 +0000 Subject: [PATCH 10/10] Accepting request 809283 from home:Vogtinator:qt5.15 OBS-URL: https://build.opensuse.org/request/show/809283 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/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