forked from pool/libqt5-qtbase
Accepting request 809287 from KDE:Qt:5.15
Qt 5.15.0 OBS-URL: https://build.opensuse.org/request/show/809287 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=106
This commit is contained in:
commit
ba5a894182
@ -0,0 +1,40 @@
|
|||||||
|
From 8a053986b4c43a133f6824f839bd78a476d183e3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
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
|
||||||
|
|
44
0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch
Normal file
44
0001-Lower-required-version-of-OpenSSL-to-1.1.0.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From 5fbcd6b8f1635916c0a2669649d3c96312b54288 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
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
|
||||||
|
|
@ -1,142 +0,0 @@
|
|||||||
From 9dcf75766469dbe61c19389bae0413767360c234 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
||||||
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 <robert.loehning@qt.io>
|
|
||||||
---
|
|
||||||
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<int> m_nonEmptyTableCells; // in the current row
|
|
||||||
- QStack<QTextList *> m_listStack;
|
|
||||||
+ QStack<QPointer<QTextList>> m_listStack;
|
|
||||||
QStack<QTextCharFormat> 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 @@
|
|
||||||
+<t>ÿ
|
|
||||||
+* ÿ
|
|
||||||
+
|
|
||||||
+ ÿ
|
|
||||||
+* ÿ
|
|
||||||
\ 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 @@
|
|
||||||
+|
--:|
<?`?><?|`
|
|
||||||
\ No newline at end of file
|
|
||||||
diff --git a/tests/auto/gui/text/qtextmarkdownimporter/qtextmarkdownimporter.pro b/tests/auto/gui/text/qtextmarkdownimporter/qtextmarkdownimporter.pro
|
|
||||||
index 7b7fb61244..f3818efbf7 100644
|
|
||||||
--- a/tests/auto/gui/text/qtextmarkdownimporter/qtextmarkdownimporter.pro
|
|
||||||
+++ b/tests/auto/gui/text/qtextmarkdownimporter/qtextmarkdownimporter.pro
|
|
||||||
@@ -5,5 +5,7 @@ SOURCES += tst_qtextmarkdownimporter.cpp
|
|
||||||
TESTDATA += \
|
|
||||||
data/thematicBreaks.md \
|
|
||||||
data/headingBulletsContinuations.md \
|
|
||||||
+ data/fuzz20450.md \
|
|
||||||
+ data/fuzz20580.md \
|
|
||||||
|
|
||||||
DEFINES += SRCDIR=\\\"$$PWD\\\"
|
|
||||||
diff --git a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
|
|
||||||
index 39a1370f6f..5eb04af696 100644
|
|
||||||
--- a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
|
|
||||||
+++ b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp
|
|
||||||
@@ -57,6 +57,8 @@ private slots:
|
|
||||||
void lists();
|
|
||||||
void avoidBlankLineAtBeginning_data();
|
|
||||||
void avoidBlankLineAtBeginning();
|
|
||||||
+ void pathological_data();
|
|
||||||
+ void pathological();
|
|
||||||
};
|
|
||||||
|
|
||||||
void tst_QTextMarkdownImporter::headingBulletsContinuations()
|
|
||||||
@@ -256,5 +258,27 @@ void tst_QTextMarkdownImporter::avoidBlankLineAtBeginning() // QTBUG-81060
|
|
||||||
QCOMPARE(i, expectedNumberOfParagraphs);
|
|
||||||
}
|
|
||||||
|
|
||||||
+void tst_QTextMarkdownImporter::pathological_data()
|
|
||||||
+{
|
|
||||||
+ QTest::addColumn<QString>("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
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
|||||||
From 7525dcc085d0453209bd7c321adac9c54487afa6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
|
||||||
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
|
|
||||||
|
|
139
0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch
Normal file
139
0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
From 9928d66764337494d0e99208a3418fcd01ac3e66 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
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<QWidgetAction*>(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<QPushButton> 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
|
||||||
|
|
@ -1,280 +0,0 @@
|
|||||||
From 4f28ec6c8526d754849bd26c55e4c5faf61f4eb0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
|
||||||
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<QCborValue>(d)->isRegularExpression())
|
|
||||||
return false;
|
|
||||||
*static_cast<QRegularExpression *>(result) = v_cast<QCborValue>(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<QCborValue *>(result) = QCborValue(*v_cast<QUrl>(d));
|
|
||||||
break;
|
|
||||||
-#if QT_CONFIG(regularexpression)
|
|
||||||
case QVariant::RegularExpression:
|
|
||||||
*static_cast<QCborValue *>(result) = QCborValue(*v_cast<QRegularExpression>(d));
|
|
||||||
break;
|
|
||||||
-#endif
|
|
||||||
case QVariant::Uuid:
|
|
||||||
*static_cast<QCborValue *>(result) = QCborValue(*v_cast<QUuid>(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 << "<invalid>";
|
|
||||||
- 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 <QtCore/qbytearray.h>
|
|
||||||
#include <QtCore/qdatetime.h>
|
|
||||||
#include <QtCore/qcborcommon.h>
|
|
||||||
-#if QT_CONFIG(regularexpression)
|
|
||||||
-# include <QtCore/qregularexpression.h>
|
|
||||||
-#endif
|
|
||||||
+#include <QtCore/qregularexpression.h>
|
|
||||||
#include <QtCore/qstring.h>
|
|
||||||
#include <QtCore/qstringview.h>
|
|
||||||
#include <QtCore/qurl.h>
|
|
||||||
@@ -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 <private/qguiapplication_p.h>
|
|
||||||
#include <QScreen>
|
|
||||||
#include <QDir>
|
|
||||||
-#if QT_CONFIG(regularexpression)
|
|
||||||
-# include <QRegularExpression>
|
|
||||||
-#endif
|
|
||||||
+#include <QRegularExpression>
|
|
||||||
#include <QLoggingCategory>
|
|
||||||
|
|
||||||
#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 <GL/glx.h>
|
|
||||||
|
|
||||||
-#if QT_CONFIG(regularexpression)
|
|
||||||
-# include <QtCore/QRegularExpression>
|
|
||||||
-#endif
|
|
||||||
+#include <QtCore/QRegularExpression>
|
|
||||||
#include <QtGui/QOpenGLContext>
|
|
||||||
#include <QtGui/QOffscreenSurface>
|
|
||||||
|
|
||||||
@@ -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 <QtCore/qregularexpression.h>
|
|
||||||
-#endif
|
|
||||||
+#include <QtCore/qregularexpression.h>
|
|
||||||
|
|
||||||
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) {
|
|
@ -22,11 +22,11 @@ Change-Id: Ifbad6284483ee282ad129db54606f5d0d9ddd633
|
|||||||
src/widgets/kernel/qwidgetwindow.cpp | 12 ++++++++++++
|
src/widgets/kernel/qwidgetwindow.cpp | 12 ++++++++++++
|
||||||
1 file changed, 12 insertions(+)
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp
|
Index: qtbase-everywhere-src-5.15.0-alpha/src/widgets/kernel/qwidgetwindow.cpp
|
||||||
index fbc71cd0ea..729a7f701a 100644
|
===================================================================
|
||||||
--- a/src/widgets/kernel/qwidgetwindow.cpp
|
--- qtbase-everywhere-src-5.15.0-alpha.orig/src/widgets/kernel/qwidgetwindow.cpp
|
||||||
+++ b/src/widgets/kernel/qwidgetwindow.cpp
|
+++ qtbase-everywhere-src-5.15.0-alpha/src/widgets/kernel/qwidgetwindow.cpp
|
||||||
@@ -1051,6 +1051,18 @@ void QWidgetWindow::handleTabletEvent(QTabletEvent *event)
|
@@ -1075,6 +1075,18 @@ void QWidgetWindow::handleTabletEvent(QT
|
||||||
event->setAccepted(ev.isAccepted());
|
event->setAccepted(ev.isAccepted());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,8 +43,5 @@ index fbc71cd0ea..729a7f701a 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
if (event->type() == QEvent::TabletRelease && event->buttons() == Qt::NoButton)
|
if (event->type() == QEvent::TabletRelease && event->buttons() == Qt::NoButton)
|
||||||
qt_tablet_target = 0;
|
qt_tablet_target = nullptr;
|
||||||
}
|
}
|
||||||
--
|
|
||||||
2.21.0
|
|
||||||
|
|
||||||
|
@ -1,102 +0,0 @@
|
|||||||
From e0bf494295398cbc3ba5a84380525f9c00e3f8ad Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
|
||||||
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 <GL/glx.h>
|
|
||||||
|
|
||||||
-#include <QtCore/QRegularExpression>
|
|
||||||
#include <QtGui/QOpenGLContext>
|
|
||||||
#include <QtGui/QOffscreenSurface>
|
|
||||||
|
|
||||||
@@ -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
|
|
||||||
|
|
31
fix-build-openssl-1.1.0.patch
Normal file
31
fix-build-openssl-1.1.0.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
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);
|
@ -1,9 +1,83 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 27 08:48:52 UTC 2020 - Fabian Vogt <fvogt@suse.com>
|
||||||
|
|
||||||
|
- 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 <callumjfarmer13@gmail.com>
|
||||||
|
|
||||||
|
- Update to 5.15.0:
|
||||||
|
* No changelog available
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 20 15:38:18 UTC 2020 - Callum Farmer <callumjfarmer13@gmail.com>
|
||||||
|
|
||||||
|
- Update to 5.15.0-rc2
|
||||||
|
* No changelog available
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 6 11:26:35 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- 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 <fabian@ritter-vogt.de>
|
Mon Apr 27 12:45:07 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
- Add patch to fix use-after-free (boo#1170582, CVE-2020-12267):
|
- Add patch to fix use-after-free (boo#1170582, CVE-2020-12267):
|
||||||
* 0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch
|
* 0001-QTextMarkdownImporter-fix-use-after-free-add-fuzz-ge.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Apr 24 07:11:04 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- Update to 5.15.0-beta4:
|
||||||
|
* New bugfix release
|
||||||
|
* No changelog available
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 14 06:47:19 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- 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 <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- Update to 5.15.0-beta2:
|
||||||
|
* New bugfix release
|
||||||
|
* No changelog available
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Feb 28 09:58:42 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- Update to 5.15.0-beta1:
|
||||||
|
* New bugfix release
|
||||||
|
* No changelog available
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 19 10:16:14 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- 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 <fabian@ritter-vogt.de>
|
Mon Jan 27 13:13:57 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package libqt5-qtbase
|
# 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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# 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)
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
# published by the Open Source Initiative.
|
# 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,23 +36,26 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: libqt5-qtbase
|
Name: libqt5-qtbase
|
||||||
Version: 5.14.1
|
Version: 5.15.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: C++ Program Library, Core Components
|
Summary: C++ Program Library, Core Components
|
||||||
License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1
|
License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
Url: https://www.qt.io
|
Url: https://www.qt.io
|
||||||
%define base_name libqt5
|
%define base_name libqt5
|
||||||
%define real_version 5.14.1
|
%define real_version 5.15.0
|
||||||
%define so_version 5.14.1
|
%define so_version 5.15.0
|
||||||
%define tar_version qtbase-everywhere-src-5.14.1
|
%define tar_version qtbase-everywhere-src-5.15.0
|
||||||
Source: https://download.qt.io/official_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz
|
Source: https://download.qt.io/official_releases/qt/5.15/%{real_version}/submodules/%{tar_version}.tar.xz
|
||||||
# to get mtime of file:
|
# to get mtime of file:
|
||||||
Source1: libqt5-qtbase.changes
|
Source1: libqt5-qtbase.changes
|
||||||
Source2: macros.qt5
|
Source2: macros.qt5
|
||||||
Source3: baselibs.conf
|
Source3: baselibs.conf
|
||||||
Source99: libqt5-qtbase-rpmlintrc
|
Source99: libqt5-qtbase-rpmlintrc
|
||||||
# patches 0-1000 are openSUSE and/or non-upstream(able) patches #
|
# 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
|
# PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default
|
||||||
Patch6: disable-rc4-ciphers-bnc865241.diff
|
Patch6: disable-rc4-ciphers-bnc865241.diff
|
||||||
Patch8: tell-the-truth-about-private-api.patch
|
Patch8: tell-the-truth-about-private-api.patch
|
||||||
@ -61,12 +64,9 @@ 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
|
# 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
|
Patch12: 0001-Add-remote-print-queue-support.patch
|
||||||
# PATCH-FIX-OPENSUSE
|
# PATCH-FIX-OPENSUSE
|
||||||
Patch21: 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch
|
Patch21: 0001-Don-t-white-list-recent-Mesa-versions-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
|
Patch24: fix-fixqt4headers.patch
|
||||||
# patches 1000-2000 and above from upstream 5.14 branch #
|
# 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 #
|
# patches 2000-3000 and above from upstream 5.15/dev branch #
|
||||||
# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384
|
# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384
|
||||||
Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
|
Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
|
||||||
@ -868,7 +868,8 @@ echo yes | ./configure \
|
|||||||
-no-separate-debug-info \
|
-no-separate-debug-info \
|
||||||
-force-debug-info \
|
-force-debug-info \
|
||||||
-shared \
|
-shared \
|
||||||
-xkb \
|
-xkbcommon \
|
||||||
|
-no-bundled-xcb-xinput \
|
||||||
-dbus-linked \
|
-dbus-linked \
|
||||||
-sm \
|
-sm \
|
||||||
-no-rpath \
|
-no-rpath \
|
||||||
@ -1059,6 +1060,8 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png
|
|||||||
%{libqt5_libdir}/cmake/Qt5/
|
%{libqt5_libdir}/cmake/Qt5/
|
||||||
%{libqt5_libdir}/pkgconfig/Qt5Core.pc
|
%{libqt5_libdir}/pkgconfig/Qt5Core.pc
|
||||||
%{libqt5_includedir}/QtCore/
|
%{libqt5_includedir}/QtCore/
|
||||||
|
%dir %{libqt5_libdir}/metatypes/
|
||||||
|
%{libqt5_libdir}/metatypes/qt5core_metatypes.json
|
||||||
%exclude %{libqt5_includedir}/QtCore/%{so_version}
|
%exclude %{libqt5_includedir}/QtCore/%{so_version}
|
||||||
%{libqt5_docdir}
|
%{libqt5_docdir}
|
||||||
|
|
||||||
@ -1186,6 +1189,7 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png
|
|||||||
%{libqt5_libdir}/cmake/Qt5Widgets/
|
%{libqt5_libdir}/cmake/Qt5Widgets/
|
||||||
%{libqt5_libdir}/pkgconfig/Qt5Widgets.pc
|
%{libqt5_libdir}/pkgconfig/Qt5Widgets.pc
|
||||||
%{libqt5_includedir}/QtWidgets/
|
%{libqt5_includedir}/QtWidgets/
|
||||||
|
%{libqt5_libdir}/metatypes/qt5widgets_metatypes.json
|
||||||
%exclude %{libqt5_includedir}/QtWidgets/%{so_version}
|
%exclude %{libqt5_includedir}/QtWidgets/%{so_version}
|
||||||
|
|
||||||
%files -n libQt5Gui5
|
%files -n libQt5Gui5
|
||||||
@ -1238,6 +1242,7 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png
|
|||||||
%{libqt5_includedir}/QtGui/
|
%{libqt5_includedir}/QtGui/
|
||||||
%{libqt5_includedir}/QtEglFSDeviceIntegration/
|
%{libqt5_includedir}/QtEglFSDeviceIntegration/
|
||||||
%{libqt5_includedir}/QtXkbCommonSupport
|
%{libqt5_includedir}/QtXkbCommonSupport
|
||||||
|
%{libqt5_libdir}/metatypes/qt5gui_metatypes.json
|
||||||
%exclude %{libqt5_includedir}/QtGui/%{so_version}
|
%exclude %{libqt5_includedir}/QtGui/%{so_version}
|
||||||
%exclude %{libqt5_includedir}/QtEglFSDeviceIntegration/%{so_version}
|
%exclude %{libqt5_includedir}/QtEglFSDeviceIntegration/%{so_version}
|
||||||
%exclude %{libqt5_includedir}/QtXkbCommonSupport/%{so_version}
|
%exclude %{libqt5_includedir}/QtXkbCommonSupport/%{so_version}
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:d9d423a6e7bcf1055c0372fc029f14a6fe67dd62c67b83095cde68b60b762cf7
|
|
||||||
size 49828188
|
|
3
qtbase-everywhere-src-5.15.0.tar.xz
Normal file
3
qtbase-everywhere-src-5.15.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5
|
||||||
|
size 49931940
|
Loading…
x
Reference in New Issue
Block a user