diff --git a/desktop/toolkit/qt5/polkit-qt/pspec.xml b/desktop/toolkit/qt5/polkit-qt/pspec.xml
index e1a4ad707a..d8f8c84cd0 100755
--- a/desktop/toolkit/qt5/polkit-qt/pspec.xml
+++ b/desktop/toolkit/qt5/polkit-qt/pspec.xml
@@ -12,7 +12,7 @@
A library that allows developers to access PolicyKit API with a nice Qt-style API
https://download.kde.org/stable/polkit-qt-1/polkit-qt-1-0.114.0.tar.xz
- qt5-base-devel
+ qt5-base-devel
glib2-devel
polkit-devel
mesa-devel
@@ -25,7 +25,7 @@
polkit-qt
- qt5-base
+ qt5-base
glib2
polkit
libgcc
@@ -40,7 +40,7 @@
polkit-qt-devel
polkit-qt
- qt5-base-devel
+ qt5-base-devel
glib2-devel
polkit-devel
@@ -51,6 +51,13 @@
+
+ 2023-04-10
+ 0.114.0
+ Rebuild.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2022-12-21
0.114.0
diff --git a/desktop/toolkit/qt5/qt5-declarative/files/qt_kde.patch b/desktop/toolkit/qt5/qt5-declarative/files/qt_kde.patch
index cbfaaddbf7..ca59eea6d0 100644
--- a/desktop/toolkit/qt5/qt5-declarative/files/qt_kde.patch
+++ b/desktop/toolkit/qt5/qt5-declarative/files/qt_kde.patch
@@ -1,52 +1,23 @@
-diff --git a/src/qml/common/qqmljsfixedpoolarray_p.h b/src/qml/common/qqmljsfixedpoolarray_p.h
-index b65b994d6c..15a8cd6878 100644
---- a/src/qml/common/qqmljsfixedpoolarray_p.h
-+++ b/src/qml/common/qqmljsfixedpoolarray_p.h
-@@ -86,7 +86,7 @@ public:
- if (QTypeInfo::isComplex) {
- for (int i = 0; i < count; ++i)
- new (data + i) T(vector.at(i));
-- } else {
-+ } else if (count) {
- memcpy(data, static_cast(vector.constData()), count * sizeof(T));
- }
- }
-diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp
-index e57cdd8278..94613598af 100644
---- a/src/qml/jsruntime/qv4qobjectwrapper.cpp
-+++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp
-@@ -1145,8 +1145,7 @@ void Heap::QObjectWrapper::markObjects(Heap::Base *that, QV4::MarkStack *markSta
- void QObjectWrapper::destroyObject(bool lastCall)
- {
- Heap::QObjectWrapper *h = d();
-- if (!h->internalClass)
-- return; // destroyObject already got called
-+ Q_ASSERT(h->internalClass);
-
- if (h->object()) {
- QQmlData *ddata = QQmlData::get(h->object(), false);
-@@ -1176,7 +1175,7 @@ void QObjectWrapper::destroyObject(bool lastCall)
- }
+diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
+index 10c6c41338..39bfcdc999 100644
+--- a/src/qml/qml/qqmlimport.cpp
++++ b/src/qml/qml/qqmlimport.cpp
+@@ -2120,9 +2120,12 @@ void QQmlImportDatabase::addImportPath(const QString& path)
+ cPath.replace(Backslash, Slash);
}
-- h->~Data();
-+ h->destroy();
+- if (!cPath.isEmpty()
+- && !fileImportPath.contains(cPath))
+- fileImportPath.prepend(cPath);
++ if (!cPath.isEmpty()) {
++ if (fileImportPath.contains(cPath))
++ fileImportPath.move(fileImportPath.indexOf(cPath), 0);
++ else
++ fileImportPath.prepend(cPath);
++ }
}
-
-diff --git a/src/qml/memory/qv4mm.cpp b/src/qml/memory/qv4mm.cpp
-index 06caf04e5a..da149a67c4 100644
---- a/src/qml/memory/qv4mm.cpp
-+++ b/src/qml/memory/qv4mm.cpp
-@@ -981,7 +981,7 @@ void MemoryManager::sweep(bool lastSweep, ClassDestroyStatsCallback classCountPt
-
- if (MultiplyWrappedQObjectMap *multiplyWrappedQObjects = engine->m_multiplyWrappedQObjects) {
- for (MultiplyWrappedQObjectMap::Iterator it = multiplyWrappedQObjects->begin(); it != multiplyWrappedQObjects->end();) {
-- if (!it.value().isNullOrUndefined())
-+ if (it.value().isNullOrUndefined())
- it = multiplyWrappedQObjects->erase(it);
- else
- ++it;
+ /*!
diff --git a/src/qml/qml/qqmltypewrapper.cpp b/src/qml/qml/qqmltypewrapper.cpp
index 175de8b936..a6ba4b8cb3 100644
--- a/src/qml/qml/qqmltypewrapper.cpp
@@ -78,7 +49,7 @@ index 29ed62cd39..aba930dfe1 100644
}
}
diff --git a/src/qmlmodels/qqmldelegatemodel.cpp b/src/qmlmodels/qqmldelegatemodel.cpp
-index 2079a8ed04..a577cb2351 100644
+index 523c0df779..bc6b2447af 100644
--- a/src/qmlmodels/qqmldelegatemodel.cpp
+++ b/src/qmlmodels/qqmldelegatemodel.cpp
@@ -389,6 +389,12 @@ void QQmlDelegateModelPrivate::connectToAbstractItemModel()
@@ -107,7 +78,7 @@ index 2079a8ed04..a577cb2351 100644
QObject::disconnect(aim, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector)),
q, SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector)));
QObject::disconnect(aim, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)),
-@@ -1973,6 +1985,38 @@ void QQmlDelegateModel::_q_rowsMoved(
+@@ -1974,6 +1986,38 @@ void QQmlDelegateModel::_q_rowsMoved(
}
}
@@ -161,7 +132,7 @@ index 8aab4badca..d140bfbaaf 100644
void _q_rowsRemoved(const QModelIndex &,int,int);
void _q_rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int);
diff --git a/src/quick/accessible/qaccessiblequickitem.cpp b/src/quick/accessible/qaccessiblequickitem.cpp
-index 85719fdc80..78e2ab302c 100644
+index ae1954ae8d..a8df58d450 100644
--- a/src/quick/accessible/qaccessiblequickitem.cpp
+++ b/src/quick/accessible/qaccessiblequickitem.cpp
@@ -46,6 +46,7 @@
@@ -217,7 +188,7 @@ index 85719fdc80..78e2ab302c 100644
} else {
while (parent && !parent->d_func()->isAccessible)
parent = parent->parentItem();
-@@ -188,7 +197,7 @@ QAccessible::State QAccessibleQuickItem::state() const
+@@ -193,7 +202,7 @@ QAccessible::State QAccessibleQuickItem::state() const
QRect viewRect_ = viewRect();
QRect itemRect = rect();
@@ -226,7 +197,7 @@ index 85719fdc80..78e2ab302c 100644
state.invisible = true;
if (!viewRect_.intersects(itemRect))
state.offscreen = true;
-@@ -201,6 +210,10 @@ QAccessible::State QAccessibleQuickItem::state() const
+@@ -206,6 +215,10 @@ QAccessible::State QAccessibleQuickItem::state() const
if (role() == QAccessible::EditableText)
if (auto ti = qobject_cast(item()))
state.passwordEdit = ti->echoMode() != QQuickTextInput::Normal;
@@ -281,7 +252,7 @@ index 8321fcfeed..383078b3b9 100644
drag->setMimeData(mimeData);
if (pixmapLoader.isReady()) {
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
-index 75f1457816..dec0ae19ae 100644
+index 33da9762d3..c370d6e5c3 100644
--- a/src/quick/items/qquickitem.cpp
+++ b/src/quick/items/qquickitem.cpp
@@ -59,6 +59,7 @@
@@ -418,19 +389,6 @@ index 841d91bb40..ade8fb61f2 100644
enum DirtyType {
TransformOrigin = 0x00000001,
-diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
-index 010a0152e1..f8ad168a17 100644
---- a/src/quick/items/qquickitemview.cpp
-+++ b/src/quick/items/qquickitemview.cpp
-@@ -1785,7 +1785,7 @@ void QQuickItemViewPrivate::refill(qreal from, qreal to)
-
- do {
- bufferPause.stop();
-- if (currentChanges.hasPendingChanges() || bufferedChanges.hasPendingChanges()) {
-+ if (currentChanges.hasPendingChanges() || bufferedChanges.hasPendingChanges() || currentChanges.active) {
- currentChanges.reset();
- bufferedChanges.reset();
- releaseVisibleItems(reusableFlag);
diff --git a/src/quick/items/qquickmousearea_p_p.h b/src/quick/items/qquickmousearea_p_p.h
index fba383e268..0d63618622 100644
--- a/src/quick/items/qquickmousearea_p_p.h
@@ -451,65 +409,6 @@ index fba383e268..0d63618622 100644
QPointF startScene;
QPointF targetStartPos;
QPointF lastPos;
-diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp
-index 6230186933..e823ca1095 100644
---- a/src/quick/items/qquicktext.cpp
-+++ b/src/quick/items/qquicktext.cpp
-@@ -2168,7 +2168,7 @@ void QQuickText::resetMaximumLineCount()
-
- inline images
- , and - - ordered and unordered lists
- - preformatted
-- > < &
-+ > < & " '
- \endcode
-
- \c Text.StyledText parser is strict, requiring tags to be correctly nested.
-diff --git a/src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp b/src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp
-index eb4db0f85e..2325a2665b 100644
---- a/src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp
-+++ b/src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp
-@@ -446,7 +446,7 @@ bool QSGRhiDistanceFieldGlyphCache::loadPregeneratedCache(const QRawFont &font)
-
- const char *textureRecord = allocatorData;
- for (int i = 0; i < textureCount; ++i, textureRecord += Qtdf::TextureRecordSize) {
-- if (textureRecord + Qtdf::TextureRecordSize > qtdfTableEnd) {
-+ if (qtdfTableEnd - textureRecord < Qtdf::TextureRecordSize) {
- qWarning("qtdf table too small in font '%s'.",
- qPrintable(font.familyName()));
- return false;
-@@ -462,7 +462,7 @@ bool QSGRhiDistanceFieldGlyphCache::loadPregeneratedCache(const QRawFont &font)
-
- const char *glyphRecord = textureRecord;
- for (quint32 i = 0; i < glyphCount; ++i, glyphRecord += Qtdf::GlyphRecordSize) {
-- if (glyphRecord + Qtdf::GlyphRecordSize > qtdfTableEnd) {
-+ if (qtdfTableEnd - glyphRecord < Qtdf:: GlyphRecordSize) {
- qWarning("qtdf table too small in font '%s'.",
- qPrintable(font.familyName()));
- return false;
-@@ -512,8 +512,8 @@ bool QSGRhiDistanceFieldGlyphCache::loadPregeneratedCache(const QRawFont &font)
-
- int width = texInfo->allocatedArea.width();
- int height = texInfo->allocatedArea.height();
-- qint64 size = width * height;
-- if (reinterpret_cast(textureData + size) > qtdfTableEnd) {
-+ qint64 size = qint64(width) * height;
-+ if (qtdfTableEnd - reinterpret_cast(textureData) < size) {
- qWarning("qtdf table too small in font '%s'.",
- qPrintable(font.familyName()));
- return false;
-diff --git a/src/quick/util/qquickstyledtext.cpp b/src/quick/util/qquickstyledtext.cpp
-index d531fc9205..a25af90414 100644
---- a/src/quick/util/qquickstyledtext.cpp
-+++ b/src/quick/util/qquickstyledtext.cpp
-@@ -564,6 +564,8 @@ void QQuickStyledTextPrivate::parseEntity(const QChar *&ch, const QString &textI
- textOut += QChar(60);
- else if (entity == QLatin1String("amp"))
- textOut += QChar(38);
-+ else if (entity == QLatin1String("apos"))
-+ textOut += QChar(39);
- else if (entity == QLatin1String("quot"))
- textOut += QChar(34);
- else if (entity == QLatin1String("nbsp"))
diff --git a/src/quickwidgets/qaccessiblequickwidget.cpp b/src/quickwidgets/qaccessiblequickwidget.cpp
new file mode 100644
index 0000000000..8a1c901880
@@ -1005,63 +904,6 @@ index 2438e577ae..85d156b8a3 100644
+ qaccessiblequickwidgetfactory.cpp
load(qt_module)
-diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
-index 3b7d74df63..b75bf820d5 100644
---- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
-+++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
-@@ -102,6 +102,7 @@ private slots:
- void valueConversion_RegularExpression();
- void castWithMultipleInheritance();
- void collectGarbage();
-+ void collectGarbageNestedWrappersTwoEngines();
- void gcWithNestedDataStructure();
- void stacktrace();
- void numberParsing_data();
-@@ -1809,6 +1810,44 @@ void tst_QJSEngine::collectGarbage()
- QVERIFY(ptr.isNull());
- }
-
-+class TestObjectContainer : public QObject
-+{
-+ Q_OBJECT
-+ Q_PROPERTY(QObject *dummy MEMBER m_dummy CONSTANT)
-+
-+public:
-+ TestObjectContainer() : m_dummy(new QObject(this)) {}
-+
-+private:
-+ QObject *m_dummy;
-+};
-+
-+void tst_QJSEngine::collectGarbageNestedWrappersTwoEngines()
-+{
-+ QJSEngine engine1;
-+ QJSEngine engine2;
-+
-+ TestObjectContainer container;
-+ QQmlEngine::setObjectOwnership(&container, QQmlEngine::CppOwnership);
-+
-+ engine1.globalObject().setProperty("foobar", engine1.newQObject(&container));
-+ engine2.globalObject().setProperty("foobar", engine2.newQObject(&container));
-+
-+ engine1.evaluate("foobar.dummy.baz = 42");
-+ engine2.evaluate("foobar.dummy.baz = 43");
-+
-+ QCOMPARE(engine1.evaluate("foobar.dummy.baz").toInt(), 42);
-+ QCOMPARE(engine2.evaluate("foobar.dummy.baz").toInt(), 43);
-+
-+ engine1.collectGarbage();
-+ engine2.collectGarbage();
-+
-+ // The GC should not collect dummy object wrappers neither in engine1 nor engine2, we
-+ // verify that by checking whether the baz property still has its previous value.
-+ QCOMPARE(engine1.evaluate("foobar.dummy.baz").toInt(), 42);
-+ QCOMPARE(engine2.evaluate("foobar.dummy.baz").toInt(), 43);
-+}
-+
- void tst_QJSEngine::gcWithNestedDataStructure()
- {
- // The GC must be able to traverse deeply nested objects, otherwise this
diff --git a/tests/auto/qml/qqmldelegatemodel/data/redrawUponColumnChange.qml b/tests/auto/qml/qqmldelegatemodel/data/redrawUponColumnChange.qml
new file mode 100644
index 0000000000..206133bb39
@@ -1131,6 +973,22 @@ index 35f1e2c94d..1722447830 100644
QTEST_MAIN(tst_QQmlDelegateModel)
#include "tst_qqmldelegatemodel.moc"
+diff --git a/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp b/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
+index 9c865b3f73..1f788f7a7f 100644
+--- a/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
++++ b/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
+@@ -154,6 +154,11 @@ void tst_QQmlImport::importPathOrder()
+ engine.addImportPath(QT_QMLTEST_DATADIR);
+ expectedImportPaths.prepend(QT_QMLTEST_DATADIR);
+ QCOMPARE(expectedImportPaths, engine.importPathList());
++
++ // Add qml2Imports again to make it the first of the list
++ engine.addImportPath(qml2Imports);
++ expectedImportPaths.move(expectedImportPaths.indexOf(qml2Imports), 0);
++ QCOMPARE(expectedImportPaths, engine.importPathList());
+ }
+
+ Q_DECLARE_METATYPE(QQmlImports::ImportVersion)
diff --git a/tests/auto/qml/qqmllanguage/data/Broken.qml b/tests/auto/qml/qqmllanguage/data/Broken.qml
new file mode 100644
index 0000000000..e24d9112a8
@@ -1188,24 +1046,6 @@ index bffb62c59e..97cc64991f 100644
QTEST_MAIN(tst_qqmllanguage)
#include "tst_qqmllanguage.moc"
-diff --git a/tests/auto/qml/qv4mm/tst_qv4mm.cpp b/tests/auto/qml/qv4mm/tst_qv4mm.cpp
-index 5d635aa63b..824fd89e5b 100644
---- a/tests/auto/qml/qv4mm/tst_qv4mm.cpp
-+++ b/tests/auto/qml/qv4mm/tst_qv4mm.cpp
-@@ -76,10 +76,10 @@ void tst_qv4mm::multiWrappedQObjects()
- QCOMPARE(engine1.memoryManager->m_pendingFreedObjectWrapperValue.size(), 1);
- QCOMPARE(engine2.memoryManager->m_pendingFreedObjectWrapperValue.size(), 0);
-
-- // Moves the additional WeakValue from m_multiplyWrappedQObjects to
-- // m_pendingFreedObjectWrapperValue. It's still alive after all.
-+ // The additional WeakValue from m_multiplyWrappedQObjects hasn't been moved
-+ // to m_pendingFreedObjectWrapperValue yet. It's still alive after all.
- engine1.memoryManager->runGC();
-- QCOMPARE(engine1.memoryManager->m_pendingFreedObjectWrapperValue.size(), 2);
-+ QCOMPARE(engine1.memoryManager->m_pendingFreedObjectWrapperValue.size(), 1);
-
- // engine2 doesn't own the object as engine1 was the first to wrap it above.
- // Therefore, no effect here.
diff --git a/tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop3.qml b/tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop3.qml
new file mode 100644
index 0000000000..889e480f3b
diff --git a/desktop/toolkit/qt5/qt5-declarative/pspec.xml b/desktop/toolkit/qt5/qt5-declarative/pspec.xml
index 3e2c817f39..f849b26b48 100755
--- a/desktop/toolkit/qt5/qt5-declarative/pspec.xml
+++ b/desktop/toolkit/qt5/qt5-declarative/pspec.xml
@@ -11,15 +11,15 @@
Classes for QML and JavaScript languages
Classes for QML and JavaScript languages
LGPLv2.1-linking-exception
- http://download.qt.io/official_releases/qt/5.15/5.15.7/submodules/qtdeclarative-everywhere-opensource-src-5.15.7.tar.xz
+ http://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qtdeclarative-everywhere-opensource-src-5.15.9.tar.xz
python3
- qt5-base-devel
+ qt5-base-devel
libxkbcommon-devel
mesa-devel
-
-
- qt5-sql-sqlite
+
+
+ qt5-sql-sqlite
qt_kde.patch
@@ -31,9 +31,9 @@
libgcc
- qt5-base
+ qt5-base
libglvnd
-
+
/usr/lib
@@ -53,7 +53,7 @@
/usr/include/qt5
- qt5-base-devel
+ qt5-base-devel
qt5-declarative
@@ -61,7 +61,7 @@
+
+ 2023-04-10
+ 5.15.9
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2023-02-15
5.15.7
diff --git a/desktop/toolkit/qt5/qt5-networkauth/pspec.xml b/desktop/toolkit/qt5/qt5-networkauth/pspec.xml
index b759284415..6f5e7ee042 100644
--- a/desktop/toolkit/qt5/qt5-networkauth/pspec.xml
+++ b/desktop/toolkit/qt5/qt5-networkauth/pspec.xml
@@ -12,16 +12,16 @@
app:gui
Network authentication module
Ağ kimlik doğrulama modülü
- http://download.qt.io/official_releases/qt/5.15/5.15.7/submodules/qtnetworkauth-everywhere-opensource-src-5.15.7.tar.xz
+ http://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qtnetworkauth-everywhere-opensource-src-5.15.9.tar.xz
- qt5-base-devel
+ qt5-base-devel
qt5-networkauth
- qt5-base
+ qt5-base
/usr/lib
@@ -34,7 +34,7 @@
Development files for qt5-networkauth
qt5-networkauth
- qt5-base-devel
+ qt5-base-devel
/usr/include
@@ -44,6 +44,13 @@
+
+ 2023-04-10
+ 5.15.9
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2022-12-21
5.15.7
diff --git a/desktop/toolkit/qt5/qt5-speech/pspec.xml b/desktop/toolkit/qt5/qt5-speech/pspec.xml
index 5d65b6e495..3a7fb5e080 100755
--- a/desktop/toolkit/qt5/qt5-speech/pspec.xml
+++ b/desktop/toolkit/qt5/qt5-speech/pspec.xml
@@ -14,10 +14,10 @@
LGPL3
Qt module to make text to speech and speech recognition easy
Qt module to make text to speech and speech recognition easy
- http://download.qt.io/official_releases/qt/5.15/5.15.7/submodules/qtspeech-everywhere-opensource-src-5.15.7.tar.xz
+ http://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qtspeech-everywhere-opensource-src-5.15.9.tar.xz
flite-devel
- qt5-base-devel
+ qt5-base-devel
speech-dispatcher-devel
@@ -29,7 +29,7 @@
Qt module to make text to speech and speech recognition easy
flite
- qt5-base
+ qt5-base
libgcc
speech-dispatcher
@@ -54,6 +54,13 @@
+
+ 2023-04-10
+ 5.15.9
+ Version bump.
+ Mustafa Cinasal
+ muscnsl@gmail.com
+
2022-12-21
5.15.7