diff --git a/0001-Fix-compile-issue-with-gcc-9.patch b/0001-Fix-compile-issue-with-gcc-9.patch new file mode 100644 index 0000000000000000000000000000000000000000..632488921ef9a511faaaffdac415a36c3c4efc1d --- /dev/null +++ b/0001-Fix-compile-issue-with-gcc-9.patch @@ -0,0 +1,26 @@ +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 deleted file mode 100644 index e55592cb866ee8544663e80f20ab0c43477fe661..0000000000000000000000000000000000000000 --- a/0001-modify-kwin_5.18-complier-error.patch +++ /dev/null @@ -1,233 +0,0 @@ -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 new file mode 100644 index 0000000000000000000000000000000000000000..79a68747bdcbd57e4bdbc6b09e61e8c075118033 --- /dev/null +++ b/CVE-2015-9541.patch @@ -0,0 +1,159 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..409731d32724a52e96d86d3a1f3697919f46b956 --- /dev/null +++ b/CVE-2018-15518.patch @@ -0,0 +1,31 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..c4ae797be3e78ffa0ba69872709583b38f4f71e1 --- /dev/null +++ b/CVE-2019-18281.patch @@ -0,0 +1,101 @@ +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.12.1-firebird.patch b/qt5-qtbase-5.9.1-firebird.patch similarity index 38% rename from qt5-qtbase-5.12.1-firebird.patch rename to qt5-qtbase-5.9.1-firebird.patch index 674a5b5a2ded56a3951ac04be8dc7573f1b225e9..a3510d988f38f55f6aa7120bb158e4518df7f6a6 100644 --- a/qt5-qtbase-5.12.1-firebird.patch +++ b/qt5-qtbase-5.9.1-firebird.patch @@ -1,12 +1,14 @@ -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 @@ +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 @@ "ibase": { "label": "InterBase", - "test": {}, -- "headers": "ibase.h", -+ "headers": "firebird/ibase.h", + "test": { +- "include": "ibase.h" ++ "include": "firebird/ibase.h" + }, "sources": [ { "libs": "-lgds32_ms", "condition": "config.win32" }, - { "libs": "-lgds", "condition": "!config.win32" } @@ -15,15 +17,16 @@ diff -up qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json.fire ] }, "mysql": { -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 +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 @@ -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 deleted file mode 100644 index c9567128a93c248140ec66c0c133d53917698d8e..0000000000000000000000000000000000000000 --- a/qt5-qtbase-gcc11.patch +++ /dev/null @@ -1,171 +0,0 @@ -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 new file mode 100644 index 0000000000000000000000000000000000000000..022b6983fb6fb59ac7652a7ab96bb991df5ebc21 --- /dev/null +++ b/qt5-qtbase-glibc.patch @@ -0,0 +1,53 @@ +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 e550c592e22d5e9e53fceb1b10af8a9cca126f06..edc380fa39288941a3fb0ec3e455173067656206 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -1,414 +1,148 @@ -# 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 __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) %global priority 10 -%ifarch %{multilib_basearchs} +%ifarch x86_64 %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: Qt5 - QtBase components -Version: 5.15.2 -Release: 1 - - -# See LGPL_EXCEPTIONS.txt, for exception details +Summary: Core component of Qt toolkit +Version: 5.11.1 +Release: 14 License: LGPLv2 with exceptions or GPLv3 with exceptions Url: http://qt-project.org/ -%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 +Source0: https://download.qt.io/new_archive/qt/5.11/%{version}/submodules/qtbase-everywhere-src-%{version}.tar.xz 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 -# 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 +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 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 -BuildRequires: mesa-dri-drivers -BuildRequires: time -BuildRequires: xorg-x11-server-Xvfb +BuildRequires: dbus-x11 mesa-dri-drivers time xorg-x11-server-Xvfb %endif -%if 0%{?qtchooser} - -Conflicts: qt < 1:4.8.6-10 - -Requires(post): %{_sbindir}/update-alternatives -Requires(postun): %{_sbindir}/update-alternatives +%if 0%{?use_clang} +BuildRequires: clang >= 3.7.0 +%else +BuildRequires: gcc-c++ %endif -Requires: qt-settings -Requires: %{name}-common = %{version}-%{release} - -## Sql drivers - -%global ibase -no-sql-ibase -%global tds -no-sql-tds - -# 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 +Requires(post): chkconfig +Requires(postun): chkconfig +Requires: qt-settings %{name}-common = %{version}-%{release} +Provides: bundled(libxkbcommon) = 0.4.1 %description -Qt is a software toolkit for developing applications. - -This package contains base tools, like string, xml, and network +This package provides base tools, such as string, xml, and network handling. %package common -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 +Summary: Common files for qt5-qtbase +Obsoletes: qt5-qtquick1 < 5.9.0 qt5-qtquick1-devel < 5.9.0 Requires: %{name} = %{version}-%{release} BuildArch: noarch %description common -%{summary}. +The qt5-qtbase-common package contains common files for qt5-qtbase. %package devel -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 +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) %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 -%{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 +The qt5-qtbase-devel contains libraries and header files for qt5-qtbase. %package mysql Summary: MySQL driver for Qt5's SQL classes - -BuildRequires: mariadb-connector-c-devel - -#BuildRequires: mysql-devel - -Requires: %{name}%{?_isa} = %{version}-%{release} +BuildRequires: mysql-devel +Requires: %{name} = %{version}-%{release} %description mysql -%{summary}. +Qt5-qtbase-mysql provides MySQL driver for Qt5's SQL classes. %package odbc Summary: ODBC driver for Qt5's SQL classes BuildRequires: unixODBC-devel -Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name} = %{version}-%{release} %description odbc -%{summary}. +Qt5-qtbase-odbc provides ODBC driver for Qt5's SQL classes. %package postgresql Summary: PostgreSQL driver for Qt5's SQL classes -BuildRequires: libpq-devel -Requires: %{name}%{?_isa} = %{version}-%{release} +BuildRequires: postgresql-devel +Requires: %{name} = %{version}-%{release} %description postgresql -%{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 +Qt5-qtbase-postgresql provides postgreSQL driver for Qt5's SQL classes. + -# debating whether to do 1 subpkg per library or not -- rex %package gui -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 +Summary: Qt5 GUI-related libraries +Requires: %{name} = %{version}-%{release} glx-utils +Provides: qt5-qtbase-x11 = %{version}-%{release} +Obsoletes: qt5-qtbase-x11 < 5.2.0 %description gui -Qt5 libraries used for drawing widgets and OpenGL items. - +qt5-qtbase-gui is a library helps to draw widgets and OpenGL items with. %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 +%autosetup -n qtbase-everywhere-src-%{version} -p1 + pushd src/3rdparty mkdir UNUSED -mv freetype libjpeg libpng zlib UNUSED/ -%if "%{?sqlite}" == "-system-sqlite" -mv sqlite UNUSED/ -%endif -%if "%{?xcb}" != "-qt-xcb" -mv xcb UNUSED/ -%endif +mv freetype libjpeg libpng zlib sqlite xcb UNUSED/ 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}" @@ -416,82 +150,32 @@ 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" -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}" \ +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}" \ 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_CFLAGS_RELEASE="${CFLAGS:-$RPM_OPT_FLAGS}" \ - QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \ - QMAKE_LFLAGS_RELEASE="${LDFLAGS:-$RPM_LD_FLAGS}" \ - QMAKE_STRIP= +%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 - %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 -## 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 +install -d %{buildroot}%{_sysconfdir}/xdg/qtchooser +pushd %{buildroot}%{_sysconfdir}/xdg/qtchooser +echo "%{_qt5_bindir}" > 5-%{__isa_bits}.conf +echo "%{_qt5_prefix}" >> 5-%{__isa_bits}.conf +touch default.conf 5.conf +popd -## .prl/.la file love -# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs pushd %{buildroot}%{_qt5_libdir} -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} +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} fi done popd install -p -m755 -D %{SOURCE3} %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/10-qt5-check-opengl2.sh -# install privat headers for qtxcb -mkdir -p %{buildroot}%{_qt5_headerdir}/QtXcb -install -m 644 src/plugins/platforms/xcb/*.h %{buildroot}%{_qt5_headerdir}/QtXcb/ +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} -%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 +%{_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} %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.FDL -%license LICENSE.GPL* -%license LICENSE.LGPL* -%if 0%{?qtchooser} +%license LICENSE.LGPL* LGPL_EXCEPTION.txt LICENSE.FDL %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 -%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}/ +%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 %{_qt5_archdatadir}/ -%dir %{_qt5_datadir}/ +%{_qt5_docdir}/global/ +%{_qt5_importdir}/ +%{_qt5_translationdir}/ %{_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 -%{_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 +%{_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_archdatadir}/mkspecs/ -%{_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}/libQt5*.{so,*a,prl} +%{_qt5_libdir}/cmake/Qt5/{Qt5Config*,Qt5ModuleLocation}.cmake +%{_qt5_libdir}/cmake/Qt5OpenGLExtensions/ %{_qt5_libdir}/cmake/Qt5Concurrent/Qt5ConcurrentConfig*.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/Qt5Core/{Qt5CoreConfig*,Qt5CoreMacros,Qt5CTestMacros}.cmake +%{_qt5_libdir}/cmake/Qt5DBus/{Qt5DBusConfig*,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*.cmake -%{_qt5_libdir}/cmake/Qt5Widgets/Qt5WidgetsMacros.cmake +%{_qt5_libdir}/cmake/Qt5Widgets/{Qt5WidgetsConfig*,Qt5WidgetsMacros}.cmake %{_qt5_libdir}/cmake/Qt5Xml/Qt5XmlConfig*.cmake -%{_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_libdir}/pkgconfig/Qt5*.pc +%{_qt5_libdir}/libQt5EglFsKmsSupport.{prl,so} %{_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 @@ -933,88 +376,34 @@ 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 -%ldconfig_scriptlets gui +%post gui -p /sbin/ldconfig +%postun gui -p /sbin/ldconfig %files gui -%dir %{_sysconfdir}/X11/xinit %dir %{_sysconfdir}/X11/xinit/xinitrc.d/ -%{_sysconfdir}/X11/xinit/xinitrc.d/10-qt5-check-opengl2.sh -%{_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 +%{_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}/cmake/Qt5Gui/Qt5Gui_QXcbGlxIntegrationPlugin.cmake -%{_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 +%{_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}/printsupport/libcupsprintersupport.so %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 deleted file mode 100644 index cfaac113353edfc81e8c52a91327624b7b433b20..0000000000000000000000000000000000000000 --- a/qtbase-QTBUG-89977.patch +++ /dev/null @@ -1,11 +0,0 @@ -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 deleted file mode 100644 index cc4bb6ee994fedc78080d98a791e7d3a5fc9b1c5..0000000000000000000000000000000000000000 --- a/qtbase-QTBUG-90395.patch +++ /dev/null @@ -1,23 +0,0 @@ -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 deleted file mode 100644 index 32cd8a483022e1a40a0a12b2e07cf382ec05ff41..0000000000000000000000000000000000000000 --- a/qtbase-QTBUG-91909.patch +++ /dev/null @@ -1,31 +0,0 @@ -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.15.2.tar.xz b/qtbase-everywhere-src-5.11.1.tar.xz similarity index 77% rename from qtbase-everywhere-src-5.15.2.tar.xz rename to qtbase-everywhere-src-5.11.1.tar.xz index ce7477b11ce7c3c5b170945b84817bf5b4719f7b..dffddaf36112407bb017557916ce15f56e5ae737 100644 Binary files a/qtbase-everywhere-src-5.15.2.tar.xz and b/qtbase-everywhere-src-5.11.1.tar.xz differ 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 deleted file mode 100644 index ff00e63bed5660dca943db540f2736b8c9d2fde8..0000000000000000000000000000000000000000 --- a/qtbase-everywhere-src-5.12.1-qt5gui_cmake_isystem_includes.patch +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 56b9db8a76c1b96f3cf94d2786c47522d9a95fb7..0000000000000000000000000000000000000000 --- a/qtbase-everywhere-src-5.14.2-no_relocatable.patch +++ /dev/null @@ -1,16 +0,0 @@ -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-filechooser-portal-send-window-id-in-hex.patch b/qtbase-filechooser-portal-send-window-id-in-hex.patch deleted file mode 100644 index 42030364ba5f68b8fb82d508a660405b2612b374..0000000000000000000000000000000000000000 --- a/qtbase-filechooser-portal-send-window-id-in-hex.patch +++ /dev/null @@ -1,26 +0,0 @@ -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 new file mode 100644 index 0000000000000000000000000000000000000000..e1562509b166b09da532a7fa4883aed5b53f53e1 --- /dev/null +++ b/qtbase-opensource-src-5.3.2-QTBUG-35459.patch @@ -0,0 +1,13 @@ +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 deleted file mode 100644 index c190ca67e81c04dec10f484a25b13b622d61a1e6..0000000000000000000000000000000000000000 --- a/qtbase-opensource-src-5.9.0-mysql.patch +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index 526963cbfc61dd24832588ae2e6be570a703387d..0000000000000000000000000000000000000000 --- a/qtbase-use-wayland-on-gnome.patch +++ /dev/null @@ -1,20 +0,0 @@ -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 new file mode 100644 index 0000000000000000000000000000000000000000..cbf06d2ed67c318f90fb1ecc11acefcb40b11908 --- /dev/null +++ b/qtbase5-double-conversion-add-riscv.patch @@ -0,0 +1,14 @@ +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)