diff --git a/0001-Fix-compile-issue-with-gcc-9.patch b/0001-Fix-compile-issue-with-gcc-9.patch deleted file mode 100644 index 632488921ef9a511faaaffdac415a36c3c4efc1d..0000000000000000000000000000000000000000 --- a/0001-Fix-compile-issue-with-gcc-9.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a52d7861edfb5956de38ba80015c4dd0b596259b Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen -Date: Tue, 13 Nov 2018 16:00:23 +0100 -Subject: [PATCH] Fix compile issue with gcc 9 - -It appears messenne_twisters in the latest libstdc++ has one more -requirement before it is willing to construct with our -SystemGenerator struct as an sseq provider. - -Change-Id: If38151d1fa6f40a80274acc26d9ed6b4ac6049fe -Reviewed-by: Giuseppe D'Angelo -Reviewed-by: Thiago Macieira ---- - -diff --git a/src/corelib/global/qrandom.cpp b/src/corelib/global/qrandom.cpp -index 23e5e49..03534cf 100644 ---- a/src/corelib/global/qrandom.cpp -+++ b/src/corelib/global/qrandom.cpp -@@ -218,6 +218,7 @@ - #endif // Q_OS_WINRT - - static SystemGenerator &self(); -+ typedef quint32 result_type; - void generate(quint32 *begin, quint32 *end) Q_DECL_NOEXCEPT_EXPR(FillBufferNoexcept); - - // For std::mersenne_twister_engine implementations that use something diff --git a/0001-modify-kwin_5.18-complier-error.patch b/0001-modify-kwin_5.18-complier-error.patch new file mode 100644 index 0000000000000000000000000000000000000000..e55592cb866ee8544663e80f20ab0c43477fe661 --- /dev/null +++ b/0001-modify-kwin_5.18-complier-error.patch @@ -0,0 +1,233 @@ +From bc16340b2eee8b7f7c7a8fd4cf7ba0c288bfc6bc Mon Sep 17 00:00:00 2001 +From: pei-jiankang +Date: Wed, 10 Nov 2021 22:09:24 +0800 +Subject: [PATCH] modify-kwin_5.18-complier-error + +--- + examples/corelib/serialization/cbordump/main.cpp | 8 ++++---- + .../src_corelib_serialization_qcborstream.cpp | 2 +- + src/corelib/serialization/qcborcommon.h | 4 ++-- + src/corelib/serialization/qcborstreamreader.h | 6 +++--- + src/corelib/serialization/qcborstreamwriter.h | 2 +- + src/corelib/serialization/qcborvalue.cpp | 4 ++-- + src/corelib/serialization/qcborvalue.h | 4 ++-- + .../corelib/kernel/qmetatype/tst_qmetatype.h | 2 +- + .../qcborstreamreader/tst_qcborstreamreader.cpp | 8 ++++---- + .../serialization/qcborvalue/tst_qcborvalue.cpp | 16 ++++++++-------- + 10 files changed, 28 insertions(+), 28 deletions(-) + +diff --git a/examples/corelib/serialization/cbordump/main.cpp b/examples/corelib/serialization/cbordump/main.cpp +index 222bd436..b43650eb 100644 +--- a/examples/corelib/serialization/cbordump/main.cpp ++++ b/examples/corelib/serialization/cbordump/main.cpp +@@ -385,10 +385,10 @@ void CborDumper::dumpOne(int nestingLevel) + + case QCborStreamReader::SimpleType: + switch (reader.toSimpleType()) { +- case QCborSimpleType::False: ++ case QCborSimpleType::False_QCb: + printf("false"); + break; +- case QCborSimpleType::True: ++ case QCborSimpleType::True_QCb: + printf("true"); + break; + case QCborSimpleType::Null: +@@ -620,10 +620,10 @@ void CborDumper::dumpOneDetailed(int nestingLevel) + QCborSimpleType st = reader.toSimpleType(); + reader.next(); + switch (st) { +- case QCborSimpleType::False: ++ case QCborSimpleType::False_QCb: + print("Simple Type", "false"); + break; +- case QCborSimpleType::True: ++ case QCborSimpleType::True_QCb: + print("Simple Type", "true"); + break; + case QCborSimpleType::Null: +diff --git a/src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp b/src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp +index 6ddb5a93..993a0a03 100644 +--- a/src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp ++++ b/src/corelib/doc/snippets/code/src_corelib_serialization_qcborstream.cpp +@@ -192,7 +192,7 @@ + //! [15] + + //! [16] +- writer.append(b ? QCborSimpleType::True : QCborSimpleType::False); ++ writer.append(b ? QCborSimpleType::True_QCb : QCborSimpleType::False_QCb); + //! [16] + + //! [17] +diff --git a/src/corelib/serialization/qcborcommon.h b/src/corelib/serialization/qcborcommon.h +index bec46399..1d80e076 100644 +--- a/src/corelib/serialization/qcborcommon.h ++++ b/src/corelib/serialization/qcborcommon.h +@@ -58,8 +58,8 @@ + QT_BEGIN_NAMESPACE + + enum class QCborSimpleType : quint8 { +- False = 20, +- True = 21, ++ False_QCb = 20, ++ True_QCb = 21, + Null = 22, + Undefined = 23 + }; +diff --git a/src/corelib/serialization/qcborstreamreader.h b/src/corelib/serialization/qcborstreamreader.h +index 6d5feccf..1fd22b79 100644 +--- a/src/corelib/serialization/qcborstreamreader.h ++++ b/src/corelib/serialization/qcborstreamreader.h +@@ -140,8 +140,8 @@ public: + bool isInvalid() const { return type() == Invalid; } + + bool isSimpleType(QCborSimpleType st) const { return isSimpleType() && toSimpleType() == st; } +- bool isFalse() const { return isSimpleType(QCborSimpleType::False); } +- bool isTrue() const { return isSimpleType(QCborSimpleType::True); } ++ bool isFalse() const { return isSimpleType(QCborSimpleType::False_QCb); } ++ bool isTrue() const { return isSimpleType(QCborSimpleType::True_QCb); } + bool isBool() const { return isFalse() || isTrue(); } + bool isNull() const { return isSimpleType(QCborSimpleType::Null); } + bool isUndefined() const { return isSimpleType(QCborSimpleType::Undefined); } +@@ -158,7 +158,7 @@ public: + qsizetype currentStringChunkSize() const{ Q_ASSERT(isString() || isByteArray()); return _currentStringChunkSize(); } + StringResult readStringChunk(char *ptr, qsizetype maxlen); + +- bool toBool() const { Q_ASSERT(isBool()); return value64 - int(QCborSimpleType::False); } ++ bool toBool() const { Q_ASSERT(isBool()); return value64 - int(QCborSimpleType::False_QCb); } + QCborTag toTag() const { Q_ASSERT(isTag()); return QCborTag(value64); } + quint64 toUnsignedInteger() const { Q_ASSERT(isUnsignedInteger()); return value64; } + QCborNegativeInteger toNegativeInteger() const { Q_ASSERT(isNegativeInteger()); return QCborNegativeInteger(value64 + 1); } +diff --git a/src/corelib/serialization/qcborstreamwriter.h b/src/corelib/serialization/qcborstreamwriter.h +index f8c94ceb..befea659 100644 +--- a/src/corelib/serialization/qcborstreamwriter.h ++++ b/src/corelib/serialization/qcborstreamwriter.h +@@ -93,7 +93,7 @@ public: + void appendTextString(const char *utf8, qsizetype len); + + // convenience +- void append(bool b) { append(b ? QCborSimpleType::True : QCborSimpleType::False); } ++ void append(bool b) { append(b ? QCborSimpleType::True_QCb : QCborSimpleType::False_QCb); } + void appendNull() { append(QCborSimpleType::Null); } + void appendUndefined() { append(QCborSimpleType::Undefined); } + +diff --git a/src/corelib/serialization/qcborvalue.cpp b/src/corelib/serialization/qcborvalue.cpp +index 89a928d3..465b8d20 100644 +--- a/src/corelib/serialization/qcborvalue.cpp ++++ b/src/corelib/serialization/qcborvalue.cpp +@@ -3060,9 +3060,9 @@ QDebug operator<<(QDebug dbg, const QCborValue &v) + Q_CORE_EXPORT const char *qt_cbor_simpletype_id(QCborSimpleType st) + { + switch (st) { +- case QCborSimpleType::False: ++ case QCborSimpleType::False_QCb: + return "False"; +- case QCborSimpleType::True: ++ case QCborSimpleType::True_QCb: + return "True"; + case QCborSimpleType::Null: + return "Null"; +diff --git a/src/corelib/serialization/qcborvalue.h b/src/corelib/serialization/qcborvalue.h +index aa51e5da..b96d500d 100644 +--- a/src/corelib/serialization/qcborvalue.h ++++ b/src/corelib/serialization/qcborvalue.h +@@ -117,8 +117,8 @@ public: + + // range 0x100 - 0x1ff for Simple Types + SimpleType = 0x100, +- False = SimpleType + int(QCborSimpleType::False), +- True = SimpleType + int(QCborSimpleType::True), ++ False = SimpleType + int(QCborSimpleType::False_QCb), ++ True = SimpleType + int(QCborSimpleType::True_QCb), + Null = SimpleType + int(QCborSimpleType::Null), + Undefined = SimpleType + int(QCborSimpleType::Undefined), + +diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.h b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.h +index 22bcb69a..4d5bdc1a 100644 +--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.h ++++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.h +@@ -275,7 +275,7 @@ template<> struct TestValueFactory { + }; + + template<> struct TestValueFactory { +- static QCborSimpleType *create() { return new QCborSimpleType(QCborSimpleType::True); } ++ static QCborSimpleType *create() { return new QCborSimpleType(QCborSimpleType::True_QCb); } + }; + template<> struct TestValueFactory { + static QCborValue *create() { return new QCborValue(123.); } +diff --git a/tests/auto/corelib/serialization/qcborstreamreader/tst_qcborstreamreader.cpp b/tests/auto/corelib/serialization/qcborstreamreader/tst_qcborstreamreader.cpp +index f969bb90..a4d75422 100644 +--- a/tests/auto/corelib/serialization/qcborstreamreader/tst_qcborstreamreader.cpp ++++ b/tests/auto/corelib/serialization/qcborstreamreader/tst_qcborstreamreader.cpp +@@ -454,10 +454,10 @@ static QString parseOne(QCborStreamReader &reader) + } + case QCborStreamReader::SimpleType: + switch (reader.toSimpleType()) { +- case QCborSimpleType::False: ++ case QCborSimpleType::False_QCb: + result = QStringLiteral("false"); + break; +- case QCborSimpleType::True: ++ case QCborSimpleType::True_QCb: + result = QStringLiteral("true"); + break; + case QCborSimpleType::Null: +@@ -577,10 +577,10 @@ bool parseNonRecursive(QString &result, bool &printingStringChunks, QCborStreamR + continue; // skip the comma + case QCborStreamReader::SimpleType: + switch (reader.toSimpleType()) { +- case QCborSimpleType::False: ++ case QCborSimpleType::False_QCb: + result += QStringLiteral("false"); + break; +- case QCborSimpleType::True: ++ case QCborSimpleType::True_QCb: + result += QStringLiteral("true"); + break; + case QCborSimpleType::Null: +diff --git a/tests/auto/corelib/serialization/qcborvalue/tst_qcborvalue.cpp b/tests/auto/corelib/serialization/qcborvalue/tst_qcborvalue.cpp +index 0a780d3e..cf3f9df3 100644 +--- a/tests/auto/corelib/serialization/qcborvalue/tst_qcborvalue.cpp ++++ b/tests/auto/corelib/serialization/qcborvalue/tst_qcborvalue.cpp +@@ -240,12 +240,12 @@ void tst_QCborValue::basics_data() + add(QCborValue::Null, QCborValue::Null, st(QCborSimpleType::Null)); + QTest::newRow("nullptr") << QCborValue::Null << QCborValue(nullptr) + << st(QCborSimpleType::Null); +- add(QCborValue::False, false, st(QCborSimpleType::False)); ++ add(QCborValue::False, false, st(QCborSimpleType::False_QCb)); + QTest::newRow("false") << QCborValue::False << QCborValue(QCborValue::False) +- << st(QCborSimpleType::False); +- add(QCborValue::True, true, st(QCborSimpleType::True)); ++ << st(QCborSimpleType::False_QCb); ++ add(QCborValue::True, true, st(QCborSimpleType::True_QCb)); + QTest::newRow("true") << QCborValue::True << QCborValue(QCborValue::True) +- << st(QCborSimpleType::True); ++ << st(QCborSimpleType::True_QCb); + QTest::newRow("simpletype") << QCborValue::Type(QCborValue::SimpleType + 255) + << QCborValue(QCborSimpleType(255)) + << st(QCborSimpleType(255)); +@@ -297,8 +297,8 @@ static void basicTypeCheck(QCborValue::Type type, const QCborValue &v, const QVa + QCOMPARE(v.isInvalid(), type == QCborValue::Invalid); + QCOMPARE(v.isContainer(), type == QCborValue::Array || type == QCborValue::Map); + QCOMPARE(v.isSimpleType(), isSimpleType); +- QCOMPARE(v.isSimpleType(QCborSimpleType::False), st == QCborSimpleType::False); +- QCOMPARE(v.isSimpleType(QCborSimpleType::True), st == QCborSimpleType::True); ++ QCOMPARE(v.isSimpleType(QCborSimpleType::False_QCb), st == QCborSimpleType::False_QCb); ++ QCOMPARE(v.isSimpleType(QCborSimpleType::True_QCb), st == QCborSimpleType::True_QCb); + QCOMPARE(v.isSimpleType(QCborSimpleType::Null), st == QCborSimpleType::Null); + QCOMPARE(v.isSimpleType(QCborSimpleType::Undefined), st == QCborSimpleType::Undefined); + QCOMPARE(v.isSimpleType(QCborSimpleType(255)), st == QCborSimpleType(255)); +@@ -310,8 +310,8 @@ static void basicTypeCheck(QCborValue::Type type, const QCborValue &v, const QVa + QCOMPARE(v.toInteger(), qint64(expectedValue.toDouble())); + QCOMPARE(v.toDouble(), expectedValue.toDouble()); + } +- QCOMPARE(v.toBool(true), st != QCborSimpleType::False); +- QCOMPARE(v.toBool(), st == QCborSimpleType::True); ++ QCOMPARE(v.toBool(true), st != QCborSimpleType::False_QCb); ++ QCOMPARE(v.toBool(), st == QCborSimpleType::True_QCb); + if (st == QCborSimpleType::Undefined) + QCOMPARE(v.toSimpleType(QCborSimpleType::Null), QCborSimpleType::Undefined); + else if (isSimpleType) +-- +2.27.0 + diff --git a/CVE-2015-9541.patch b/CVE-2015-9541.patch deleted file mode 100644 index 79a68747bdcbd57e4bdbc6b09e61e8c075118033..0000000000000000000000000000000000000000 --- a/CVE-2015-9541.patch +++ /dev/null @@ -1,159 +0,0 @@ -From fd4be84d23a0db4186cb42e736a9de3af722c7f7 Mon Sep 17 00:00:00 2001 -From: Lars Knoll -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. - -Added a setter and getter to allow modifying the expansion limit. - -[ChangeLog][QtCore][QXmlStream] QXmlStreamReader does now by default -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. The -limit can be changed through the QXmlStreamReader::setEntityExpansionLimit() -method. - -Fixes: QTBUG-47417 -Change-Id: I94387815d74fcf34783e136387ee57fac5ded0c9 -Reviewed-by: Oswald Buddenhagen -Reviewed-by: Volker Hilsheimer ---- - src/corelib/serialization/qxmlstream.cpp | 36 ++++++++++++++++++ - src/corelib/serialization/qxmlstream.g | 14 ++++++- - src/corelib/serialization/qxmlstream.h | 2 + - src/corelib/serialization/qxmlstream_p.h | 14 ++++++- - .../serialization/qxmlstream/tst_qxmlstream.cpp | 44 +++++++++++++++++++++- - 5 files changed, 106 insertions(+), 4 deletions(-) - -diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp -index 7ff87885a5..d7fb0d0d41 100644 ---- a/src/corelib/serialization/qxmlstream.cpp -+++ b/src/corelib/serialization/qxmlstream.cpp -@@ -2041,6 +2041,42 @@ QStringRef QXmlStreamReader::dtdSystemId() const - return QStringRef(); - } - -+/*! -+ \since 5.15 -+ -+ Returns the maximum amount of characters a single entity is -+ allowed to expand into. If a single entity expands past the -+ given limit, the document is not considered well formed. -+ -+ \sa setEntityExpansionLimit -+*/ -+int QXmlStreamReader::entityExpansionLimit() const -+{ -+ Q_D(const QXmlStreamReader); -+ return d->entityExpansionLimit; -+} -+ -+/*! -+ \since 5.15 -+ -+ Sets the maximum amount of characters a single entity is -+ allowed to expand into to \a limit. If a single entity expands -+ past the given limit, the document is not considered well formed. -+ -+ The limit is there to prevent DoS attacks when loading unknown -+ XML documents where recursive entity expansion could otherwise -+ exhaust all available memory. -+ -+ The default value for this property is 4096 characters. -+ -+ \sa entityExpansionLimit -+*/ -+void QXmlStreamReader::setEntityExpansionLimit(int limit) -+{ -+ Q_D(QXmlStreamReader); -+ d->entityExpansionLimit = limit; -+} -+ - /*! If the tokenType() is \l StartElement, this function returns the - element's namespace declarations. Otherwise an empty vector is - returned. -diff --git a/src/corelib/serialization/qxmlstream.g b/src/corelib/serialization/qxmlstream.g -index 12ecc9bdb2..b623de9505 100644 ---- a/src/corelib/serialization/qxmlstream.g -+++ b/src/corelib/serialization/qxmlstream.g -@@ -285,9 +285,19 @@ public: - QHash entityHash; - QHash parameterEntityHash; - QXmlStreamSimpleStackentityReferenceStack; -+ 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; -@@ -838,6 +848,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.h b/src/corelib/serialization/qxmlstream.h -index 7d0aa64570..c8647e0465 100644 ---- a/src/corelib/serialization/qxmlstream.h -+++ b/src/corelib/serialization/qxmlstream.h -@@ -426,6 +426,8 @@ public: - QStringRef dtdPublicId() const; - QStringRef dtdSystemId() const; - -+ int entityExpansionLimit() const; -+ void setEntityExpansionLimit(int limit); - - enum Error { - NoError, -diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h -index 9c94e6d434..103b123b10 100644 ---- a/src/corelib/serialization/qxmlstream_p.h -+++ b/src/corelib/serialization/qxmlstream_p.h -@@ -774,9 +774,19 @@ public: - QHash entityHash; - QHash parameterEntityHash; - QXmlStreamSimpleStackentityReferenceStack; -+ 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/CVE-2018-15518.patch b/CVE-2018-15518.patch deleted file mode 100644 index 409731d32724a52e96d86d3a1f3697919f46b956..0000000000000000000000000000000000000000 --- a/CVE-2018-15518.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6256729a6da532079505edfe4c56a6ef29cd8ab8 Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen -Date: Mon, 13 Aug 2018 15:29:16 +0200 -Subject: [PATCH] Fix possible heap corruption in QXmlStream - -The value of 'tos' at the check might already be on the last element, -so triggering stack expansion on the second last element is too late. - -Change-Id: Ib3ab2662d4d27a71effe9e988b9e172923af2908 -Reviewed-by: Richard J. Moore -Reviewed-by: Thiago Macieira ---- - src/corelib/serialization/qxmlstream_p.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h -index 4157fbbd0e0..f8b1ede9439 100644 ---- a/src/corelib/serialization/qxmlstream_p.h -+++ b/src/corelib/serialization/qxmlstream_p.h -@@ -1250,7 +1250,7 @@ bool QXmlStreamReaderPrivate::parse() - state_stack[tos] = 0; - return true; - } else if (act > 0) { -- if (++tos == stack_size-1) -+ if (++tos >= stack_size-1) - reallocateStack(); - - Value &val = sym_stack[tos]; --- -2.16.3 - diff --git a/CVE-2019-18281.patch b/CVE-2019-18281.patch deleted file mode 100644 index c4ae797be3e78ffa0ba69872709583b38f4f71e1..0000000000000000000000000000000000000000 --- a/CVE-2019-18281.patch +++ /dev/null @@ -1,101 +0,0 @@ -From af267657ea11e292012ac02634e8bd2dcf8328c7 Mon Sep 17 00:00:00 2001 -From: wang_yue111 <648774160@qq.com> -Date: Wed, 21 Apr 2021 11:35:47 +0800 -Subject: [PATCH] Fix crash when text contains too many directional chars - -In case a text to be layouted contains more than 128 directional characters -it causes the application to crash - -The function initScriptAnalysisAndIsolatePairs() collects information of -RTL/LTR chaaracters into vector "isolatePairs". The size of the vector is -capped to 128. Later the function generateDirectionalRuns() iterates -the text again and tries to access items from the previously capped vector -above the upper bound. - -Task-number: QTBUG-77819 -Change-Id: Ibb7bf12c12b1db22f43ff46236518da3fdeed26a -Reviewed-by: Simon Hausmann -(cherry picked from commit 1232205e32464d90e871f39eb1e14fcf9b78a163) -Reviewed-by: Jukka Jokiniva -Reviewed-by: Volker Hilsheimer ---- - src/gui/text/qtextengine.cpp | 15 +++++++-------- - .../gui/text/qtextlayout/tst_qtextlayout.cpp | 17 +++++++++++++++++ - 2 files changed, 24 insertions(+), 8 deletions(-) - -diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp -index 5e38311f..0c405cbf 100644 ---- a/src/gui/text/qtextengine.cpp -+++ b/src/gui/text/qtextengine.cpp -@@ -393,6 +393,7 @@ struct QBidiAlgorithm { - analysis[i].bidiDirection = (level & 1) ? QChar::DirR : QChar::DirL; - runHasContent = true; - lastRunWithContent = -1; -+ ++isolatePairPosition; - } - int runBeforeIsolate = runs.size(); - ushort newLevel = isRtl ? ((stack.top().level + 1) | 1) : ((stack.top().level + 2) & ~1); -@@ -434,20 +435,18 @@ struct QBidiAlgorithm { - doEmbed(true, true, false); - break; - case QChar::DirLRI: -- ++isolatePairPosition; -- Q_ASSERT(isolatePairs.at(isolatePairPosition).start == i); - doEmbed(false, false, true); - break; - case QChar::DirRLI: -- ++isolatePairPosition; -- Q_ASSERT(isolatePairs.at(isolatePairPosition).start == i); - doEmbed(true, false, true); - break; - case QChar::DirFSI: { -- ++isolatePairPosition; -- const auto &pair = isolatePairs.at(isolatePairPosition); -- Q_ASSERT(pair.start == i); -- bool isRtl = QStringView(text + pair.start + 1, pair.end - pair.start - 1).isRightToLeft(); -+ bool isRtl = false; -+ if (isolatePairPosition < isolatePairs.size()) { -+ const auto &pair = isolatePairs.at(isolatePairPosition); -+ Q_ASSERT(pair.start == i); -+ isRtl = QStringView(text + pair.start + 1, pair.end - pair.start - 1).isRightToLeft(); -+ } - doEmbed(isRtl, false, true); - break; - } -diff --git a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp -index 4e3d1da8..ec8b6116 100644 ---- a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp -+++ b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp -@@ -137,6 +137,7 @@ private slots: - void nbspWithFormat(); - void noModificationOfInputString(); - void superscriptCrash_qtbug53911(); -+ void tooManyDirectionalCharctersCrash_qtbug77819(); - - private: - QFont testFont; -@@ -2291,5 +2292,21 @@ void tst_QTextLayout::nbspWithFormat() - QCOMPARE(layout.lineAt(1).textLength(), s2.length() + 1 + s3.length()); - } - -+void tst_QTextLayout::tooManyDirectionalCharctersCrash_qtbug77819() -+{ -+ QString data; -+ data += QString::fromUtf8("\xe2\x81\xa8"); // U+2068 FSI character -+ data += QString::fromUtf8("\xe2\x81\xa7"); // U+2067 RLI character -+ -+ // duplicating the text -+ for (int i = 0; i < 10; i++) -+ data += data; -+ -+ // Nothing to test. It must not crash in beginLayout(). -+ QTextLayout tl(data); -+ tl.beginLayout(); -+ tl.endLayout(); -+} -+ - QTEST_MAIN(tst_QTextLayout) - #include "tst_qtextlayout.moc" --- -2.23.0 - diff --git a/qt5-qtbase-5.9.1-firebird.patch b/qt5-qtbase-5.12.1-firebird.patch similarity index 38% rename from qt5-qtbase-5.9.1-firebird.patch rename to qt5-qtbase-5.12.1-firebird.patch index a3510d988f38f55f6aa7120bb158e4518df7f6a6..674a5b5a2ded56a3951ac04be8dc7573f1b225e9 100644 --- a/qt5-qtbase-5.9.1-firebird.patch +++ b/qt5-qtbase-5.12.1-firebird.patch @@ -1,14 +1,12 @@ -diff --git a/src/plugins/sqldrivers/configure.json b/src/plugins/sqldrivers/configure.json -index 234f880..7b13671 100644 ---- a/src/plugins/sqldrivers/configure.json -+++ b/src/plugins/sqldrivers/configure.json -@@ -50,11 +50,12 @@ +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": { -- "include": "ibase.h" -+ "include": "firebird/ibase.h" - }, + "test": {}, +- "headers": "ibase.h", ++ "headers": "firebird/ibase.h", "sources": [ { "libs": "-lgds32_ms", "condition": "config.win32" }, - { "libs": "-lgds", "condition": "!config.win32" } @@ -17,16 +15,15 @@ index 234f880..7b13671 100644 ] }, "mysql": { -diff --git a/src/plugins/sqldrivers/ibase/qsql_ibase_p.h b/src/plugins/sqldrivers/ibase/qsql_ibase_p.h -index c7cee41..6a9c56c 100644 ---- a/src/plugins/sqldrivers/ibase/qsql_ibase_p.h -+++ b/src/plugins/sqldrivers/ibase/qsql_ibase_p.h +diff -up qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/ibase/qsql_ibase_p.h.firebird qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/ibase/qsql_ibase_p.h +--- qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/ibase/qsql_ibase_p.h.firebird 2019-01-28 11:11:52.000000000 -0600 ++++ qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/ibase/qsql_ibase_p.h 2019-02-03 13:27:30.683142996 -0600 @@ -52,7 +52,7 @@ // - + #include -#include +#include - + #ifdef QT_PLUGIN #define Q_EXPORT_SQLDRIVER_IBASE diff --git a/qt5-qtbase-gcc11.patch b/qt5-qtbase-gcc11.patch new file mode 100644 index 0000000000000000000000000000000000000000..c9567128a93c248140ec66c0c133d53917698d8e --- /dev/null +++ b/qt5-qtbase-gcc11.patch @@ -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 + #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 ++ + #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 + #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 + #include "qfloat16.h" + #include "private/qsimd_p.h" + #include // 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 + #include "qrandom.h" + #include "qrandom_p.h" + #include +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 + #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 ++ + #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 + #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 ++ + #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 + #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 + #include "qbytearraymatcher.h" + + #include +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 + #include "qbitarray.h" + #include + #include +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 + #include + #include + +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 + #include "qfontengine_qpf2_p.h" + + #include diff --git a/qt5-qtbase-glibc.patch b/qt5-qtbase-glibc.patch deleted file mode 100644 index 022b6983fb6fb59ac7652a7ab96bb991df5ebc21..0000000000000000000000000000000000000000 --- a/qt5-qtbase-glibc.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff -up qtbase-everywhere-src-5.11.1/mkspecs/linux-g++/qplatformdefs.h.glibc qtbase-everywhere-src-5.11.1/mkspecs/linux-g++/qplatformdefs.h ---- qtbase-everywhere-src-5.11.1/mkspecs/linux-g++/qplatformdefs.h.glibc 2018-06-15 09:29:31.000000000 +0200 -+++ qtbase-everywhere-src-5.11.1/mkspecs/linux-g++/qplatformdefs.h 2018-07-26 15:40:56.887961897 +0200 -@@ -72,7 +72,9 @@ - #include - #include - #include -+#if 0 - #include -+#endif - #include - #include - -diff -up qtbase-everywhere-src-5.11.1/src/corelib/io/qfilesystemengine_unix.cpp.glibc qtbase-everywhere-src-5.11.1/src/corelib/io/qfilesystemengine_unix.cpp ---- qtbase-everywhere-src-5.11.1/src/corelib/io/qfilesystemengine_unix.cpp.glibc 2018-06-15 09:29:31.000000000 +0200 -+++ qtbase-everywhere-src-5.11.1/src/corelib/io/qfilesystemengine_unix.cpp 2018-07-26 16:34:54.346840184 +0200 -@@ -50,7 +50,9 @@ - #include - #include // for realpath() - #include -+#if 0 - #include -+#endif - #include - #include - #include -@@ -91,7 +93,9 @@ extern "C" NSString *NSTemporaryDirector - # include - # include - # include -+#if 0 - # include -+#endif - - // in case linux/fs.h is too old and doesn't define it: - #ifndef FICLONE -@@ -105,13 +109,13 @@ extern "C" NSString *NSTemporaryDirector - # undef SYS_renameat2 - # undef SYS_statx - # undef STATX_BASIC_STATS --# else --# if !QT_CONFIG(renameat2) && defined(SYS_renameat2) -+# else -+# if 0 && !QT_CONFIG(renameat2) && defined(SYS_renameat2) - static int renameat2(int oldfd, const char *oldpath, int newfd, const char *newpath, unsigned flags) - { return syscall(SYS_renameat2, oldfd, oldpath, newfd, newpath, flags); } - # endif - --# if !QT_CONFIG(statx) && defined(SYS_statx) -+# if 0 && !QT_CONFIG(statx) && defined(SYS_statx) - static int statx(int dirfd, const char *pathname, int flag, unsigned mask, struct statx *statxbuf) - { return syscall(SYS_statx, dirfd, pathname, flag, mask, statxbuf); } - # elif !QT_CONFIG(statx) && !defined(SYS_statx) diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index edc380fa39288941a3fb0ec3e455173067656206..e550c592e22d5e9e53fceb1b10af8a9cca126f06 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -1,148 +1,414 @@ -%global __provides_exclude_from ^%{_qt5_plugindir}/.*\\.so$ -%global __requires_exclude_from ^%{_qt5_plugindir}/platformthemes/.*$ -%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) +# See http://bugzilla.redhat.com/223663 +%global multilib_archs x86_64 %{ix86} %{?mips} ppc64 ppc s390x s390 sparc64 sparcv9 +%global multilib_basearchs x86_64 %{?mips64} ppc64 s390x sparc64 + +%global openssl -openssl-linked + +# support qtchooser (adds qtchooser .conf file) +%global qtchooser 1 +%if 0%{?qtchooser} %global priority 10 -%ifarch x86_64 +%ifarch %{multilib_basearchs} %global priority 15 %endif +%endif + +%global platform linux-g++ %if 0%{?use_clang} %global platform linux-clang %endif +%global qt_module qtbase + +%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) + +%global journald -journald +BuildRequires: make +BuildRequires: pkgconfig(libsystemd) + +%global examples 1 +## skip for now, until we're better at it --rex +#global tests 1 + Name: qt5-qtbase -Summary: Core component of Qt toolkit -Version: 5.11.1 -Release: 14 +Summary: Qt5 - QtBase components +Version: 5.15.2 +Release: 1 + + +# See LGPL_EXCEPTIONS.txt, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions Url: http://qt-project.org/ -Source0: https://download.qt.io/new_archive/qt/5.11/%{version}/submodules/qtbase-everywhere-src-%{version}.tar.xz +%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 + +# https://bugzilla.redhat.com/show_bug.cgi?id=1227295 Source1: qtlogging.ini + +# header file to workaround multilib issue +# https://bugzilla.redhat.com/show_bug.cgi?id=1036956 Source2: qconfig-multilib.h + +# xinitrc script to check for OpenGL 1 only drivers and automatically set +# QT_XCB_FORCE_SOFTWARE_OPENGL for them Source3: 10-qt5-check-opengl2.sh + +# macros Source4: macros.qt5-qtbase -Patch0000: 0001-Fix-compile-issue-with-gcc-9.patch -Patch0001: qtbase-multilib_optflags.patch -Patch0002: qtbase-opensource-src-5.3.2-QTBUG-35459.patch -Patch0003: tell-the-truth-about-private-api.patch -Patch0004: qtbase-opensource-src-5.8.0-QT_VERSION_CHECK.patch -Patch0005: qtbase-hidpi_scale_at_192.patch -Patch0006: qtbase-opensource-src-5.7.1-moc_macros.patch -Patch0007: qtbase-qmake_LFLAGS.patch +# support multilib optflags +Patch0000: qtbase-multilib_optflags.patch + +# borrowed from opensuse +# track private api via properly versioned symbols +# downside: binaries produced with these differently-versioned symbols are no longer +# compatible with qt-project.org's Qt binary releases. +Patch0001: tell-the-truth-about-private-api.patch + +# upstreamable patches +# namespace QT_VERSION_CHECK to workaround major/minor being pre-defined (#1396755) +Patch0002: qtbase-opensource-src-5.8.0-QT_VERSION_CHECK.patch + +# 1381828 - Broken window scaling for some QT5 applications (#1381828) +# This patch moves the threshold for 2x scaling from the DPI of 144 to 192, +# the same value GNOME uses. It's not a complete solution... +Patch0003: qtbase-hidpi_scale_at_192.patch + +# 1. Workaround moc/multilib issues +# https://bugzilla.redhat.com/show_bug.cgi?id=1290020 +# https://bugreports.qt.io/browse/QTBUG-49972 +# 2. Workaround sysmacros.h (pre)defining major/minor a breaking stuff +Patch0004: qtbase-opensource-src-5.7.1-moc_macros.patch + +# CMake generates wrong -isystem /usr/include compilations flags with Qt5::Gui +# https://bugzilla.redhat.com/1704474 +Patch0005: qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch + +# respect QMAKE_LFLAGS_RELEASE when building qmake +Patch0006: qtbase-qmake_LFLAGS.patch + +# don't use relocatable heuristics to guess prefix when using -no-feature-relocatable +Patch0007: qtbase-everywhere-src-5.14.2-no_relocatable.patch + +# drop -O3 and make -O2 by default Patch0008: qt5-qtbase-cxxflag.patch -Patch0009: qt5-qtbase-5.9.1-firebird.patch -Patch0010: qtbase-everywhere-src-5.11.1-python3.patch -Patch0011: qt5-qtbase-glibc.patch -Patch0012: qtbase5-double-conversion-add-riscv.patch -Patch6000: CVE-2018-15518.patch -Patch6001: CVE-2015-9541.patch -Patch6002: CVE-2019-18281.patch - -BuildRequires: pkgconfig(libsystemd) cups-devel desktop-file-utils findutils -BuildRequires: libjpeg-devel libmng-devel libtiff-devel pkgconfig(alsa) -BuildRequires: pkgconfig(atspi-2) pkgconfig(dbus-1) pkgconfig(libdrm) -BuildRequires: pkgconfig(fontconfig) pkgconfig(gl) pkgconfig(glib-2.0) -BuildRequires: pkgconfig(gtk+-3.0) pkgconfig(libproxy-1.0) pkgconfig(ice) pkgconfig(sm) -BuildRequires: pkgconfig(libpng) pkgconfig(libudev) openssl-devel%{?openssl11: >= 1.1} -BuildRequires: pkgconfig(libpulse) pkgconfig(libpulse-mainloop-glib) -BuildRequires: pkgconfig(xkeyboard-config) pkgconfig(egl) pkgconfig(gbm) pkgconfig(glesv2) -BuildRequires: pkgconfig(sqlite3) >= 3.7 pkgconfig(icu-i18n) pkgconfig(libpcre2-posix) >= 10.20 -BuildRequires: pkgconfig(libpcre) >= 8.0 pkgconfig(xcb-xkb) pkgconfig(xcb) pkgconfig(xcb-glx) -BuildRequires: pkgconfig(xcb-icccm) pkgconfig(xcb-image) pkgconfig(xcb-keysyms) -BuildRequires: pkgconfig(xcb-renderutil) pkgconfig(zlib) perl-generators qt5-rpm-macros +# support firebird version 3.x +Patch0009: qt5-qtbase-5.12.1-firebird.patch + +# fix for new mariadb +Patch0010: qtbase-opensource-src-5.9.0-mysql.patch + +# python3 +Patch0011: qtbase-everywhere-src-5.11.1-python3.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=1732129 +Patch0012: qtbase-use-wayland-on-gnome.patch + +# gcc-11 +Patch0013: %{name}-gcc11.patch + +# glibc stat + +## upstream patches +# see also patch90 +Patch0014: qtbase-QTBUG-90395.patch +Patch0015: qtbase-QTBUG-89977.patch +Patch0016: qtbase-filechooser-portal-send-window-id-in-hex.patch +Patch0017: qtbase-QTBUG-91909.patch +Patch0018: 0001-modify-kwin_5.18-complier-error.patch +# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires. +# Those themes are there for platform integration. If the required libraries are +# not there, the platform to integrate with isn't either. Then Qt will just +# silently ignore the plugin that fails to load. Thus, there is no need to let +# RPM drag in gtk3 as a dependency for the GTK+3 dialog support. +%global __requires_exclude_from ^%{_qt5_plugindir}/platformthemes/.*$ +# filter plugin provides +%global __provides_exclude_from ^%{_qt5_plugindir}/.*\\.so$ + +BuildRequires: cups-devel +BuildRequires: desktop-file-utils +BuildRequires: findutils +BuildRequires: libjpeg-devel +BuildRequires: libmng-devel +BuildRequires: libtiff-devel +BuildRequires: pkgconfig(alsa) +# required for -accessibility +BuildRequires: pkgconfig(atspi-2) %if 0%{?use_clang} BuildRequires: clang >= 3.7.0 %else BuildRequires: gcc-c++ %endif +# http://bugzilla.redhat.com/1196359 + +%global dbus -dbus-linked +BuildRequires: pkgconfig(dbus-1) + +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(libproxy-1.0) +# xcb-sm +BuildRequires: pkgconfig(ice) pkgconfig(sm) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libudev) +BuildRequires: openssl-devel +BuildRequires: pkgconfig(libpulse) pkgconfig(libpulse-mainloop-glib) +BuildRequires: pkgconfig(libinput) +BuildRequires: pkgconfig(xcb-xkb) >= 1.10 +BuildRequires: pkgconfig(xcb-util) +BuildRequires: pkgconfig(xkbcommon) >= 0.4.1 +BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.1 +BuildRequires: pkgconfig(xkeyboard-config) +%global vulkan 1 +BuildRequires: pkgconfig(vulkan) + +%global egl 1 +BuildRequires: libEGL-devel +BuildRequires: pkgconfig(gbm) +## TODO: apparently only needed if building opengl_es2 support, do we actually use it? -- rex +BuildRequires: pkgconfig(glesv2) +%global sqlite -system-sqlite +BuildRequires: pkgconfig(sqlite3) >= 3.7 + +%global harfbuzz -system-harfbuzz +BuildRequires: pkgconfig(harfbuzz) >= 0.9.42 + +BuildRequires: pkgconfig(icu-i18n) +BuildRequires: pkgconfig(libpcre2-posix) >= 10.20 +BuildRequires: pkgconfig(libpcre) >= 8.0 +%global pcre -system-pcre +BuildRequires: pkgconfig(xcb-xkb) + +BuildRequires: libicu-devel +%global pcre -qt-pcre + +BuildRequires: pkgconfig(xcb) pkgconfig(xcb-glx) pkgconfig(xcb-icccm) pkgconfig(xcb-image) pkgconfig(xcb-keysyms) pkgconfig(xcb-renderutil) +BuildRequires: pkgconfig(zlib) +BuildRequires: perl-generators +# see patch68 +BuildRequires: python3 +BuildRequires: qt5-rpm-macros %if 0%{?tests} -BuildRequires: dbus-x11 mesa-dri-drivers time xorg-x11-server-Xvfb +BuildRequires: dbus-x11 +BuildRequires: mesa-dri-drivers +BuildRequires: time +BuildRequires: xorg-x11-server-Xvfb %endif -%if 0%{?use_clang} -BuildRequires: clang >= 3.7.0 -%else -BuildRequires: gcc-c++ +%if 0%{?qtchooser} + +Conflicts: qt < 1:4.8.6-10 + +Requires(post): %{_sbindir}/update-alternatives +Requires(postun): %{_sbindir}/update-alternatives %endif +Requires: qt-settings +Requires: %{name}-common = %{version}-%{release} + +## Sql drivers + +%global ibase -no-sql-ibase +%global tds -no-sql-tds + -Requires(post): chkconfig -Requires(postun): chkconfig -Requires: qt-settings %{name}-common = %{version}-%{release} -Provides: bundled(libxkbcommon) = 0.4.1 +# workaround gold linker bug(s) by not using it +# https://bugzilla.redhat.com/1458003 +# https://sourceware.org/bugzilla/show_bug.cgi?id=21074 +# reportedly fixed or worked-around, re-enable if there's evidence of problems -- rex +# https://bugzilla.redhat.com/show_bug.cgi?id=1635973 +%global use_gold_linker -no-use-gold-linker %description -This package provides base tools, such as string, xml, and network +Qt is a software toolkit for developing applications. + +This package contains base tools, like string, xml, and network handling. %package common -Summary: Common files for qt5-qtbase -Obsoletes: qt5-qtquick1 < 5.9.0 qt5-qtquick1-devel < 5.9.0 +Summary: Common files for Qt5 +# offer upgrade path for qtquick1 somewhere... may as well be here -- rex +Obsoletes: qt5-qtquick1 < 5.9.0 +Obsoletes: qt5-qtquick1-devel < 5.9.0 Requires: %{name} = %{version}-%{release} BuildArch: noarch %description common -The qt5-qtbase-common package contains common files for qt5-qtbase. +%{summary}. %package devel -Summary: Library and header files for qt5-qtbase -Requires: %{name} = %{version}-%{release} %{name}-gui pkgconfig(egl) pkgconfig(gl) -Requires: qt5-rpm-macros pkgconfig(fontconfig) pkgconfig(glib-2.0) pkgconfig(zlib) +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-gui%{?_isa} +%if 0%{?egl} +Requires: libEGL-devel +%endif +Requires: pkgconfig(gl) +%if 0%{?vulkan} +Requires: pkgconfig(vulkan) +%endif +Requires: qt5-rpm-macros %if 0%{?use_clang} -Requires: clang >= 3.7.0 +Requires: clang >= 3.7.0 %endif -Provides: %{name}-private-devel = %{version}-%{release} -Provides: %{name}-static = %{version}-%{release} %{name}-examples = %{version}-%{release} -Obsoletes: %{name}-static < %{version}-%{release} %{name}-examples < %{version}-%{release} %description devel -The qt5-qtbase-devel contains libraries and header files for qt5-qtbase. +%{summary}. + +%package private-devel +Summary: Development files for %{name} private APIs +# upgrade path, when private-devel was introduced +Obsoletes: %{name}-devel < 5.12.1-3 +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +# QtPrintSupport/private requires cups/ppd.h +Requires: cups-devel +%description private-devel +%{summary}. + +%package examples +Summary: Programming examples for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description examples +%{summary}. + +%package static +Summary: Static library files for %{name} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Requires: pkgconfig(fontconfig) +Requires: pkgconfig(glib-2.0) +Requires: pkgconfig(libinput) +Requires: pkgconfig(xkbcommon) +Requires: pkgconfig(zlib) + +%description static +%{summary}. + +%if "%{?ibase}" != "-no-sql-ibase" +%package ibase +Summary: IBase driver for Qt5's SQL classes +BuildRequires: firebird-devel +Requires: %{name}%{?_isa} = %{version}-%{release} +%description ibase +%{summary}. +%endif %package mysql Summary: MySQL driver for Qt5's SQL classes -BuildRequires: mysql-devel -Requires: %{name} = %{version}-%{release} + +BuildRequires: mariadb-connector-c-devel + +#BuildRequires: mysql-devel + +Requires: %{name}%{?_isa} = %{version}-%{release} %description mysql -Qt5-qtbase-mysql provides MySQL driver for Qt5's SQL classes. +%{summary}. %package odbc Summary: ODBC driver for Qt5's SQL classes BuildRequires: unixODBC-devel -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %description odbc -Qt5-qtbase-odbc provides ODBC driver for Qt5's SQL classes. +%{summary}. %package postgresql Summary: PostgreSQL driver for Qt5's SQL classes -BuildRequires: postgresql-devel -Requires: %{name} = %{version}-%{release} +BuildRequires: libpq-devel +Requires: %{name}%{?_isa} = %{version}-%{release} %description postgresql -Qt5-qtbase-postgresql provides postgreSQL driver for Qt5's SQL classes. - +%{summary}. + +%if "%{?tds}" != "-no-sql-tds" +%package tds +Summary: TDS driver for Qt5's SQL classes +BuildRequires: freetds-devel +Requires: %{name}%{?_isa} = %{version}-%{release} +%description tds +%{summary}. +%endif +# debating whether to do 1 subpkg per library or not -- rex %package gui -Summary: Qt5 GUI-related libraries -Requires: %{name} = %{version}-%{release} glx-utils -Provides: qt5-qtbase-x11 = %{version}-%{release} -Obsoletes: qt5-qtbase-x11 < 5.2.0 +Summary: Qt5 GUI-related libraries +Requires: %{name}%{?_isa} = %{version}-%{release} +Recommends: mesa-dri-drivers +Obsoletes: qt5-qtbase-x11 < 5.2.0 +Provides: qt5-qtbase-x11 = %{version}-%{release} +# for Source3: 10-qt5-check-opengl2.sh: +# glxinfo +Requires: glx-utils %description gui -qt5-qtbase-gui is a library helps to draw widgets and OpenGL items with. +Qt5 libraries used for drawing widgets and OpenGL items. -%prep -%autosetup -n qtbase-everywhere-src-%{version} -p1 +%prep +%setup -q -n %{qt_module}-everywhere-src-%{version} + +## upstream fixes + +# omit '-b .tell-the-truth-about-private-api' so it doesn't end up in installed files -- rdieter +%patch0001 -p1 + +%patch0002 -p1 -b .QT_VERSION_CHECK +# FIXME/TODO : rebase or drop -- rdieter +#patch51 -p1 -b .hidpi_scale_at_192 +%patch0004 -p1 -b .moc_macros +%patch0005 -p1 -b .qt5gui_cmake_isystem_includes +%patch0006 -p1 -b .qmake_LFLAGS +%patch0007 -p1 -b .no_relocatable +%patch0008 -p1 -b .qt5-qtbase-cxxflag +%patch0009 -p1 -b .firebird +%patch0010 -p1 -b .mysql +%patch0011 -p1 +%patch0012 -p1 -b .use-wayland-on-gnome.patch +%patch0013 -p1 -b .gcc11 + +## upstream patches +%patch0014 -p1 -b .QTBUG-90395 +%patch0015 -p1 -b .QTBUG-89977 +%patch0017 -p1 -b .QTBUG-91909 +%patch0018 -p1 +# move some bundled libs to ensure they're not accidentally used pushd src/3rdparty mkdir UNUSED -mv freetype libjpeg libpng zlib sqlite xcb UNUSED/ +mv freetype libjpeg libpng zlib UNUSED/ +%if "%{?sqlite}" == "-system-sqlite" +mv sqlite UNUSED/ +%endif +%if "%{?xcb}" != "-qt-xcb" +mv xcb UNUSED/ +%endif popd +# builds failing mysteriously on f20 +# ./configure: Permission denied +# check to ensure that can't happen -- rex test -x configure || chmod +x configure +# use proper perl interpretter so autodeps work as expected sed -i -e "s|^#!/usr/bin/env perl$|#!%{__perl}|" \ - bin/fixqt4headers.pl bin/syncqt.pl mkspecs/features/data/unix/findclasslist.pl + bin/fixqt4headers.pl \ + bin/syncqt.pl \ + mkspecs/features/data/unix/findclasslist.pl %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: +# * 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) + +## adjust $RPM_OPT_FLAGS +# remove -fexceptions RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'` RPM_OPT_FLAGS="$RPM_OPT_FLAGS %{?qt5_arm_flag} %{?qt5_deprecated_flag} %{?qt5_null_flag}" @@ -150,32 +416,82 @@ RPM_OPT_FLAGS="$RPM_OPT_FLAGS %{?qt5_arm_flag} %{?qt5_deprecated_flag} %{?qt5_nu RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fno-delete-null-pointer-checks||g'` %endif -export CFLAGS="$CFLAGS $RPM_OPT_FLAGS" CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS" -export LDFLAGS="$LDFLAGS $RPM_LD_FLAGS" MAKEFLAGS="%{?_smp_mflags}" - -./configure -verbose -confirm-license -opensource -prefix %{_qt5_prefix} \ - -archdatadir %{_qt5_archdatadir} -bindir %{_qt5_bindir} -libdir %{_qt5_libdir} \ - -libexecdir %{_qt5_libexecdir} -datadir %{_qt5_datadir} -docdir %{_qt5_docdir} \ - -examplesdir %{_qt5_examplesdir} -headerdir %{_qt5_headerdir} -importdir %{_qt5_importdir} \ - -plugindir %{_qt5_plugindir} -sysconfdir %{_qt5_sysconfdir} -translationdir %{_qt5_translationdir} \ - -platform linux-g++ -release -shared -accessibility -dbus-linked -fontconfig -glib -gtk \ - -no-sql-ibase -icu -journald -optimized-qmake -openssl-linked %{!?tests:-nomake tests} -no-pch \ - -no-rpath -no-separate-debug-info -no-strip -system-libjpeg -system-libpng %{?harfbuzz} -system-pcre \ - -system-sqlite -no-sql-tds %{?xcb} -qt-xkbcommon -system-zlib %{?use_gold_linker} -no-directfb \ - QMAKE_CFLAGS_RELEASE="${CFLAGS:-$RPM_OPT_FLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \ +export CFLAGS="$CFLAGS $RPM_OPT_FLAGS" +export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS" +export LDFLAGS="$LDFLAGS $RPM_LD_FLAGS" +export MAKEFLAGS="%{?_smp_mflags}" + +./configure \ + -verbose \ + -confirm-license \ + -opensource \ + -prefix %{_qt5_prefix} \ + -archdatadir %{_qt5_archdatadir} \ + -bindir %{_qt5_bindir} \ + -libdir %{_qt5_libdir} \ + -libexecdir %{_qt5_libexecdir} \ + -datadir %{_qt5_datadir} \ + -docdir %{_qt5_docdir} \ + -examplesdir %{_qt5_examplesdir} \ + -headerdir %{_qt5_headerdir} \ + -importdir %{_qt5_importdir} \ + -plugindir %{_qt5_plugindir} \ + -sysconfdir %{_qt5_sysconfdir} \ + -translationdir %{_qt5_translationdir} \ + -platform %{platform} \ + -release \ + -shared \ + -accessibility \ + %{?dbus}%{!?dbus:-dbus-runtime} \ + %{?egl:-egl} \ + -fontconfig \ + -glib \ + -gtk \ + %{?ibase} \ + -icu \ + %{?journald} \ + -optimized-qmake \ + %{?openssl} \ + %{!?examples:-nomake examples} \ + %{!?tests:-nomake tests} \ + -no-pch \ + -no-reduce-relocations \ + -no-rpath \ + -no-separate-debug-info \ + -no-strip \ + -system-libjpeg \ + -system-libpng \ + %{?harfbuzz} \ + %{?pcre} \ + %{?sqlite} \ + %{?tds} \ + %{?xcb} \ + %{?xkbcommon} \ + -system-zlib \ + %{?use_gold_linker} \ + -no-directfb \ + -no-feature-relocatable \ + QMAKE_CFLAGS_RELEASE="${CFLAGS:-$RPM_OPT_FLAGS}" \ + QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \ QMAKE_LFLAGS_RELEASE="${LDFLAGS:-$RPM_LD_FLAGS}" +# ensure qmake build using optflags (which can happen if not munging qmake.conf defaults) make clean -C qmake -%make_build -C qmake all binary QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \ - QMAKE_CFLAGS_RELEASE="${CFLAGS:-$RPM_OPT_FLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS:-$RPM_LD_FLAGS}" QMAKE_STRIP= +%make_build -C qmake all binary \ + QMAKE_CFLAGS_RELEASE="${CFLAGS:-$RPM_OPT_FLAGS}" \ + QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \ + QMAKE_LFLAGS_RELEASE="${LDFLAGS:-$RPM_LD_FLAGS}" \ + QMAKE_STRIP= %make_build + %install make install INSTALL_ROOT=%{buildroot} install -m644 -p -D %{SOURCE1} %{buildroot}%{_qt5_datadir}/qtlogging.ini +# Qt5.pc cat >%{buildroot}%{_libdir}/pkgconfig/Qt5.pc< 5-%{__isa_bits}.conf -echo "%{_qt5_prefix}" >> 5-%{__isa_bits}.conf -touch default.conf 5.conf -popd +# qtchooser conf +%if 0%{?qtchooser} + mkdir -p %{buildroot}%{_sysconfdir}/xdg/qtchooser + pushd %{buildroot}%{_sysconfdir}/xdg/qtchooser + echo "%{_qt5_bindir}" > 5-%{__isa_bits}.conf +## FIXME/TODO: verify qtchooser (still) happy if _qt5_prefix uses %%_prefix instead of %%_libdir/qt5 + echo "%{_qt5_prefix}" >> 5-%{__isa_bits}.conf + # alternatives targets + touch default.conf 5.conf + popd +%endif +## .prl/.la file love +# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs pushd %{buildroot}%{_qt5_libdir} -for file in libQt5*.prl ; do - sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${file} - if [ -f "$(basename ${file} .prl).so" ]; then - rm -fv "$(basename ${file} .prl).la" - sed -i -e "/^QMAKE_PRL_LIBS/d" ${file} +for prl_file in libQt5*.prl ; do + sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file} + if [ -f "$(basename ${prl_file} .prl).so" ]; then + rm -fv "$(basename ${prl_file} .prl).la" + sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file} fi done popd install -p -m755 -D %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/10-qt5-check-opengl2.sh -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 -mv ${privat_header_file}.me ${privat_header_file} -cat >>${privat_header_file}<& /dev/null ||: -%{_sbindir}/update-alternatives --remove qtchooser-default \ +%{_sbindir}/update-alternatives \ + --remove qtchooser-default \ %{_sysconfdir}/xdg/qtchooser/qt5.conf >& /dev/null ||: fi +%endif %post %{?ldconfig} -%{_sbindir}/update-alternatives --install %{_sysconfdir}/xdg/qtchooser/5.conf \ - qtchooser-5 %{_sysconfdir}/xdg/qtchooser/5-%{__isa_bits}.conf %{priority} - -%{_sbindir}/update-alternatives --install %{_sysconfdir}/xdg/qtchooser/default.conf \ - qtchooser-default %{_sysconfdir}/xdg/qtchooser/5.conf %{priority} +%if 0%{?qtchooser} +%{_sbindir}/update-alternatives \ + --install %{_sysconfdir}/xdg/qtchooser/5.conf \ + qtchooser-5 \ + %{_sysconfdir}/xdg/qtchooser/5-%{__isa_bits}.conf \ + %{priority} + +%{_sbindir}/update-alternatives \ + --install %{_sysconfdir}/xdg/qtchooser/default.conf \ + qtchooser-default \ + %{_sysconfdir}/xdg/qtchooser/5.conf \ + %{priority} +%endif %postun %{?ldconfig} +%if 0%{?qtchooser} if [ $1 -eq 0 ]; then -%{_sbindir}/update-alternatives --remove qtchooser-5 \ +%{_sbindir}/update-alternatives \ + --remove qtchooser-5 \ %{_sysconfdir}/xdg/qtchooser/5-%{__isa_bits}.conf -%{_sbindir}/update-alternatives --remove qtchooser-default \ +%{_sbindir}/update-alternatives \ + --remove qtchooser-default \ %{_sysconfdir}/xdg/qtchooser/5.conf fi +%endif %files -%license LICENSE.LGPL* LGPL_EXCEPTION.txt LICENSE.FDL +%license LICENSE.FDL +%license LICENSE.GPL* +%license LICENSE.LGPL* +%if 0%{?qtchooser} %dir %{_sysconfdir}/xdg/qtchooser +# not editable config files, so not using %%config here %ghost %{_sysconfdir}/xdg/qtchooser/default.conf %ghost %{_sysconfdir}/xdg/qtchooser/5.conf %{_sysconfdir}/xdg/qtchooser/5-%{__isa_bits}.conf -%dir %{_qt5_docdir}/ -%dir %{_qt5_datadir}/ -%dir %{_qt5_archdatadir}/ -%dir %{_qt5_libexecdir}/ -%dir %{_sysconfdir}/xdg/QtProject/ -%dir %{_qt5_libdir}/cmake/{Qt5/,Qt5Concurrent/,Qt5Core/,Qt5DBus/,Qt5Gui/} -%dir %{_qt5_libdir}/cmake/{Qt5Network/,Qt5OpenGL/,Qt5PrintSupport/,Qt5Sql/} -%dir %{_qt5_libdir}/cmake/{Qt5Test/,Qt5Widgets/,Qt5Xml/} -%dir %{_qt5_plugindir}/{designer/,generic/,iconengines/,imageformats/} -%dir %{_qt5_plugindir}/{platforminputcontexts/,platforms/,platformthemes/} -%dir %{_qt5_plugindir}/{printsupport/,script/,sqldrivers/,styles/,bearer/} -%if "%{_qt5_prefix}" != "%{_prefix}" -%dir %{_qt5_prefix}/ %endif +%dir %{_sysconfdir}/xdg/QtProject/ +%{_qt5_libdir}/libQt5Concurrent.so.5* +%{_qt5_libdir}/libQt5Core.so.5* +%{_qt5_libdir}/libQt5DBus.so.5* +%{_qt5_libdir}/libQt5Network.so.5* +%{_qt5_libdir}/libQt5Sql.so.5* +%{_qt5_libdir}/libQt5Test.so.5* +%{_qt5_libdir}/libQt5Xml.so.5* +%dir %{_qt5_libdir}/cmake/ +%dir %{_qt5_libdir}/cmake/Qt5/ +%dir %{_qt5_libdir}/cmake/Qt5Concurrent/ +%dir %{_qt5_libdir}/cmake/Qt5Core/ +%dir %{_qt5_libdir}/cmake/Qt5DBus/ +%dir %{_qt5_libdir}/cmake/Qt5Gui/ +%dir %{_qt5_libdir}/cmake/Qt5Network/ +%dir %{_qt5_libdir}/cmake/Qt5OpenGL/ +%dir %{_qt5_libdir}/cmake/Qt5PrintSupport/ +%dir %{_qt5_libdir}/cmake/Qt5Sql/ +%dir %{_qt5_libdir}/cmake/Qt5Test/ +%dir %{_qt5_libdir}/cmake/Qt5Widgets/ +%dir %{_qt5_libdir}/cmake/Qt5Xml/ +%dir %{_qt5_docdir}/ %{_qt5_docdir}/global/ +%{_qt5_docdir}/config/ %{_qt5_importdir}/ %{_qt5_translationdir}/ +%if "%{_qt5_prefix}" != "%{_prefix}" +%dir %{_qt5_prefix}/ +%endif +%dir %{_qt5_archdatadir}/ +%dir %{_qt5_datadir}/ %{_qt5_datadir}/qtlogging.ini +%dir %{_qt5_libexecdir}/ +%dir %{_qt5_plugindir}/ +%dir %{_qt5_plugindir}/bearer/ +%{_qt5_plugindir}/bearer/libqconnmanbearer.so +%{_qt5_plugindir}/bearer/libqgenericbearer.so +%{_qt5_plugindir}/bearer/libqnmbearer.so +%{_qt5_libdir}/cmake/Qt5Network/Qt5Network_QConnmanEnginePlugin.cmake +%{_qt5_libdir}/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin.cmake +%{_qt5_libdir}/cmake/Qt5Network/Qt5Network_QNetworkManagerEnginePlugin.cmake +%dir %{_qt5_plugindir}/designer/ +%dir %{_qt5_plugindir}/generic/ +%dir %{_qt5_plugindir}/iconengines/ +%dir %{_qt5_plugindir}/imageformats/ +%dir %{_qt5_plugindir}/platforminputcontexts/ +%dir %{_qt5_plugindir}/platforms/ +%dir %{_qt5_plugindir}/platformthemes/ +%dir %{_qt5_plugindir}/printsupport/ +%dir %{_qt5_plugindir}/script/ +%dir %{_qt5_plugindir}/sqldrivers/ +%dir %{_qt5_plugindir}/styles/ %{_qt5_plugindir}/sqldrivers/libqsqlite.so -%{_qt5_plugindir}/bearer/{libqconnmanbearer,libqgenericbearer,libqnmbearer}.so -%{_qt5_libdir}/{libQt5Concurrent,libQt5Core,libQt5DBus,libQt5Network}.so.5* -%{_qt5_libdir}/{libQt5Sql,libQt5Test,libQt5Xml}.so.5* %{_qt5_libdir}/cmake/Qt5Sql/Qt5Sql_QSQLiteDriverPlugin.cmake -%{_qt5_libdir}/cmake/Qt5Network/Qt5Network_Q*EnginePlugin.cmake %files common +# mostly empty for now, consider: filesystem/dir ownership, licenses %{rpm_macros_dir}/macros.qt5-qtbase %files devel %if "%{_qt5_bindir}" != "%{_bindir}" %dir %{_qt5_bindir} %endif +%{_bindir}/moc* +%{_bindir}/qdbuscpp2xml* +%{_bindir}/qdbusxml2cpp* +%{_bindir}/qmake* +%{_bindir}/rcc* +%{_bindir}/syncqt* +%{_bindir}/uic* +%{_bindir}/qlalr +%{_bindir}/fixqt4headers.pl +%{_bindir}/qvkgen +%{_bindir}/tracegen +%{_qt5_bindir}/moc* +%{_qt5_bindir}/qdbuscpp2xml* +%{_qt5_bindir}/qdbusxml2cpp* +%{_qt5_bindir}/qmake* +%{_qt5_bindir}/rcc* +%{_qt5_bindir}/syncqt* +%{_qt5_bindir}/uic* +%{_qt5_bindir}/qlalr +%{_qt5_bindir}/fixqt4headers.pl +%{_qt5_bindir}/qvkgen %if "%{_qt5_headerdir}" != "%{_includedir}" %dir %{_qt5_headerdir} %endif -%{_bindir}/{qlalr,fixqt4headers.pl,qvkgen} -%{_bindir}/{moc*,qdbuscpp2xml*,qdbusxml2cpp*,qmake*,rcc*,syncqt*,uic*} -%{_qt5_bindir}/{moc*,qdbuscpp2xml*,qdbusxml2cpp*,qmake*,rcc*} -%{_qt5_bindir}/{syncqt*,uic*,qlalr,fixqt4headers.pl,qvkgen} -%{_qt5_headerdir}/Qt*Support -%{_qt5_headerdir}/{QtConcurrent/,QtCore/,QtDBus/,QtGui/,QtNetwork/,QtOpenGL/,QtOpenGLExtensions/} -%{_qt5_headerdir}/{QtPlatformHeaders/,QtSql/,QtTest/,QtWidgets/} -%{_qt5_headerdir}/{QtXcb/,QtXml/,QtEglFSDeviceIntegration} +%{_qt5_headerdir}/QtConcurrent/ +%{_qt5_headerdir}/QtCore/ +%{_qt5_headerdir}/QtDBus/ +%{_qt5_headerdir}/QtGui/ +%{_qt5_headerdir}/QtNetwork/ +%{_qt5_headerdir}/QtOpenGL/ +%{_qt5_headerdir}/QtPlatformHeaders/ +%{_qt5_headerdir}/QtPrintSupport/ +%{_qt5_headerdir}/QtSql/ +%{_qt5_headerdir}/QtTest/ +%{_qt5_headerdir}/QtWidgets/ +%{_qt5_headerdir}/QtXcb/ +%{_qt5_headerdir}/QtXml/ +%{_qt5_headerdir}/QtEglFSDeviceIntegration +%{_qt5_headerdir}/QtInputSupport +%{_qt5_headerdir}/QtEdidSupport +%{_qt5_headerdir}/QtXkbCommonSupport %{_qt5_archdatadir}/mkspecs/ -%{_qt5_libdir}/libQt5*.{so,*a,prl} -%{_qt5_libdir}/cmake/Qt5/{Qt5Config*,Qt5ModuleLocation}.cmake -%{_qt5_libdir}/cmake/Qt5OpenGLExtensions/ +%{_qt5_libdir}/libQt5Concurrent.prl +%{_qt5_libdir}/libQt5Concurrent.so +%{_qt5_libdir}/libQt5Core.prl +%{_qt5_libdir}/libQt5Core.so +%{_qt5_libdir}/libQt5DBus.prl +%{_qt5_libdir}/libQt5DBus.so +%{_qt5_libdir}/libQt5Gui.prl +%{_qt5_libdir}/libQt5Gui.so +%{_qt5_libdir}/libQt5Network.prl +%{_qt5_libdir}/libQt5Network.so +%{_qt5_libdir}/libQt5OpenGL.prl +%{_qt5_libdir}/libQt5OpenGL.so +%{_qt5_libdir}/libQt5PrintSupport.prl +%{_qt5_libdir}/libQt5PrintSupport.so +%{_qt5_libdir}/libQt5Sql.prl +%{_qt5_libdir}/libQt5Sql.so +%{_qt5_libdir}/libQt5Test.prl +%{_qt5_libdir}/libQt5Test.so +%{_qt5_libdir}/libQt5Widgets.prl +%{_qt5_libdir}/libQt5Widgets.so +%{_qt5_libdir}/libQt5XcbQpa.prl +%{_qt5_libdir}/libQt5XcbQpa.so +%{_qt5_libdir}/libQt5Xml.prl +%{_qt5_libdir}/libQt5Xml.so +%{_qt5_libdir}/libQt5EglFSDeviceIntegration.prl +%{_qt5_libdir}/libQt5EglFSDeviceIntegration.so +%{_qt5_libdir}/cmake/Qt5/Qt5Config*.cmake %{_qt5_libdir}/cmake/Qt5Concurrent/Qt5ConcurrentConfig*.cmake -%{_qt5_libdir}/cmake/Qt5Core/{Qt5CoreConfig*,Qt5CoreMacros,Qt5CTestMacros}.cmake -%{_qt5_libdir}/cmake/Qt5DBus/{Qt5DBusConfig*,Qt5DBusMacros}.cmake +%{_qt5_libdir}/cmake/Qt5Core/Qt5CoreConfig*.cmake +%{_qt5_libdir}/cmake/Qt5Core/Qt5CoreMacros.cmake +%{_qt5_libdir}/cmake/Qt5Core/Qt5CTestMacros.cmake +%{_qt5_libdir}/cmake/Qt5DBus/Qt5DBusConfig*.cmake +%{_qt5_libdir}/cmake/Qt5DBus/Qt5DBusMacros.cmake %{_qt5_libdir}/cmake/Qt5Gui/Qt5GuiConfig*.cmake %{_qt5_libdir}/cmake/Qt5Network/Qt5NetworkConfig*.cmake %{_qt5_libdir}/cmake/Qt5OpenGL/Qt5OpenGLConfig*.cmake %{_qt5_libdir}/cmake/Qt5PrintSupport/Qt5PrintSupportConfig*.cmake %{_qt5_libdir}/cmake/Qt5Sql/Qt5SqlConfig*.cmake %{_qt5_libdir}/cmake/Qt5Test/Qt5TestConfig*.cmake -%{_qt5_libdir}/cmake/Qt5Widgets/{Qt5WidgetsConfig*,Qt5WidgetsMacros}.cmake +%{_qt5_libdir}/cmake/Qt5Widgets/Qt5WidgetsConfig*.cmake +%{_qt5_libdir}/cmake/Qt5Widgets/Qt5WidgetsMacros.cmake %{_qt5_libdir}/cmake/Qt5Xml/Qt5XmlConfig*.cmake -%{_qt5_libdir}/pkgconfig/Qt5*.pc -%{_qt5_libdir}/libQt5EglFsKmsSupport.{prl,so} +%{_qt5_libdir}/cmake/Qt5/Qt5ModuleLocation.cmake +%{_qt5_libdir}/cmake/Qt5AccessibilitySupport/ +%{_qt5_libdir}/cmake/Qt5DeviceDiscoverySupport/ +%{_qt5_libdir}/cmake/Qt5EdidSupport/ +%{_qt5_libdir}/cmake/Qt5EglFSDeviceIntegration/ +%{_qt5_libdir}/cmake/Qt5EglFsKmsSupport/ +%{_qt5_libdir}/cmake/Qt5EglSupport/ +%{_qt5_libdir}/cmake/Qt5EventDispatcherSupport/ +%{_qt5_libdir}/cmake/Qt5FbSupport/ +%{_qt5_libdir}/cmake/Qt5FontDatabaseSupport/ +%{_qt5_libdir}/cmake/Qt5GlxSupport/ +%{_qt5_libdir}/cmake/Qt5InputSupport/ +%{_qt5_libdir}/cmake/Qt5KmsSupport/ +%{_qt5_libdir}/cmake/Qt5LinuxAccessibilitySupport/ +%{_qt5_libdir}/cmake/Qt5PlatformCompositorSupport/ +%{_qt5_libdir}/cmake/Qt5ServiceSupport/ +%{_qt5_libdir}/cmake/Qt5ThemeSupport/ +%{_qt5_libdir}/cmake/Qt5XcbQpa/ +%{_qt5_libdir}/cmake/Qt5XkbCommonSupport/ +%{_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/Qt5Concurrent.pc +%{_qt5_libdir}/pkgconfig/Qt5Core.pc +%{_qt5_libdir}/pkgconfig/Qt5DBus.pc +%{_qt5_libdir}/pkgconfig/Qt5Gui.pc +%{_qt5_libdir}/pkgconfig/Qt5Network.pc +%{_qt5_libdir}/pkgconfig/Qt5OpenGL.pc +%{_qt5_libdir}/pkgconfig/Qt5PrintSupport.pc +%{_qt5_libdir}/pkgconfig/Qt5Sql.pc +%{_qt5_libdir}/pkgconfig/Qt5Test.pc +%{_qt5_libdir}/pkgconfig/Qt5Widgets.pc +%{_qt5_libdir}/pkgconfig/Qt5Xml.pc +%if 0%{?egl} +%{_qt5_libdir}/libQt5EglFsKmsSupport.prl +%{_qt5_libdir}/libQt5EglFsKmsSupport.so +%endif +%{_qt5_libdir}/qt5/bin/tracegen +## private-devel globs +# 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 +%exclude %{_qt5_headerdir}/*/%{version}/ + +%files private-devel +%{_qt5_headerdir}/*/%{version}/ +#{_qt5_archdatadir}/mkspecs/modules/qt_lib_*_private.pri + +%files static +%{_qt5_libdir}/libQt5Bootstrap.*a +%{_qt5_libdir}/libQt5Bootstrap.prl +%{_qt5_headerdir}/QtOpenGLExtensions/ +%{_qt5_libdir}/libQt5OpenGLExtensions.*a +%{_qt5_libdir}/libQt5OpenGLExtensions.prl +%{_qt5_libdir}/cmake/Qt5OpenGLExtensions/ +%{_qt5_libdir}/pkgconfig/Qt5OpenGLExtensions.pc +%{_qt5_libdir}/libQt5AccessibilitySupport.*a +%{_qt5_libdir}/libQt5AccessibilitySupport.prl +%{_qt5_headerdir}/QtAccessibilitySupport +%{_qt5_libdir}/libQt5DeviceDiscoverySupport.*a +%{_qt5_libdir}/libQt5DeviceDiscoverySupport.prl +%{_qt5_headerdir}/QtDeviceDiscoverySupport +%{_qt5_libdir}/libQt5EglSupport.*a +%{_qt5_libdir}/libQt5EglSupport.prl +%{_qt5_headerdir}/QtEglSupport +%{_qt5_libdir}/libQt5EventDispatcherSupport.*a +%{_qt5_libdir}/libQt5EventDispatcherSupport.prl +%{_qt5_headerdir}/QtEventDispatcherSupport +%{_qt5_libdir}/libQt5FbSupport.*a +%{_qt5_libdir}/libQt5FbSupport.prl +%{_qt5_headerdir}/QtFbSupport +%{_qt5_libdir}/libQt5FontDatabaseSupport.*a +%{_qt5_libdir}/libQt5FontDatabaseSupport.prl +%{_qt5_headerdir}/QtFontDatabaseSupport +%{_qt5_libdir}/libQt5GlxSupport.*a +%{_qt5_libdir}/libQt5GlxSupport.prl +%{_qt5_headerdir}/QtGlxSupport +%{_qt5_libdir}/libQt5InputSupport.*a +%{_qt5_libdir}/libQt5InputSupport.prl +%{_qt5_libdir}/libQt5LinuxAccessibilitySupport.*a +%{_qt5_libdir}/libQt5LinuxAccessibilitySupport.prl +%{_qt5_headerdir}/QtLinuxAccessibilitySupport +%{_qt5_libdir}/libQt5PlatformCompositorSupport.*a +%{_qt5_libdir}/libQt5PlatformCompositorSupport.prl +%{_qt5_headerdir}/QtPlatformCompositorSupport +%{_qt5_libdir}/libQt5ServiceSupport.*a +%{_qt5_libdir}/libQt5ServiceSupport.prl +%{_qt5_headerdir}/QtServiceSupport +%{_qt5_libdir}/libQt5ThemeSupport.*a +%{_qt5_libdir}/libQt5ThemeSupport.prl +%{_qt5_headerdir}/QtThemeSupport +%{_qt5_libdir}/libQt5KmsSupport.*a +%{_qt5_libdir}/libQt5KmsSupport.prl +%{_qt5_headerdir}/QtKmsSupport +%{_qt5_libdir}/libQt5EdidSupport.*a +%{_qt5_libdir}/libQt5EdidSupport.prl +%{_qt5_libdir}/libQt5XkbCommonSupport.*a +%{_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} +%files examples %{_qt5_examplesdir}/ +%endif + +%if "%{?ibase}" != "-no-sql-ibase" +%files ibase +%{_qt5_plugindir}/sqldrivers/libqsqlibase.so +%{_qt5_libdir}/cmake/Qt5Sql/Qt5Sql_QIBaseDriverPlugin.cmake +%endif %files mysql %{_qt5_plugindir}/sqldrivers/libqsqlmysql.so @@ -376,34 +933,88 @@ fi %{_qt5_plugindir}/sqldrivers/libqsqlpsql.so %{_qt5_libdir}/cmake/Qt5Sql/Qt5Sql_QPSQLDriverPlugin.cmake +%if "%{?tds}" != "-no-sql-tds" +%files tds +%{_qt5_plugindir}/sqldrivers/libqsqltds.so +%{_qt5_libdir}/cmake/Qt5Sql/Qt5Sql_QTDSDriverPlugin.cmake +%endif -%post gui -p /sbin/ldconfig -%postun gui -p /sbin/ldconfig +%ldconfig_scriptlets gui %files gui +%dir %{_sysconfdir}/X11/xinit %dir %{_sysconfdir}/X11/xinit/xinitrc.d/ -%dir %{_qt5_plugindir}/egldeviceintegrations/ %{_sysconfdir}/X11/xinit/xinitrc.d/10-qt5-check-opengl2.sh -%{_qt5_libdir}/{libQt5Gui,libQt5OpenGL,libQt5PrintSupport,libQt5Widgets,libQt5XcbQpa}.so.5* -%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_Q*Plugin.cmake -%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_Q*PlatformInputContextPlugin.cmake -%{_qt5_libdir}/{libQt5EglFSDeviceIntegration,libQt5EglFsKmsSupport}.so.5* -%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_Q*IntegrationPlugin.cmake -%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_Q*ThemePlugin.cmake +%{_qt5_libdir}/libQt5Gui.so.5* +%{_qt5_libdir}/libQt5OpenGL.so.5* +%{_qt5_libdir}/libQt5PrintSupport.so.5* +%{_qt5_libdir}/libQt5Widgets.so.5* +%{_qt5_libdir}/libQt5XcbQpa.so.5* +%{_qt5_plugindir}/generic/libqevdevkeyboardplugin.so +%{_qt5_plugindir}/generic/libqevdevmouseplugin.so +%{_qt5_plugindir}/generic/libqevdevtabletplugin.so +%{_qt5_plugindir}/generic/libqevdevtouchplugin.so +%{_qt5_plugindir}/generic/libqlibinputplugin.so +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QLibInputPlugin.cmake +%{_qt5_plugindir}/generic/libqtuiotouchplugin.so +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEvdevKeyboardPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEvdevMousePlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEvdevTabletPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEvdevTouchScreenPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QTuioTouchPlugin.cmake +%{_qt5_plugindir}/imageformats/libqgif.so +%{_qt5_plugindir}/imageformats/libqico.so +%{_qt5_plugindir}/imageformats/libqjpeg.so +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QGifPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QICOPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QJpegPlugin.cmake +%{_qt5_plugindir}/platforminputcontexts/libcomposeplatforminputcontextplugin.so +%{_qt5_plugindir}/platforminputcontexts/libibusplatforminputcontextplugin.so +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QComposePlatformInputContextPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QIbusPlatformInputContextPlugin.cmake +%if 0%{?egl} +%{_qt5_libdir}/libQt5EglFSDeviceIntegration.so.5* +%{_qt5_libdir}/libQt5EglFsKmsSupport.so.5* +%{_qt5_plugindir}/platforms/libqeglfs.so +%{_qt5_plugindir}/platforms/libqminimalegl.so +%dir %{_qt5_plugindir}/egldeviceintegrations/ +%{_qt5_plugindir}/egldeviceintegrations/libqeglfs-kms-integration.so +#%%{_qt5_plugindir}/egldeviceintegrations/libqeglfs-x11-integration.so +#%%{_qt5_plugindir}/xcbglintegrations/libqxcb-egl-integration.so +%{_qt5_plugindir}/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so +%{_qt5_plugindir}/egldeviceintegrations/libqeglfs-emu-integration.so +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QMinimalEglIntegrationPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSIntegrationPlugin.cmake +#%%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSX11IntegrationPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSKmsGbmIntegrationPlugin.cmake +#%%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXcbEglIntegrationPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSKmsEglDeviceIntegrationPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QEglFSEmulatorIntegrationPlugin.cmake +%endif +%{_qt5_plugindir}/platforms/libqlinuxfb.so +%{_qt5_plugindir}/platforms/libqminimal.so +%{_qt5_plugindir}/platforms/libqoffscreen.so +%{_qt5_plugindir}/platforms/libqxcb.so +%{_qt5_plugindir}/platforms/libqvnc.so +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QLinuxFbIntegrationPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QMinimalIntegrationPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QOffscreenIntegrationPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QVncIntegrationPlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXcbIntegrationPlugin.cmake +%{_qt5_plugindir}/xcbglintegrations/libqxcb-glx-integration.so %{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXcbGlxIntegrationPlugin.cmake -%{_qt5_libdir}/cmake/Qt5PrintSupport/Qt5PrintSupport_QCupsPrinterSupportPlugin.cmake -%{_qt5_plugindir}/generic/{libqevdev*plugin,libqtuiotouchplugin}.so -%{_qt5_plugindir}/imageformats/{libqgif,libqico,libqjpeg}.so -%{_qt5_plugindir}/platforminputcontexts/lib*platforminputcontextplugin.so -%{_qt5_plugindir}/platforms/{libqeglfs,libqminimalegl}.so -%{_qt5_plugindir}/xcbglintegrations/libqxcb-*-integration.so -%{_qt5_plugindir}/egldeviceintegrations/libqeglfs-*-integration.so -%{_qt5_plugindir}/platforms/{libqlinuxfb,libqminimal,libqoffscreen,libqxcb,libqvnc}.so -%{_qt5_plugindir}/platformthemes/{libqflatpak,libqgtk3}.so +%{_qt5_plugindir}/platformthemes/libqxdgdesktopportal.so +%{_qt5_plugindir}/platformthemes/libqgtk3.so +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QXdgDesktopPortalThemePlugin.cmake +%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QGtk3ThemePlugin.cmake %{_qt5_plugindir}/printsupport/libcupsprintersupport.so +%{_qt5_libdir}/cmake/Qt5PrintSupport/Qt5PrintSupport_QCupsPrinterSupportPlugin.cmake %changelog +* Sat Dec 11 2021 hua_yadong - 5.15.2-1 +- update to upstream version 5.15.2 + * Wed Apr 21 2021 wangyue - 5.11.1-14 - fix CVE-2019-18281 diff --git a/qtbase-QTBUG-89977.patch b/qtbase-QTBUG-89977.patch new file mode 100644 index 0000000000000000000000000000000000000000..cfaac113353edfc81e8c52a91327624b7b433b20 --- /dev/null +++ b/qtbase-QTBUG-89977.patch @@ -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 + #include ++#include + + #ifdef truncate + #error qbytearray.h must be included before any header file that defines truncate diff --git a/qtbase-QTBUG-90395.patch b/qtbase-QTBUG-90395.patch new file mode 100644 index 0000000000000000000000000000000000000000..cc4bb6ee994fedc78080d98a791e7d3a5fc9b1c5 --- /dev/null +++ b/qtbase-QTBUG-90395.patch @@ -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 + #include + ++#include ++ + // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems + #include + #include +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 + #include ++#include + #include + + #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__) diff --git a/qtbase-QTBUG-91909.patch b/qtbase-QTBUG-91909.patch new file mode 100644 index 0000000000000000000000000000000000000000..32cd8a483022e1a40a0a12b2e07cf382ec05ff41 --- /dev/null +++ b/qtbase-QTBUG-91909.patch @@ -0,0 +1,31 @@ +From 659f7a06e91c04b239e3f4c0bcfccbe3581af1c3 Mon Sep 17 00:00:00 2001 +From: Sona Kurazyan +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 +--- + +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 : public ThreadEngineStarterBase + { + public: +- ThreadEngineStarter(ThreadEngine *_threadEngine) +- :ThreadEngineStarterBase(_threadEngine) {} ++ ThreadEngineStarter(ThreadEngine *_threadEngine) ++ : ThreadEngineStarterBase(_threadEngine) {} + + void startBlocking() + { diff --git a/qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch b/qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch new file mode 100644 index 0000000000000000000000000000000000000000..ff00e63bed5660dca943db540f2736b8c9d2fde8 --- /dev/null +++ b/qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch @@ -0,0 +1,14 @@ +diff -up qtbase-everywhere-src-5.12.1/src/gui/Qt5GuiConfigExtras.cmake.in.foo qtbase-everywhere-src-5.12.1/src/gui/Qt5GuiConfigExtras.cmake.in +--- qtbase-everywhere-src-5.12.1/src/gui/Qt5GuiConfigExtras.cmake.in.foo 2019-04-30 15:18:24.886346423 -0500 ++++ qtbase-everywhere-src-5.12.1/src/gui/Qt5GuiConfigExtras.cmake.in 2019-04-30 15:19:48.303873296 -0500 +@@ -66,8 +66,10 @@ unset(_GL_INCDIRS) + # Don\'t check for existence of the "_qt5gui_OPENGL_INCLUDE_DIR" because it is + # optional. + ++if (NOT ${_qt5gui_OPENGL_INCLUDE_DIR} STREQUAL "/usr/include") + list(APPEND Qt5Gui_INCLUDE_DIRS ${_qt5gui_OPENGL_INCLUDE_DIR}) + set_property(TARGET Qt5::Gui APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${_qt5gui_OPENGL_INCLUDE_DIR}) ++endif() + + unset(_qt5gui_OPENGL_INCLUDE_DIR CACHE) + diff --git a/qtbase-everywhere-src-5.14.2-no_relocatable.patch b/qtbase-everywhere-src-5.14.2-no_relocatable.patch new file mode 100644 index 0000000000000000000000000000000000000000..56b9db8a76c1b96f3cf94d2786c47522d9a95fb7 --- /dev/null +++ b/qtbase-everywhere-src-5.14.2-no_relocatable.patch @@ -0,0 +1,16 @@ +diff -up qtbase-everywhere-src-5.14.2/src/corelib/global/qlibraryinfo.cpp.no_relocatable qtbase-everywhere-src-5.14.2/src/corelib/global/qlibraryinfo.cpp +--- qtbase-everywhere-src-5.14.2/src/corelib/global/qlibraryinfo.cpp.no_relocatable 2020-03-27 04:49:31.000000000 -0500 ++++ qtbase-everywhere-src-5.14.2/src/corelib/global/qlibraryinfo.cpp 2020-04-13 15:13:44.075705226 -0500 +@@ -671,8 +671,11 @@ static QString getPrefix( + # if QT_CONFIGURE_CROSSBUILD + if (group == QLibraryInfo::DevicePaths) + return QString::fromLocal8Bit(QT_CONFIGURE_PREFIX_PATH); +-# endif ++# elif 0 //QT_CONFIG(relocatable) + return getExtPrefixFromHostBinDir(); ++# else ++ return QString::fromLocal8Bit(QT_CONFIGURE_PREFIX_PATH); ++# endif + #elif QT_CONFIG(relocatable) + return getRelocatablePrefix(); + #else diff --git a/qtbase-everywhere-src-5.11.1.tar.xz b/qtbase-everywhere-src-5.15.2.tar.xz similarity index 77% rename from qtbase-everywhere-src-5.11.1.tar.xz rename to qtbase-everywhere-src-5.15.2.tar.xz index dffddaf36112407bb017557916ce15f56e5ae737..ce7477b11ce7c3c5b170945b84817bf5b4719f7b 100644 Binary files a/qtbase-everywhere-src-5.11.1.tar.xz and b/qtbase-everywhere-src-5.15.2.tar.xz differ diff --git a/qtbase-filechooser-portal-send-window-id-in-hex.patch b/qtbase-filechooser-portal-send-window-id-in-hex.patch new file mode 100644 index 0000000000000000000000000000000000000000..42030364ba5f68b8fb82d508a660405b2612b374 --- /dev/null +++ b/qtbase-filechooser-portal-send-window-id-in-hex.patch @@ -0,0 +1,26 @@ +From acaabc9108dfe75530960cf8e3ec4f3602cd82e0 Mon Sep 17 00:00:00 2001 +From: Jan Grulich +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 +--- + +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()) diff --git a/qtbase-opensource-src-5.3.2-QTBUG-35459.patch b/qtbase-opensource-src-5.3.2-QTBUG-35459.patch deleted file mode 100644 index e1562509b166b09da532a7fa4883aed5b53f53e1..0000000000000000000000000000000000000000 --- a/qtbase-opensource-src-5.3.2-QTBUG-35459.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up qtbase-opensource-src-5.3.2/src/xml/sax/qxml.cpp.QTBUG-35459 qtbase-opensource-src-5.3.2/src/xml/sax/qxml.cpp -diff -up qtbase-opensource-src-5.3.2/src/xml/sax/qxml_p.h.QTBUG-35459 qtbase-opensource-src-5.3.2/src/xml/sax/qxml_p.h ---- qtbase-opensource-src-5.3.2/src/xml/sax/qxml_p.h.QTBUG-35459 2014-09-11 05:48:05.000000000 -0500 -+++ qtbase-opensource-src-5.3.2/src/xml/sax/qxml_p.h 2014-09-16 09:35:01.189255615 -0500 -@@ -223,7 +223,7 @@ private: - // for the DTD currently being parsed. - static const int dtdRecursionLimit = 2; - // The maximum amount of characters an entity value may contain, after expansion. -- static const int entityCharacterLimit = 1024; -+ static const int entityCharacterLimit = 4096; - - const QString &string(); - void stringClear(); diff --git a/qtbase-opensource-src-5.9.0-mysql.patch b/qtbase-opensource-src-5.9.0-mysql.patch new file mode 100644 index 0000000000000000000000000000000000000000..c190ca67e81c04dec10f484a25b13b622d61a1e6 --- /dev/null +++ b/qtbase-opensource-src-5.9.0-mysql.patch @@ -0,0 +1,12 @@ +diff -up qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql.cpp.than qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +diff -up qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql_p.h.than qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql_p.h +--- qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql_p.h.than 2017-07-14 13:43:50.831203768 +0200 ++++ qtbase-opensource-src-5.9.0/src/plugins/sqldrivers/mysql/qsql_mysql_p.h 2017-07-14 13:44:24.364948006 +0200 +@@ -58,6 +58,7 @@ + #endif + + #include ++#include + + #ifdef QT_PLUGIN + #define Q_EXPORT_SQLDRIVER_MYSQL diff --git a/qtbase-use-wayland-on-gnome.patch b/qtbase-use-wayland-on-gnome.patch new file mode 100644 index 0000000000000000000000000000000000000000..526963cbfc61dd24832588ae2e6be570a703387d --- /dev/null +++ b/qtbase-use-wayland-on-gnome.patch @@ -0,0 +1,20 @@ +diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp +index b8bfad4f16..676fdfad5e 100644 +--- a/src/gui/kernel/qguiapplication.cpp ++++ b/src/gui/kernel/qguiapplication.cpp +@@ -1376,14 +1376,7 @@ void QGuiApplicationPrivate::createPlatformIntegration() + if (sessionType == QByteArrayLiteral("x11") && !platformName.contains(QByteArrayLiteral("xcb"))) { + platformName = QByteArrayLiteral("xcb"); + } else if (sessionType == QByteArrayLiteral("wayland") && !platformName.contains(QByteArrayLiteral("wayland"))) { +- QByteArray currentDesktop = qgetenv("XDG_CURRENT_DESKTOP").toLower(); +- QByteArray sessionDesktop = qgetenv("XDG_SESSION_DESKTOP").toLower(); +- if (currentDesktop.contains("gnome") || sessionDesktop.contains("gnome")) { +- qInfo() << "Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome." +- << "Use QT_QPA_PLATFORM=wayland to run on Wayland anyway."; +- } else { +- platformName = QByteArrayLiteral("wayland"); +- } ++ platformName = QByteArrayLiteral("wayland"); + } + } + #ifdef QT_QPA_DEFAULT_PLATFORM_NAME diff --git a/qtbase5-double-conversion-add-riscv.patch b/qtbase5-double-conversion-add-riscv.patch deleted file mode 100644 index cbf06d2ed67c318f90fb1ecc11acefcb40b11908..0000000000000000000000000000000000000000 --- a/qtbase5-double-conversion-add-riscv.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/3rdparty/double-conversion/include/double-conversion/utils.h b/src/3rdparty/double-conversion/include/double-conversion/utils.h -index 20bfd36..fe6cb4c 100644 ---- a/src/3rdparty/double-conversion/include/double-conversion/utils.h -+++ b/src/3rdparty/double-conversion/include/double-conversion/utils.h -@@ -65,7 +65,8 @@ - defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ - defined(__SH4__) || defined(__alpha__) || \ - defined(_MIPS_ARCH_MIPS32R2) || \ -- defined(__AARCH64EL__) -+ defined(__AARCH64EL__) || \ -+ defined(__riscv) - #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 - #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) - #if defined(_WIN32)