Compare commits
94 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
3987205d21 | ||
|
7705dbf3cf | ||
|
534b1c114e | ||
|
b5172929c4 | ||
|
9c531f88df | ||
|
5bed6c1d0a | ||
|
f0cf445934 | ||
|
ec29ebd55b | ||
|
601d4914f2 | ||
|
3560d3f0d8 | ||
|
8fc6b116e1 | ||
|
aa32f1d080 | ||
|
d3e89a8f76 | ||
|
75302c71c7 | ||
|
4b0828cd94 | ||
|
c61c9f6216 | ||
|
71355ca33b | ||
|
554db6c1c1 | ||
|
702f992cc1 | ||
|
fa3134d79d | ||
|
5ada0f5c5e | ||
|
db9e3bff37 | ||
|
63b94aba06 | ||
|
48c1244f2d | ||
|
998ca98cd0 | ||
|
aebce69e3b | ||
|
05667a24ea | ||
|
f38863308a | ||
|
52c0a663bf | ||
|
add1eec4a0 | ||
|
a1bb908bf9 | ||
|
fac656cd23 | ||
|
97633f061d | ||
|
9350a6e028 | ||
|
4e833c3e9e | ||
|
c16ab304d1 | ||
|
3179a5826a | ||
|
1de4b4f461 | ||
|
4eda5e21a8 | ||
|
4f731d2de6 | ||
|
ee657b0add | ||
|
afb19f28ed | ||
|
f0413b830f | ||
|
4f9afaa9e5 | ||
|
ad44e63850 | ||
|
c4c2accd04 | ||
|
1930ef87d4 | ||
|
5d0996d3b9 | ||
|
70d501d41e | ||
|
400d49b392 | ||
|
520d67d37b | ||
|
295ec41796 | ||
|
9622a00279 | ||
|
9944517631 | ||
|
30e0bf8d62 | ||
|
d4cbcb0563 | ||
|
c04abe00a3 | ||
|
6ae41be826 | ||
|
5068fa5739 | ||
|
ad76910087 | ||
|
799f1df9e3 | ||
|
232aaf9801 | ||
|
4c363d0363 | ||
|
ca6fb1879d | ||
|
c699625b6c | ||
|
8005265f87 | ||
|
90cf7f7329 | ||
|
13faecf546 | ||
|
350a9f57c0 | ||
|
dbbb20763b | ||
|
c3b686ca07 | ||
|
ab8ab2c460 | ||
|
417bbd6746 | ||
|
d4ab2137a5 | ||
|
88950cc031 | ||
|
3df69d9b9f | ||
|
8525318401 | ||
|
6f0b990f87 | ||
|
ca011ab502 | ||
|
9d109333a3 | ||
|
7cbf037b48 | ||
|
dccfb0dbe7 | ||
|
e3ed774441 | ||
|
38cf7adadb | ||
|
560ee417b6 | ||
|
cad89b6c8a | ||
|
6dbb795e9f | ||
|
904f17ae5f | ||
|
51993712f1 | ||
|
23d3d0c170 | ||
|
d3af2911d1 | ||
|
bf02227cc1 | ||
|
47664d654e | ||
|
11a00ce244 |
24
.gitignore
vendored
24
.gitignore
vendored
@ -1,6 +1,18 @@
|
|||||||
/qtbase-everywhere-src-5.12.1.tar.xz
|
/qtbase-everywhere-src-5.15.2.tar.xz
|
||||||
/qtbase-everywhere-src-5.12.3.tar.xz
|
/kde-5.15-rollup-20211124.patch.gz
|
||||||
/qtbase-everywhere-src-5.12.4.tar.xz
|
/kde-5.15-rollup-20211206.patch.gz
|
||||||
/qtbase-everywhere-src-5.12.5.tar.xz
|
/kde-5.15-rollup-20220107.patch.gz
|
||||||
/qtbase-everywhere-src-5.13.2.tar.xz
|
/kde-5.15-rollup-20220131.patch.gz
|
||||||
/qtbase-everywhere-src-5.14.2.tar.xz
|
/qtbase-everywhere-opensource-src-5.15.3.tar.xz
|
||||||
|
/kde-5.15-rollup-20220304.patch.gz
|
||||||
|
/qtbase-everywhere-opensource-src-5.15.4.tar.xz
|
||||||
|
/kde-5.15-rollup-20220516.patch.gz
|
||||||
|
/qtbase-everywhere-opensource-src-5.15.5.tar.xz
|
||||||
|
/kde-5.15-rollup-20220713.patch.gz
|
||||||
|
/kde-5.15-rollup-20220824.patch.gz
|
||||||
|
/qtbase-everywhere-opensource-src-5.15.6.tar.xz
|
||||||
|
/kde-5.15-rollup-20220920.patch.gz
|
||||||
|
/qtbase-everywhere-opensource-src-5.15.7.tar.xz
|
||||||
|
/kde-5.15-rollup-20221031.patch.gz
|
||||||
|
/qtbase-everywhere-opensource-src-5.15.8.tar.xz
|
||||||
|
/kde-5.15-rollup-20230105.patch.gz
|
||||||
|
@ -1,109 +0,0 @@
|
|||||||
From 276fa8383a7535765be7182883ef4aade17ce013 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thiago Macieira <thiago.macieira@intel.com>
|
|
||||||
Date: Thu, 2 Apr 2020 12:08:41 -0300
|
|
||||||
Subject: [PATCH 44/49] QLibrary: fix deadlock caused by fix to QTBUG-39642
|
|
||||||
|
|
||||||
Commit ae6f73e8566fa76470937aca737141183929a5ec inserted a mutex around
|
|
||||||
the entire load_sys(). We had reasoed that deadlocks would only occur if
|
|
||||||
the object creation in instance() recursed into its own instance(),
|
|
||||||
which was already a bug. But we had forgotten that dlopen()/
|
|
||||||
LoadLibrary() executes initialization code from the module being loaded,
|
|
||||||
which could cause a recursion back into the same QPluginLoader or
|
|
||||||
QLibrary object. This recursion is benign because the module *is* loaded
|
|
||||||
and dlopen()/LoadLibrary() returns the same handle.
|
|
||||||
|
|
||||||
[ChangeLog][QtCore][QLibrary and QPluginLoader] Fixed a deadlock that
|
|
||||||
would happen if the plugin or library being loaded has load-time
|
|
||||||
initialization code (C++ global variables) that recursed back into the
|
|
||||||
same QLibrary or QPluginLoader object.
|
|
||||||
|
|
||||||
PS: QLibraryPrivate::loadPlugin() updates pluginState outside a mutex
|
|
||||||
lock, so pluginState should be made an atomic variable. Once that is
|
|
||||||
done, we'll only need locking the mutex to update errorString (no
|
|
||||||
locking before loading).
|
|
||||||
|
|
||||||
Fixes: QTBUG-83207
|
|
||||||
Task-number: QTBUG-39642
|
|
||||||
Change-Id: Ibdc95e9af7bd456a94ecfffd160209304e5ab2eb
|
|
||||||
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
||||||
Reviewed-by: David Faure <david.faure@kdab.com>
|
|
||||||
---
|
|
||||||
src/corelib/plugin/qlibrary.cpp | 2 --
|
|
||||||
src/corelib/plugin/qlibrary_unix.cpp | 4 ++++
|
|
||||||
src/corelib/plugin/qlibrary_win.cpp | 3 +++
|
|
||||||
3 files changed, 7 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp
|
|
||||||
index ddb053c26f..be9d92b204 100644
|
|
||||||
--- a/src/corelib/plugin/qlibrary.cpp
|
|
||||||
+++ b/src/corelib/plugin/qlibrary.cpp
|
|
||||||
@@ -576,9 +576,7 @@ bool QLibraryPrivate::load()
|
|
||||||
|
|
||||||
Q_TRACE(QLibraryPrivate_load_entry, fileName);
|
|
||||||
|
|
||||||
- mutex.lock();
|
|
||||||
bool ret = load_sys();
|
|
||||||
- mutex.unlock();
|
|
||||||
if (qt_debug_component()) {
|
|
||||||
if (ret) {
|
|
||||||
qDebug() << "loaded library" << fileName;
|
|
||||||
diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp
|
|
||||||
index 017aa97b66..a5c72f81d9 100644
|
|
||||||
--- a/src/corelib/plugin/qlibrary_unix.cpp
|
|
||||||
+++ b/src/corelib/plugin/qlibrary_unix.cpp
|
|
||||||
@@ -123,6 +123,7 @@ QStringList QLibraryPrivate::prefixes_sys()
|
|
||||||
|
|
||||||
bool QLibraryPrivate::load_sys()
|
|
||||||
{
|
|
||||||
+ QMutexLocker locker(&mutex);
|
|
||||||
QString attempt;
|
|
||||||
QFileSystemEntry fsEntry(fileName);
|
|
||||||
|
|
||||||
@@ -213,6 +214,7 @@ bool QLibraryPrivate::load_sys()
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ locker.unlock();
|
|
||||||
bool retry = true;
|
|
||||||
Handle hnd = nullptr;
|
|
||||||
for (int prefix = 0; retry && !hnd && prefix < prefixes.size(); prefix++) {
|
|
||||||
@@ -273,6 +275,8 @@ bool QLibraryPrivate::load_sys()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
+
|
|
||||||
+ locker.relock();
|
|
||||||
if (!hnd) {
|
|
||||||
errorString = QLibrary::tr("Cannot load library %1: %2").arg(fileName, qdlerror());
|
|
||||||
}
|
|
||||||
diff --git a/src/corelib/plugin/qlibrary_win.cpp b/src/corelib/plugin/qlibrary_win.cpp
|
|
||||||
index 000bf76276..ef58724be8 100644
|
|
||||||
--- a/src/corelib/plugin/qlibrary_win.cpp
|
|
||||||
+++ b/src/corelib/plugin/qlibrary_win.cpp
|
|
||||||
@@ -78,6 +78,7 @@ bool QLibraryPrivate::load_sys()
|
|
||||||
// fileName
|
|
||||||
//
|
|
||||||
// NB If it's a plugin we do not ever try the ".dll" extension
|
|
||||||
+ QMutexLocker locker(&mutex);
|
|
||||||
QStringList attempts;
|
|
||||||
|
|
||||||
if (pluginState != IsAPlugin)
|
|
||||||
@@ -95,6 +96,7 @@ bool QLibraryPrivate::load_sys()
|
|
||||||
attempts.prepend(QDir::rootPath() + fileName);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ locker.unlock();
|
|
||||||
Handle hnd = nullptr;
|
|
||||||
for (const QString &attempt : qAsConst(attempts)) {
|
|
||||||
#ifndef Q_OS_WINRT
|
|
||||||
@@ -115,6 +117,7 @@ bool QLibraryPrivate::load_sys()
|
|
||||||
#ifndef Q_OS_WINRT
|
|
||||||
SetErrorMode(oldmode);
|
|
||||||
#endif
|
|
||||||
+ locker.relock();
|
|
||||||
if (!hnd) {
|
|
||||||
errorString = QLibrary::tr("Cannot load library %1: %2").arg(
|
|
||||||
QDir::toNativeSeparators(fileName), qt_error_string());
|
|
||||||
--
|
|
||||||
2.25.2
|
|
||||||
|
|
332
CVE-2023-24607-qtbase-5.15.patch
Normal file
332
CVE-2023-24607-qtbase-5.15.patch
Normal file
@ -0,0 +1,332 @@
|
|||||||
|
--- a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
|
||||||
|
+++ b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
|
||||||
|
@@ -92,23 +92,39 @@ inline static QString fromSQLTCHAR(const QVarLengthArray<SQLTCHAR>& input, int s
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
+template <size_t SizeOfChar = sizeof(SQLTCHAR)>
|
||||||
|
+void toSQLTCHARImpl(QVarLengthArray<SQLTCHAR> &result, const QString &input); // primary template undefined
|
||||||
|
+
|
||||||
|
+template <typename Container>
|
||||||
|
+void do_append(QVarLengthArray<SQLTCHAR> &result, const Container &c)
|
||||||
|
+{
|
||||||
|
+ result.append(reinterpret_cast<const SQLTCHAR *>(c.data()), c.size());
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+template <>
|
||||||
|
+void toSQLTCHARImpl<1>(QVarLengthArray<SQLTCHAR> &result, const QString &input)
|
||||||
|
+{
|
||||||
|
+ const auto u8 = input.toUtf8();
|
||||||
|
+ do_append(result, u8);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+template <>
|
||||||
|
+void toSQLTCHARImpl<2>(QVarLengthArray<SQLTCHAR> &result, const QString &input)
|
||||||
|
+{
|
||||||
|
+ do_append(result, input);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+template <>
|
||||||
|
+void toSQLTCHARImpl<4>(QVarLengthArray<SQLTCHAR> &result, const QString &input)
|
||||||
|
+{
|
||||||
|
+ const auto u32 = input.toUcs4();
|
||||||
|
+ do_append(result, u32);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
inline static QVarLengthArray<SQLTCHAR> toSQLTCHAR(const QString &input)
|
||||||
|
{
|
||||||
|
QVarLengthArray<SQLTCHAR> result;
|
||||||
|
- result.resize(input.size());
|
||||||
|
- switch(sizeof(SQLTCHAR)) {
|
||||||
|
- case 1:
|
||||||
|
- memcpy(result.data(), input.toUtf8().data(), input.size());
|
||||||
|
- break;
|
||||||
|
- case 2:
|
||||||
|
- memcpy(result.data(), input.unicode(), input.size() * 2);
|
||||||
|
- break;
|
||||||
|
- case 4:
|
||||||
|
- memcpy(result.data(), input.toUcs4().data(), input.size() * 4);
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
- qCritical("sizeof(SQLTCHAR) is %d. Don't know how to handle this.", int(sizeof(SQLTCHAR)));
|
||||||
|
- }
|
||||||
|
+ toSQLTCHARImpl(result, input);
|
||||||
|
result.append(0); // make sure it's null terminated, doesn't matter if it already is, it does if it isn't.
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
--- a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
|
||||||
|
+++ b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
|
||||||
|
@@ -1732,10 +1732,11 @@ bool QODBCResult::exec()
|
||||||
|
case QVariant::String:
|
||||||
|
if (d->unicode) {
|
||||||
|
if (bindValueType(i) & QSql::Out) {
|
||||||
|
- const QByteArray &first = tmpStorage.at(i);
|
||||||
|
- QVarLengthArray<SQLTCHAR> array;
|
||||||
|
- array.append((const SQLTCHAR *)first.constData(), first.size());
|
||||||
|
- values[i] = fromSQLTCHAR(array, first.size()/sizeof(SQLTCHAR));
|
||||||
|
+ const QByteArray &bytes = tmpStorage.at(i);
|
||||||
|
+ const auto strSize = bytes.size() / int(sizeof(SQLTCHAR));
|
||||||
|
+ QVarLengthArray<SQLTCHAR> string(strSize);
|
||||||
|
+ memcpy(string.data(), bytes.data(), strSize * sizeof(SQLTCHAR));
|
||||||
|
+ values[i] = fromSQLTCHAR(string);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
--- a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
|
||||||
|
+++ b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
|
||||||
|
@@ -779,6 +779,14 @@ QChar QODBCDriverPrivate::quoteChar()
|
||||||
|
return quote;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static SQLRETURN qt_string_SQLSetConnectAttr(SQLHDBC handle, SQLINTEGER attr, const QString &val)
|
||||||
|
+{
|
||||||
|
+ auto encoded = toSQLTCHAR(val);
|
||||||
|
+ return SQLSetConnectAttr(handle, attr,
|
||||||
|
+ encoded.data(),
|
||||||
|
+ SQLINTEGER(encoded.size() * sizeof(SQLTCHAR))); // size in bytes
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
|
||||||
|
bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
|
||||||
|
{
|
||||||
|
@@ -814,10 +822,7 @@ bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
|
||||||
|
v = val.toUInt();
|
||||||
|
r = SQLSetConnectAttr(hDbc, SQL_ATTR_LOGIN_TIMEOUT, (SQLPOINTER) size_t(v), 0);
|
||||||
|
} else if (opt.toUpper() == QLatin1String("SQL_ATTR_CURRENT_CATALOG")) {
|
||||||
|
- val.utf16(); // 0 terminate
|
||||||
|
- r = SQLSetConnectAttr(hDbc, SQL_ATTR_CURRENT_CATALOG,
|
||||||
|
- toSQLTCHAR(val).data(),
|
||||||
|
- val.length()*sizeof(SQLTCHAR));
|
||||||
|
+ r = qt_string_SQLSetConnectAttr(hDbc, SQL_ATTR_CURRENT_CATALOG, val);
|
||||||
|
} else if (opt.toUpper() == QLatin1String("SQL_ATTR_METADATA_ID")) {
|
||||||
|
if (val.toUpper() == QLatin1String("SQL_TRUE")) {
|
||||||
|
v = SQL_TRUE;
|
||||||
|
@@ -832,10 +837,7 @@ bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
|
||||||
|
v = val.toUInt();
|
||||||
|
r = SQLSetConnectAttr(hDbc, SQL_ATTR_PACKET_SIZE, (SQLPOINTER) size_t(v), 0);
|
||||||
|
} else if (opt.toUpper() == QLatin1String("SQL_ATTR_TRACEFILE")) {
|
||||||
|
- val.utf16(); // 0 terminate
|
||||||
|
- r = SQLSetConnectAttr(hDbc, SQL_ATTR_TRACEFILE,
|
||||||
|
- toSQLTCHAR(val).data(),
|
||||||
|
- val.length()*sizeof(SQLTCHAR));
|
||||||
|
+ r = qt_string_SQLSetConnectAttr(hDbc, SQL_ATTR_TRACEFILE, val);
|
||||||
|
} else if (opt.toUpper() == QLatin1String("SQL_ATTR_TRACE")) {
|
||||||
|
if (val.toUpper() == QLatin1String("SQL_OPT_TRACE_OFF")) {
|
||||||
|
v = SQL_OPT_TRACE_OFF;
|
||||||
|
@@ -1038,9 +1040,12 @@ bool QODBCResult::reset (const QString& query)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
- r = SQLExecDirect(d->hStmt,
|
||||||
|
- toSQLTCHAR(query).data(),
|
||||||
|
- (SQLINTEGER) query.length());
|
||||||
|
+ {
|
||||||
|
+ auto encoded = toSQLTCHAR(query);
|
||||||
|
+ r = SQLExecDirect(d->hStmt,
|
||||||
|
+ encoded.data(),
|
||||||
|
+ SQLINTEGER(encoded.size()));
|
||||||
|
+ }
|
||||||
|
if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO && r!= SQL_NO_DATA) {
|
||||||
|
setLastError(qMakeError(QCoreApplication::translate("QODBCResult",
|
||||||
|
"Unable to execute statement"), QSqlError::StatementError, d));
|
||||||
|
@@ -1387,9 +1392,12 @@ bool QODBCResult::prepare(const QString& query)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
- r = SQLPrepare(d->hStmt,
|
||||||
|
- toSQLTCHAR(query).data(),
|
||||||
|
- (SQLINTEGER) query.length());
|
||||||
|
+ {
|
||||||
|
+ auto encoded = toSQLTCHAR(query);
|
||||||
|
+ r = SQLPrepare(d->hStmt,
|
||||||
|
+ encoded.data(),
|
||||||
|
+ SQLINTEGER(encoded.size()));
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (r != SQL_SUCCESS) {
|
||||||
|
setLastError(qMakeError(QCoreApplication::translate("QODBCResult",
|
||||||
|
@@ -1417,7 +1425,7 @@ bool QODBCResult::exec()
|
||||||
|
SQLCloseCursor(d->hStmt);
|
||||||
|
|
||||||
|
QVector<QVariant>& values = boundValues();
|
||||||
|
- QVector<QByteArray> tmpStorage(values.count(), QByteArray()); // holds temporary buffers
|
||||||
|
+ QVector<QByteArray> tmpStorage(values.count(), QByteArray()); // targets for SQLBindParameter()
|
||||||
|
QVarLengthArray<SQLLEN, 32> indicators(values.count());
|
||||||
|
memset(indicators.data(), 0, indicators.size() * sizeof(SQLLEN));
|
||||||
|
|
||||||
|
@@ -1596,35 +1604,36 @@ bool QODBCResult::exec()
|
||||||
|
case QVariant::String:
|
||||||
|
if (d->unicode) {
|
||||||
|
QByteArray &ba = tmpStorage[i];
|
||||||
|
- QString str = val.toString();
|
||||||
|
+ {
|
||||||
|
+ const auto encoded = toSQLTCHAR(val.toString());
|
||||||
|
+ ba = QByteArray(reinterpret_cast<const char *>(encoded.data()),
|
||||||
|
+ encoded.size() * sizeof(SQLTCHAR));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (*ind != SQL_NULL_DATA)
|
||||||
|
- *ind = str.length() * sizeof(SQLTCHAR);
|
||||||
|
- int strSize = str.length() * sizeof(SQLTCHAR);
|
||||||
|
+ *ind = ba.size();
|
||||||
|
|
||||||
|
if (bindValueType(i) & QSql::Out) {
|
||||||
|
- const QVarLengthArray<SQLTCHAR> a(toSQLTCHAR(str));
|
||||||
|
- ba = QByteArray((const char *)a.constData(), a.size() * sizeof(SQLTCHAR));
|
||||||
|
r = SQLBindParameter(d->hStmt,
|
||||||
|
i + 1,
|
||||||
|
qParamType[bindValueType(i) & QSql::InOut],
|
||||||
|
SQL_C_TCHAR,
|
||||||
|
- strSize > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
|
||||||
|
+ ba.size() > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
|
||||||
|
0, // god knows... don't change this!
|
||||||
|
0,
|
||||||
|
- ba.data(),
|
||||||
|
+ const_cast<char *>(ba.constData()), // don't detach
|
||||||
|
ba.size(),
|
||||||
|
ind);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
- ba = QByteArray ((const char *)toSQLTCHAR(str).constData(), str.size()*sizeof(SQLTCHAR));
|
||||||
|
r = SQLBindParameter(d->hStmt,
|
||||||
|
i + 1,
|
||||||
|
qParamType[bindValueType(i) & QSql::InOut],
|
||||||
|
SQL_C_TCHAR,
|
||||||
|
- strSize > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
|
||||||
|
- strSize,
|
||||||
|
+ ba.size() > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
|
||||||
|
+ ba.size(),
|
||||||
|
0,
|
||||||
|
- const_cast<char *>(ba.constData()),
|
||||||
|
+ const_cast<char *>(ba.constData()), // don't detach
|
||||||
|
ba.size(),
|
||||||
|
ind);
|
||||||
|
break;
|
||||||
|
@@ -1982,14 +1991,16 @@ bool QODBCDriver::open(const QString & db,
|
||||||
|
SQLSMALLINT cb;
|
||||||
|
QVarLengthArray<SQLTCHAR> connOut(1024);
|
||||||
|
memset(connOut.data(), 0, connOut.size() * sizeof(SQLTCHAR));
|
||||||
|
- r = SQLDriverConnect(d->hDbc,
|
||||||
|
- NULL,
|
||||||
|
- toSQLTCHAR(connQStr).data(),
|
||||||
|
- (SQLSMALLINT)connQStr.length(),
|
||||||
|
- connOut.data(),
|
||||||
|
- 1024,
|
||||||
|
- &cb,
|
||||||
|
- /*SQL_DRIVER_NOPROMPT*/0);
|
||||||
|
+ {
|
||||||
|
+ auto encoded = toSQLTCHAR(connQStr);
|
||||||
|
+ r = SQLDriverConnect(d->hDbc,
|
||||||
|
+ nullptr,
|
||||||
|
+ encoded.data(), SQLSMALLINT(encoded.size()),
|
||||||
|
+ connOut.data(),
|
||||||
|
+ 1024,
|
||||||
|
+ &cb,
|
||||||
|
+ /*SQL_DRIVER_NOPROMPT*/0);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO) {
|
||||||
|
setLastError(qMakeError(tr("Unable to connect"), QSqlError::ConnectionError, d));
|
||||||
|
@@ -2368,17 +2379,15 @@ QStringList QODBCDriver::tables(QSql::TableType type) const
|
||||||
|
if (tableType.isEmpty())
|
||||||
|
return tl;
|
||||||
|
|
||||||
|
- QString joinedTableTypeString = tableType.join(QLatin1Char(','));
|
||||||
|
+ {
|
||||||
|
+ auto joinedTableTypeString = toSQLTCHAR(tableType.join(u','));
|
||||||
|
|
||||||
|
- r = SQLTables(hStmt,
|
||||||
|
- NULL,
|
||||||
|
- 0,
|
||||||
|
- NULL,
|
||||||
|
- 0,
|
||||||
|
- NULL,
|
||||||
|
- 0,
|
||||||
|
- toSQLTCHAR(joinedTableTypeString).data(),
|
||||||
|
- joinedTableTypeString.length() /* characters, not bytes */);
|
||||||
|
+ r = SQLTables(hStmt,
|
||||||
|
+ nullptr, 0,
|
||||||
|
+ nullptr, 0,
|
||||||
|
+ nullptr, 0,
|
||||||
|
+ joinedTableTypeString.data(), joinedTableTypeString.size());
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (r != SQL_SUCCESS)
|
||||||
|
qSqlWarning(QLatin1String("QODBCDriver::tables Unable to execute table list"), d);
|
||||||
|
@@ -2452,28 +2461,30 @@ QSqlIndex QODBCDriver::primaryIndex(const QString& tablename) const
|
||||||
|
SQL_ATTR_CURSOR_TYPE,
|
||||||
|
(SQLPOINTER)SQL_CURSOR_FORWARD_ONLY,
|
||||||
|
SQL_IS_UINTEGER);
|
||||||
|
- r = SQLPrimaryKeys(hStmt,
|
||||||
|
- catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
|
||||||
|
- catalog.length(),
|
||||||
|
- schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
|
||||||
|
- schema.length(),
|
||||||
|
- toSQLTCHAR(table).data(),
|
||||||
|
- table.length() /* in characters, not in bytes */);
|
||||||
|
+ {
|
||||||
|
+ auto c = toSQLTCHAR(catalog);
|
||||||
|
+ auto s = toSQLTCHAR(schema);
|
||||||
|
+ auto t = toSQLTCHAR(table);
|
||||||
|
+ r = SQLPrimaryKeys(hStmt,
|
||||||
|
+ catalog.isEmpty() ? nullptr : c.data(), c.size(),
|
||||||
|
+ schema.isEmpty() ? nullptr : s.data(), s.size(),
|
||||||
|
+ t.data(), t.size());
|
||||||
|
+ }
|
||||||
|
|
||||||
|
// if the SQLPrimaryKeys() call does not succeed (e.g the driver
|
||||||
|
// does not support it) - try an alternative method to get hold of
|
||||||
|
// the primary index (e.g MS Access and FoxPro)
|
||||||
|
if (r != SQL_SUCCESS) {
|
||||||
|
- r = SQLSpecialColumns(hStmt,
|
||||||
|
- SQL_BEST_ROWID,
|
||||||
|
- catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
|
||||||
|
- catalog.length(),
|
||||||
|
- schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
|
||||||
|
- schema.length(),
|
||||||
|
- toSQLTCHAR(table).data(),
|
||||||
|
- table.length(),
|
||||||
|
- SQL_SCOPE_CURROW,
|
||||||
|
- SQL_NULLABLE);
|
||||||
|
+ auto c = toSQLTCHAR(catalog);
|
||||||
|
+ auto s = toSQLTCHAR(schema);
|
||||||
|
+ auto t = toSQLTCHAR(table);
|
||||||
|
+ r = SQLSpecialColumns(hStmt,
|
||||||
|
+ SQL_BEST_ROWID,
|
||||||
|
+ catalog.isEmpty() ? nullptr : c.data(), c.size(),
|
||||||
|
+ schema.isEmpty() ? nullptr : s.data(), s.size(),
|
||||||
|
+ t.data(), t.size(),
|
||||||
|
+ SQL_SCOPE_CURROW,
|
||||||
|
+ SQL_NULLABLE);
|
||||||
|
|
||||||
|
if (r != SQL_SUCCESS) {
|
||||||
|
qSqlWarning(QLatin1String("QODBCDriver::primaryIndex: Unable to execute primary key list"), d);
|
||||||
|
@@ -2554,15 +2565,17 @@ QSqlRecord QODBCDriver::record(const QString& tablename) const
|
||||||
|
SQL_ATTR_CURSOR_TYPE,
|
||||||
|
(SQLPOINTER)SQL_CURSOR_FORWARD_ONLY,
|
||||||
|
SQL_IS_UINTEGER);
|
||||||
|
- r = SQLColumns(hStmt,
|
||||||
|
- catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
|
||||||
|
- catalog.length(),
|
||||||
|
- schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
|
||||||
|
- schema.length(),
|
||||||
|
- toSQLTCHAR(table).data(),
|
||||||
|
- table.length(),
|
||||||
|
- NULL,
|
||||||
|
- 0);
|
||||||
|
+ {
|
||||||
|
+ auto c = toSQLTCHAR(catalog);
|
||||||
|
+ auto s = toSQLTCHAR(schema);
|
||||||
|
+ auto t = toSQLTCHAR(table);
|
||||||
|
+ r = SQLColumns(hStmt,
|
||||||
|
+ catalog.isEmpty() ? nullptr : c.data(), c.size(),
|
||||||
|
+ schema.isEmpty() ? nullptr : s.data(), s.size(),
|
||||||
|
+ t.data(), t.size(),
|
||||||
|
+ nullptr,
|
||||||
|
+ 0);
|
||||||
|
+ }
|
||||||
|
if (r != SQL_SUCCESS)
|
||||||
|
qSqlWarning(QLatin1String("QODBCDriver::record: Unable to execute column list"), d);
|
||||||
|
|
17
qt5-qtbase-5.12.1-firebird-4.0.0.patch
Normal file
17
qt5-qtbase-5.12.1-firebird-4.0.0.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
diff -up qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json.firebird qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json
|
||||||
|
--- qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json.firebird 2019-01-28 11:11:52.000000000 -0600
|
||||||
|
+++ qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json 2019-02-03 13:41:27.392305128 -0600
|
||||||
|
@@ -49,10 +49,11 @@
|
||||||
|
"ibase": {
|
||||||
|
"label": "InterBase",
|
||||||
|
"test": {},
|
||||||
|
- "headers": "ibase.h",
|
||||||
|
+ "headers": "ibase.h",
|
||||||
|
"sources": [
|
||||||
|
{ "libs": "-lgds32_ms", "condition": "config.win32" },
|
||||||
|
- { "libs": "-lgds", "condition": "!config.win32" }
|
||||||
|
+ { "libs": "-lgds", "condition": "!config.win32" },
|
||||||
|
+ { "libs": "-lfbclient", "condition": "!config.win32" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"mysql": {
|
@ -1,146 +0,0 @@
|
|||||||
From f432c08882ffebe5074ea28de871559a98a4d094 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lars Knoll <lars.knoll@qt.io>
|
|
||||||
Date: Wed, 26 Feb 2020 10:42:10 +0100
|
|
||||||
Subject: Add an expansion limit for entities
|
|
||||||
|
|
||||||
Recursively defined entities can easily exhaust all available
|
|
||||||
memory. Limit entity expansion to a default of 4096 characters to
|
|
||||||
avoid DoS attacks when a user loads untrusted content.
|
|
||||||
|
|
||||||
[ChangeLog][QtCore][QXmlStream] QXmlStreamReader does now
|
|
||||||
limit the expansion of entities to 4096 characters. Documents where
|
|
||||||
a single entity expands to more characters than the limit are not
|
|
||||||
considered well formed. The limit is there to avoid DoS attacks through
|
|
||||||
recursively expanding entities when loading untrusted content. Qt 5.15
|
|
||||||
will add methods that allow changing that limit.
|
|
||||||
|
|
||||||
Fixes: QTBUG-47417
|
|
||||||
Change-Id: I94387815d74fcf34783e136387ee57fac5ded0c9
|
|
||||||
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
|
|
||||||
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
||||||
(cherry picked from commit fd4be84d23a0db4186cb42e736a9de3af722c7f7)
|
|
||||||
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
||||||
---
|
|
||||||
src/corelib/serialization/qxmlstream.g | 14 ++++++++++++-
|
|
||||||
src/corelib/serialization/qxmlstream_p.h | 14 ++++++++++++-
|
|
||||||
.../serialization/qxmlstream/tst_qxmlstream.cpp | 23 ++++++++++++++++++++--
|
|
||||||
3 files changed, 47 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/corelib/serialization/qxmlstream.g b/src/corelib/serialization/qxmlstream.g
|
|
||||||
index 10bfcd491c..5726bafb26 100644
|
|
||||||
--- a/src/corelib/serialization/qxmlstream.g
|
|
||||||
+++ b/src/corelib/serialization/qxmlstream.g
|
|
||||||
@@ -277,9 +277,19 @@ public:
|
|
||||||
QHash<QStringView, Entity> entityHash;
|
|
||||||
QHash<QStringView, Entity> parameterEntityHash;
|
|
||||||
QXmlStreamSimpleStack<Entity *>entityReferenceStack;
|
|
||||||
+ int entityExpansionLimit = 4096;
|
|
||||||
+ int entityLength = 0;
|
|
||||||
inline bool referenceEntity(Entity &entity) {
|
|
||||||
if (entity.isCurrentlyReferenced) {
|
|
||||||
- raiseWellFormedError(QXmlStream::tr("Recursive entity detected."));
|
|
||||||
+ raiseWellFormedError(QXmlStream::tr("Self-referencing entity detected."));
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+ // entityLength represents the amount of additional characters the
|
|
||||||
+ // entity expands into (can be negative for e.g. &). It's used to
|
|
||||||
+ // avoid DoS attacks through recursive entity expansions
|
|
||||||
+ entityLength += entity.value.size() - entity.name.size() - 2;
|
|
||||||
+ if (entityLength > entityExpansionLimit) {
|
|
||||||
+ raiseWellFormedError(QXmlStream::tr("Entity expands to more characters than the entity expansion limit."));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
entity.isCurrentlyReferenced = true;
|
|
||||||
@@ -830,6 +840,8 @@ entity_done ::= ENTITY_DONE;
|
|
||||||
/.
|
|
||||||
case $rule_number:
|
|
||||||
entityReferenceStack.pop()->isCurrentlyReferenced = false;
|
|
||||||
+ if (entityReferenceStack.isEmpty())
|
|
||||||
+ entityLength = 0;
|
|
||||||
clearSym();
|
|
||||||
break;
|
|
||||||
./
|
|
||||||
diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h
|
|
||||||
index 61f501f81b..31053f8e0b 100644
|
|
||||||
--- a/src/corelib/serialization/qxmlstream_p.h
|
|
||||||
+++ b/src/corelib/serialization/qxmlstream_p.h
|
|
||||||
@@ -774,9 +774,19 @@ public:
|
|
||||||
QHash<QStringView, Entity> entityHash;
|
|
||||||
QHash<QStringView, Entity> parameterEntityHash;
|
|
||||||
QXmlStreamSimpleStack<Entity *>entityReferenceStack;
|
|
||||||
+ int entityExpansionLimit = 4096;
|
|
||||||
+ int entityLength = 0;
|
|
||||||
inline bool referenceEntity(Entity &entity) {
|
|
||||||
if (entity.isCurrentlyReferenced) {
|
|
||||||
- raiseWellFormedError(QXmlStream::tr("Recursive entity detected."));
|
|
||||||
+ raiseWellFormedError(QXmlStream::tr("Self-referencing entity detected."));
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+ // entityLength represents the amount of additional characters the
|
|
||||||
+ // entity expands into (can be negative for e.g. &). It's used to
|
|
||||||
+ // avoid DoS attacks through recursive entity expansions
|
|
||||||
+ entityLength += entity.value.size() - entity.name.size() - 2;
|
|
||||||
+ if (entityLength > entityExpansionLimit) {
|
|
||||||
+ raiseWellFormedError(QXmlStream::tr("Entity expands to more characters than the entity expansion limit."));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
entity.isCurrentlyReferenced = true;
|
|
||||||
@@ -1308,6 +1318,8 @@ bool QXmlStreamReaderPrivate::parse()
|
|
||||||
|
|
||||||
case 10:
|
|
||||||
entityReferenceStack.pop()->isCurrentlyReferenced = false;
|
|
||||||
+ if (entityReferenceStack.isEmpty())
|
|
||||||
+ entityLength = 0;
|
|
||||||
clearSym();
|
|
||||||
break;
|
|
||||||
|
|
||||||
diff --git a/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp b/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
|
|
||||||
index 8fdf91b090..1f9a0d575d 100644
|
|
||||||
--- a/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
|
|
||||||
+++ b/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
|
|
||||||
@@ -393,8 +393,6 @@ public:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
- QXmlStreamReader reader(&inputFile);
|
|
||||||
-
|
|
||||||
/* See testcases.dtd which reads: 'Nonvalidating parsers
|
|
||||||
* must also accept "invalid" testcases, but validating ones must reject them.' */
|
|
||||||
if(type == QLatin1String("invalid") || type == QLatin1String("valid"))
|
|
||||||
@@ -580,6 +578,8 @@ private slots:
|
|
||||||
void roundTrip() const;
|
|
||||||
void roundTrip_data() const;
|
|
||||||
|
|
||||||
+ void entityExpansionLimit() const;
|
|
||||||
+
|
|
||||||
private:
|
|
||||||
static QByteArray readFile(const QString &filename);
|
|
||||||
|
|
||||||
@@ -1756,6 +1756,25 @@ void tst_QXmlStream::roundTrip_data() const
|
|
||||||
"</root>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
+void tst_QXmlStream::entityExpansionLimit() const
|
|
||||||
+{
|
|
||||||
+ QString xml = QStringLiteral("<?xml version=\"1.0\"?>"
|
|
||||||
+ "<!DOCTYPE foo ["
|
|
||||||
+ "<!ENTITY a \"0123456789\" >"
|
|
||||||
+ "<!ENTITY b \"&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;\" >"
|
|
||||||
+ "<!ENTITY c \"&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;\" >"
|
|
||||||
+ "<!ENTITY d \"&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;\" >"
|
|
||||||
+ "]>"
|
|
||||||
+ "<foo>&d;&d;&d;</foo>");
|
|
||||||
+ {
|
|
||||||
+ QXmlStreamReader reader(xml);
|
|
||||||
+ do {
|
|
||||||
+ reader.readNext();
|
|
||||||
+ } while (!reader.atEnd());
|
|
||||||
+ QCOMPARE(reader.error(), QXmlStreamReader::NotWellFormedError);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void tst_QXmlStream::roundTrip() const
|
|
||||||
{
|
|
||||||
QFETCH(QString, in);
|
|
||||||
--
|
|
||||||
cgit v0.2.1
|
|
43
qt5-qtbase-fix-invalid-number-of-concurrent-stream.patch
Normal file
43
qt5-qtbase-fix-invalid-number-of-concurrent-stream.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
diff --git a/src/network/access/http2/http2protocol_p.h b/src/network/access/http2/http2protocol_p.h
|
||||||
|
index b0af5aa91921bf5229e2d54284687bafb1969eb1..ed5f2bf561f2bd62c6ef7fd1fde29e867d374603 100644
|
||||||
|
--- a/src/network/access/http2/http2protocol_p.h
|
||||||
|
+++ b/src/network/access/http2/http2protocol_p.h
|
||||||
|
@@ -133,9 +133,6 @@ enum Http2PredefinedParameters
|
||||||
|
maxPayloadSize = (1 << 24) - 1, // HTTP/2 6.5.2
|
||||||
|
|
||||||
|
defaultSessionWindowSize = 65535, // HTTP/2 6.5.2
|
||||||
|
- // Using 1000 (rather arbitrarily), just to
|
||||||
|
- // impose *some* upper limit:
|
||||||
|
- maxPeerConcurrentStreams = 1000,
|
||||||
|
maxConcurrentStreams = 100 // HTTP/2, 6.5.2
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp
|
||||||
|
index f513139304bba375ea3c345c74f2c889b5a13938..21f1c91e29513acff83c45b6717cd5aa25609d62 100644
|
||||||
|
--- a/src/network/access/qhttp2protocolhandler.cpp
|
||||||
|
+++ b/src/network/access/qhttp2protocolhandler.cpp
|
||||||
|
@@ -393,7 +393,8 @@ bool QHttp2ProtocolHandler::sendRequest()
|
||||||
|
initReplyFromPushPromise(message, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
- const auto streamsToUse = std::min<quint32>(maxConcurrentStreams - activeStreams.size(),
|
||||||
|
+ const auto streamsToUse = std::min<quint32>(maxConcurrentStreams > activeStreams.size()
|
||||||
|
+ ? maxConcurrentStreams - activeStreams.size() : 0,
|
||||||
|
requests.size());
|
||||||
|
auto it = requests.begin();
|
||||||
|
for (quint32 i = 0; i < streamsToUse; ++i) {
|
||||||
|
@@ -1084,13 +1085,8 @@ bool QHttp2ProtocolHandler::acceptSetting(Http2::Settings identifier, quint32 ne
|
||||||
|
QMetaObject::invokeMethod(this, "resumeSuspendedStreams", Qt::QueuedConnection);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (identifier == Settings::MAX_CONCURRENT_STREAMS_ID) {
|
||||||
|
- if (newValue > maxPeerConcurrentStreams) {
|
||||||
|
- connectionError(PROTOCOL_ERROR, "SETTINGS invalid number of concurrent streams");
|
||||||
|
- return false;
|
||||||
|
- }
|
||||||
|
+ if (identifier == Settings::MAX_CONCURRENT_STREAMS_ID)
|
||||||
|
maxConcurrentStreams = newValue;
|
||||||
|
- }
|
||||||
|
|
||||||
|
if (identifier == Settings::MAX_FRAME_SIZE_ID) {
|
||||||
|
if (newValue < Http2::minPayloadLimit || newValue > Http2::maxPayloadSize) {
|
171
qt5-qtbase-gcc11.patch
Normal file
171
qt5-qtbase-gcc11.patch
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
|
||||||
|
index 06fd88da..dbff3239 100644
|
||||||
|
--- a/src/corelib/codecs/qtextcodec.cpp
|
||||||
|
+++ b/src/corelib/codecs/qtextcodec.cpp
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qplatformdefs.h"
|
||||||
|
|
||||||
|
#include "qtextcodec.h"
|
||||||
|
diff --git a/src/corelib/codecs/qutfcodec.cpp b/src/corelib/codecs/qutfcodec.cpp
|
||||||
|
index 8561f908..8128d3cf 100644
|
||||||
|
--- a/src/corelib/codecs/qutfcodec.cpp
|
||||||
|
+++ b/src/corelib/codecs/qutfcodec.cpp
|
||||||
|
@@ -38,6 +38,8 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
+
|
||||||
|
#include "qutfcodec_p.h"
|
||||||
|
#include "qlist.h"
|
||||||
|
#include "qendian.h"
|
||||||
|
diff --git a/src/corelib/global/qendian.cpp b/src/corelib/global/qendian.cpp
|
||||||
|
index eb08b2f8..6b41b3dd 100644
|
||||||
|
--- a/src/corelib/global/qendian.cpp
|
||||||
|
+++ b/src/corelib/global/qendian.cpp
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qendian.h"
|
||||||
|
|
||||||
|
#include "qalgorithms.h"
|
||||||
|
diff --git a/src/corelib/global/qfloat16.cpp b/src/corelib/global/qfloat16.cpp
|
||||||
|
index c9733174..c62a1972 100644
|
||||||
|
--- a/src/corelib/global/qfloat16.cpp
|
||||||
|
+++ b/src/corelib/global/qfloat16.cpp
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qfloat16.h"
|
||||||
|
#include "private/qsimd_p.h"
|
||||||
|
#include <cmath> // for fpclassify()'s return values
|
||||||
|
diff --git a/src/corelib/global/qrandom.cpp b/src/corelib/global/qrandom.cpp
|
||||||
|
index 10672c1f..6d5fd63e 100644
|
||||||
|
--- a/src/corelib/global/qrandom.cpp
|
||||||
|
+++ b/src/corelib/global/qrandom.cpp
|
||||||
|
@@ -40,6 +40,7 @@
|
||||||
|
// for rand_s
|
||||||
|
#define _CRT_RAND_S
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qrandom.h"
|
||||||
|
#include "qrandom_p.h"
|
||||||
|
#include <qobjectdefs.h>
|
||||||
|
diff --git a/src/corelib/plugin/qelfparser_p.cpp b/src/corelib/plugin/qelfparser_p.cpp
|
||||||
|
index 13eee353..9e7a7a41 100644
|
||||||
|
--- a/src/corelib/plugin/qelfparser_p.cpp
|
||||||
|
+++ b/src/corelib/plugin/qelfparser_p.cpp
|
||||||
|
@@ -37,6 +37,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qelfparser_p.h"
|
||||||
|
|
||||||
|
#if defined (Q_OF_ELF) && defined(Q_CC_GNU)
|
||||||
|
diff --git a/src/corelib/plugin/qmachparser.cpp b/src/corelib/plugin/qmachparser.cpp
|
||||||
|
index 11670caf..39f5596b 100644
|
||||||
|
--- a/src/corelib/plugin/qmachparser.cpp
|
||||||
|
+++ b/src/corelib/plugin/qmachparser.cpp
|
||||||
|
@@ -37,6 +37,8 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
+
|
||||||
|
#include "qmachparser_p.h"
|
||||||
|
|
||||||
|
#if defined(Q_OF_MACH_O)
|
||||||
|
diff --git a/src/corelib/plugin/quuid.cpp b/src/corelib/plugin/quuid.cpp
|
||||||
|
index 83873edf..5aafb4e5 100644
|
||||||
|
--- a/src/corelib/plugin/quuid.cpp
|
||||||
|
+++ b/src/corelib/plugin/quuid.cpp
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "quuid.h"
|
||||||
|
|
||||||
|
#include "qcryptographichash.h"
|
||||||
|
diff --git a/src/corelib/serialization/qdatastream.cpp b/src/corelib/serialization/qdatastream.cpp
|
||||||
|
index 5082a8cb..7eecfcca 100644
|
||||||
|
--- a/src/corelib/serialization/qdatastream.cpp
|
||||||
|
+++ b/src/corelib/serialization/qdatastream.cpp
|
||||||
|
@@ -40,6 +40,8 @@
|
||||||
|
#include "qdatastream.h"
|
||||||
|
#include "qdatastream_p.h"
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
+
|
||||||
|
#if !defined(QT_NO_DATASTREAM) || defined(QT_BOOTSTRAPPED)
|
||||||
|
#include "qbuffer.h"
|
||||||
|
#include "qfloat16.h"
|
||||||
|
diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp
|
||||||
|
index 9a72df58..6651ee98 100644
|
||||||
|
--- a/src/corelib/text/qbytearray.cpp
|
||||||
|
+++ b/src/corelib/text/qbytearray.cpp
|
||||||
|
@@ -39,6 +39,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qbytearray.h"
|
||||||
|
#include "qbytearraymatcher.h"
|
||||||
|
#include "private/qtools_p.h"
|
||||||
|
diff --git a/src/corelib/text/qbytearraymatcher.cpp b/src/corelib/text/qbytearraymatcher.cpp
|
||||||
|
index 72e09226..80511cb5 100644
|
||||||
|
--- a/src/corelib/text/qbytearraymatcher.cpp
|
||||||
|
+++ b/src/corelib/text/qbytearraymatcher.cpp
|
||||||
|
@@ -37,6 +37,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qbytearraymatcher.h"
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
diff --git a/src/corelib/tools/qbitarray.cpp b/src/corelib/tools/qbitarray.cpp
|
||||||
|
index ab3054d5..22efb3a0 100644
|
||||||
|
--- a/src/corelib/tools/qbitarray.cpp
|
||||||
|
+++ b/src/corelib/tools/qbitarray.cpp
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qbitarray.h"
|
||||||
|
#include <qalgorithms.h>
|
||||||
|
#include <qdatastream.h>
|
||||||
|
diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp
|
||||||
|
index fa8d21e0..cd85956d 100644
|
||||||
|
--- a/src/corelib/tools/qcryptographichash.cpp
|
||||||
|
+++ b/src/corelib/tools/qcryptographichash.cpp
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include <qcryptographichash.h>
|
||||||
|
#include <qiodevice.h>
|
||||||
|
|
||||||
|
diff --git a/src/gui/text/qfontengine_qpf2.cpp b/src/gui/text/qfontengine_qpf2.cpp
|
||||||
|
index e00f9d05..917ab5f9 100644
|
||||||
|
--- a/src/gui/text/qfontengine_qpf2.cpp
|
||||||
|
+++ b/src/gui/text/qfontengine_qpf2.cpp
|
||||||
|
@@ -37,6 +37,7 @@
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
#include "qfontengine_qpf2_p.h"
|
||||||
|
|
||||||
|
#include <QtCore/QFile>
|
445
qt5-qtbase.spec
445
qt5-qtbase.spec
@ -2,24 +2,22 @@
|
|||||||
%global multilib_archs x86_64 %{ix86} %{?mips} ppc64 ppc s390x s390 sparc64 sparcv9
|
%global multilib_archs x86_64 %{ix86} %{?mips} ppc64 ppc s390x s390 sparc64 sparcv9
|
||||||
%global multilib_basearchs x86_64 %{?mips64} ppc64 s390x sparc64
|
%global multilib_basearchs x86_64 %{?mips64} ppc64 s390x sparc64
|
||||||
|
|
||||||
# support openssl-1.1
|
%if 0%{?fedora} < 29 && 0%{?rhel} < 9
|
||||||
%if 0%{?fedora} > 26
|
|
||||||
%global openssl11 1
|
|
||||||
%endif
|
|
||||||
%global openssl -openssl-linked
|
|
||||||
|
|
||||||
%if 0%{?fedora} < 29
|
|
||||||
%ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
%global no_sse2 -no-sse2
|
%global no_sse2 -no-sse2
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
# workaround https://bugzilla.redhat.com/show_bug.cgi?id=1668865
|
# workaround https://bugzilla.redhat.com/show_bug.cgi?id=1668865
|
||||||
# for current stable releases
|
# for current stable releases
|
||||||
%if 0%{?fedora} && 0%{?fedora} < 30
|
%if 0%{?fedora} < 30 || 0%{?rhel} > 6
|
||||||
%global no_feature_statx -no-feature-statx
|
%global no_feature_statx -no-feature-statx
|
||||||
%global no_feature_renameat2 -no-feature-renameat2
|
%global no_feature_renameat2 -no-feature-renameat2
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?rhel} && 0%{?rhel} > 6
|
||||||
|
%global no_feature_getentropy -no-feature-getentropy
|
||||||
|
%endif
|
||||||
|
|
||||||
# support qtchooser (adds qtchooser .conf file)
|
# support qtchooser (adds qtchooser .conf file)
|
||||||
%global qtchooser 1
|
%global qtchooser 1
|
||||||
@ -30,6 +28,9 @@
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# Disable automatic .la file removal
|
||||||
|
%global __brp_remove_la_files %nil
|
||||||
|
|
||||||
%global platform linux-g++
|
%global platform linux-g++
|
||||||
|
|
||||||
%if 0%{?use_clang}
|
%if 0%{?use_clang}
|
||||||
@ -41,10 +42,9 @@
|
|||||||
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
|
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
|
||||||
|
|
||||||
# use external qt_settings pkg
|
# use external qt_settings pkg
|
||||||
|
%if 0%{?fedora}
|
||||||
%global qt_settings 1
|
%global qt_settings 1
|
||||||
|
%endif
|
||||||
%global journald -journald
|
|
||||||
BuildRequires: pkgconfig(libsystemd)
|
|
||||||
|
|
||||||
%global examples 1
|
%global examples 1
|
||||||
## skip for now, until we're better at it --rex
|
## skip for now, until we're better at it --rex
|
||||||
@ -52,14 +52,14 @@ BuildRequires: pkgconfig(libsystemd)
|
|||||||
|
|
||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Version: 5.14.2
|
Version: 5.15.8
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||||
Url: http://qt-project.org/
|
Url: http://qt-project.org/
|
||||||
%global majmin %(echo %{version} | cut -d. -f1-2)
|
%global majmin %(echo %{version} | cut -d. -f1-2)
|
||||||
Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.tar.xz
|
Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submodules/%{qt_module}-everywhere-opensource-src-%{version}.tar.xz
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1227295
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1227295
|
||||||
Source1: qtlogging.ini
|
Source1: qtlogging.ini
|
||||||
@ -78,11 +78,8 @@ Source10: macros.qt5-qtbase
|
|||||||
# support multilib optflags
|
# support multilib optflags
|
||||||
Patch2: qtbase-multilib_optflags.patch
|
Patch2: qtbase-multilib_optflags.patch
|
||||||
|
|
||||||
# borrowed from opensuse
|
# make mixing versions with private apis a warning instead of fatal error
|
||||||
# track private api via properly versioned symbols
|
Patch3: qtbase-everywhere-src-5.15.6-private_api_warning.patch
|
||||||
# downside: binaries produced with these differently-versioned symbols are no longer
|
|
||||||
# compatible with qt-project.org's Qt binary releases.
|
|
||||||
Patch8: tell-the-truth-about-private-api.patch
|
|
||||||
|
|
||||||
# upstreamable patches
|
# upstreamable patches
|
||||||
# namespace QT_VERSION_CHECK to workaround major/minor being pre-defined (#1396755)
|
# namespace QT_VERSION_CHECK to workaround major/minor being pre-defined (#1396755)
|
||||||
@ -109,11 +106,17 @@ Patch54: qtbase-qmake_LFLAGS.patch
|
|||||||
# don't use relocatable heuristics to guess prefix when using -no-feature-relocatable
|
# don't use relocatable heuristics to guess prefix when using -no-feature-relocatable
|
||||||
Patch55: qtbase-everywhere-src-5.14.2-no_relocatable.patch
|
Patch55: qtbase-everywhere-src-5.14.2-no_relocatable.patch
|
||||||
|
|
||||||
|
# fix FTBFS against libglvnd-1.3.4+
|
||||||
|
Patch56: qtbase-everywhere-src-5.15.2-libglvnd.patch
|
||||||
|
|
||||||
# drop -O3 and make -O2 by default
|
# drop -O3 and make -O2 by default
|
||||||
Patch61: qt5-qtbase-cxxflag.patch
|
Patch61: qt5-qtbase-cxxflag.patch
|
||||||
|
|
||||||
# support firebird version 3.x
|
# support firebird version 3.x
|
||||||
Patch64: qt5-qtbase-5.12.1-firebird.patch
|
Patch63: qt5-qtbase-5.12.1-firebird.patch
|
||||||
|
|
||||||
|
# support firebird version 4.x
|
||||||
|
Patch64: qt5-qtbase-5.12.1-firebird-4.0.0.patch
|
||||||
|
|
||||||
# fix for new mariadb
|
# fix for new mariadb
|
||||||
Patch65: qtbase-opensource-src-5.9.0-mysql.patch
|
Patch65: qtbase-opensource-src-5.9.0-mysql.patch
|
||||||
@ -125,11 +128,20 @@ Patch68: qtbase-everywhere-src-5.11.1-python3.patch
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1732129
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1732129
|
||||||
Patch80: qtbase-use-wayland-on-gnome.patch
|
Patch80: qtbase-use-wayland-on-gnome.patch
|
||||||
|
|
||||||
# glibc stat
|
# gcc-11
|
||||||
|
Patch90: %{name}-gcc11.patch
|
||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
Patch100: qt5-qtbase-CVE-2015-9541.patch
|
# https://invent.kde.org/qt/qt/qtbase, kde/5.15 branch
|
||||||
Patch144: 0044-QLibrary-fix-deadlock-caused-by-fix-to-QTBUG-39642.patch
|
# git diff v5.15.8-lts-lgpl..HEAD | gzip > kde-5.15-rollup-$(date +%Y%m%d).patch.gz
|
||||||
|
# patch100 in lookaside cache due to large'ish size -- rdieter
|
||||||
|
Patch100: kde-5.15-rollup-20230105.patch.gz
|
||||||
|
# HACK to make 'fedpkg sources' consider it 'used"
|
||||||
|
Source100: kde-5.15-rollup-20230105.patch.gz
|
||||||
|
|
||||||
|
Patch101: qtbase-5.15.8-fix-missing-qtsan-include.patch
|
||||||
|
# CVE-2023-24607 in Qt SQL ODBC driver plugin
|
||||||
|
Patch102: CVE-2023-24607-qtbase-5.15.patch
|
||||||
|
|
||||||
# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires.
|
# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires.
|
||||||
# Those themes are there for platform integration. If the required libraries are
|
# Those themes are there for platform integration. If the required libraries are
|
||||||
@ -140,8 +152,15 @@ Patch144: 0044-QLibrary-fix-deadlock-caused-by-fix-to-QTBUG-39642.patch
|
|||||||
# filter plugin provides
|
# filter plugin provides
|
||||||
%global __provides_exclude_from ^%{_qt5_plugindir}/.*\\.so$
|
%global __provides_exclude_from ^%{_qt5_plugindir}/.*\\.so$
|
||||||
|
|
||||||
|
%if 0%{?use_clang}
|
||||||
|
BuildRequires: clang >= 3.7.0
|
||||||
|
%else
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
%endif
|
||||||
|
BuildRequires: make
|
||||||
BuildRequires: cups-devel
|
BuildRequires: cups-devel
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
|
BuildRequires: double-conversion-devel
|
||||||
BuildRequires: findutils
|
BuildRequires: findutils
|
||||||
BuildRequires: libjpeg-devel
|
BuildRequires: libjpeg-devel
|
||||||
BuildRequires: libmng-devel
|
BuildRequires: libmng-devel
|
||||||
@ -149,56 +168,35 @@ BuildRequires: libtiff-devel
|
|||||||
BuildRequires: pkgconfig(alsa)
|
BuildRequires: pkgconfig(alsa)
|
||||||
# required for -accessibility
|
# required for -accessibility
|
||||||
BuildRequires: pkgconfig(atspi-2)
|
BuildRequires: pkgconfig(atspi-2)
|
||||||
%if 0%{?use_clang}
|
|
||||||
BuildRequires: clang >= 3.7.0
|
|
||||||
%else
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
%endif
|
|
||||||
# http://bugzilla.redhat.com/1196359
|
|
||||||
%if 0%{?fedora} || 0%{?rhel} > 6
|
|
||||||
%global dbus -dbus-linked
|
|
||||||
BuildRequires: pkgconfig(dbus-1)
|
BuildRequires: pkgconfig(dbus-1)
|
||||||
%endif
|
|
||||||
BuildRequires: pkgconfig(libdrm)
|
BuildRequires: pkgconfig(libdrm)
|
||||||
BuildRequires: pkgconfig(fontconfig)
|
BuildRequires: pkgconfig(fontconfig)
|
||||||
BuildRequires: pkgconfig(gl)
|
BuildRequires: pkgconfig(gl)
|
||||||
BuildRequires: pkgconfig(glib-2.0)
|
BuildRequires: pkgconfig(glib-2.0)
|
||||||
BuildRequires: pkgconfig(gtk+-3.0)
|
BuildRequires: pkgconfig(gtk+-3.0)
|
||||||
BuildRequires: pkgconfig(libproxy-1.0)
|
BuildRequires: pkgconfig(libproxy-1.0)
|
||||||
|
BuildRequires: pkgconfig(libsctp)
|
||||||
# xcb-sm
|
# xcb-sm
|
||||||
BuildRequires: pkgconfig(ice) pkgconfig(sm)
|
BuildRequires: pkgconfig(ice) pkgconfig(sm)
|
||||||
BuildRequires: pkgconfig(libpng)
|
BuildRequires: pkgconfig(libpng)
|
||||||
BuildRequires: pkgconfig(libudev)
|
BuildRequires: pkgconfig(libudev)
|
||||||
%if 0%{?fedora} == 26
|
BuildRequires: openssl-devel
|
||||||
BuildRequires: compat-openssl10-devel
|
|
||||||
%else
|
|
||||||
BuildRequires: openssl-devel%{?openssl11: >= 1.1}
|
|
||||||
%endif
|
|
||||||
BuildRequires: pkgconfig(libpulse) pkgconfig(libpulse-mainloop-glib)
|
BuildRequires: pkgconfig(libpulse) pkgconfig(libpulse-mainloop-glib)
|
||||||
%if 0%{?fedora}
|
|
||||||
#global xkbcommon -system-xkbcommon
|
|
||||||
BuildRequires: pkgconfig(libinput)
|
BuildRequires: pkgconfig(libinput)
|
||||||
|
BuildRequires: pkgconfig(libsystemd)
|
||||||
BuildRequires: pkgconfig(xcb-xkb) >= 1.10
|
BuildRequires: pkgconfig(xcb-xkb) >= 1.10
|
||||||
|
BuildRequires: pkgconfig(xcb-util)
|
||||||
BuildRequires: pkgconfig(xkbcommon) >= 0.4.1
|
BuildRequires: pkgconfig(xkbcommon) >= 0.4.1
|
||||||
BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.1
|
BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.1
|
||||||
%else
|
|
||||||
# not Fedora
|
|
||||||
%if 0%{?rhel} == 6
|
|
||||||
%global xcb -qt-xcb
|
|
||||||
%endif
|
|
||||||
#global xkbcommon -qt-xkbcommon
|
|
||||||
Provides: bundled(libxkbcommon) = 0.4.1
|
|
||||||
%endif
|
|
||||||
BuildRequires: pkgconfig(xkeyboard-config)
|
BuildRequires: pkgconfig(xkeyboard-config)
|
||||||
|
%global vulkan 1
|
||||||
|
BuildRequires: pkgconfig(vulkan)
|
||||||
%if 0%{?fedora} || 0%{?rhel} > 6
|
%if 0%{?fedora} || 0%{?rhel} > 6
|
||||||
%global egl 1
|
%global egl 1
|
||||||
BuildRequires: libEGL-devel
|
BuildRequires: libEGL-devel
|
||||||
BuildRequires: pkgconfig(gbm)
|
BuildRequires: pkgconfig(gbm)
|
||||||
## TODO: apparently only needed if building opengl_es2 support, do we actually use it? -- rex
|
## TODO: apparently only needed if building opengl_es2 support, do we actually use it? -- rex
|
||||||
## this dep was removed in rawhide with introduction of mesa-19.1
|
|
||||||
%if 0%{?fedora} < 30
|
|
||||||
BuildRequires: pkgconfig(glesv2)
|
BuildRequires: pkgconfig(glesv2)
|
||||||
%endif
|
|
||||||
%global sqlite -system-sqlite
|
%global sqlite -system-sqlite
|
||||||
BuildRequires: pkgconfig(sqlite3) >= 3.7
|
BuildRequires: pkgconfig(sqlite3) >= 3.7
|
||||||
%if 0%{?fedora} > 22
|
%if 0%{?fedora} > 22
|
||||||
@ -216,6 +214,7 @@ BuildRequires: libicu-devel
|
|||||||
%endif
|
%endif
|
||||||
BuildRequires: pkgconfig(xcb) pkgconfig(xcb-glx) pkgconfig(xcb-icccm) pkgconfig(xcb-image) pkgconfig(xcb-keysyms) pkgconfig(xcb-renderutil)
|
BuildRequires: pkgconfig(xcb) pkgconfig(xcb-glx) pkgconfig(xcb-icccm) pkgconfig(xcb-image) pkgconfig(xcb-keysyms) pkgconfig(xcb-renderutil)
|
||||||
BuildRequires: pkgconfig(zlib)
|
BuildRequires: pkgconfig(zlib)
|
||||||
|
BuildRequires: pkgconfig(libzstd)
|
||||||
BuildRequires: perl-generators
|
BuildRequires: perl-generators
|
||||||
# see patch68
|
# see patch68
|
||||||
BuildRequires: python3
|
BuildRequires: python3
|
||||||
@ -228,6 +227,7 @@ BuildRequires: time
|
|||||||
BuildRequires: xorg-x11-server-Xvfb
|
BuildRequires: xorg-x11-server-Xvfb
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%if 0%{?qtchooser}
|
%if 0%{?qtchooser}
|
||||||
%if 0%{?fedora}
|
%if 0%{?fedora}
|
||||||
Conflicts: qt < 1:4.8.6-10
|
Conflicts: qt < 1:4.8.6-10
|
||||||
@ -264,6 +264,12 @@ Summary: Common files for Qt5
|
|||||||
# offer upgrade path for qtquick1 somewhere... may as well be here -- rex
|
# offer upgrade path for qtquick1 somewhere... may as well be here -- rex
|
||||||
Obsoletes: qt5-qtquick1 < 5.9.0
|
Obsoletes: qt5-qtquick1 < 5.9.0
|
||||||
Obsoletes: qt5-qtquick1-devel < 5.9.0
|
Obsoletes: qt5-qtquick1-devel < 5.9.0
|
||||||
|
%if "%{?ibase}" == "-no-sql-ibase"
|
||||||
|
Obsoletes: qt5-qtbase-ibase < %{version}-%{release}
|
||||||
|
%endif
|
||||||
|
%if "%{?tds}" == "-no-sql-tds"
|
||||||
|
Obsoletes: qt5-qtbase-tds < %{version}-%{release}
|
||||||
|
%endif
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%description common
|
%description common
|
||||||
@ -277,6 +283,9 @@ Requires: %{name}-gui%{?_isa}
|
|||||||
Requires: libEGL-devel
|
Requires: libEGL-devel
|
||||||
%endif
|
%endif
|
||||||
Requires: pkgconfig(gl)
|
Requires: pkgconfig(gl)
|
||||||
|
%if 0%{?vulkan}
|
||||||
|
Requires: pkgconfig(vulkan)
|
||||||
|
%endif
|
||||||
Requires: qt5-rpm-macros
|
Requires: qt5-rpm-macros
|
||||||
%if 0%{?use_clang}
|
%if 0%{?use_clang}
|
||||||
Requires: clang >= 3.7.0
|
Requires: clang >= 3.7.0
|
||||||
@ -306,10 +315,8 @@ Summary: Static library files for %{name}
|
|||||||
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
|
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
|
||||||
Requires: pkgconfig(fontconfig)
|
Requires: pkgconfig(fontconfig)
|
||||||
Requires: pkgconfig(glib-2.0)
|
Requires: pkgconfig(glib-2.0)
|
||||||
%if 0%{?fedora}
|
|
||||||
Requires: pkgconfig(libinput)
|
Requires: pkgconfig(libinput)
|
||||||
Requires: pkgconfig(xkbcommon)
|
Requires: pkgconfig(xkbcommon)
|
||||||
%endif
|
|
||||||
Requires: pkgconfig(zlib)
|
Requires: pkgconfig(zlib)
|
||||||
|
|
||||||
%description static
|
%description static
|
||||||
@ -326,10 +333,10 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
|||||||
|
|
||||||
%package mysql
|
%package mysql
|
||||||
Summary: MySQL driver for Qt5's SQL classes
|
Summary: MySQL driver for Qt5's SQL classes
|
||||||
%if 0%{?fedora} > 27
|
%if 0%{?rhel} && 0%{?rhel} < 9
|
||||||
BuildRequires: mariadb-connector-c-devel
|
|
||||||
%else
|
|
||||||
BuildRequires: mysql-devel
|
BuildRequires: mysql-devel
|
||||||
|
%else
|
||||||
|
BuildRequires: mariadb-connector-c-devel
|
||||||
%endif
|
%endif
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
%description mysql
|
%description mysql
|
||||||
@ -362,7 +369,8 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
|||||||
%package gui
|
%package gui
|
||||||
Summary: Qt5 GUI-related libraries
|
Summary: Qt5 GUI-related libraries
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
%if 0%{?fedora} > 20
|
# where Recommends are supported
|
||||||
|
%if 0%{?fedora} || 0%{?rhel} >= 8
|
||||||
Recommends: mesa-dri-drivers
|
Recommends: mesa-dri-drivers
|
||||||
%endif
|
%endif
|
||||||
Obsoletes: qt5-qtbase-x11 < 5.2.0
|
Obsoletes: qt5-qtbase-x11 < 5.2.0
|
||||||
@ -377,10 +385,10 @@ Qt5 libraries used for drawing widgets and OpenGL items.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n %{qt_module}-everywhere-src-%{version}
|
%setup -q -n %{qt_module}-everywhere-src-%{version}
|
||||||
|
|
||||||
## upstream fixes
|
## dowstream patches
|
||||||
|
%patch3 -p1 -b .private_api_warning
|
||||||
|
|
||||||
# omit '-b .tell-the-truth-about-private-api' so it doesn't end up in installed files -- rdieter
|
## upstream fixes
|
||||||
%patch8 -p1
|
|
||||||
|
|
||||||
%patch50 -p1 -b .QT_VERSION_CHECK
|
%patch50 -p1 -b .QT_VERSION_CHECK
|
||||||
# FIXME/TODO : rebase or drop -- rdieter
|
# FIXME/TODO : rebase or drop -- rdieter
|
||||||
@ -389,20 +397,28 @@ Qt5 libraries used for drawing widgets and OpenGL items.
|
|||||||
%patch53 -p1 -b .qt5gui_cmake_isystem_includes
|
%patch53 -p1 -b .qt5gui_cmake_isystem_includes
|
||||||
%patch54 -p1 -b .qmake_LFLAGS
|
%patch54 -p1 -b .qmake_LFLAGS
|
||||||
%patch55 -p1 -b .no_relocatable
|
%patch55 -p1 -b .no_relocatable
|
||||||
|
%patch56 -p1 -b .libglvnd
|
||||||
%patch61 -p1 -b .qt5-qtbase-cxxflag
|
%patch61 -p1 -b .qt5-qtbase-cxxflag
|
||||||
|
%if 0%{?fedora} < 35
|
||||||
|
%patch63 -p1 -b .firebird
|
||||||
|
%else
|
||||||
%patch64 -p1 -b .firebird
|
%patch64 -p1 -b .firebird
|
||||||
|
%endif
|
||||||
%if 0%{?fedora} > 27
|
%if 0%{?fedora} > 27
|
||||||
%patch65 -p1 -b .mysql
|
%patch65 -p1 -b .mysql
|
||||||
%endif
|
%endif
|
||||||
%patch68 -p1
|
%patch68 -p1
|
||||||
|
|
||||||
%if 0%{?fedora} > 30
|
%if 0%{?fedora} > 30 || 0%{?rhel} > 8
|
||||||
%patch80 -p1 -b .use-wayland-on-gnome.patch
|
%patch80 -p1 -b .use-wayland-on-gnome.patch
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%patch90 -p1 -b .gcc11
|
||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
%patch100 -p1 -b .CVE-2015-9541
|
%patch100 -p1
|
||||||
%patch144 -p1 -b .0044
|
%patch101 -p1
|
||||||
|
%patch102 -p1
|
||||||
|
|
||||||
# move some bundled libs to ensure they're not accidentally used
|
# move some bundled libs to ensure they're not accidentally used
|
||||||
pushd src/3rdparty
|
pushd src/3rdparty
|
||||||
@ -429,6 +445,13 @@ sed -i -e "s|^#!/usr/bin/env perl$|#!%{__perl}|" \
|
|||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
# QT is known not to work properly with LTO at this point. Some of the issues
|
||||||
|
# are being worked on upstream and disabling LTO should be re-evaluated as
|
||||||
|
# we update this change. Until such time...
|
||||||
|
# Disable LTO
|
||||||
|
# https://bugzilla.redhat.com/1900527
|
||||||
|
%define _lto_cflags %{nil}
|
||||||
|
|
||||||
## FIXME/TODO:
|
## FIXME/TODO:
|
||||||
# * for %%ix86, add sse2 enabled builds for Qt5Gui, Qt5Core, QtNetwork, see also:
|
# * for %%ix86, add sse2 enabled builds for Qt5Gui, Qt5Core, QtNetwork, see also:
|
||||||
# http://anonscm.debian.org/cgit/pkg-kde/qt/qtbase.git/tree/debian/rules (234-249)
|
# http://anonscm.debian.org/cgit/pkg-kde/qt/qtbase.git/tree/debian/rules (234-249)
|
||||||
@ -468,18 +491,22 @@ export MAKEFLAGS="%{?_smp_mflags}"
|
|||||||
-release \
|
-release \
|
||||||
-shared \
|
-shared \
|
||||||
-accessibility \
|
-accessibility \
|
||||||
%{?dbus}%{!?dbus:-dbus-runtime} \
|
-dbus-linked \
|
||||||
|
%{?egl:-egl -eglfs} \
|
||||||
-fontconfig \
|
-fontconfig \
|
||||||
-glib \
|
-glib \
|
||||||
-gtk \
|
-gtk \
|
||||||
%{?ibase} \
|
%{?ibase} \
|
||||||
-icu \
|
-icu \
|
||||||
%{?journald} \
|
-journald \
|
||||||
-optimized-qmake \
|
-optimized-qmake \
|
||||||
%{?openssl} \
|
-openssl-linked \
|
||||||
|
-libproxy \
|
||||||
|
-sctp \
|
||||||
%{!?examples:-nomake examples} \
|
%{!?examples:-nomake examples} \
|
||||||
%{!?tests:-nomake tests} \
|
%{!?tests:-nomake tests} \
|
||||||
-no-pch \
|
-no-pch \
|
||||||
|
-no-reduce-relocations \
|
||||||
-no-rpath \
|
-no-rpath \
|
||||||
-no-separate-debug-info \
|
-no-separate-debug-info \
|
||||||
%{?no_sse2} \
|
%{?no_sse2} \
|
||||||
@ -498,10 +525,25 @@ export MAKEFLAGS="%{?_smp_mflags}"
|
|||||||
-no-feature-relocatable \
|
-no-feature-relocatable \
|
||||||
%{?no_feature_renameat2} \
|
%{?no_feature_renameat2} \
|
||||||
%{?no_feature_statx} \
|
%{?no_feature_statx} \
|
||||||
|
%{?no_feature_getentropy} \
|
||||||
QMAKE_CFLAGS_RELEASE="${CFLAGS:-$RPM_OPT_FLAGS}" \
|
QMAKE_CFLAGS_RELEASE="${CFLAGS:-$RPM_OPT_FLAGS}" \
|
||||||
QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \
|
QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \
|
||||||
QMAKE_LFLAGS_RELEASE="${LDFLAGS:-$RPM_LD_FLAGS}"
|
QMAKE_LFLAGS_RELEASE="${LDFLAGS:-$RPM_LD_FLAGS}"
|
||||||
|
|
||||||
|
# Validate config results
|
||||||
|
%if "%{?ibase}" != "-no-sql-ibase"
|
||||||
|
for config_test in egl-x11 ibase ; do
|
||||||
|
%else
|
||||||
|
for config_test in egl-x11 ; do
|
||||||
|
%endif
|
||||||
|
config_result="$(grep ^cache.${config_test}.result config.cache | cut -d= -f2 | tr -d ' ')"
|
||||||
|
if [ "${config_result}" != "true" ]; then
|
||||||
|
echo "${config_test} detection failed"
|
||||||
|
config_failed=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ ${config_failed} -eq 1 ]; then exit 1; fi
|
||||||
|
|
||||||
# ensure qmake build using optflags (which can happen if not munging qmake.conf defaults)
|
# ensure qmake build using optflags (which can happen if not munging qmake.conf defaults)
|
||||||
make clean -C qmake
|
make clean -C qmake
|
||||||
%make_build -C qmake all binary \
|
%make_build -C qmake all binary \
|
||||||
@ -540,7 +582,7 @@ translationdir=%{_qt5_translationdir}
|
|||||||
|
|
||||||
Name: Qt5
|
Name: Qt5
|
||||||
Description: Qt5 Configuration
|
Description: Qt5 Configuration
|
||||||
Version: %{version}
|
Version: 5.15.8
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# rpm macros
|
# rpm macros
|
||||||
@ -606,7 +648,7 @@ popd
|
|||||||
install -p -m755 -D %{SOURCE6} %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/10-qt5-check-opengl2.sh
|
install -p -m755 -D %{SOURCE6} %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/10-qt5-check-opengl2.sh
|
||||||
|
|
||||||
# f29+ enables sse2 unconditionally on ix86 -- rex
|
# f29+ enables sse2 unconditionally on ix86 -- rex
|
||||||
%if 0%{?fedora} < 29
|
%if 0%{?fedora} < 29 && 0%{?rhel} < 9
|
||||||
# fix bz#1442553 multilib issue
|
# fix bz#1442553 multilib issue
|
||||||
privat_header_file=%{buildroot}%{_qt5_headerdir}/QtCore/%{version}/QtCore/private/qconfig_p.h
|
privat_header_file=%{buildroot}%{_qt5_headerdir}/QtCore/%{version}/QtCore/private/qconfig_p.h
|
||||||
grep -v QT_FEATURE_sse2 $privat_header_file > ${privat_header_file}.me
|
grep -v QT_FEATURE_sse2 $privat_header_file > ${privat_header_file}.me
|
||||||
@ -624,6 +666,10 @@ EOF
|
|||||||
mkdir -p %{buildroot}%{_qt5_headerdir}/QtXcb
|
mkdir -p %{buildroot}%{_qt5_headerdir}/QtXcb
|
||||||
install -m 644 src/plugins/platforms/xcb/*.h %{buildroot}%{_qt5_headerdir}/QtXcb/
|
install -m 644 src/plugins/platforms/xcb/*.h %{buildroot}%{_qt5_headerdir}/QtXcb/
|
||||||
|
|
||||||
|
# drop Qt5Bootstrap from -static (#2017661)
|
||||||
|
rm -f %{buildroot}%{_qt5_libdir}/libQt5Bootstrap.*a
|
||||||
|
rm -f %{buildroot}%{_qt5_libdir}/libQt5Bootstrap.prl
|
||||||
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# verify Qt5.pc
|
# verify Qt5.pc
|
||||||
@ -848,25 +894,27 @@ fi
|
|||||||
%{_qt5_libdir}/cmake/Qt5Widgets/Qt5WidgetsMacros.cmake
|
%{_qt5_libdir}/cmake/Qt5Widgets/Qt5WidgetsMacros.cmake
|
||||||
%{_qt5_libdir}/cmake/Qt5Xml/Qt5XmlConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5Xml/Qt5XmlConfig*.cmake
|
||||||
%{_qt5_libdir}/cmake/Qt5/Qt5ModuleLocation.cmake
|
%{_qt5_libdir}/cmake/Qt5/Qt5ModuleLocation.cmake
|
||||||
%{_qt5_libdir}/cmake/Qt5AccessibilitySupport/Qt5AccessibilitySupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5AccessibilitySupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5Bootstrap/Qt5BootstrapConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5DeviceDiscoverySupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5DeviceDiscoverySupport/Qt5DeviceDiscoverySupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5EdidSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5EdidSupport/Qt5EdidSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5EglFSDeviceIntegration/
|
||||||
%{_qt5_libdir}/cmake/Qt5EglFSDeviceIntegration/Qt5EglFSDeviceIntegrationConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5EglFsKmsSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5EglFsKmsSupport/Qt5EglFsKmsSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5EglSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5EglSupport/Qt5EglSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5EventDispatcherSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5EventDispatcherSupport/Qt5EventDispatcherSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5FbSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5FbSupport/Qt5FbSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5FontDatabaseSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5FontDatabaseSupport/Qt5FontDatabaseSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5GlxSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5GlxSupport/Qt5GlxSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5InputSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5InputSupport/Qt5InputSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5KmsSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5KmsSupport/Qt5KmsSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5LinuxAccessibilitySupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5LinuxAccessibilitySupport/Qt5LinuxAccessibilitySupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5PlatformCompositorSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5PlatformCompositorSupport/Qt5PlatformCompositorSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5ServiceSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5ServiceSupport/Qt5ServiceSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5ThemeSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5ThemeSupport/Qt5ThemeSupportConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5XcbQpa/
|
||||||
%{_qt5_libdir}/cmake/Qt5XcbQpa/Qt5XcbQpaConfig*.cmake
|
%{_qt5_libdir}/cmake/Qt5XkbCommonSupport/
|
||||||
%{_qt5_libdir}/cmake/Qt5XkbCommonSupport/Qt5XkbCommonSupportConfig*.cmake
|
%{_qt5_libdir}/metatypes/qt5core_metatypes.json
|
||||||
|
%{_qt5_libdir}/metatypes/qt5gui_metatypes.json
|
||||||
|
%{_qt5_libdir}/metatypes/qt5widgets_metatypes.json
|
||||||
%{_qt5_libdir}/pkgconfig/Qt5.pc
|
%{_qt5_libdir}/pkgconfig/Qt5.pc
|
||||||
%{_qt5_libdir}/pkgconfig/Qt5Concurrent.pc
|
%{_qt5_libdir}/pkgconfig/Qt5Concurrent.pc
|
||||||
%{_qt5_libdir}/pkgconfig/Qt5Core.pc
|
%{_qt5_libdir}/pkgconfig/Qt5Core.pc
|
||||||
@ -887,15 +935,13 @@ fi
|
|||||||
## private-devel globs
|
## private-devel globs
|
||||||
# keep mkspecs/modules stuff in -devel for now, https://bugzilla.redhat.com/show_bug.cgi?id=1705280
|
# keep mkspecs/modules stuff in -devel for now, https://bugzilla.redhat.com/show_bug.cgi?id=1705280
|
||||||
%{_qt5_archdatadir}/mkspecs/modules/qt_lib_*_private.pri
|
%{_qt5_archdatadir}/mkspecs/modules/qt_lib_*_private.pri
|
||||||
%exclude %{_qt5_headerdir}/*/%{version}/*/private/
|
%exclude %{_qt5_headerdir}/*/%{version}/
|
||||||
|
|
||||||
%files private-devel
|
%files private-devel
|
||||||
%{_qt5_headerdir}/*/%{version}/*/private/
|
%{_qt5_headerdir}/*/%{version}/
|
||||||
#{_qt5_archdatadir}/mkspecs/modules/qt_lib_*_private.pri
|
#{_qt5_archdatadir}/mkspecs/modules/qt_lib_*_private.pri
|
||||||
|
|
||||||
%files static
|
%files static
|
||||||
%{_qt5_libdir}/libQt5Bootstrap.*a
|
|
||||||
%{_qt5_libdir}/libQt5Bootstrap.prl
|
|
||||||
%{_qt5_headerdir}/QtOpenGLExtensions/
|
%{_qt5_headerdir}/QtOpenGLExtensions/
|
||||||
%{_qt5_libdir}/libQt5OpenGLExtensions.*a
|
%{_qt5_libdir}/libQt5OpenGLExtensions.*a
|
||||||
%{_qt5_libdir}/libQt5OpenGLExtensions.prl
|
%{_qt5_libdir}/libQt5OpenGLExtensions.prl
|
||||||
@ -943,6 +989,12 @@ fi
|
|||||||
%{_qt5_libdir}/libQt5EdidSupport.prl
|
%{_qt5_libdir}/libQt5EdidSupport.prl
|
||||||
%{_qt5_libdir}/libQt5XkbCommonSupport.*a
|
%{_qt5_libdir}/libQt5XkbCommonSupport.*a
|
||||||
%{_qt5_libdir}/libQt5XkbCommonSupport.prl
|
%{_qt5_libdir}/libQt5XkbCommonSupport.prl
|
||||||
|
%if 0%{?vulkan}
|
||||||
|
%{_qt5_headerdir}/QtVulkanSupport/
|
||||||
|
%{_qt5_libdir}/cmake/Qt5VulkanSupport/
|
||||||
|
%{_qt5_libdir}/libQt5VulkanSupport.*a
|
||||||
|
%{_qt5_libdir}/libQt5VulkanSupport.prl
|
||||||
|
%endif
|
||||||
|
|
||||||
%if 0%{?examples}
|
%if 0%{?examples}
|
||||||
%files examples
|
%files examples
|
||||||
@ -988,10 +1040,8 @@ fi
|
|||||||
%{_qt5_plugindir}/generic/libqevdevmouseplugin.so
|
%{_qt5_plugindir}/generic/libqevdevmouseplugin.so
|
||||||
%{_qt5_plugindir}/generic/libqevdevtabletplugin.so
|
%{_qt5_plugindir}/generic/libqevdevtabletplugin.so
|
||||||
%{_qt5_plugindir}/generic/libqevdevtouchplugin.so
|
%{_qt5_plugindir}/generic/libqevdevtouchplugin.so
|
||||||
%if 0%{?fedora}
|
|
||||||
%{_qt5_plugindir}/generic/libqlibinputplugin.so
|
%{_qt5_plugindir}/generic/libqlibinputplugin.so
|
||||||
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QLibInputPlugin.cmake
|
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QLibInputPlugin.cmake
|
||||||
%endif
|
|
||||||
%{_qt5_plugindir}/generic/libqtuiotouchplugin.so
|
%{_qt5_plugindir}/generic/libqtuiotouchplugin.so
|
||||||
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEvdevKeyboardPlugin.cmake
|
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEvdevKeyboardPlugin.cmake
|
||||||
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEvdevMousePlugin.cmake
|
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEvdevMousePlugin.cmake
|
||||||
@ -1048,6 +1098,215 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Feb 08 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.8-5
|
||||||
|
- Fix possible DOS involving the Qt SQL ODBC driver plugin
|
||||||
|
CVE-2023-24607
|
||||||
|
|
||||||
|
* Tue Jan 31 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.8-4
|
||||||
|
- migrated to SPDX license
|
||||||
|
|
||||||
|
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.8-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 05 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.8-2
|
||||||
|
- Correctly install qtsan header file
|
||||||
|
|
||||||
|
* Thu Jan 05 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.8-1
|
||||||
|
- 5.15.8
|
||||||
|
|
||||||
|
* Sat Dec 31 2022 Pete Walter <pwalter@fedoraproject.org> - 5.15.7-2
|
||||||
|
- Rebuild for ICU 72
|
||||||
|
|
||||||
|
* Mon Oct 31 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.7-1
|
||||||
|
- 5.15.7
|
||||||
|
|
||||||
|
* Tue Oct 11 2022 Rex Dieter <rdieter@gmail.com> - 5.15.6-2
|
||||||
|
- make mixing verisons and private api usage a warning instead of fatal error
|
||||||
|
|
||||||
|
* Tue Sep 20 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.6-1
|
||||||
|
- 5.15.6
|
||||||
|
|
||||||
|
* Wed Aug 24 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.5-4
|
||||||
|
- Update to latest changes from Qt patch collection
|
||||||
|
|
||||||
|
* Mon Aug 01 2022 Frantisek Zatloukal <fzatlouk@redhat.com> - 5.15.5-3
|
||||||
|
- Rebuilt for ICU 71.1
|
||||||
|
|
||||||
|
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.5-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 13 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.5-1
|
||||||
|
- 5.15.5
|
||||||
|
|
||||||
|
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.5-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jun 21 2022 Than Ngo <than@redhat.com> - 5.15.3-3
|
||||||
|
- bz#2099267, backport patch to fix download problem from Settings
|
||||||
|
|
||||||
|
* Mon May 30 2022 Than Ngo <than@redhat.com> - 5.15.3-2
|
||||||
|
- Fixed bz#1994724, CVE-2021-38593
|
||||||
|
|
||||||
|
* Mon May 30 2022 Than Ngo <than@redhat.com> - 5.15.4-3
|
||||||
|
- bz#1994719, CVE-2021-38593
|
||||||
|
|
||||||
|
* Sun May 22 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.4-2
|
||||||
|
- Rebuild (broken update)
|
||||||
|
|
||||||
|
* Mon May 16 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.4-1
|
||||||
|
- 5.15.4
|
||||||
|
|
||||||
|
* Fri Apr 01 2022 Than Ngo <than@redhat.com> - 5.15.3-2
|
||||||
|
- bz#2070958, enable zstd
|
||||||
|
|
||||||
|
* Fri Mar 04 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.3-1
|
||||||
|
- 5.15.3 + kde-5.15 fixes
|
||||||
|
|
||||||
|
* Thu Feb 17 2022 Than Ngo <than@redhat.com> - 5.15.2-35
|
||||||
|
- Fixed CVE-2022-25255
|
||||||
|
|
||||||
|
* Mon Jan 31 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.2-34
|
||||||
|
- refresh kde-5.15-rollup patch
|
||||||
|
|
||||||
|
* Mon Jan 24 2022 Timm Bäder <tbaeder@redhat.com> - 5.15.2-33
|
||||||
|
- Disable automatic .la file removal
|
||||||
|
- https://fedoraproject.org/wiki/Changes/RemoveLaFiles
|
||||||
|
|
||||||
|
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.2-32
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jan 07 2022 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-31
|
||||||
|
- refresh kde-5.15-rollup patch
|
||||||
|
|
||||||
|
* Mon Dec 06 2021 Jan Grulich <jgrulich@redhat.com> - 5.15.2-30
|
||||||
|
- refresh kde-5.15-rollup patch
|
||||||
|
|
||||||
|
* Wed Nov 24 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-29
|
||||||
|
- refresh kde-5.15-rollup patch
|
||||||
|
|
||||||
|
* Thu Nov 11 2021 Sandro Mani <manisandro@gmail.com> - 5.15.2-28
|
||||||
|
- Drop Qt5Bootstrap files from -static (#2017661)
|
||||||
|
|
||||||
|
* Tue Oct 26 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-27
|
||||||
|
- refresh kde-5.15-rollup patch
|
||||||
|
|
||||||
|
* Tue Oct 12 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-26
|
||||||
|
- refresh kde-5.15-rollup patch (#2012371)
|
||||||
|
|
||||||
|
* Tue Sep 14 2021 Sahana Prasad <sahana@redhat.com> - 5.15.2-25
|
||||||
|
- Rebuilt with OpenSSL 3.0.0
|
||||||
|
|
||||||
|
* Tue Sep 07 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-24
|
||||||
|
- refresh kde-5.15-rollup patch
|
||||||
|
- validate configure results (base, egl-x11)
|
||||||
|
- fix libglvnd-1.3.4 FTBFS (#2002416)
|
||||||
|
|
||||||
|
* Tue Sep 07 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-23
|
||||||
|
- (re)enable ibase
|
||||||
|
- handle upgrade path when/if some db drivers are ever disabled (ibase,tds)
|
||||||
|
- -gui: add mesa-dri-drivers soft dep for rhel8+ too
|
||||||
|
|
||||||
|
* Mon Aug 23 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-22
|
||||||
|
- sync kde/5.15 branch patches
|
||||||
|
|
||||||
|
* Thu Jul 29 2021 Than Ngo <than@redhat.com> - 5.15.2-21
|
||||||
|
- Fixed FTBFS against firebird-4.0.0
|
||||||
|
|
||||||
|
* Tue Jul 27 2021 Than Ngo <than@redhat.com> - 5.15.2-20
|
||||||
|
- Disable sql-ibase temporary (firebird build failed on s390x, bz#1969393)
|
||||||
|
|
||||||
|
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.2-19
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu May 20 2021 Pete Walter <pwalter@fedoraproject.org> - 5.15.2-18
|
||||||
|
- Rebuild for ICU 69
|
||||||
|
|
||||||
|
* Thu May 13 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-17
|
||||||
|
- -devel: fix some cmake-related dir ownership
|
||||||
|
|
||||||
|
* Sat May 01 2021 Alessandro Astone <ales.astone@gmail.com> - 5.15.2-16
|
||||||
|
- Backport upstream fix for QTBUG-91909
|
||||||
|
|
||||||
|
* Tue Mar 09 2021 Jan Grulich <jgrulich@redhat.com> - 5.15.2-15
|
||||||
|
- FileChooser portal: send window id in hex
|
||||||
|
|
||||||
|
* Fri Feb 19 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-14
|
||||||
|
- %%build: explicitly pass -egl build option
|
||||||
|
- unconditional BR: pkgconfig(glesv2) again
|
||||||
|
|
||||||
|
* Tue Feb 09 2021 Pavel Raiskup <praiskup@redhat.com> - 5.15.2-13
|
||||||
|
- rebuild all postgresql deps once more, for libpq ABI fix rhbz#1908268
|
||||||
|
|
||||||
|
* Mon Feb 08 2021 Jan Grulich <jgrulich@redhat.com> - 5.15.2-12
|
||||||
|
- Use Wayland platform on GNOME for RHEL 9
|
||||||
|
|
||||||
|
* Mon Feb 08 2021 Pavel Raiskup <praiskup@redhat.com> - 5.15.2-11
|
||||||
|
- rebuild for libpq ABI fix rhbz#1908268
|
||||||
|
|
||||||
|
* Sat Feb 06 2021 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-10
|
||||||
|
- FTBFS: qendian.h (and qfloat16.h) missing <limits> include (QTBUG-90395)
|
||||||
|
- Qt build on GCC 11 (QTBUG-89977)
|
||||||
|
|
||||||
|
* Mon Feb 01 2021 Jan Grulich <jgrulich@redhat.com> - 5.15.2-9
|
||||||
|
- Disable getentropy on RHEL
|
||||||
|
|
||||||
|
* Fri Jan 29 2021 Jan Grulich <jgrulich@redhat.com> - 5.15.2-8
|
||||||
|
- Disable statx and renameat2 on RHEL
|
||||||
|
|
||||||
|
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.15.2-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Dec 19 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-6
|
||||||
|
- rebuild (gcc11)
|
||||||
|
|
||||||
|
* Mon Nov 30 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-5
|
||||||
|
- re-enable vulkan support on s390x, root cause fixed
|
||||||
|
|
||||||
|
* Sun Nov 29 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-4
|
||||||
|
- drop vulkan support on s390x (#1902449)
|
||||||
|
|
||||||
|
* Fri Nov 27 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.2-3
|
||||||
|
- Require qt-settings only in Fedora builds
|
||||||
|
|
||||||
|
* Mon Nov 23 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.15.2-2
|
||||||
|
- -no-reduce-relocations (#1900527)
|
||||||
|
|
||||||
|
* Fri Nov 20 09:27:41 CET 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.2-1
|
||||||
|
- 5.15.2
|
||||||
|
|
||||||
|
* Tue Nov 03 2020 Sandro Mani <manisandro@gmail.com> - 5.15.1-7
|
||||||
|
- Backport upstream fix for QTBUG-86319
|
||||||
|
|
||||||
|
* Sun Oct 18 2020 Jeff Law <law@redhat.com> - 5.15.1-6
|
||||||
|
- Fix missing #includes for gcc-11
|
||||||
|
|
||||||
|
* Wed Sep 30 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.1-5
|
||||||
|
- Upstream fix: Emit QScreen::geometryChanged when the logical DPI changes
|
||||||
|
|
||||||
|
* Tue Sep 29 2020 Yaroslav Fedevych <yaroslav@fedevych.name> - 5.15.1-4
|
||||||
|
- qt5-qtbase-devel requires vulkan headers
|
||||||
|
|
||||||
|
* Thu Sep 17 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.15.1-3
|
||||||
|
- enable vulkan support (#1794969)
|
||||||
|
|
||||||
|
* Thu Sep 10 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.15.1-2
|
||||||
|
- CentOS8 - numpad do not work in KDE Plasma (#1868371)
|
||||||
|
|
||||||
|
* Thu Sep 10 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.1-1
|
||||||
|
- 5.15.1
|
||||||
|
|
||||||
|
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.14.2-8
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 01 2020 Jeff Law <law@redhat.com> - 5.14.2-7
|
||||||
|
- Disable LTO
|
||||||
|
|
||||||
|
* Mon Jun 15 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.14.2-6
|
||||||
|
- Qt5 private header packaging breaks Qt5 Cmake files (#1846613)
|
||||||
|
|
||||||
|
* Sat May 16 2020 Pete Walter <pwalter@fedoraproject.org> - 5.14.2-5
|
||||||
|
- Rebuild for ICU 67
|
||||||
|
|
||||||
* Tue Apr 14 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.14.2-4
|
* Tue Apr 14 2020 Rex Dieter <rdieter@fedoraproject.org> - 5.14.2-4
|
||||||
- backport "Mutex deadlock in QPluginLoader, Krita fails to start" (QTBUG-83207)
|
- backport "Mutex deadlock in QPluginLoader, Krita fails to start" (QTBUG-83207)
|
||||||
|
|
||||||
|
40
qtbase-5.15.8-fix-missing-qtsan-include.patch
Normal file
40
qtbase-5.15.8-fix-missing-qtsan-include.patch
Normal file
File diff suppressed because one or more lines are too long
11
qtbase-QTBUG-89977.patch
Normal file
11
qtbase-QTBUG-89977.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
diff -up qtbase-everywhere-src-5.15.2/src/corelib/text/qbytearray.h.foo qtbase-everywhere-src-5.15.2/src/corelib/text/qbytearray.h
|
||||||
|
--- qtbase-everywhere-src-5.15.2/src/corelib/text/qbytearray.h.foo 2020-10-27 03:02:11.000000000 -0500
|
||||||
|
+++ qtbase-everywhere-src-5.15.2/src/corelib/text/qbytearray.h 2021-02-06 17:05:04.879201352 -0600
|
||||||
|
@@ -51,6 +49,7 @@
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <iterator>
|
||||||
|
+#include <limits>
|
||||||
|
|
||||||
|
#ifdef truncate
|
||||||
|
#error qbytearray.h must be included before any header file that defines truncate
|
23
qtbase-QTBUG-90395.patch
Normal file
23
qtbase-QTBUG-90395.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
diff -up qtbase-everywhere-src-5.15.2/src/corelib/global/qendian.h.QTBUG-90395 qtbase-everywhere-src-5.15.2/src/corelib/global/qendian.h
|
||||||
|
--- qtbase-everywhere-src-5.15.2/src/corelib/global/qendian.h.QTBUG-90395 2020-10-27 03:02:11.000000000 -0500
|
||||||
|
+++ qtbase-everywhere-src-5.15.2/src/corelib/global/qendian.h 2021-02-06 16:36:27.072105717 -0600
|
||||||
|
@@ -44,6 +44,8 @@
|
||||||
|
#include <QtCore/qfloat16.h>
|
||||||
|
#include <QtCore/qglobal.h>
|
||||||
|
|
||||||
|
+#include <limits>
|
||||||
|
+
|
||||||
|
// include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
diff -up qtbase-everywhere-src-5.15.2/src/corelib/global/qfloat16.h.QTBUG-90395 qtbase-everywhere-src-5.15.2/src/corelib/global/qfloat16.h
|
||||||
|
--- qtbase-everywhere-src-5.15.2/src/corelib/global/qfloat16.h.QTBUG-90395 2021-02-06 16:36:27.074105730 -0600
|
||||||
|
+++ qtbase-everywhere-src-5.15.2/src/corelib/global/qfloat16.h 2021-02-06 16:37:19.212440114 -0600
|
||||||
|
@@ -43,6 +43,7 @@
|
||||||
|
|
||||||
|
#include <QtCore/qglobal.h>
|
||||||
|
#include <QtCore/qmetatype.h>
|
||||||
|
+#include <limits>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__)
|
31
qtbase-QTBUG-91909.patch
Normal file
31
qtbase-QTBUG-91909.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From 659f7a06e91c04b239e3f4c0bcfccbe3581af1c3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sona Kurazyan <sona.kurazyan@qt.io>
|
||||||
|
Date: Wed, 17 Mar 2021 16:04:00 +0100
|
||||||
|
Subject: [PATCH] Remove the unnecessary template parameter from the class specialization
|
||||||
|
|
||||||
|
This seems to cause errors when compiling with gcc-11. Although this is
|
||||||
|
most likely a compiler bug, specifiying the template parameter type in
|
||||||
|
this case isn't necessary.
|
||||||
|
|
||||||
|
Fixes: QTBUG-91909
|
||||||
|
Fixes: QTBUG-90568
|
||||||
|
Pick-to: 6.0 6.1 5.15
|
||||||
|
Change-Id: Ib231257ccb2e16cc533f23ca5840d31e26a66d53
|
||||||
|
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/src/concurrent/qtconcurrentthreadengine.h b/src/concurrent/qtconcurrentthreadengine.h
|
||||||
|
index cbd8ad04..4cd5b85 100644
|
||||||
|
--- a/src/concurrent/qtconcurrentthreadengine.h
|
||||||
|
+++ b/src/concurrent/qtconcurrentthreadengine.h
|
||||||
|
@@ -256,8 +256,8 @@
|
||||||
|
class ThreadEngineStarter<void> : public ThreadEngineStarterBase<void>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
- ThreadEngineStarter<void>(ThreadEngine<void> *_threadEngine)
|
||||||
|
- :ThreadEngineStarterBase<void>(_threadEngine) {}
|
||||||
|
+ ThreadEngineStarter(ThreadEngine<void> *_threadEngine)
|
||||||
|
+ : ThreadEngineStarterBase<void>(_threadEngine) {}
|
||||||
|
|
||||||
|
void startBlocking()
|
||||||
|
{
|
@ -0,0 +1,56 @@
|
|||||||
|
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
|
||||||
|
index d294cc38..dd31e31c 100644
|
||||||
|
--- a/src/gui/kernel/qguiapplication.cpp
|
||||||
|
+++ b/src/gui/kernel/qguiapplication.cpp
|
||||||
|
@@ -3155,13 +3155,14 @@ void QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfaceP
|
||||||
|
bool availableGeometryChanged = e->availableGeometry != s->d_func()->availableGeometry;
|
||||||
|
s->d_func()->availableGeometry = e->availableGeometry;
|
||||||
|
|
||||||
|
- if (geometryChanged) {
|
||||||
|
- Qt::ScreenOrientation primaryOrientation = s->primaryOrientation();
|
||||||
|
+ const Qt::ScreenOrientation primaryOrientation = s->primaryOrientation();
|
||||||
|
+ if (geometryChanged)
|
||||||
|
s->d_func()->updatePrimaryOrientation();
|
||||||
|
|
||||||
|
- emit s->geometryChanged(s->geometry());
|
||||||
|
+ s->d_func()->emitGeometryChangeSignals(geometryChanged, availableGeometryChanged);
|
||||||
|
+
|
||||||
|
+ if (geometryChanged) {
|
||||||
|
emit s->physicalSizeChanged(s->physicalSize());
|
||||||
|
- emit s->physicalDotsPerInchChanged(s->physicalDotsPerInch());
|
||||||
|
emit s->logicalDotsPerInchChanged(s->logicalDotsPerInch());
|
||||||
|
|
||||||
|
if (s->primaryOrientation() != primaryOrientation)
|
||||||
|
@@ -3171,8 +3172,6 @@ void QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfaceP
|
||||||
|
updateFilteredScreenOrientation(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
- s->d_func()->emitGeometryChangeSignals(geometryChanged, availableGeometryChanged);
|
||||||
|
-
|
||||||
|
resetCachedDevicePixelRatio();
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp
|
||||||
|
index df628fcc..a1afc1ba 100644
|
||||||
|
--- a/src/gui/kernel/qscreen.cpp
|
||||||
|
+++ b/src/gui/kernel/qscreen.cpp
|
||||||
|
@@ -88,6 +88,9 @@ void QScreenPrivate::updateGeometriesWithSignals()
|
||||||
|
void QScreenPrivate::emitGeometryChangeSignals(bool geometryChanged, bool availableGeometryChanged)
|
||||||
|
{
|
||||||
|
Q_Q(QScreen);
|
||||||
|
+ if (geometryChanged)
|
||||||
|
+ emit q->geometryChanged(geometry);
|
||||||
|
+
|
||||||
|
if (availableGeometryChanged)
|
||||||
|
emit q->availableGeometryChanged(availableGeometry);
|
||||||
|
|
||||||
|
@@ -96,6 +99,9 @@ void QScreenPrivate::emitGeometryChangeSignals(bool geometryChanged, bool availa
|
||||||
|
for (QScreen* sibling : siblings)
|
||||||
|
emit sibling->virtualGeometryChanged(sibling->virtualGeometry());
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (geometryChanged)
|
||||||
|
+ emit q->physicalDotsPerInchChanged(q->physicalDotsPerInch());
|
||||||
|
}
|
||||||
|
|
||||||
|
void QScreenPrivate::setPlatformScreen(QPlatformScreen *screen)
|
15
qtbase-everywhere-src-5.15.2-libglvnd.patch
Normal file
15
qtbase-everywhere-src-5.15.2-libglvnd.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff -up qtbase-everywhere-src-5.15.2/src/gui/configure.json.libglvnd qtbase-everywhere-src-5.15.2/src/gui/configure.json
|
||||||
|
--- qtbase-everywhere-src-5.15.2/src/gui/configure.json.libglvnd 2020-10-27 03:02:11.000000000 -0500
|
||||||
|
+++ qtbase-everywhere-src-5.15.2/src/gui/configure.json 2021-09-10 10:05:53.610312223 -0500
|
||||||
|
@@ -847,9 +847,9 @@
|
||||||
|
],
|
||||||
|
"include": [ "EGL/egl.h", "X11/Xlib.h" ],
|
||||||
|
"main": [
|
||||||
|
- "Display *dpy = EGL_DEFAULT_DISPLAY;",
|
||||||
|
+ "Display *dpy = reinterpret_cast<Display *>(EGL_DEFAULT_DISPLAY);",
|
||||||
|
"EGLNativeDisplayType egldpy = XOpenDisplay(\"\");",
|
||||||
|
- "dpy = egldpy;",
|
||||||
|
+ "dpy = reinterpret_cast<Display *>(egldpy);",
|
||||||
|
"EGLNativeWindowType w = XCreateWindow(dpy, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);",
|
||||||
|
"XDestroyWindow(dpy, w);",
|
||||||
|
"XCloseDisplay(dpy);"
|
12
qtbase-everywhere-src-5.15.6-private_api_warning.patch
Normal file
12
qtbase-everywhere-src-5.15.6-private_api_warning.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up qtbase-everywhere-src-5.15.6/src/corelib/kernel/qobject_p.h.private_api_warning qtbase-everywhere-src-5.15.6/src/corelib/kernel/qobject_p.h
|
||||||
|
--- qtbase-everywhere-src-5.15.6/src/corelib/kernel/qobject_p.h.private_api_warning 2022-10-11 09:08:33.712070523 -0500
|
||||||
|
+++ qtbase-everywhere-src-5.15.6/src/corelib/kernel/qobject_p.h 2022-10-11 09:10:58.647038619 -0500
|
||||||
|
@@ -435,7 +435,7 @@ inline void QObjectPrivate::checkForInco
|
||||||
|
Q_UNUSED(version);
|
||||||
|
#else
|
||||||
|
if (Q_UNLIKELY(version != QObjectPrivateVersion)) {
|
||||||
|
- qFatal("Cannot mix incompatible Qt library (%d.%d.%d) with this library (%d.%d.%d)",
|
||||||
|
+ qWarning("Cannot mix incompatible Qt library (%d.%d.%d) with this library (%d.%d.%d)",
|
||||||
|
(version >> 16) & 0xff, (version >> 8) & 0xff, version & 0xff,
|
||||||
|
(QObjectPrivateVersion >> 16) & 0xff, (QObjectPrivateVersion >> 8) & 0xff, QObjectPrivateVersion & 0xff);
|
||||||
|
}
|
26
qtbase-filechooser-portal-send-window-id-in-hex.patch
Normal file
26
qtbase-filechooser-portal-send-window-id-in-hex.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From acaabc9108dfe75530960cf8e3ec4f3602cd82e0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Grulich <jgrulich@redhat.com>
|
||||||
|
Date: Mon, 08 Mar 2021 12:29:21 +0100
|
||||||
|
Subject: [PATCH] FileChooser portal: send window id in hex
|
||||||
|
|
||||||
|
We send window id in decimal, however, it is expected to be send in hex.
|
||||||
|
This causes a mismatch and makes portal dialog to show in background.
|
||||||
|
|
||||||
|
Pick-to: 5.15 6.0 6.1
|
||||||
|
Change-Id: Ibd77199bbb4a2ad4782a0457ddc5506c6b5608fe
|
||||||
|
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp
|
||||||
|
index ec153f6..85bdd1a 100644
|
||||||
|
--- a/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp
|
||||||
|
+++ b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp
|
||||||
|
@@ -185,7 +185,7 @@
|
||||||
|
QLatin1String("/org/freedesktop/portal/desktop"),
|
||||||
|
QLatin1String("org.freedesktop.portal.FileChooser"),
|
||||||
|
d->saveFile ? QLatin1String("SaveFile") : QLatin1String("OpenFile"));
|
||||||
|
- QString parentWindowId = QLatin1String("x11:") + QString::number(d->winId);
|
||||||
|
+ QString parentWindowId = QLatin1String("x11:") + QString::number(d->winId, 16);
|
||||||
|
|
||||||
|
QVariantMap options;
|
||||||
|
if (!d->acceptLabel.isEmpty())
|
3
sources
3
sources
@ -1 +1,2 @@
|
|||||||
SHA512 (qtbase-everywhere-src-5.14.2.tar.xz) = 8c83e06d58b56e9f288e83d6c3dd4ad6cc9f1eb1a32c7b44fb912fda34ed7255766fd9fa60cd740ee001df7d6172f25df05f1f95e986c3e793fbcd9bf4f18de9
|
SHA512 (qtbase-everywhere-opensource-src-5.15.8.tar.xz) = 29e8877bafdbc908072209f1b27a5040b022e2b71f17f4ab4cecd570adeae21597f9af7f1d38758760f3cb30376eeb15c5f066bf02c6e9a9e3a4d07f967046ce
|
||||||
|
SHA512 (kde-5.15-rollup-20230105.patch.gz) = 837987cbb0e31179170c938fb0fb0e431e41273be53b737fa183aeb114eca2c8c36cba5ce65c51c145e7f43c2fd8789a3a8156d61b7127dc08929802fbb848c8
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
|
|
||||||
index e6a0d97..cf93041 100644
|
|
||||||
--- a/mkspecs/features/qt_module.prf
|
|
||||||
+++ b/mkspecs/features/qt_module.prf
|
|
||||||
@@ -216,9 +216,9 @@ android: CONFIG += qt_android_deps no_linker_version_script
|
|
||||||
QMAKE_LFLAGS += $${QMAKE_LFLAGS_VERSION_SCRIPT}$$verscript
|
|
||||||
|
|
||||||
internal_module {
|
|
||||||
- verscript_content = "Qt_$${QT_MAJOR_VERSION}_PRIVATE_API { *; };"
|
|
||||||
+ verscript_content = "Qt_$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION}_PRIVATE_API { *; };"
|
|
||||||
} else {
|
|
||||||
- verscript_content = "Qt_$${QT_MAJOR_VERSION}_PRIVATE_API {" \
|
|
||||||
+ verscript_content = "Qt_$${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION}_PRIVATE_API {" \
|
|
||||||
" qt_private_api_tag*;"
|
|
||||||
|
|
||||||
private_api_headers = $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.QPA_HEADER_FILES
|
|
Loading…
Reference in New Issue
Block a user