diff options
author | 2024-12-03 12:29:31 -0500 | |
---|---|---|
committer | 2024-12-03 13:13:37 -0500 | |
commit | 360c7cb2fa772df247a8e79678ab8d6f48b86e7a (patch) | |
tree | 60bb40fe9a0d8f53f3317b9b731cedb1fccd33cc /dev-qt | |
parent | dev-qt/qtconnectivity: drop 6.8.0 (diff) | |
download | gentoo-360c7cb2fa772df247a8e79678ab8d6f48b86e7a.tar.gz gentoo-360c7cb2fa772df247a8e79678ab8d6f48b86e7a.tar.bz2 gentoo-360c7cb2fa772df247a8e79678ab8d6f48b86e7a.zip |
dev-qt/qtdeclarative: drop 6.8.0-r7
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt')
6 files changed, 0 insertions, 688 deletions
diff --git a/dev-qt/qtdeclarative/Manifest b/dev-qt/qtdeclarative/Manifest index 9d50dbe659f7..679ea8a23c1a 100644 --- a/dev-qt/qtdeclarative/Manifest +++ b/dev-qt/qtdeclarative/Manifest @@ -4,5 +4,4 @@ DIST qtdeclarative-everywhere-opensource-src-5.15.14.tar.xz 21595408 BLAKE2B c88 DIST qtdeclarative-everywhere-opensource-src-5.15.16.tar.xz 21599596 BLAKE2B 7f69370eab4909891beb27a730e7082030715f1fcbd9faf87bdd8f3d7d3e469c56b609f58a1cf769bdb22303829d573d30fd9aaff4824456778d11ae46f7ddaa SHA512 be492d95d11ab13e13d27ca2024b5b5860d515d0b66c6d1c201bdba155841996bfdb3b813313dc75578228b6d3e661220dcc5db037624fe73d6e5e1c3ec84aa7 DIST qtdeclarative-everywhere-src-6.7.2.tar.xz 35629324 BLAKE2B a2c5a17e2f88dd91dd7ae21950d8bb7bc0856f1f05a093405c68e1b3b584a75fee474a9a7116a1797c464e2ca92778ebec774d4afa5ac6eebb1022daabad8868 SHA512 ca172e79af317f481d6f5e6388dc074fc6f99966b896135ab9991fa1a9502e46b0ac21b7f2bc38278448939e77882c5fd17252e3e6460c1665f8156fa99bceaf DIST qtdeclarative-everywhere-src-6.7.3.tar.xz 35663596 BLAKE2B b9dc18b4a459c283883a9bd2b2708ea758dc2853e93af05a503b84cb348398e5cdd9b28f6735cbf8e480d252f33cf6c36b06deedd468e7b0169e59b5bae296cd SHA512 54e9b262b07c80eb6530da3e980319edd7370cc90f4241ebaf22a73e1f7f4f14177cea06276a0d3b2b553c6ed0825be0c56b9e2ddca53e99db57b67c3ad4bb47 -DIST qtdeclarative-everywhere-src-6.8.0.tar.xz 37029068 BLAKE2B 272c673eb06ad28be3f7a02d29323ba0ab1943e1dabeb8a8b7d8f4857473a488f22bce1ee60c1e56996cd6805cb30f77b80253a6504f86252c0d4188984ff4b2 SHA512 4f1e26511265e7085bfe097435e64b4daa0bb4a8287f56753a64437a5eb408c0679afa03e255d1949e382b59496eff600cb0638a9b8cc95278d67ad5cfb9d52b DIST qtdeclarative-everywhere-src-6.8.1.tar.xz 36463572 BLAKE2B ac8b9d37c28ba22c266785cfe60bc0d405edb85f260b41bb01c43fd38dbeb51054d7f3f390bb9c4e78656dda3b9d5c7b945dba8ee897add0a2dbb398cc3f8a51 SHA512 f9548ee58ac81eac72f1763647a9f28c16e7ab73bf6bc828574e5194d5209c53440f834a721e9bb74f50d4e437ce2de6eb7c7a13acd8602b3080e95d8929e674 diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-125053.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-125053.patch deleted file mode 100644 index 250a33f7b166..000000000000 --- a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-125053.patch +++ /dev/null @@ -1,258 +0,0 @@ -https://bugreports.qt.io/browse/QTBUG-125053 -https://bugreports.qt.io/browse/QTBUG-127340 -https://codereview.qt-project.org/c/qt/qtdeclarative/+/593122 -https://bugs.gentoo.org/943527 (see also) ---- a/src/qmlmodels/qqmldelegatemodel.cpp -+++ b/src/qmlmodels/qqmldelegatemodel.cpp -@@ -4,4 +4,6 @@ - #include "qqmldelegatemodel_p_p.h" - -+#include <QtCore/private/qabstractitemmodel_p.h> -+ - #include <QtQml/qqmlinfo.h> - -@@ -172,5 +174,4 @@ - , m_incubatorCleanupScheduled(false) - , m_waitingToFetchMore(false) -- , m_maybeResetRoleNames(false) - , m_cacheItems(nullptr) - , m_items(nullptr) -@@ -366,5 +367,4 @@ - QObject::connect(aim, &QAbstractItemModel::rowsMoved, q, &QQmlDelegateModel::_q_rowsMoved); - QObject::connect(aim, &QAbstractItemModel::modelAboutToBeReset, q, &QQmlDelegateModel::_q_modelAboutToBeReset); -- QObject::connect(aim, &QAbstractItemModel::modelReset, q, &QQmlDelegateModel::handleModelReset); - QObject::connect(aim, &QAbstractItemModel::layoutChanged, q, &QQmlDelegateModel::_q_layoutChanged); - } -@@ -387,5 +387,4 @@ - QObject::disconnect(aim, &QAbstractItemModel::rowsMoved, q, &QQmlDelegateModel::_q_rowsMoved); - QObject::disconnect(aim, &QAbstractItemModel::modelAboutToBeReset, q, &QQmlDelegateModel::_q_modelAboutToBeReset); -- QObject::disconnect(aim, &QAbstractItemModel::modelReset, q, &QQmlDelegateModel::handleModelReset); - QObject::disconnect(aim, &QAbstractItemModel::layoutChanged, q, &QQmlDelegateModel::_q_layoutChanged); - } -@@ -412,4 +411,19 @@ - d->requestMoreIfNecessary(); - } -+ -+ // Since 837c2f18cd223707e7cedb213257b0158ea07146, we connect to modelAboutToBeReset -+ // rather than modelReset so that we can handle role name changes. _q_modelAboutToBeReset -+ // now connects modelReset to handleModelReset with a single shot connection instead. -+ // However, it's possible for user code to begin the reset before connectToAbstractItemModel is called -+ // (QTBUG-125053), in which case we connect to modelReset too late and handleModelReset is never called, -+ // resulting in delegates not being created in certain cases. -+ // So, we check at the earliest point we can if the model is in the process of being reset, -+ // and if so, connect modelReset to handleModelReset. -+ if (d->m_adaptorModel.adaptsAim()) { -+ auto *aim = d->m_adaptorModel.aim(); -+ auto *aimPrivate = QAbstractItemModelPrivate::get(aim); -+ if (aimPrivate->resetting) -+ QObject::connect(aim, &QAbstractItemModel::modelReset, this, &QQmlDelegateModel::handleModelReset, Qt::SingleShotConnection); -+ } - } - -@@ -1898,26 +1912,23 @@ - if (!d->m_adaptorModel.adaptsAim()) - return; -- -- /* -- roleNames are generally guaranteed to be stable (given that QAIM has no -- change signal for them), except that resetting the model is allowed to -- invalidate them (QTBUG-32132). DelegateModel must take this into account by -- snapshotting the current roleNames before the model is reset. -- Afterwards, if we detect that roleNames has changed, we throw the -- current model set up away and rebuild everything from scratch – it is -- unlikely that a more efficient implementation would be worth it. -- -- If we detect no changes, we simply use the existing logic to handle the -- model reset. -- -- This (role name resetting) logic relies on the fact that -- modelAboutToBeReset must be followed by a modelReset signal before any -- further modelAboutToBeReset can occur. However, it's possible for user -- code to begin the reset before connectToAbstractItemModel is called -- (QTBUG-125053), in which case we don't attempt to reset the role names. -- */ -- Q_ASSERT(!d->m_maybeResetRoleNames); -- d->m_maybeResetRoleNames = true; -- d->m_roleNamesBeforeReset = d->m_adaptorModel.aim()->roleNames(); -+ auto aim = d->m_adaptorModel.aim(); -+ auto oldRoleNames = aim->roleNames(); -+ // this relies on the fact that modelAboutToBeReset must be followed -+ // by a modelReset signal before any further modelAboutToBeReset can occur -+ QObject::connect(aim, &QAbstractItemModel::modelReset, this, [this, d, oldRoleNames, aim](){ -+ if (!d->m_adaptorModel.adaptsAim() || d->m_adaptorModel.aim() != aim) -+ return; -+ if (oldRoleNames == aim->roleNames()) { -+ // if the rolenames stayed the same (most common case), then we don't have -+ // to throw away all the setup that we did -+ handleModelReset(); -+ } else { -+ // If they did change, we give up and just start from scratch via setMode -+ setModel(QVariant::fromValue(model())); -+ // but we still have to call handleModelReset, otherwise views will -+ // not refresh -+ handleModelReset(); -+ } -+ }, Qt::SingleShotConnection); - } - -@@ -1929,21 +1940,4 @@ - - int oldCount = d->m_count; -- -- if (d->m_maybeResetRoleNames) { -- auto aim = d->m_adaptorModel.aim(); -- if (!d->m_adaptorModel.adaptsAim() || d->m_adaptorModel.aim() != aim) -- return; -- -- // If the role names stayed the same (most common case), then we don't have -- // to throw away all the setup that we did. -- // If they did change, we give up and just start from scratch via setModel. -- // We do this before handling the reset to ensure that views refresh. -- if (aim->roleNames() != d->m_roleNamesBeforeReset) -- setModel(QVariant::fromValue(model())); -- -- d->m_maybeResetRoleNames = false; -- d->m_roleNamesBeforeReset.clear(); -- } -- - d->m_adaptorModel.rootIndex = QModelIndex(); - ---- a/src/qmlmodels/qqmldelegatemodel_p_p.h -+++ b/src/qmlmodels/qqmldelegatemodel_p_p.h -@@ -335,5 +335,4 @@ - QList<QQDMIncubationTask *> m_finishedIncubating; - QList<QByteArray> m_watchedRoles; -- QHash<int, QByteArray> m_roleNamesBeforeReset; - - QString m_filterGroup; -@@ -349,5 +348,4 @@ - bool m_incubatorCleanupScheduled : 1; - bool m_waitingToFetchMore : 1; -- bool m_maybeResetRoleNames : 1; - - union { ---- a/tests/auto/qml/qqmldelegatemodel/data/proxyModelWithDelayedSourceModelInListView.qml -+++ b/tests/auto/qml/qqmldelegatemodel/data/proxyModelWithDelayedSourceModelInListView.qml -@@ -0,0 +1,30 @@ -+import QtQuick -+import Test -+ -+Window { -+ id: root -+ title: listView.count -+ -+ property alias listView: listView -+ property ProxySourceModel connectionModel: null -+ -+ Component { -+ id: modelComponent -+ ProxySourceModel {} -+ } -+ -+ ListView { -+ id: listView -+ anchors.fill: parent -+ -+ delegate: Text { -+ text: model.Name -+ } -+ -+ model: ProxyModel { -+ sourceModel: root.connectionModel -+ } -+ } -+ -+ Component.onCompleted: root.connectionModel = modelComponent.createObject(root) -+} ---- a/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp -+++ b/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp -@@ -4,4 +4,5 @@ - #include <QtTest/qtest.h> - #include <QtCore/qjsonobject.h> -+#include <QtCore/qsortfilterproxymodel.h> - #include <QtCore/QConcatenateTablesProxyModel> - #include <QtCore/qtimer.h> -@@ -52,4 +53,5 @@ - void clearCacheDuringInsertion(); - void viewUpdatedOnDelegateChoiceAffectingRoleChange(); -+ void proxyModelWithDelayedSourceModelInListView(); - }; - -@@ -732,4 +734,77 @@ - } - -+class ProxySourceModel : public QAbstractListModel -+{ -+ Q_OBJECT -+ QML_ELEMENT -+public: -+ explicit ProxySourceModel(QObject *parent = nullptr) -+ : QAbstractListModel(parent) -+ { -+ for (int i = 0; i < rows; ++i) { -+ beginInsertRows(QModelIndex(), i, i); -+ endInsertRows(); -+ } -+ } -+ -+ ~ProxySourceModel() override = default; -+ -+ int rowCount(const QModelIndex &) const override -+ { -+ return rows; -+ } -+ -+ QVariant data(const QModelIndex &, int ) const override -+ { -+ return "Hello"; -+ } -+ -+ QHash<int, QByteArray> roleNames() const override -+ { -+ QHash<int, QByteArray> roles = QAbstractListModel::roleNames(); -+ roles[Qt::UserRole + 1] = "Name"; -+ -+ return roles; -+ } -+ -+ static const int rows = 1; -+}; -+ -+class ProxyModel : public QSortFilterProxyModel -+{ -+ Q_OBJECT -+ QML_ELEMENT -+ Q_PROPERTY(QAbstractItemModel *sourceModel READ sourceModel WRITE setSourceModel) -+ -+public: -+ explicit ProxyModel(QObject *parent = nullptr) -+ : QSortFilterProxyModel(parent) -+ { -+ } -+ -+ ~ProxyModel() override = default; -+}; -+ -+// Checks that the correct amount of delegates are created when using a proxy -+// model whose source model is set after a delay. -+void tst_QQmlDelegateModel::proxyModelWithDelayedSourceModelInListView() -+{ -+ QTest::failOnWarning(); -+ -+ qmlRegisterTypesAndRevisions<ProxySourceModel>("Test", 1); -+ qmlRegisterTypesAndRevisions<ProxyModel>("Test", 1); -+ -+ QQuickApplicationHelper helper(this, "proxyModelWithDelayedSourceModelInListView.qml"); -+ QVERIFY2(helper.ready, helper.failureMessage()); -+ QQuickWindow *window = helper.window; -+ window->show(); -+ QVERIFY(QTest::qWaitForWindowExposed(window)); -+ -+ auto *listView = window->property("listView").value<QQuickListView *>(); -+ QVERIFY(listView); -+ const auto delegateModel = QQuickItemViewPrivate::get(listView)->model; -+ QTRY_COMPARE(listView->count(), 1); -+} -+ - QTEST_MAIN(tst_QQmlDelegateModel) - diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129500.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129500.patch deleted file mode 100644 index 45f165f374d2..000000000000 --- a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129500.patch +++ /dev/null @@ -1,80 +0,0 @@ -Prevents crashes in Neochat and other kirigami-based applications. -https://bugreports.qt.io/browse/QTBUG-129500 -https://codereview.qt-project.org/c/qt/qtdeclarative/+/595278 ---- a/src/quick/items/qquickitem.cpp -+++ b/src/quick/items/qquickitem.cpp -@@ -8757,7 +8757,8 @@ - QPointF p = mapToScene(point); - if (item) { -- const QQuickWindow *itemWindow = item->window(); -- if (itemWindow != nullptr && itemWindow != window()) -- p = itemWindow->mapFromGlobal(window()->mapToGlobal(p)); -+ const auto *itemWindow = item->window(); -+ const auto *thisWindow = window(); -+ if (thisWindow && itemWindow && itemWindow != thisWindow) -+ p = itemWindow->mapFromGlobal(thisWindow->mapToGlobal(p)); - - p = item->mapFromScene(p); -@@ -8864,7 +8865,8 @@ - if (item) { - p = item->mapToScene(point); -- -- if (item->window() != window()) -- p = window()->mapFromGlobal(item->window()->mapToGlobal(p)); -+ const auto *itemWindow = item->window(); -+ const auto *thisWindow = window(); -+ if (thisWindow && itemWindow && itemWindow != thisWindow) -+ p = thisWindow->mapFromGlobal(itemWindow->mapToGlobal(p)); - } - return mapFromScene(p); ---- a/tests/auto/quick/qquickitem2/data/mapCoordinatesWithWindows.qml -+++ b/tests/auto/quick/qquickitem2/data/mapCoordinatesWithWindows.qml -@@ -49,3 +49,14 @@ - } - } -+ -+ property Item itemWithoutWindowA: Item { -+ x: 20; y: 20 -+ } -+ property Item itemWithoutWindowB: Item { -+ x: 40; y: 40 -+ Item { -+ objectName: "childItemWithoutWindow" -+ x: 30; y: 30 -+ } -+ } - } ---- a/tests/auto/quick/qquickitem2/tst_qquickitem.cpp -+++ b/tests/auto/quick/qquickitem2/tst_qquickitem.cpp -@@ -2884,4 +2884,31 @@ - QCOMPARE(childItemInChildWindow->mapFromItem(childItemInOtherWindow, {0, 0}), - globalItemOffset(childItemInOtherWindow, childItemInChildWindow)); -+ -+ // If one or both of the items are not in a scene (yet), they are assumed -+ // to eventually be in the same scene. -+ -+ auto *itemWithoutWindowA = root->property("itemWithoutWindowA").value<QQuickItem*>(); -+ QVERIFY(itemWithoutWindowA); -+ auto *itemWithoutWindowB = root->property("itemWithoutWindowB").value<QQuickItem*>(); -+ QVERIFY(itemWithoutWindowB); -+ auto *childItemWithoutWindow = itemWithoutWindowB->findChild<QQuickItem*>("childItemWithoutWindow"); -+ QVERIFY(childItemWithoutWindow); -+ -+ QPoint itemWithoutWindowAPos = itemWithoutWindowA->position().toPoint(); -+ QPoint itemWithoutWindowBPos = itemWithoutWindowB->position().toPoint(); -+ -+ QCOMPARE(itemWithoutWindowA->mapToItem(childItemWithoutWindow, {0, 0}), -+ itemWithoutWindowAPos - (itemWithoutWindowBPos + childItemWithoutWindow->position())); -+ QCOMPARE(itemWithoutWindowA->mapFromItem(childItemWithoutWindow, {0, 0}), -+ (itemWithoutWindowBPos + childItemWithoutWindow->position()) - itemWithoutWindowAPos); -+ -+ QCOMPARE(itemWithoutWindowA->mapToItem(childItem, {0, 0}), -+ itemWithoutWindowAPos - itemPos); -+ QCOMPARE(itemWithoutWindowA->mapFromItem(childItem, {0, 0}), -+ itemPos - itemWithoutWindowAPos); -+ QCOMPARE(childItem->mapToItem(itemWithoutWindowA, {0, 0}), -+ itemPos - itemWithoutWindowAPos); -+ QCOMPARE(childItem->mapFromItem(itemWithoutWindowA, {0, 0}), -+ itemWithoutWindowAPos - itemPos); - } - diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129797.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129797.patch deleted file mode 100644 index e43e65c992d6..000000000000 --- a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-129797.patch +++ /dev/null @@ -1,24 +0,0 @@ -https://bugs.gentoo.org/941172 -https://bugs.kde.org/show_bug.cgi?id=494281 -https://bugreports.qt.io/browse/QTBUG-129797 -https://codereview.qt-project.org/c/qt/qtdeclarative/+/596457 ---- a/src/qmlcompiler/qqmljscodegenerator.cpp -+++ b/src/qmlcompiler/qqmljscodegenerator.cpp -@@ -78,6 +78,6 @@ - return u"QQmlPrivate::compositeListMetaType(aotContext->compilationUnit, "_s - + (m_jsUnitGenerator->hasStringId(elementName) -- ? QString::number(m_jsUnitGenerator->getStringId(elementName)) -- : u'"' + elementName + u'"') + u")"_s; -+ ? QString::number(m_jsUnitGenerator->getStringId(elementName)) + u')' -+ : u"QStringLiteral(\"%1\"))"_s.arg(elementName)); - } - -@@ -86,6 +86,6 @@ - return u"QQmlPrivate::compositeMetaType(aotContext->compilationUnit, "_s - + (m_jsUnitGenerator->hasStringId(elementName) -- ? QString::number(m_jsUnitGenerator->getStringId(elementName)) -- : u'"' + elementName + u'"') + u")"_s; -+ ? QString::number(m_jsUnitGenerator->getStringId(elementName)) + u')' -+ : u"QStringLiteral(\"%1\"))"_s.arg(elementName)); - } - diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-130767.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-130767.patch deleted file mode 100644 index aefc46bd3604..000000000000 --- a/dev-qt/qtdeclarative/files/qtdeclarative-6.8.0-QTBUG-130767.patch +++ /dev/null @@ -1,255 +0,0 @@ -https://bugreports.qt.io/browse/QTBUG-130767 -https://bugs.kde.org/show_bug.cgi?id=494804 -https://codereview.qt-project.org/c/qt/qtdeclarative/+/604180 -(+required https://code.qt.io/cgit/qt/qtdeclarative.git/commit/?id=104b0d6e88) ---- a/src/qml/jsruntime/qv4qobjectwrapper_p.h -+++ b/src/qml/jsruntime/qv4qobjectwrapper_p.h -@@ -224,2 +224,15 @@ - -+// We generally musn't pass ReturnedValue as arguments to other functions. -+// In this case, we do it solely for marking purposes so it's fine. -+inline void markIfPastMarkWeakValues(ExecutionEngine *engine, ReturnedValue rv) -+{ -+ const auto gcState = engine->memoryManager->gcStateMachine->state; -+ if (gcState != GCStateMachine::Invalid && gcState >= GCState::MarkWeakValues) { -+ QV4::WriteBarrier::markCustom(engine, [rv](QV4::MarkStack *ms) { -+ auto *m = StaticValue::fromReturnedValue(rv).m(); -+ m->mark(ms); -+ }); -+ } -+} -+ - inline ReturnedValue QObjectWrapper::wrap(ExecutionEngine *engine, QObject *object) -@@ -235,3 +248,5 @@ - -- return wrap_slowPath(engine, object); -+ const auto rv = wrap_slowPath(engine, object); -+ markIfPastMarkWeakValues(engine, rv); -+ return rv; - } -@@ -244,3 +259,5 @@ - -- return wrapConst_slowPath(engine, object); -+ const auto rv = wrapConst_slowPath(engine, object); -+ markIfPastMarkWeakValues(engine, rv); -+ return rv; - } ---- a/src/qml/memory/qv4mm.cpp -+++ b/src/qml/memory/qv4mm.cpp -@@ -62,2 +62,4 @@ - Q_DECLARE_LOGGING_CATEGORY(lcGcAllocatorStats) -+Q_LOGGING_CATEGORY(lcGcStateTransitions, "qt.qml.gc.stateTransitions") -+Q_DECLARE_LOGGING_CATEGORY(lcGcStateTransitions) - -@@ -682,3 +684,3 @@ - that->mm->engine->isGCOngoing = true; -- return MarkGlobalObject; -+ return GCState::MarkGlobalObject; - } -@@ -688,3 +690,3 @@ - that->mm->engine->markObjects(that->mm->m_markStack.get()); -- return MarkJSStack; -+ return GCState::MarkJSStack; - } -@@ -694,3 +696,3 @@ - that->mm->collectFromJSStack(that->mm->markStack()); -- return InitMarkPersistentValues; -+ return GCState::InitMarkPersistentValues; - } -@@ -700,5 +702,5 @@ - if (!that->mm->m_persistentValues) -- return InitMarkWeakValues; // no persistent values to mark -+ return GCState::InitMarkWeakValues; // no persistent values to mark - stateData = GCIteratorStorage { that->mm->m_persistentValues->begin() }; -- return MarkPersistentValues; -+ return GCState::MarkPersistentValues; - } -@@ -719,3 +721,3 @@ - if (wasDrainNecessary(markStack, that->deadline) && that->deadline.hasExpired()) -- return MarkPersistentValues; -+ return GCState::MarkPersistentValues; - PersistentValueStorage::Iterator& it = get<GCIteratorStorage>(stateData).it; -@@ -724,3 +726,3 @@ - if (!it.p) -- return InitMarkWeakValues; -+ return GCState::InitMarkWeakValues; - if (Managed *m = (*it).as<Managed>()) -@@ -729,3 +731,3 @@ - } -- return MarkPersistentValues; -+ return GCState::MarkPersistentValues; - } -@@ -735,3 +737,3 @@ - stateData = GCIteratorStorage { that->mm->m_weakValues->begin() }; -- return MarkWeakValues; -+ return GCState::MarkWeakValues; - } -@@ -742,3 +744,3 @@ - if (wasDrainNecessary(markStack, that->deadline) && that->deadline.hasExpired()) -- return MarkWeakValues; -+ return GCState::MarkWeakValues; - PersistentValueStorage::Iterator& it = get<GCIteratorStorage>(stateData).it; -@@ -747,3 +749,3 @@ - if (!it.p) -- return MarkDrain; -+ return GCState::MarkDrain; - QObjectWrapper *qobjectWrapper = (*it).as<QObjectWrapper>(); -@@ -768,3 +770,3 @@ - } -- return MarkWeakValues; -+ return GCState::MarkWeakValues; - } -@@ -775,3 +777,3 @@ - that->mm->markStack()->drain(); -- return MarkReady; -+ return GCState::MarkReady; - } -@@ -779,4 +781,4 @@ - return drainState == MarkStack::DrainState::Complete -- ? MarkReady -- : MarkDrain; -+ ? GCState::MarkReady -+ : GCState::MarkDrain; - } -@@ -786,3 +788,3 @@ - //Possibility to do some clean up, stat printing, etc... -- return InitCallDestroyObjects; -+ return GCState::InitCallDestroyObjects; - } -@@ -803,5 +805,5 @@ - if (!that->mm->m_weakValues) -- return FreeWeakMaps; // no need to call destroy objects -+ return GCState::FreeWeakMaps; // no need to call destroy objects - stateData = GCIteratorStorage { that->mm->m_weakValues->begin() }; -- return CallDestroyObjects; -+ return GCState::CallDestroyObjects; - } -@@ -818,3 +820,3 @@ - if (!it.p) -- return FreeWeakMaps; -+ return GCState::FreeWeakMaps; - Managed *m = (*it).managed(); -@@ -828,3 +830,3 @@ - } -- return CallDestroyObjects; -+ return GCState::CallDestroyObjects; - } -@@ -845,3 +847,3 @@ - freeWeakMaps(that->mm); -- return FreeWeakSets; -+ return GCState::FreeWeakSets; - } -@@ -863,3 +865,3 @@ - freeWeakSets(that->mm); -- return HandleQObjectWrappers; -+ return GCState::HandleQObjectWrappers; - } -@@ -869,3 +871,3 @@ - that->mm->cleanupDeletedQObjectWrappersInSweep(); -- return DoSweep; -+ return GCState::DoSweep; - } -@@ -893,3 +895,3 @@ - -- return Invalid; -+ return GCState::Invalid; - } -@@ -1493,4 +1495,8 @@ - } -+ qCDebug(lcGcStateTransitions) << "Preparing to execute the" -+ << QMetaEnum::fromType<GCState>().key(state) << "state"; - GCStateInfo& stateInfo = stateInfoMap[int(state)]; - state = stateInfo.execute(this, stateData); -+ qCDebug(lcGcStateTransitions) << "Transitioning to the" -+ << QMetaEnum::fromType<GCState>().key(state) << "state"; - if (stateInfo.breakAfter) -@@ -1507,4 +1513,8 @@ - while (state != GCState::Invalid) { -+ qCDebug(lcGcStateTransitions) << "Preparing to execute the" -+ << QMetaEnum::fromType<GCState>().key(state) << "state"; - GCStateInfo& stateInfo = stateInfoMap[int(state)]; - state = stateInfo.execute(this, stateData); -+ qCDebug(lcGcStateTransitions) << "Transitioning to the" -+ << QMetaEnum::fromType<GCState>().key(state) << "state"; - } -@@ -1516 +1526,3 @@ - QT_END_NAMESPACE -+ -+#include "moc_qv4mm_p.cpp" ---- a/src/qml/memory/qv4mm_p.h -+++ b/src/qml/memory/qv4mm_p.h -@@ -30,22 +30,2 @@ - --enum GCState { -- MarkStart = 0, -- MarkGlobalObject, -- MarkJSStack, -- InitMarkPersistentValues, -- MarkPersistentValues, -- InitMarkWeakValues, -- MarkWeakValues, -- MarkDrain, -- MarkReady, -- InitCallDestroyObjects, -- CallDestroyObjects, -- FreeWeakMaps, -- FreeWeakSets, -- HandleQObjectWrappers, -- DoSweep, -- Invalid, -- Count, --}; -- - struct GCData { virtual ~GCData(){};}; -@@ -55,11 +35,39 @@ - }; --struct GCStateMachine; -- --struct GCStateInfo { -- using ExtraData = std::variant<std::monostate, GCIteratorStorage>; -- GCState (*execute)(GCStateMachine *, ExtraData &) = nullptr; // Function to execute for this state, returns true if ready to transition -- bool breakAfter{false}; --}; - - struct GCStateMachine { -+ Q_GADGET_EXPORT(Q_QML_EXPORT) -+ -+public: -+ enum GCState { -+ MarkStart = 0, -+ MarkGlobalObject, -+ MarkJSStack, -+ InitMarkPersistentValues, -+ MarkPersistentValues, -+ InitMarkWeakValues, -+ MarkWeakValues, -+ MarkDrain, -+ MarkReady, -+ InitCallDestroyObjects, -+ CallDestroyObjects, -+ FreeWeakMaps, -+ FreeWeakSets, -+ HandleQObjectWrappers, -+ DoSweep, -+ Invalid, -+ Count, -+ }; -+ Q_ENUM(GCState) -+ -+ struct StepTiming { -+ qint64 rolling_sum = 0; -+ qint64 count = 0; -+ }; -+ -+ struct GCStateInfo { -+ using ExtraData = std::variant<std::monostate, GCIteratorStorage>; -+ GCState (*execute)(GCStateMachine *, ExtraData &) = nullptr; // Function to execute for this state, returns true if ready to transition -+ bool breakAfter{false}; -+ }; -+ - using ExtraData = GCStateInfo::ExtraData; -@@ -96,2 +104,4 @@ - -+using GCState = GCStateMachine::GCState; -+using GCStateInfo = GCStateMachine::GCStateInfo; - diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.8.0-r7.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.8.0-r7.ebuild deleted file mode 100644 index 21baad2c9b84..000000000000 --- a/dev-qt/qtdeclarative/qtdeclarative-6.8.0-r7.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 2021-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..13} ) - -# behaves very badly when qtdeclarative is not already installed, also -# other more minor issues (installs junk, sandbox/offscreen issues) -QT6_RESTRICT_TESTS=1 - -inherit python-any-r1 qt6-build - -DESCRIPTION="Qt Declarative (Quick 2)" - -if [[ ${QT6_BUILD_TYPE} == release ]]; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - -IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets" - -RDEPEND=" - ~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=] - >=dev-qt/qtbase-${PV}-r1 - qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 ) - svg? ( ~dev-qt/qtsvg-${PV}:6 ) -" -DEPEND=" - ${RDEPEND} - vulkan? ( dev-util/vulkan-headers ) -" -BDEPEND=" - ${PYTHON_DEPS} - ~dev-qt/qtshadertools-${PV}:6 -" - -PATCHES=( - "${FILESDIR}"/${PN}-6.7.3-QTBUG-129622.patch - "${FILESDIR}"/${PN}-6.8.0-QTBUG-125053.patch - "${FILESDIR}"/${PN}-6.8.0-QTBUG-129797.patch - "${FILESDIR}"/${PN}-6.8.0-QTBUG-129500.patch - "${FILESDIR}"/${PN}-6.8.0-QTBUG-130767.patch -) - -src_configure() { - local mycmakeargs=( - $(cmake_use_find_package qmlls Qt6LanguageServerPrivate) - $(cmake_use_find_package sql Qt6Sql) - $(cmake_use_find_package svg Qt6Svg) - $(qt_feature jit qml_jit) - $(qt_feature network qml_network) - $(qt_feature ssl qml_ssl) - ) - - qt6-build_src_configure -} - -src_install() { - qt6-build_src_install - - if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675 - eerror "${CATEGORY}/${PF} seems to have been improperly built and" - eerror "install was aborted to protect the system. Possibly(?) due" - eerror "to a rare portage ordering bug. If using portage, try:" - eerror " emerge -1 qtshadertools:6 qtdeclarative:6" - eerror "If that did not resolve the issue, please provide build.log" - eerror "on https://bugs.gentoo.org/940675" - die "aborting due to incomplete/broken build (see above)" - fi -} |