From 5449df6cce7b511dac9816189682dce404597a57a8cb41753857d1c5e43fb0ba Mon Sep 17 00:00:00 2001 From: Christophe Marin Date: Fri, 25 Oct 2024 13:40:53 +0000 Subject: [PATCH] - Add upstream changes: * 0001-QQuickItemView-fix-crash-with-zero-size-SwipeView-th.patch (QTBUG-129622, kde#493854) * 0001-QQuickAccessibleAttached-Let-implicit-names-work-whe.patch (QTBUG-130360) OBS-URL: https://build.opensuse.org/package/show/KDE:Qt6/qt6-declarative?expand=0&rev=81 --- .gitattributes | 23 + .gitignore | 1 + ...w-string-literals-in-QStringLiteral-.patch | 45 + ...Attached-Let-implicit-names-work-whe.patch | 116 ++ ...ix-crash-with-zero-size-SwipeView-th.patch | 127 ++ ...ateModel-fix-delegates-not-being-cre.patch | 420 ++++ ...canner-Include-module-versions-again.patch | 25 + ...l-fix-delegates-not-being-created-in.patch | 473 +++++ _constraints | 55 + _multibuild | 4 + qt6-declarative-rpmlintrc | 6 + qt6-declarative.changes | 400 ++++ qt6-declarative.spec | 1797 +++++++++++++++++ qtdeclarative-everywhere-src-6.7.2.tar.xz | 3 + qtdeclarative-everywhere-src-6.7.3.tar.xz | 3 + qtdeclarative-everywhere-src-6.8.0.tar.xz | 3 + 16 files changed, 3501 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 0001-Compiler-Wrap-raw-string-literals-in-QStringLiteral-.patch create mode 100644 0001-QQuickAccessibleAttached-Let-implicit-names-work-whe.patch create mode 100644 0001-QQuickItemView-fix-crash-with-zero-size-SwipeView-th.patch create mode 100644 0001-Revert-QQmlDelegateModel-fix-delegates-not-being-cre.patch create mode 100644 0001-qmlimportscanner-Include-module-versions-again.patch create mode 100644 0002-QQmlDelegateModel-fix-delegates-not-being-created-in.patch create mode 100644 _constraints create mode 100644 _multibuild create mode 100644 qt6-declarative-rpmlintrc create mode 100644 qt6-declarative.changes create mode 100644 qt6-declarative.spec create mode 100644 qtdeclarative-everywhere-src-6.7.2.tar.xz create mode 100644 qtdeclarative-everywhere-src-6.7.3.tar.xz create mode 100644 qtdeclarative-everywhere-src-6.8.0.tar.xz diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Compiler-Wrap-raw-string-literals-in-QStringLiteral-.patch b/0001-Compiler-Wrap-raw-string-literals-in-QStringLiteral-.patch new file mode 100644 index 0000000..9ef4106 --- /dev/null +++ b/0001-Compiler-Wrap-raw-string-literals-in-QStringLiteral-.patch @@ -0,0 +1,45 @@ +From e6e3da4de8fac7f52eb2591cb95a04ab413f8ace Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Olivier=20De=20Canni=C3=A8re?= +Date: Wed, 9 Oct 2024 09:41:27 +0200 +Subject: [PATCH] Compiler: Wrap raw string literals in QStringLiteral in + generated code + +Amends e7146cd98700c29802214a39a4cefd9db146c97a + +Fixes: QTBUG-129797 +Change-Id: I5dc48412cf29bd2de877dd681ea309a6e74d75c5 +Reviewed-by: Ulf Hermann +(cherry picked from commit d63c560ec4ce79c1bb24e1a01a20de41706dd039) +Reviewed-by: Qt Cherry-pick Bot +--- + src/qmlcompiler/qqmljscodegenerator.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/qmlcompiler/qqmljscodegenerator.cpp b/src/qmlcompiler/qqmljscodegenerator.cpp +index 807168ca09..e5622fe6f9 100644 +--- a/src/qmlcompiler/qqmljscodegenerator.cpp ++++ b/src/qmlcompiler/qqmljscodegenerator.cpp +@@ -77,16 +77,16 @@ QString QQmlJSCodeGenerator::compositeListMetaType(const QString &elementName) c + { + 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)); + } + + QString QQmlJSCodeGenerator::compositeMetaType(const QString &elementName) const + { + 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)); + } + + QString QQmlJSCodeGenerator::metaObject(const QQmlJSScope::ConstPtr &objectType) +-- +2.47.0 + diff --git a/0001-QQuickAccessibleAttached-Let-implicit-names-work-whe.patch b/0001-QQuickAccessibleAttached-Let-implicit-names-work-whe.patch new file mode 100644 index 0000000..fc0c64b --- /dev/null +++ b/0001-QQuickAccessibleAttached-Let-implicit-names-work-whe.patch @@ -0,0 +1,116 @@ +From 71a9938f4e093c77fc7b9f1cf8043e6d3552aff3 Mon Sep 17 00:00:00 2001 +From: Aleix Pol +Date: Tue, 22 Oct 2024 02:47:48 +0200 +Subject: [PATCH] QQuickAccessibleAttached: Let implicit names work when + there's a proxy + +QQuickAccessibleAttached has infrastructure to provide an implicit name +that we were bypassing now that we have proxies (introduced in 6.8). +We should only use the name of the proxy when it's being set, otherwise +we better provide the implicit name. + +Amends 7bdeea2c309150c8b49558b135232926d6a89c50. + +Fixes: QTBUG-130360 +Pick-to: 6.8 +Change-Id: I37470e1f28e837bdbb304726ee85f45ba6577621 +Reviewed-by: Fabian Kosmale +--- + src/quick/items/qquickaccessibleattached_p.h | 2 +- + .../data/actionAccessibility/button2.qml | 9 +++++ + .../accessibility/tst_accessibility.cpp | 36 +++++++++++++++++++ + 3 files changed, 46 insertions(+), 1 deletion(-) + create mode 100644 tests/auto/quickcontrols/accessibility/data/actionAccessibility/button2.qml + +diff --git a/src/quick/items/qquickaccessibleattached_p.h b/src/quick/items/qquickaccessibleattached_p.h +index aa15b43..2d44000 100644 +--- a/src/quick/items/qquickaccessibleattached_p.h ++++ b/src/quick/items/qquickaccessibleattached_p.h +@@ -87,7 +87,7 @@ public: + QString name() const { + if (m_state.passwordEdit) + return QString(); +- if (m_proxying) ++ if (!m_nameExplicitlySet && m_proxying && m_proxying->wasNameExplicitlySet()) + return m_proxying->name(); + return m_name; + } +diff --git a/tests/auto/quickcontrols/accessibility/data/actionAccessibility/button2.qml b/tests/auto/quickcontrols/accessibility/data/actionAccessibility/button2.qml +new file mode 100644 +index 0000000..1cd1c81 +--- /dev/null ++++ b/tests/auto/quickcontrols/accessibility/data/actionAccessibility/button2.qml +@@ -0,0 +1,9 @@ ++import QtQuick ++import QtQuick.Controls ++ ++Button { ++ action: Action { ++ text: "Pears" ++ Accessible.description: "Show pears some love" ++ } ++} +diff --git a/tests/auto/quickcontrols/accessibility/tst_accessibility.cpp b/tests/auto/quickcontrols/accessibility/tst_accessibility.cpp +index 8bdd945..2018c0e 100644 +--- a/tests/auto/quickcontrols/accessibility/tst_accessibility.cpp ++++ b/tests/auto/quickcontrols/accessibility/tst_accessibility.cpp +@@ -33,6 +33,8 @@ private slots: + void ordering(); + + void actionAccessibility(); ++ void actionAccessibilityImplicitName(); ++ + private: + QQmlEngine engine; + }; +@@ -279,6 +281,13 @@ void tst_accessibility::ordering() + void tst_accessibility::actionAccessibility() + { + #if QT_CONFIG(accessibility) ++ if (!QAccessible::isActive()) { ++ QPlatformAccessibility *accessibility = platformAccessibility(); ++ if (!accessibility) ++ QSKIP("No QPlatformAccessibility available."); ++ accessibility->setActive(true); ++ } ++ + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("actionAccessibility/button.qml")); + +@@ -296,6 +305,33 @@ void tst_accessibility::actionAccessibility() + #endif + } + ++void tst_accessibility::actionAccessibilityImplicitName() ++{ ++#if QT_CONFIG(accessibility) ++ if (!QAccessible::isActive()) { ++ QPlatformAccessibility *accessibility = platformAccessibility(); ++ if (!accessibility) ++ QSKIP("No QPlatformAccessibility available."); ++ accessibility->setActive(true); ++ } ++ ++ QQmlComponent component(&engine); ++ component.loadUrl(testFileUrl("actionAccessibility/button2.qml")); ++ ++ QScopedPointer object(component.create()); ++ QVERIFY2(!object.isNull(), qPrintable(component.errorString())); ++ ++ QQuickItem *item = qobject_cast(object.data()); ++ QVERIFY(item); ++ const QString description = "Show pears some love"; ++ QCOMPARE(item->property("text"), "Pears"); ++ QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(item); ++ QVERIFY(iface); ++ QCOMPARE(iface->text(QAccessible::Name), "Pears"); // We get the action.text implicitly ++ QCOMPARE(iface->text(QAccessible::Description), description); ++#endif ++} ++ + QTEST_MAIN(tst_accessibility) + + #include "tst_accessibility.moc" +-- +2.47.0 + diff --git a/0001-QQuickItemView-fix-crash-with-zero-size-SwipeView-th.patch b/0001-QQuickItemView-fix-crash-with-zero-size-SwipeView-th.patch new file mode 100644 index 0000000..771f020 --- /dev/null +++ b/0001-QQuickItemView-fix-crash-with-zero-size-SwipeView-th.patch @@ -0,0 +1,127 @@ +From c343a0bb2a8f87758bf97241223224770e5c4687 Mon Sep 17 00:00:00 2001 +From: Mitch Curtis +Date: Tue, 22 Oct 2024 13:26:08 +0800 +Subject: [PATCH] QQuickItemView: fix crash with zero-size SwipeView that uses + Repeater + +When running the minimal example from the bug report, the order of +events is: + +1. deletables are iterated in QQuickRepeater::clear(), and deleteLater +is called on the delegate item. +2. deletables are unparented. This causes Container (SwipeView) to be +notified of the parent change and it removes the item. Part of this +involves changing the currentIndex, since the removed item was current. +3. SwipeView's contentItem (ListView) has its currentIndex bound to the +container's, so QQuickItemView::setCurrentIndex is called. +4. setCurrentIndex calls updateCurrent, which detects that the +currentIndex (which is -1, because there was only one item) is out of +range and so releases the item. This causes it to be added to +unrequestedItems, even though it has been scheduled for deletion. + +This patch makes QQuickItemView detect that the item is going to be +deleted and not add it to the list of deletables. + +Fixes: QTBUG-129622 +Pick-to: 6.5 6.8 +Change-Id: I999aedbdfafc61ff6d33eb6579331f470e9c1454 +Reviewed-by: Richard Moe Gustavsen +Reviewed-by: Fabian Kosmale +--- + src/quick/items/qquickitemview.cpp | 4 +- + .../controls/data/tst_swipeview.qml | 59 +++++++++++++++++++ + 2 files changed, 62 insertions(+), 1 deletion(-) + +diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp +index 19e5b7f..dabd563 100644 +--- a/src/quick/items/qquickitemview.cpp ++++ b/src/quick/items/qquickitemview.cpp +@@ -2499,7 +2499,9 @@ bool QQuickItemViewPrivate::releaseItem(FxViewItem *item, QQmlInstanceModel::Reu + // One case where this can happen is moving an item out of one ObjectModel and into another. + QQuickItemPrivate::get(item->item)->setCulled(true); + } +- if (!isClearing) ++ // If deleteLater was called, the item isn't long for this world and so we shouldn't store references to it. ++ // This can happen when a Repeater is used to populate items in SwipeView's ListView contentItem. ++ if (!isClearing && !QObjectPrivate::get(item->item)->deleteLaterCalled) + unrequestedItems.insert(item->item, model->indexOf(item->item, q)); + } else if (flags & QQmlInstanceModel::Destroyed) { + item->item->setParentItem(nullptr); +diff --git a/tests/auto/quickcontrols/controls/data/tst_swipeview.qml b/tests/auto/quickcontrols/controls/data/tst_swipeview.qml +index 3a7558c..a3dd16c 100644 +--- a/tests/auto/quickcontrols/controls/data/tst_swipeview.qml ++++ b/tests/auto/quickcontrols/controls/data/tst_swipeview.qml +@@ -4,6 +4,7 @@ + import QtQuick + import QtTest + import QtQuick.Controls ++import QtQuick.Layouts + + TestCase { + id: testCase +@@ -760,4 +761,62 @@ TestCase { + tryCompare(swipeListView, "contentX", swipeListView.width, 1000) + compare(item2.x, swipeListView.width) + } ++ ++ Component { ++ id: zeroSizeSwipeViewWithRepeatersComponent ++ ++ Item { ++ objectName: "rootItem" ++ anchors.fill: parent ++ ++ property alias swipeView: swipeView ++ property int d ++ ++ Timer { ++ interval: 2 ++ running: true ++ repeat: false ++ onTriggered: d = 2 ++ } ++ ++ SwipeView { ++ id: swipeView ++ contentItem.objectName: "swipeViewListView" ++ ++ Repeater { ++ objectName: "swipeViewContentItemRepeater" ++ model: [ ++ { ++ title: d ++ } ++ ] ++ ++ delegate: GridLayout { ++ objectName: "gridLayoutDelegate" ++ ++ Repeater { ++ id: repeater ++ objectName: "delegateRepeater" ++ model: d ++ delegate: Item { ++ objectName: "delegate" + index ++ ++ required property int index ++ } ++ } ++ } ++ } ++ } ++ } ++ } ++ ++ // QTBUG-129622 ++ function test_zeroSizeSwipeViewWithRepeaters() { ++ let root = createTemporaryObject(zeroSizeSwipeViewWithRepeatersComponent, testCase) ++ verify(root) ++ ++ let swipeView = root.swipeView ++ tryCompare(root, "d", 2) ++ // Shouldn't crash when the model is changed. ++ } + } +-- +2.47.0 + diff --git a/0001-Revert-QQmlDelegateModel-fix-delegates-not-being-cre.patch b/0001-Revert-QQmlDelegateModel-fix-delegates-not-being-cre.patch new file mode 100644 index 0000000..9d0df50 --- /dev/null +++ b/0001-Revert-QQmlDelegateModel-fix-delegates-not-being-cre.patch @@ -0,0 +1,420 @@ +From 3330731d0cb221477ab3d856db032126403ae6a0 Mon Sep 17 00:00:00 2001 +From: Mitch Curtis +Date: Tue, 24 Sep 2024 08:18:14 +0800 +Subject: [PATCH 1/2] Revert "QQmlDelegateModel: fix delegates not being + created in certain cases" + +This reverts commit 6561344dd2d1ba69abe6edec4fe340b256da9e13. It needs +to be fixed in a different way. + +Fixes: QTBUG-127340 +Pick-to: 6.7 6.5 +Change-Id: I8503b22a5257e0fb5ee11a1bdf83d3dcab4a600a +Reviewed-by: Richard Moe Gustavsen +(cherry picked from commit 281f620ceea03e7a222d796ae0cca917a9778368) +Reviewed-by: Qt Cherry-pick Bot +--- + src/qmlmodels/qqmldelegatemodel.cpp | 61 +++----- + src/qmlmodels/qqmldelegatemodel_p_p.h | 2 - + .../auto/qml/qqmldelegatemodel/CMakeLists.txt | 1 - + .../auto/qml/qqmldelegatemodel/data/reset.qml | 28 ---- + .../data/resetInQAIMConstructor.qml | 28 ---- + .../tst_qqmldelegatemodel.cpp | 135 ++---------------- + 6 files changed, 29 insertions(+), 226 deletions(-) + delete mode 100644 tests/auto/qml/qqmldelegatemodel/data/reset.qml + delete mode 100644 tests/auto/qml/qqmldelegatemodel/data/resetInQAIMConstructor.qml + +diff --git a/src/qmlmodels/qqmldelegatemodel.cpp b/src/qmlmodels/qqmldelegatemodel.cpp +index 9af58d7a22..7cfa662aa6 100644 +--- a/src/qmlmodels/qqmldelegatemodel.cpp ++++ b/src/qmlmodels/qqmldelegatemodel.cpp +@@ -172,7 +172,6 @@ QQmlDelegateModelPrivate::QQmlDelegateModelPrivate(QQmlContext *ctxt) + , m_transaction(false) + , m_incubatorCleanupScheduled(false) + , m_waitingToFetchMore(false) +- , m_maybeResetRoleNames(false) + , m_cacheItems(nullptr) + , m_items(nullptr) + , m_persistedItems(nullptr) +@@ -366,7 +365,6 @@ void QQmlDelegateModelPrivate::connectToAbstractItemModel() + QObject::connect(aim, &QAbstractItemModel::dataChanged, q, &QQmlDelegateModel::_q_dataChanged); + 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,7 +385,6 @@ void QQmlDelegateModelPrivate::disconnectFromAbstractItemModel() + QObject::disconnect(aim, &QAbstractItemModel::dataChanged, q, &QQmlDelegateModel::_q_dataChanged); + 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); + } + +@@ -1898,28 +1895,25 @@ void QQmlDelegateModel::_q_modelAboutToBeReset() + Q_D(QQmlDelegateModel); + 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); + } + + void QQmlDelegateModel::handleModelReset() +@@ -1929,23 +1923,6 @@ void QQmlDelegateModel::handleModelReset() + return; + + 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(); + + if (d->m_complete) { +diff --git a/src/qmlmodels/qqmldelegatemodel_p_p.h b/src/qmlmodels/qqmldelegatemodel_p_p.h +index bae8fc8a23..3c7ab9281d 100644 +--- a/src/qmlmodels/qqmldelegatemodel_p_p.h ++++ b/src/qmlmodels/qqmldelegatemodel_p_p.h +@@ -334,7 +334,6 @@ public: + QQmlReusableDelegateModelItemsPool m_reusableItemsPool; + QList m_finishedIncubating; + QList m_watchedRoles; +- QHash m_roleNamesBeforeReset; + + QString m_filterGroup; + +@@ -348,7 +347,6 @@ public: + bool m_transaction : 1; + bool m_incubatorCleanupScheduled : 1; + bool m_waitingToFetchMore : 1; +- bool m_maybeResetRoleNames : 1; + + union { + struct { +diff --git a/tests/auto/qml/qqmldelegatemodel/CMakeLists.txt b/tests/auto/qml/qqmldelegatemodel/CMakeLists.txt +index 966f5229df..8d8a90e0a7 100644 +--- a/tests/auto/qml/qqmldelegatemodel/CMakeLists.txt ++++ b/tests/auto/qml/qqmldelegatemodel/CMakeLists.txt +@@ -29,7 +29,6 @@ qt_internal_add_test(tst_qqmldelegatemodel + Qt::QmlModelsPrivate + Qt::QmlPrivate + Qt::Quick +- Qt::QuickPrivate + Qt::QuickTestUtilsPrivate + TESTDATA ${test_data} + ) +diff --git a/tests/auto/qml/qqmldelegatemodel/data/reset.qml b/tests/auto/qml/qqmldelegatemodel/data/reset.qml +deleted file mode 100644 +index 0fcd5e8afa..0000000000 +--- a/tests/auto/qml/qqmldelegatemodel/data/reset.qml ++++ /dev/null +@@ -1,28 +0,0 @@ +-import QtQuick +-import Test +- +-Window { +- id: root +- width: 200 +- height: 200 +- +- property alias listView: listView +- +- ResettableModel { +- id: resetModel +- } +- +- ListView { +- id: listView +- anchors.fill: parent +- model: resetModel +- +- delegate: Rectangle { +- implicitWidth: 100 +- implicitHeight: 50 +- color: "olivedrab" +- +- required property string display +- } +- } +-} +diff --git a/tests/auto/qml/qqmldelegatemodel/data/resetInQAIMConstructor.qml b/tests/auto/qml/qqmldelegatemodel/data/resetInQAIMConstructor.qml +deleted file mode 100644 +index cb1f226737..0000000000 +--- a/tests/auto/qml/qqmldelegatemodel/data/resetInQAIMConstructor.qml ++++ /dev/null +@@ -1,28 +0,0 @@ +-import QtQuick +-import Test +- +-Window { +- id: root +- width: 200 +- height: 200 +- +- property alias listView: listView +- +- ResetInConstructorModel { +- id: resetInConstructorModel +- } +- +- ListView { +- id: listView +- anchors.fill: parent +- model: resetInConstructorModel +- +- delegate: Rectangle { +- implicitWidth: 100 +- implicitHeight: 50 +- color: "olivedrab" +- +- required property string display +- } +- } +-} +diff --git a/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp b/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp +index d9f8b7aeba..2cacda5513 100644 +--- a/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp ++++ b/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp +@@ -4,7 +4,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -12,17 +11,11 @@ + #include + #include + #include +-#include +-#include +-#include + #include +-#include + #include + + #include + +-using namespace QQuickVisualTestUtils; +- + class tst_QQmlDelegateModel : public QQmlDataTest + { + Q_OBJECT +@@ -32,8 +25,6 @@ public: + + private slots: + void resettingRolesRespected(); +- void resetInQAIMConstructor(); +- void reset(); + void valueWithoutCallingObjectFirst_data(); + void valueWithoutCallingObjectFirst(); + void qtbug_86017(); +@@ -53,9 +44,16 @@ private slots: + void viewUpdatedOnDelegateChoiceAffectingRoleChange(); + }; + +-class BaseAbstractItemModel : public QAbstractItemModel ++class AbstractItemModel : public QAbstractItemModel + { ++ Q_OBJECT + public: ++ AbstractItemModel() ++ { ++ for (int i = 0; i < 3; ++i) ++ mValues.append(QString::fromLatin1("Item %1").arg(i)); ++ } ++ + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override + { + if (parent.isValid()) +@@ -93,21 +91,10 @@ public: + return mValues.at(index.row()); + } + +-protected: ++private: + QVector mValues; + }; + +-class AbstractItemModel : public BaseAbstractItemModel +-{ +- Q_OBJECT +-public: +- AbstractItemModel() +- { +- for (int i = 0; i < 3; ++i) +- mValues.append(QString::fromLatin1("Item %1").arg(i)); +- } +-}; +- + tst_QQmlDelegateModel::tst_QQmlDelegateModel() + : QQmlDataTest(QT_QMLTEST_DATADIR) + { +@@ -166,109 +153,7 @@ void tst_QQmlDelegateModel::resettingRolesRespected() + QObject *root = engine.rootObjects().constFirst(); + QVERIFY(!root->property("success").toBool()); + model->change(); +- QTRY_VERIFY_WITH_TIMEOUT(root->property("success").toBool(), 100); +-} +- +-class ResetInConstructorModel : public BaseAbstractItemModel +-{ +- Q_OBJECT +- QML_ELEMENT +- +-public: +- ResetInConstructorModel() +- { +- beginResetModel(); +- QTimer::singleShot(0, this, &ResetInConstructorModel::finishReset); +- } +- +-private: +- void finishReset() +- { +- mValues.append("First"); +- endResetModel(); +- } +-}; +- +-void tst_QQmlDelegateModel::resetInQAIMConstructor() +-{ +- qmlRegisterTypesAndRevisions("Test", 1); +- +- QQuickApplicationHelper helper(this, "resetInQAIMConstructor.qml"); +- QVERIFY2(helper.ready, helper.failureMessage()); +- QQuickWindow *window = helper.window; +- window->show(); +- QVERIFY(QTest::qWaitForWindowExposed(window)); +- +- auto *listView = window->property("listView").value(); +- QVERIFY(listView); +- QTRY_VERIFY_WITH_TIMEOUT(listView->itemAtIndex(0), 100); +- QQuickItem *firstDelegateItem = listView->itemAtIndex(0); +- QVERIFY(firstDelegateItem); +- QCOMPARE(firstDelegateItem->property("display").toString(), "First"); +-} +- +-class ResettableModel : public BaseAbstractItemModel +-{ +- Q_OBJECT +- QML_ELEMENT +- +-public: +- ResettableModel() +- { +- mValues.append("First"); +- } +- +- void callBeginResetModel() +- { +- beginResetModel(); +- mValues.clear(); +- } +- +- void appendData() +- { +- mValues.append(QString::fromLatin1("Item %1").arg(mValues.size())); +- } +- +- void callEndResetModel() +- { +- endResetModel(); +- } +-}; +- +-// Tests that everything works as expected when calling beginResetModel/endResetModel +-// after the QAIM subclass constructor has run. +-void tst_QQmlDelegateModel::reset() +-{ +- qmlRegisterTypesAndRevisions("Test", 1); +- +- QQuickApplicationHelper helper(this, "reset.qml"); +- QVERIFY2(helper.ready, helper.failureMessage()); +- QQuickWindow *window = helper.window; +- window->show(); +- QVERIFY(QTest::qWaitForWindowExposed(window)); +- +- auto *listView = window->property("listView").value(); +- QVERIFY(listView); +- QQuickItem *firstDelegateItem = listView->itemAtIndex(0); +- QVERIFY(firstDelegateItem); +- QCOMPARE(firstDelegateItem->property("display").toString(), "First"); +- +- const auto delegateModel = QQuickItemViewPrivate::get(listView)->model; +- QSignalSpy rootIndexChangedSpy(delegateModel, SIGNAL(rootIndexChanged())); +- QVERIFY(rootIndexChangedSpy.isValid()); +- +- auto *model = listView->model().value(); +- model->callBeginResetModel(); +- model->appendData(); +- model->callEndResetModel(); +- // This is verifies that handleModelReset isn't called +- // more than once during this process, since it unconditionally emits rootIndexChanged. +- QCOMPARE(rootIndexChangedSpy.count(), 1); +- +- QTRY_VERIFY_WITH_TIMEOUT(listView->itemAtIndex(0), 100); +- firstDelegateItem = listView->itemAtIndex(0); +- QVERIFY(firstDelegateItem); +- QCOMPARE(firstDelegateItem->property("display").toString(), "Item 0"); ++ QTRY_VERIFY(root->property("success").toBool()); + } + + void tst_QQmlDelegateModel::valueWithoutCallingObjectFirst_data() +-- +2.46.1 + diff --git a/0001-qmlimportscanner-Include-module-versions-again.patch b/0001-qmlimportscanner-Include-module-versions-again.patch new file mode 100644 index 0000000..401ec01 --- /dev/null +++ b/0001-qmlimportscanner-Include-module-versions-again.patch @@ -0,0 +1,25 @@ +From c75d424ea77385688e97f150df0d3e68ba55f5f4 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Tue, 11 Jul 2023 10:51:35 +0200 +Subject: [PATCH] qmlimportscanner: Include module versions again + +Fixes: QTBUG-115170 +--- + tools/qmlimportscanner/main.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/tools/qmlimportscanner/main.cpp b/tools/qmlimportscanner/main.cpp +index 7c8f1bc98e..c8635323ce 100644 +--- a/tools/qmlimportscanner/main.cpp ++++ b/tools/qmlimportscanner/main.cpp +@@ -434,7 +434,6 @@ getImportDetails(const QVariant &inputImport, + import.insert(preferLiteral(), prefer); + } + } +- import.remove(versionLiteral()); + + const ImportDetailsAndDeps result = {import, dependencies}; + cache.insert({inputImport, result}); +-- +2.41.0 + diff --git a/0002-QQmlDelegateModel-fix-delegates-not-being-created-in.patch b/0002-QQmlDelegateModel-fix-delegates-not-being-created-in.patch new file mode 100644 index 0000000..e89742d --- /dev/null +++ b/0002-QQmlDelegateModel-fix-delegates-not-being-created-in.patch @@ -0,0 +1,473 @@ +From 2aefbca84d2f3dca2c2697f13710b6907c0c7e59 Mon Sep 17 00:00:00 2001 +From: Mitch Curtis +Date: Tue, 24 Sep 2024 10:22:12 +0800 +Subject: [PATCH 2/2] QQmlDelegateModel: fix delegates not being created in + certain cases v2 + +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. + +This is a less intrusive alternative to +6561344dd2d1ba69abe6edec4fe340b256da9e13, which caused regressions and +was reverted. + +Fixes: QTBUG-125053 +Task-number: QTBUG-127340 +Pick-to: 6.7 6.5 +Change-Id: I2bfe192ed61eddaa481de4b1e14b1fa5d07a51c1 +Reviewed-by: Richard Moe Gustavsen +(cherry picked from commit 4bb16ce2c8ea94f768991593a581c8838d48f3a3) +Reviewed-by: Qt Cherry-pick Bot +--- + src/qmlmodels/qqmldelegatemodel.cpp | 17 ++ + .../auto/qml/qqmldelegatemodel/CMakeLists.txt | 1 + + ...yModelWithDelayedSourceModelInListView.qml | 30 +++ + .../auto/qml/qqmldelegatemodel/data/reset.qml | 28 +++ + .../data/resetInQAIMConstructor.qml | 28 +++ + .../tst_qqmldelegatemodel.cpp | 210 +++++++++++++++++- + 6 files changed, 304 insertions(+), 10 deletions(-) + create mode 100644 tests/auto/qml/qqmldelegatemodel/data/proxyModelWithDelayedSourceModelInListView.qml + create mode 100644 tests/auto/qml/qqmldelegatemodel/data/reset.qml + create mode 100644 tests/auto/qml/qqmldelegatemodel/data/resetInQAIMConstructor.qml + +diff --git a/src/qmlmodels/qqmldelegatemodel.cpp b/src/qmlmodels/qqmldelegatemodel.cpp +index 7cfa662aa6..f8de5cba82 100644 +--- a/src/qmlmodels/qqmldelegatemodel.cpp ++++ b/src/qmlmodels/qqmldelegatemodel.cpp +@@ -3,6 +3,8 @@ + + #include "qqmldelegatemodel_p_p.h" + ++#include ++ + #include + + #include +@@ -409,6 +411,21 @@ void QQmlDelegateModel::setModel(const QVariant &model) + _q_itemsInserted(0, d->adaptorModelCount()); + 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); ++ } + } + + /*! +diff --git a/tests/auto/qml/qqmldelegatemodel/CMakeLists.txt b/tests/auto/qml/qqmldelegatemodel/CMakeLists.txt +index 8d8a90e0a7..966f5229df 100644 +--- a/tests/auto/qml/qqmldelegatemodel/CMakeLists.txt ++++ b/tests/auto/qml/qqmldelegatemodel/CMakeLists.txt +@@ -29,6 +29,7 @@ qt_internal_add_test(tst_qqmldelegatemodel + Qt::QmlModelsPrivate + Qt::QmlPrivate + Qt::Quick ++ Qt::QuickPrivate + Qt::QuickTestUtilsPrivate + TESTDATA ${test_data} + ) +diff --git a/tests/auto/qml/qqmldelegatemodel/data/proxyModelWithDelayedSourceModelInListView.qml b/tests/auto/qml/qqmldelegatemodel/data/proxyModelWithDelayedSourceModelInListView.qml +new file mode 100644 +index 0000000000..b6733bd38c +--- /dev/null ++++ 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) ++} +diff --git a/tests/auto/qml/qqmldelegatemodel/data/reset.qml b/tests/auto/qml/qqmldelegatemodel/data/reset.qml +new file mode 100644 +index 0000000000..0fcd5e8afa +--- /dev/null ++++ b/tests/auto/qml/qqmldelegatemodel/data/reset.qml +@@ -0,0 +1,28 @@ ++import QtQuick ++import Test ++ ++Window { ++ id: root ++ width: 200 ++ height: 200 ++ ++ property alias listView: listView ++ ++ ResettableModel { ++ id: resetModel ++ } ++ ++ ListView { ++ id: listView ++ anchors.fill: parent ++ model: resetModel ++ ++ delegate: Rectangle { ++ implicitWidth: 100 ++ implicitHeight: 50 ++ color: "olivedrab" ++ ++ required property string display ++ } ++ } ++} +diff --git a/tests/auto/qml/qqmldelegatemodel/data/resetInQAIMConstructor.qml b/tests/auto/qml/qqmldelegatemodel/data/resetInQAIMConstructor.qml +new file mode 100644 +index 0000000000..cb1f226737 +--- /dev/null ++++ b/tests/auto/qml/qqmldelegatemodel/data/resetInQAIMConstructor.qml +@@ -0,0 +1,28 @@ ++import QtQuick ++import Test ++ ++Window { ++ id: root ++ width: 200 ++ height: 200 ++ ++ property alias listView: listView ++ ++ ResetInConstructorModel { ++ id: resetInConstructorModel ++ } ++ ++ ListView { ++ id: listView ++ anchors.fill: parent ++ model: resetInConstructorModel ++ ++ delegate: Rectangle { ++ implicitWidth: 100 ++ implicitHeight: 50 ++ color: "olivedrab" ++ ++ required property string display ++ } ++ } ++} +diff --git a/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp b/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp +index 2cacda5513..3f08d8fc85 100644 +--- a/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp ++++ b/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp +@@ -3,7 +3,9 @@ + + #include + #include ++#include + #include ++#include + #include + #include + #include +@@ -11,11 +13,17 @@ + #include + #include + #include ++#include ++#include ++#include + #include ++#include + #include + + #include + ++using namespace QQuickVisualTestUtils; ++ + class tst_QQmlDelegateModel : public QQmlDataTest + { + Q_OBJECT +@@ -25,6 +33,8 @@ public: + + private slots: + void resettingRolesRespected(); ++ void resetInQAIMConstructor(); ++ void reset(); + void valueWithoutCallingObjectFirst_data(); + void valueWithoutCallingObjectFirst(); + void qtbug_86017(); +@@ -42,18 +52,12 @@ private slots: + void doNotUnrefObjectUnderConstruction(); + void clearCacheDuringInsertion(); + void viewUpdatedOnDelegateChoiceAffectingRoleChange(); ++ void proxyModelWithDelayedSourceModelInListView(); + }; + +-class AbstractItemModel : public QAbstractItemModel ++class BaseAbstractItemModel : public QAbstractItemModel + { +- Q_OBJECT + public: +- AbstractItemModel() +- { +- for (int i = 0; i < 3; ++i) +- mValues.append(QString::fromLatin1("Item %1").arg(i)); +- } +- + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override + { + if (parent.isValid()) +@@ -91,10 +95,21 @@ public: + return mValues.at(index.row()); + } + +-private: ++protected: + QVector mValues; + }; + ++class AbstractItemModel : public BaseAbstractItemModel ++{ ++ Q_OBJECT ++public: ++ AbstractItemModel() ++ { ++ for (int i = 0; i < 3; ++i) ++ mValues.append(QString::fromLatin1("Item %1").arg(i)); ++ } ++}; ++ + tst_QQmlDelegateModel::tst_QQmlDelegateModel() + : QQmlDataTest(QT_QMLTEST_DATADIR) + { +@@ -153,7 +168,109 @@ void tst_QQmlDelegateModel::resettingRolesRespected() + QObject *root = engine.rootObjects().constFirst(); + QVERIFY(!root->property("success").toBool()); + model->change(); +- QTRY_VERIFY(root->property("success").toBool()); ++ QTRY_VERIFY_WITH_TIMEOUT(root->property("success").toBool(), 100); ++} ++ ++class ResetInConstructorModel : public BaseAbstractItemModel ++{ ++ Q_OBJECT ++ QML_ELEMENT ++ ++public: ++ ResetInConstructorModel() ++ { ++ beginResetModel(); ++ QTimer::singleShot(0, this, &ResetInConstructorModel::finishReset); ++ } ++ ++private: ++ void finishReset() ++ { ++ mValues.append("First"); ++ endResetModel(); ++ } ++}; ++ ++void tst_QQmlDelegateModel::resetInQAIMConstructor() ++{ ++ qmlRegisterTypesAndRevisions("Test", 1); ++ ++ QQuickApplicationHelper helper(this, "resetInQAIMConstructor.qml"); ++ QVERIFY2(helper.ready, helper.failureMessage()); ++ QQuickWindow *window = helper.window; ++ window->show(); ++ QVERIFY(QTest::qWaitForWindowExposed(window)); ++ ++ auto *listView = window->property("listView").value(); ++ QVERIFY(listView); ++ QTRY_VERIFY_WITH_TIMEOUT(listView->itemAtIndex(0), 100); ++ QQuickItem *firstDelegateItem = listView->itemAtIndex(0); ++ QVERIFY(firstDelegateItem); ++ QCOMPARE(firstDelegateItem->property("display").toString(), "First"); ++} ++ ++class ResettableModel : public BaseAbstractItemModel ++{ ++ Q_OBJECT ++ QML_ELEMENT ++ ++public: ++ ResettableModel() ++ { ++ mValues.append("First"); ++ } ++ ++ void callBeginResetModel() ++ { ++ beginResetModel(); ++ mValues.clear(); ++ } ++ ++ void appendData() ++ { ++ mValues.append(QString::fromLatin1("Item %1").arg(mValues.size())); ++ } ++ ++ void callEndResetModel() ++ { ++ endResetModel(); ++ } ++}; ++ ++// Tests that everything works as expected when calling beginResetModel/endResetModel ++// after the QAIM subclass constructor has run. ++void tst_QQmlDelegateModel::reset() ++{ ++ qmlRegisterTypesAndRevisions("Test", 1); ++ ++ QQuickApplicationHelper helper(this, "reset.qml"); ++ QVERIFY2(helper.ready, helper.failureMessage()); ++ QQuickWindow *window = helper.window; ++ window->show(); ++ QVERIFY(QTest::qWaitForWindowExposed(window)); ++ ++ auto *listView = window->property("listView").value(); ++ QVERIFY(listView); ++ QQuickItem *firstDelegateItem = listView->itemAtIndex(0); ++ QVERIFY(firstDelegateItem); ++ QCOMPARE(firstDelegateItem->property("display").toString(), "First"); ++ ++ const auto delegateModel = QQuickItemViewPrivate::get(listView)->model; ++ QSignalSpy rootIndexChangedSpy(delegateModel, SIGNAL(rootIndexChanged())); ++ QVERIFY(rootIndexChangedSpy.isValid()); ++ ++ auto *model = listView->model().value(); ++ model->callBeginResetModel(); ++ model->appendData(); ++ model->callEndResetModel(); ++ // This is verifies that handleModelReset isn't called ++ // more than once during this process, since it unconditionally emits rootIndexChanged. ++ QCOMPARE(rootIndexChangedSpy.count(), 1); ++ ++ QTRY_VERIFY_WITH_TIMEOUT(listView->itemAtIndex(0), 100); ++ firstDelegateItem = listView->itemAtIndex(0); ++ QVERIFY(firstDelegateItem); ++ QCOMPARE(firstDelegateItem->property("display").toString(), "Item 0"); + } + + void tst_QQmlDelegateModel::valueWithoutCallingObjectFirst_data() +@@ -616,6 +733,79 @@ void tst_QQmlDelegateModel::viewUpdatedOnDelegateChoiceAffectingRoleChange() + QVERIFY(returnedValue); + } + ++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 roleNames() const override ++ { ++ QHash 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("Test", 1); ++ qmlRegisterTypesAndRevisions("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(); ++ QVERIFY(listView); ++ const auto delegateModel = QQuickItemViewPrivate::get(listView)->model; ++ QTRY_COMPARE(listView->count(), 1); ++} ++ + QTEST_MAIN(tst_QQmlDelegateModel) + + #include "tst_qqmldelegatemodel.moc" +-- +2.46.1 + diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..f930b65 --- /dev/null +++ b/_constraints @@ -0,0 +1,55 @@ + + + + + 25 + + 4 + + + + s390x + + + + 9 + + + + + + ppc64 + ppc64le + + + + 9 + + + + + + aarch64 + riscv64 + + + + 7 + + + + + + + qt6-declarative:docs + + + + 3 + + + 2 + + + + diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..46731da --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + docs + + diff --git a/qt6-declarative-rpmlintrc b/qt6-declarative-rpmlintrc new file mode 100644 index 0000000..ee57c5a --- /dev/null +++ b/qt6-declarative-rpmlintrc @@ -0,0 +1,6 @@ +# using fdupes on include directories is just calling for troubles +addFilter("files-duplicated-waste .*") +addFilter("files-duplicate .*") + +# library and development package names don't match +addFilter("no-dependency-on .*") diff --git a/qt6-declarative.changes b/qt6-declarative.changes new file mode 100644 index 0000000..31d433a --- /dev/null +++ b/qt6-declarative.changes @@ -0,0 +1,400 @@ +------------------------------------------------------------------- +Fri Oct 25 11:42:28 UTC 2024 - Christophe Marin + +- Add upstream changes: + * 0001-QQuickItemView-fix-crash-with-zero-size-SwipeView-th.patch + (QTBUG-129622, kde#493854) + * 0001-QQuickAccessibleAttached-Let-implicit-names-work-whe.patch + (QTBUG-130360) + +------------------------------------------------------------------- +Tue Oct 15 09:37:16 UTC 2024 - Antonio Larrosa + +- Update memory constraints for s390x and use %limit_build + +------------------------------------------------------------------- +Tue Oct 15 07:52:36 UTC 2024 - Christophe Marin + +- Update disk constraints + +------------------------------------------------------------------- +Wed Oct 9 16:52:34 UTC 2024 - Christophe Marin + +- Add upstream change to fix compilation failures (kde#494281, QTBUG-129797) + * 0001-Compiler-Wrap-raw-string-literals-in-QStringLiteral-.patch + +------------------------------------------------------------------- +Tue Oct 8 10:17:37 UTC 2024 - Christophe Marin + +- Update to 6.8.0: + * https://www.qt.io/blog/qt-6.8-released +- Add upstream changes: + * 0001-Revert-QQmlDelegateModel-fix-delegates-not-being-cre.patch + * 0002-QQmlDelegateModel-fix-delegates-not-being-created-in.patch + (kde#493116, QTBUG-127340) +- Merge some -devel and -private-devel packages that only have + private API. + +------------------------------------------------------------------- +Sat Sep 28 08:22:56 UTC 2024 - Christophe Marin + +- Update to 6.7.3 + * https://www.qt.io/blog/qt-6.7.3-released + +------------------------------------------------------------------- +Wed Jun 19 07:25:41 UTC 2024 - Christophe Marin + +- Update to 6.7.2: + * https://www.qt.io/blog/qt-6.7.2-released + +------------------------------------------------------------------- +Tue May 21 08:31:28 UTC 2024 - Christophe Marin + +- Update to 6.7.1: + * https://www.qt.io/blog/qt-6.7.1-released +- Drop patch, merged upstream: + * 0001-Fix-PointHandler-rejecting-click-events-near-window-.patch + +------------------------------------------------------------------- +Tue Apr 2 13:39:38 UTC 2024 - Christophe Marin + +- Update to 6.7.0: + * https://www.qt.io/blog/qt-6.7-released +- Update build constraints + +------------------------------------------------------------------- +Tue Mar 26 14:25:37 UTC 2024 - Christophe Marin + +- Update to 6.6.3: + * https://www.qt.io/blog/qt-6.6.3-released +- Drop patches, merged upstream: + * 0001-QuickControls-Link-the-impl-libraries-into-the-base-.patch + * 0001-Dialogs-Depend-on-controls-styles-in-QuickDialogs2Qu.patch + +------------------------------------------------------------------- +Sat Mar 16 10:20:52 UTC 2024 - Fusion Future + +- Add patch to help fix PointHandler with HiDPI (kde#482580) + - 0001-Fix-PointHandler-rejecting-click-events-near-window-.patch + +------------------------------------------------------------------- +Wed Feb 14 16:53:12 UTC 2024 - Christophe Marin + +- Update to 6.6.2 + * https://www.qt.io/blog/qt-6.6.2-released +- Add upstream changes to make build reproducible: + * 0001-QuickControls-Link-the-impl-libraries-into-the-base-.patch + * 0001-Dialogs-Depend-on-controls-styles-in-QuickDialogs2Qu.patch + +------------------------------------------------------------------- +Mon Nov 27 14:00:08 UTC 2023 - Christophe Marin + +- Update to 6.6.1: + * https://www.qt.io/blog/qt-6.6.1-released + +------------------------------------------------------------------- +Tue Oct 10 09:39:50 UTC 2023 - Christophe Marin + +- Update to 6.6.0 + * https://www.qt.io/blog/qt-6.6-released + +------------------------------------------------------------------- +Thu Sep 28 07:34:09 UTC 2023 - Christophe Marin + +- Update to 6.5.3 + * https://www.qt.io/blog/qt-6.5.3-released + +------------------------------------------------------------------- +Thu Aug 3 11:10:58 UTC 2023 - Andreas Schwab + +- Reduce memory constraints for riscv64 +- Sort license tags + +------------------------------------------------------------------- +Thu Jul 20 08:48:08 UTC 2023 - Christophe Marin + +- Update to 6.5.2 + * https://www.qt.io/blog/qt-6.5.2-released-1 + +------------------------------------------------------------------- +Tue Jul 11 09:30:38 UTC 2023 - Fabian Vogt + +- Add patch to make qmlimportscanner usable with qml-autoreqprov + again (QTBUG-115170): + * 0001-qmlimportscanner-Include-module-versions-again.patch + +------------------------------------------------------------------- +Fri Jun 30 15:13:09 UTC 2023 - Christophe Marin + +- Update subpackages requirements + +------------------------------------------------------------------- +Wed May 24 07:45:35 UTC 2023 - Christophe Marin + +- Update to 6.5.1 + * https://www.qt.io/blog/qt-6.5.1-released +- Drop patch, merged upstream: + * 0001-QML-metatypes-Adjust-to-QMetaType-revision-increment.patch + +------------------------------------------------------------------- +Fri Apr 28 13:59:13 UTC 2023 - Christophe Marin + +- Add upstream change to fix boo#1210849: + * 0001-QML-metatypes-Adjust-to-QMetaType-revision-increment.patch + +------------------------------------------------------------------- +Mon Apr 3 10:02:04 UTC 2023 - Christophe Marin + +- Update to 6.5.0 + * https://www.qt.io/blog/qt-6.5-lts-released + +------------------------------------------------------------------- +Thu Mar 16 09:59:59 UTC 2023 - Christophe Marin + +- Update to 6.4.3: + * https://www.qt.io/blog/qt-6.4.3-released + +------------------------------------------------------------------- +Fri Jan 6 16:46:39 UTC 2023 - Christophe Marin + +- Update to 6.4.2: + * https://www.qt.io/blog/qt-6.4.2-released + +------------------------------------------------------------------- +Tue Nov 15 11:53:10 UTC 2022 - Christophe Giboudeaux + +- Update to 6.4.1: + * https://www.qt.io/blog/qt-6.4.1-released + +------------------------------------------------------------------- +Thu Sep 29 10:35:51 UTC 2022 - Christophe Giboudeaux + +- Update to 6.4.0: + * https://www.qt.io/blog/qt-6.4-released + +------------------------------------------------------------------- +Fri Sep 16 08:29:05 UTC 2022 - Christophe Giboudeaux + +- Update to 6.4.0 RC + +------------------------------------------------------------------- +Fri Sep 9 12:41:36 UTC 2022 - Christophe Giboudeaux + +- Update to 6.3.2: + * https://www.qt.io/blog/qt-6.3.2-released + +------------------------------------------------------------------- +Fri Jun 17 15:15:08 UTC 2022 - Christophe Giboudeaux + +- Update to 6.3.1: + * https://www.qt.io/blog/qt-6.3.1-released +- Drop patch, now upstream: + * 0001-CMake-Look-for-QtLanguageServerPrivate.patch + +------------------------------------------------------------------- +Fri Apr 8 11:56:53 UTC 2022 - Christophe Giboudeaux + +- Update to 6.3.0: + * https://www.qt.io/blog/qt-6.3-released + +------------------------------------------------------------------- +Tue Mar 29 12:28:32 UTC 2022 - Christophe Giboudeaux + +- Update to 6.3.0-rc +- Add upstream fix: + * 0001-CMake-Look-for-QtLanguageServerPrivate.patch +- Update build constraints + +------------------------------------------------------------------- +Mon Mar 21 08:46:36 UTC 2022 - Christophe Giboudeaux + +- Update to 6.2.4 + * https://www.qt.io/blog/qt-6.2.4-released + +------------------------------------------------------------------- +Mon Jan 31 08:54:29 UTC 2022 - Christophe Giboudeaux + +- Update to 6.2.3: + * https://www.qt.io/blog/qt-6.2.3-released + +------------------------------------------------------------------- +Fri Dec 10 19:54:28 UTC 2021 - Christophe Giboudeaux + +- Reenable build on big endian platforms. + +------------------------------------------------------------------- +Wed Dec 8 10:45:00 UTC 2021 - Andreas Schwab + +- Update contraints for riscv64 + +------------------------------------------------------------------- +Wed Dec 1 10:06:02 UTC 2021 - Christophe Giboudeaux + +- Update to 6.2.2 + * https://www.qt.io/blog/qt-6.2.2-released +- Make sure all dependencies are present when installing devel + packages. Qt >= 6.2.2 is much less permissive. + +------------------------------------------------------------------- +Tue Oct 26 11:22:35 UTC 2021 - Christophe Giboudeaux + +- Update to 6.2.1 + * https://www.qt.io/blog/qt-6.2.1-released + + +------------------------------------------------------------------- +Thu Sep 30 12:27:17 UTC 2021 - Christophe Giboudeaux + +- Update to 6.2.0: + * https://www.qt.io/blog/qt-6.2-lts-released + +------------------------------------------------------------------- +Sat Sep 25 07:18:35 UTC 2021 - Christophe Giboudeaux + +- Update to 6.2.0-rc2 + +------------------------------------------------------------------- +Thu Sep 16 14:07:39 UTC 2021 - Christophe Giboudeaux + +- Update to 6.2.0-rc + +------------------------------------------------------------------- +Thu Sep 9 14:05:03 UTC 2021 - Christophe Giboudeaux + +- Update to 6.2.0-beta4 + +------------------------------------------------------------------- +Mon Sep 6 13:30:31 UTC 2021 - Christophe Giboudeaux + +- Disable lto for ppc64 builds. + +------------------------------------------------------------------- +Wed Sep 1 13:03:31 UTC 2021 - Christophe Giboudeaux + +- Update to 6.1.3: + * https://www.qt.io/blog/qt-6.1.3-released + +------------------------------------------------------------------- +Fri Jul 2 14:07:43 UTC 2021 - Christophe Giboudeaux + +- Update to 6.1.2. New bugfix release: + * https://www.qt.io/blog/qt-6.1.2-released + +------------------------------------------------------------------- +Tue Jun 8 05:54:10 UTC 2021 - Christophe Giboudeaux + +- Update to 6.1.1: + * https://www.qt.io/blog/qt-6.1.1-released + +------------------------------------------------------------------- +Thu May 6 17:10:18 UTC 2021 - Christophe Giboudeaux + +- Update to 6.1.0: + * https://www.qt.io/blog/qt-6.1-released + +------------------------------------------------------------------- +Fri Apr 23 14:11:36 UTC 2021 - Christophe Giboudeaux + +- Update to 6.1.0-rc. + +------------------------------------------------------------------- +Tue Apr 13 06:29:25 UTC 2021 - Christophe Giboudeaux + +- Update to 6.1.0-beta3. + +------------------------------------------------------------------- +Wed Mar 31 13:36:06 UTC 2021 - Christophe Giboudeaux + +- Update to 6.0.3 + * https://www.qt.io/blog/qt-6.0.3-released + +------------------------------------------------------------------- +Fri Mar 19 15:34:07 UTC 2021 - Christophe Giboudeaux + +- Update to 6.1.0-beta2 + +------------------------------------------------------------------- +Thu Mar 18 10:54:47 UTC 2021 - Guillaume GARDET + +- Update _constraints to parallelize and speed-up build + +------------------------------------------------------------------- +Fri Mar 5 17:24:01 UTC 2021 - Christophe Giboudeaux + +- Update to 6.1.0-beta1 + https://www.qt.io/blog/qt-6.1-beta-released + +------------------------------------------------------------------- +Fri Mar 5 09:31:20 UTC 2021 - Christophe Giboudeaux + +- Update to 6.0.2: + https://www.qt.io/blog/qt-6.0.2-released + +------------------------------------------------------------------- +Wed Feb 3 17:17:39 UTC 2021 - Christophe Giboudeaux + +- Update to 6.0.1 + https://www.qt.io/blog/qt-6.0.1-released + +------------------------------------------------------------------- +Wed Dec 30 15:50:18 UTC 2020 - Christophe Giboudeaux + +- Move the QML files into a separate package. + +------------------------------------------------------------------- +Mon Dec 28 18:07:31 UTC 2020 - Fabian Vogt + +- Enable qml-autoreqprov + +------------------------------------------------------------------- +Wed Dec 16 11:26:05 UTC 2020 - Christophe Giboudeaux + +- Use a different 'Name' when building the docs flavor. + +------------------------------------------------------------------- +Tue Dec 8 14:09:05 UTC 2020 - Christophe Giboudeaux + +- Update to 6.0.0: + * https://www.qt.io/blog/qt-6.0-released + +------------------------------------------------------------------- +Wed Dec 2 12:08:59 UTC 2020 - Christophe Giboudeaux + +- Qt 6.0.0 RC2 + +------------------------------------------------------------------- +Wed Nov 25 14:20:30 UTC 2020 - Christophe Giboudeaux + +- Update to 6.0.0~rc1 + +------------------------------------------------------------------- +Tue Nov 17 07:26:24 UTC 2020 - Christophe Giboudeaux + +- Update to 6.0.0~beta5 + +------------------------------------------------------------------- +Tue Nov 10 19:08:03 UTC 2020 - Christophe Giboudeaux + +- Update to 6.0.0~beta4 + +------------------------------------------------------------------- +Tue Oct 20 07:47:08 UTC 2020 - Christophe Giboudeaux + +- Update to 6.0.0beta1 + https://www.qt.io/blog/qt-6.0-beta-released + +------------------------------------------------------------------- +Tue Oct 6 19:54:35 UTC 2020 - Christophe Giboudeaux + +- Update to 6.0.0-alpha + https://www.qt.io/blog/qt-6.0-alpha-released + +------------------------------------------------------------------- +Sat Sep 19 14:45:34 UTC 2020 - Christophe Giboudeaux + +- Split the libraries into smaller packages + +------------------------------------------------------------------- +Sat May 2 16:50:59 UTC 2020 - Christophe Giboudeaux + +- Add qt6-declarative diff --git a/qt6-declarative.spec b/qt6-declarative.spec new file mode 100644 index 0000000..9f68cef --- /dev/null +++ b/qt6-declarative.spec @@ -0,0 +1,1797 @@ +# +# spec file for package qt6-declarative +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define real_version 6.8.0 +%define short_version 6.8 +%define tar_name qtdeclarative-everywhere-src +%define tar_suffix %{nil} +# +%global qt6_flavor @BUILD_FLAVOR@%{nil} +%if "%{qt6_flavor}" == "docs" +%define pkg_suffix -docs +%endif +# +Name: qt6-declarative%{?pkg_suffix} +Version: 6.8.0 +Release: 0 +Summary: Qt 6 Declarative Libraries and tools +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +URL: https://www.qt.io +Source0: https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz +Source99: qt6-declarative-rpmlintrc +# PATCH-FIX-OPENSUSE +Patch0: 0001-qmlimportscanner-Include-module-versions-again.patch +# PATCH-FIX-UPSTREAM +Patch1: 0001-Revert-QQmlDelegateModel-fix-delegates-not-being-cre.patch +Patch2: 0002-QQmlDelegateModel-fix-delegates-not-being-created-in.patch +# PATCH-FIX-UPSTREAM +Patch3: 0001-Compiler-Wrap-raw-string-literals-in-QStringLiteral-.patch +# PATCH-FIX-UPSTREAM +Patch4: 0001-QQuickItemView-fix-crash-with-zero-size-SwipeView-th.patch +# PATCH-FIX-UPSTREAM +Patch5: 0001-QQuickAccessibleAttached-Let-implicit-names-work-whe.patch +BuildRequires: memory-constraints +BuildRequires: pkgconfig +BuildRequires: python3-base +BuildRequires: qt6-core-private-devel +BuildRequires: qt6-gui-private-devel +BuildRequires: qt6-opengl-private-devel +BuildRequires: qt6-svg-private-devel +BuildRequires: qt6-test-private-devel +BuildRequires: qt6-widgets-private-devel +BuildRequires: cmake(Qt6Concurrent) = %{real_version} +BuildRequires: cmake(Qt6Core) = %{real_version} +BuildRequires: cmake(Qt6Gui) = %{real_version} +BuildRequires: cmake(Qt6LanguageServerPrivate) = %{real_version} +BuildRequires: cmake(Qt6Network) = %{real_version} +BuildRequires: cmake(Qt6OpenGL) = %{real_version} +BuildRequires: cmake(Qt6OpenGLWidgets) = %{real_version} +BuildRequires: cmake(Qt6ShaderTools) = %{real_version} +BuildRequires: cmake(Qt6Sql) = %{real_version} +BuildRequires: cmake(Qt6Svg) = %{real_version} +BuildRequires: cmake(Qt6Test) = %{real_version} +BuildRequires: cmake(Qt6Widgets) = %{real_version} +%if "%{qt6_flavor}" == "docs" +BuildRequires: qt6-tools +%endif + +%description +Qt 6 Declarative Libraries and tools + +%if %{qt6_docs_flavor} +# qtdeclarative and qtquickcontrols2 were merged before the 6.2 release. +# Provides/Obsoletes are needed, we can't use the %%qt6_doc_packages and +# %%qt6_examples_package macros. +%package -n qt6-declarative-docs-html +Summary: Documentation for qt6-declarative in HTML format +License: GFDL-1.3-or-later +Provides: qt6-quickcontrols2-docs-html = 6.2.0 +Obsoletes: qt6-quickcontrols2-docs-html < 6.2.0 + +%description -n qt6-declarative-docs-html +This package contains documentation for qt6-declarative in HTML format. + +%package -n qt6-declarative-docs-qch +Summary: Documentation for qt6-declarative in QCH format +License: GFDL-1.3-or-later +Provides: qt6-quickcontrols2-docs-qch = 6.2.0 +Obsoletes: qt6-quickcontrols2-docs-qch < 6.2.0 + +%description -n qt6-declarative-docs-qch +This package contains documentation for qt6-declarative in QCH format. + +%else + +%package devel +Summary: Qt 6 Declarative meta package +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6QmlCompiler) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Requires: cmake(Qt6QuickControls2) = %{real_version} +Requires: cmake(Qt6QuickControls2Impl) = %{real_version} +Requires: cmake(Qt6QuickDialogs2) = %{real_version} +Requires: cmake(Qt6QuickDialogs2QuickImpl) = %{real_version} +Requires: cmake(Qt6QuickTest) = %{real_version} +Requires: cmake(Qt6QuickWidgets) = %{real_version} +BuildArch: noarch + +%description devel +This meta-package requires all the qt6-declarative development packages. + +%package private-devel +Summary: Qt 6 Declarative unstable ABI meta package +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-qmlcompiler-private-devel = %{version} +Requires: qt6-qmlcore-private-devel = %{version} +Requires: qt6-qmllocalstorage-private-devel = %{version} +Requires: qt6-qmlmeta-private-devel = %{version} +Requires: qt6-qmlmodels-private-devel = %{version} +Requires: qt6-qmlnetwork-private-devel = %{version} +Requires: qt6-qmlworkerscript-private-devel = %{version} +Requires: qt6-qmlxmllistmodel-private-devel = %{version} +Requires: qt6-quick-private-devel = %{version} +Requires: qt6-quickcontrols2-private-devel = %{version} +Requires: qt6-quickcontrols2impl-private-devel = %{version} +Requires: qt6-quickdialogs2-private-devel = %{version} +Requires: qt6-quickdialogs2quickimpl-private-devel = %{version} +Requires: qt6-quickdialogs2utils-private-devel = %{version} +Requires: qt6-quickeffects-private-devel = %{version} +Requires: qt6-quicklayouts-private-devel = %{version} +Requires: qt6-quickparticles-private-devel = %{version} +Requires: qt6-quickshapes-private-devel = %{version} +Requires: qt6-quicktemplates2-private-devel = %{version} +Requires: qt6-quicktest-private-devel = %{version} +Requires: qt6-quickvectorimage-private-devel = %{version} +Requires: qt6-quickwidgets-private-devel = %{version} +BuildArch: noarch + +%description private-devel +This meta-package requires all the qt6-declarative development packages that do +not have any ABI or API guarantees. + +%package examples +Summary: Examples for the qt6-declarative module +Provides: qt6-quickcontrols2-examples = 6.2.0 +Obsoletes: qt6-quickcontrols2-examples < 6.2.0 + +%description examples +Examples for the qt6-declarative module. + +%package imports +Summary: Qt 6 Declarative QML files and plugins +Provides: qt6-quickcontrols2-imports = 6.2.0 +Obsoletes: qt6-quickcontrols2-imports < 6.2.0 + +%description imports +QML files and plugins from the Qt 6 Declarative module. + +%package tools +Summary: Qt 6 Declarative Tools +License: GPL-3.0-only +Requires: qt6-declarative-imports = %{version} +Requires: (qml-autoreqprov if rpm-build) + +%description tools +Additional tools for inspecting, testing, viewing QML imports and files. + +%package -n libQt6Qml6 +Summary: Qt 6 Qml library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: (qml-autoreqprov if rpm-build) +Requires: qt6-declarative-imports + +%description -n libQt6Qml6 +The Qt 6 Qml library. + +%package -n qt6-qml-devel +Summary: Qt 6 Qml library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6Qml6 = %{version} +# Executables are required +Requires: qt6-declarative-tools = %{version} +Requires: cmake(Qt6Network) = %{real_version} +# qmldevtools is gone in 6.3 +Provides: qt6-qmldevtools-devel-static = 6.3 +Obsoletes: qt6-qmldevtools-devel-static < 6.3 + +%description -n qt6-qml-devel +Development files for the Qt 6 Qml library. + +%package -n qt6-qml-private-devel +Summary: Non-ABI stable API for the Qt 6 Qml library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: cmake(Qt6Qml) = %{real_version} +%requires_eq qt6-core-private-devel + +%description -n qt6-qml-private-devel +This package provides private headers of libQt6Qml that do not have any +ABI or API guarantees. + +%package -n libQt6QmlCompiler6 +Summary: Qt6 QmlCompiler library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QmlCompiler6 +The Qt 6 QmlCompiler library. +This library does not have any ABI or API guarantees. + +%package -n qt6-qmlcompiler-devel +Summary: Qt 6 QmlCompiler library - Development files +Requires: libQt6QmlCompiler6 = %{version} +Requires: qt6-qml-private-devel = %{version} +%requires_eq qt6-core-private-devel +# The qmlcompiler library became a shared library (again) in 6.4.0 +Provides: qt6-qmlcompiler-devel-static = 6.4.0 +Obsoletes: qt6-qmlcompiler-devel-static < 6.4.0 + +%description -n qt6-qmlcompiler-devel +Development files for the Qt 6 QmlCompiler library. + +%package -n qt6-qmlcompiler-private-devel +Summary: Non-ABI stable API for the Qt 6 QmlCompiler library +Requires: qt6-qmlcompiler-devel = %{version} + +%description -n qt6-qmlcompiler-private-devel +This package provides private headers of libQt6QmlCompiler that do not have any +ABI or API guarantees. + +%package -n libQt6Quick6 +Summary: Qt 6 Quick library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6Quick6 +The Qt 6 Quick library. + +%package -n qt6-quick-devel +Summary: Qt 6 Quick library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6Quick6 = %{version} +Requires: cmake(Qt6Core) = %{real_version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Network) = %{real_version} +Requires: cmake(Qt6OpenGL) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6QmlModels) = %{real_version} + +%description -n qt6-quick-devel +Development files for the Qt 6 Quick library. + +%package -n qt6-quick-private-devel +Summary: Non-ABI stable API for the Qt 6 Quick library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-qmlmodels-private-devel = %{version} +Requires: cmake(Qt6Quick) = %{real_version} +%requires_eq qt6-core-private-devel +%requires_eq qt6-gui-private-devel + +%description -n qt6-quick-private-devel +This package provides private headers of libQt6Quick that do not have any +ABI or API guarantees. + +%package -n libQt6QuickControls2-6 +Summary: Qt 6 QuickControls2 library + +%description -n libQt6QuickControls2-6 +The Qt 6 QuickControls2 library. + +%package -n qt6-quickcontrols2-devel +Summary: Qt 6 QuickControls2 library - Development files +Requires: libQt6QuickControls2-6 = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Requires: cmake(Qt6QuickTemplates2) = %{real_version} + +%description -n qt6-quickcontrols2-devel +Development files for the Qt 6 QuickControls2 library. + +%package -n qt6-quickcontrols2-private-devel +Summary: Non-ABI stable API for the Qt 6 QuickControls2 library +Requires: cmake(Qt6QuickControls2) = %{real_version} + +%description -n qt6-quickcontrols2-private-devel +This package provides private headers of libQt6QuickControls2 that do not have +any ABI or API guarantees. + +%package -n libQt6QuickControls2Impl6 +Summary: Qt 6 QuickControls2Impl library + +%description -n libQt6QuickControls2Impl6 +The Qt 6 QuickControls2Impl library. + +%package -n qt6-quickcontrols2impl-devel +Summary: Qt6 QuickControls2Impl library - Development files +Requires: libQt6QuickControls2Impl6 = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Requires: cmake(Qt6QuickTemplates2) = %{real_version} + +%description -n qt6-quickcontrols2impl-devel +Development files for the Qt 6 QuickControls2Impl library. + +%package -n qt6-quickcontrols2impl-private-devel +Summary: Non-ABI stable API for the Qt 6 QuickControls2Impl library +Requires: cmake(Qt6QuickControls2Impl) = %{real_version} + +%description -n qt6-quickcontrols2impl-private-devel +This package provides private headers of libQt6QuickControls2Impl that do not +have any ABI or API guarantees. + +%package -n libQt6QuickDialogs2-6 +Summary: Qt 6 QuickDialogs2 library + +%description -n libQt6QuickDialogs2-6 +The Qt 6 QuickDialogs2 library. + +%package -n qt6-quickdialogs2-devel +Summary: Qt6 QuickDialogs2 library - Development files +Requires: libQt6QuickDialogs2-6 = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Requires: cmake(Qt6QuickControls2Impl) = %{real_version} +Requires: cmake(Qt6QuickDialogs2QuickImpl) = %{real_version} +Requires: cmake(Qt6QuickDialogs2Utils) = %{real_version} + +%description -n qt6-quickdialogs2-devel +Development files for the Qt 6 QuickDialogs2 library. + +%package -n qt6-quickdialogs2-private-devel +Summary: Non-ABI stable API for the Qt 6 QuickDialogs2 library +Requires: qt6-qmlmodels-private-devel = %{version} +Requires: cmake(Qt6QuickDialogs2) = %{real_version} + +%description -n qt6-quickdialogs2-private-devel +This package provides private headers of libQt6QuickDialogs2 that do not have +any ABI or API guarantees. + +%package -n libQt6QuickDialogs2QuickImpl6 +Summary: Qt 6 QuickDialogs2Impl library + +%description -n libQt6QuickDialogs2QuickImpl6 +The Qt 6 QuickDialogs2Impl library. + +%package -n qt6-quickdialogs2quickimpl-devel +Summary: Qt6 QuickDialogs2Impl library - Development files +Requires: libQt6QuickDialogs2QuickImpl6 = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Requires: cmake(Qt6QuickControls2Impl) = %{real_version} +Requires: cmake(Qt6QuickDialogs2Utils) = %{real_version} +Requires: cmake(Qt6QuickTemplates2) = %{real_version} + +%description -n qt6-quickdialogs2quickimpl-devel +Development files for the Qt 6 QuickDialogs2Impl library. + +%package -n qt6-quickdialogs2quickimpl-private-devel +Summary: Non-ABI stable API for the Qt 6 QuickDialogs2Impl library +Requires: cmake(Qt6QuickDialogs2QuickImpl) = %{real_version} + +%description -n qt6-quickdialogs2quickimpl-private-devel +This package provides private headers of libQt6QuickDialogs2Impl that do not +have any ABI or API guarantees. + +%package -n libQt6QuickTest6 +Summary: Qt 6 QuickTest library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QuickTest6 +The Qt 6 QuickTest library. + +%package -n qt6-quicktest-devel +Summary: Qt 6 QuickTest library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QuickTest6 = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Requires: cmake(Qt6Test) = %{real_version} + +%description -n qt6-quicktest-devel +Development files for the Qt 6 QuickTest library. + +%package -n qt6-quicktest-private-devel +Summary: Non-ABI stable API for the Qt 6 QuickTest library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: cmake(Qt6QuickTest) = %{real_version} +%requires_eq qt6-test-private-devel + +%description -n qt6-quicktest-private-devel +This package provides private headers of libQt6QuickTest that do not have any +ABI or API guarantees. + +%package -n libQt6QuickWidgets6 +Summary: Qt 6 QuickWidgets library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QuickWidgets6 +The Qt 6 QuickWidgets library. + +%package -n qt6-quickwidgets-devel +Summary: Qt 6 QuickWidgets library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QuickWidgets6 = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Requires: cmake(Qt6Widgets) = %{real_version} + +%description -n qt6-quickwidgets-devel +Development files for the Qt 6 QuickWidgets library. + +%package -n qt6-quickwidgets-private-devel +Summary: Non-ABI stable API for the Qt 6 QuickWidgets library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-quick-private-devel = %{version} +Requires: cmake(Qt6QuickWidgets) = %{real_version} +%requires_eq qt6-core-private-devel +%requires_eq qt6-gui-private-devel +%requires_eq qt6-widgets-private-devel + +%description -n qt6-quickwidgets-private-devel +This package provides private headers of libQt6QuickWidgets that do not have any +ABI or API guarantees. + +### Private only libraries ### + +%package -n libQt6LabsPlatform6 +Summary: Qt 6 LabsPlatform library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6LabsPlatform6 +The Qt 6 LabsPlatform library. +This library does not have any ABI or API guarantees. + +%package -n qt6-labsplatform-private-devel +Summary: Qt 6 LabsPlatform library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: qt6-core-private-devel = %{version} +Requires: qt6-gui-private-devel = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-quick-private-devel = %{version} +Requires: qt6-quicktemplates2-private-devel = %{version} + +%description -n qt6-labsplatform-private-devel +Development files for the Qt 6 LabsPlatform library. +This library does not have any ABI or API guarantees. + +%package -n libQt6LabsAnimation6 +Summary: Qt 6 LabsAnimation library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6LabsAnimation6 +The Qt 6 LabsAnimation library. +This library does not have any ABI or API guarantees. + +%package -n qt6-labsanimation-private-devel +Summary: Non-ABI stable API for the Qt 6 LabsAnimation library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6LabsAnimation6 = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-quick-private-devel = %{version} +Provides: qt6-labsanimation-devel = %{version} +Obsoletes: qt6-labsanimation-devel < %{version} + +%description -n qt6-labsanimation-private-devel +Development files for the Qt 6 LabsAnimation library. +This library does not have any ABI or API guarantees. + +%package -n libQt6LabsFolderListModel6 +Summary: Qt 6 LabsFolderListModel library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6LabsFolderListModel6 +The Qt 6 LabsFolderListModel library. +This library does not have any ABI or API guarantees. + +%package -n qt6-labsfolderlistmodel-private-devel +Summary: Non-ABI stable API for the Qt 6 LabsFolderListModel library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6LabsFolderListModel6 = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-qmlmodels-private-devel = %{version} +%requires_eq qt6-core-private-devel +Provides: qt6-labsfolderlistmodel-devel = %{version} +Obsoletes: qt6-labsfolderlistmodel-devel < %{version} + +%description -n qt6-labsfolderlistmodel-private-devel +Development files for the Qt 6 LabsFolderListModel library. +This library does not have any ABI or API guarantees. + +%package -n libQt6LabsQmlModels6 +Summary: Qt 6 LabsQmlModels library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6LabsQmlModels6 +The Qt 6 LabsQmlModels library. +This library does not have any ABI or API guarantees. + +%package -n qt6-labsqmlmodels-private-devel +Summary: Non-ABI stable API for the Qt 6 LabsQmlModels library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6LabsQmlModels6 = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-qmlmodels-private-devel = %{version} +Provides: qt6-labsqmlmodels-devel = %{version} +Obsoletes: qt6-labsqmlmodels-devel < %{version} + +%description -n qt6-labsqmlmodels-private-devel +Development files for the Qt 6 LabsQmlModels library. +This library does not have any ABI or API guarantees. + +%package -n libQt6LabsSettings6 +Summary: Qt 6 LabsSettings library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6LabsSettings6 +The Qt 6 LabsSettings library. +This library does not have any ABI or API guarantees. + +%package -n qt6-labssettings-private-devel +Summary: Non-ABI stable API for the Qt 6 LabsSettings library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6LabsSettings6 = %{version} +Requires: cmake(Qt6Core) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Provides: qt6-labssettings-devel = %{version} +Obsoletes: qt6-labssettings-devel < %{version} + +%description -n qt6-labssettings-private-devel +Development files for the Qt 6 LabsSettings library. +This library does not have any ABI or API guarantees. + +%package -n libQt6LabsSharedImage6 +Summary: Qt 6 LabsSharedImage library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6LabsSharedImage6 +The Qt 6 LabsSharedImage library. +This library does not have any ABI or API guarantees. + +%package -n qt6-labssharedimage-private-devel +Summary: Non-ABI stable API for the Qt 6 LabsSharedImage library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6LabsSharedImage6 = %{version} +Requires: qt6-quick-private-devel = %{version} +%requires_eq qt6-core-private-devel +%requires_eq qt6-gui-private-devel +Provides: qt6-labssharedimage-devel = %{version} +Obsoletes: qt6-labssharedimage-devel < %{version} + +%description -n qt6-labssharedimage-private-devel +Development files for the Qt 6 LabsSharedImage library. +This library does not have any ABI or API guarantees. + +%package -n libQt6LabsWavefrontMesh6 +Summary: Qt 6 LabsWavefrontMesh library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6LabsWavefrontMesh6 +The Qt 6 LabsWavefrontMesh library. +This library does not have any ABI or API guarantees. + +%package -n qt6-labswavefrontmesh-private-devel +Summary: Non-ABI stable API for the Qt 6 LabsWavefrontMesh library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6LabsWavefrontMesh6 = %{version} +Requires: qt6-quick-private-devel = %{version} +%requires_eq qt6-core-private-devel +%requires_eq qt6-gui-private-devel +Provides: qt6-labswavefrontmesh-devel = %{version} +Obsoletes: qt6-labswavefrontmesh-devel < %{version} + +%description -n qt6-labswavefrontmesh-private-devel +Development files for the Qt 6 LabsWavefrontMesh library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QmlCore6 +Summary: Qt 6 QmlCore library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: qt6-declarative-imports + +%description -n libQt6QmlCore6 +The Qt 6 QmlCore library. + +%package -n qt6-qmlcore-private-devel +Summary: Qt 6 QmlCore library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QmlCore6 = %{version} +Requires: cmake(Qt6Qml) = %{real_version} +Provides: qt6-qmlcore-devel = %{version} +Obsoletes: qt6-qmlcore-devel < %{version} + +%description -n qt6-qmlcore-private-devel +Development files for the Qt 6 QmlCore library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QmlLocalStorage6 +Summary: Qt 6 QmlLocalStorage library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QmlLocalStorage6 +The Qt 6 QmlLocalStorage library. + +%package -n qt6-qmllocalstorage-private-devel +Summary: Non-ABI stable API for the Qt 6 QmlLocalStorage library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QmlLocalStorage6 = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: cmake(Qt6Sql) = %{real_version} +%requires_eq qt6-core-private-devel +Provides: qt6-qmllocalstorage-devel = %{version} +Obsoletes: qt6-qmllocalstorage-devel < %{version} + +%description -n qt6-qmllocalstorage-private-devel +Development files for the Qt 6 QmlLocalStorage library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QmlMeta6 +Summary: Qt 6 QmlMeta library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QmlMeta6 +The Qt 6 QmlMeta library. +This library does not have any ABI or API guarantees. + +%package -n qt6-qmlmeta-private-devel +Summary: Qt 6 QmlMeta library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QmlMeta6 = %{version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6QmlModels) = %{real_version} +Requires: cmake(Qt6QmlWorkerScript) = %{real_version} + +%description -n qt6-qmlmeta-private-devel +Development files for the Qt 6 QmlMeta library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QmlModels6 +Summary: Qt 6 QmlModels library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QmlModels6 +The Qt 6 QmlModels library. +This library does not have any ABI or API guarantees. + +%package -n qt6-qmlmodels-private-devel +Summary: Non-ABI stable API for the Qt 6 QmlModels library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QmlModels6 = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: cmake(Qt6Core) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +%requires_eq qt6-core-private-devel +Provides: qt6-qmlmodels-devel = %{version} +Obsoletes: qt6-qmlmodels-devel < %{version} + +%description -n qt6-qmlmodels-private-devel +This package provides private headers of libQt6QmlModels that do not have any +ABI or API guarantees. + +%package -n libQt6QmlNetwork6 +Summary: Qt 6 QmlNetwork library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QmlNetwork6 +QML Binding for the QNetworkInformation C++ class. +This library does not have any ABI or API guarantees. + +%package -n qt6-qmlnetwork-private-devel +Summary: Qt 6 QmlNetwork library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QmlNetwork6 = %{version} +Requires: qt6-network-devel = %{version} +Requires: qt6-qml-devel = %{version} + +%description -n qt6-qmlnetwork-private-devel +Development files for the Qt 6 QmlNetwork library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QmlWorkerScript6 +Summary: Qt 6 QmlWorkScript library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QmlWorkerScript6 +The Qt 6 QmlModels library. + +%package -n qt6-qmlworkerscript-private-devel +Summary: Qt 6 QmlWorkerScript library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QmlWorkerScript6 = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: cmake(Qt6Core) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +%requires_eq qt6-core-private-devel +Provides: qt6-qmlworkerscript-devel = %{version} +Obsoletes: qt6-qmlworkerscript-devel < %{version} + +%description -n qt6-qmlworkerscript-private-devel +Development files for the Qt 6 QmlWorkerScript library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QmlXmlListModel6 +Summary: Qt 6 QmlXmlListModel library + +%description -n libQt6QmlXmlListModel6 +The Qt 6 QmlXmlListModel library. + +%package -n qt6-qmlxmllistmodel-private-devel +Summary: Qt 6 QmlXmlListModel library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QmlXmlListModel6 = %{version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6QmlModels) = %{real_version} +%requires_eq qt6-core-private-devel +Provides: qt6-qmlxmllistmodel-devel = %{version} +Obsoletes: qt6-qmlxmllistmodel-devel < %{version} + +%description -n qt6-qmlxmllistmodel-private-devel +Development files for the Qt 6 QmlXmlListModel library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QuickDialogs2Utils6 +Summary: Qt 6 QuickDialogs2Utils library + +%description -n libQt6QuickDialogs2Utils6 +The Qt 6 QuickDialogs2Utils library. +This library does not have any ABI or API guarantees. + +%package -n qt6-quickdialogs2utils-private-devel +Summary: Qt6 QuickDialogs2Utils library - Development files +Requires: libQt6QuickDialogs2Utils6 = %{version} +Requires: qt6-qmlmodels-private-devel = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Provides: qt6-quickdialogs2utils-devel = %{version} +Obsoletes: qt6-quickdialogs2utils-devel < %{version} + +%description -n qt6-quickdialogs2utils-private-devel +The Qt 6 QuickDialogs2Utils library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QuickEffects6 +Summary: Qt 6 QuickEffects library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QuickEffects6 +The Qt 6 QuickEffects library. +This library does not have any ABI or API guarantees. + +%package -n qt6-quickeffects-private-devel +Summary: Qt 6 QuickEffects library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QuickEffects6 = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-quick-private-devel = %{version} +%requires_eq qt6-gui-private-devel + +%description -n qt6-quickeffects-private-devel +Development files for the Qt 6 QuickEffects library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QuickLayouts6 +Summary: Qt 6 QuickLayouts library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QuickLayouts6 +The Qt 6 QuickLayouts library. + +%package -n qt6-quicklayouts-private-devel +Summary: Non-ABI stable API for the Qt 6 QuickLayouts library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QuickLayouts6 = %{version} +Requires: qt6-quick-private-devel = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +%requires_eq qt6-gui-private-devel +Provides: qt6-quicklayouts-devel = %{version} +Obsoletes: qt6-quicklayouts-devel < %{version} + +%description -n qt6-quicklayouts-private-devel +Development files for the Qt 6 QuickLayouts library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QuickParticles6 +Summary: Qt 6 QuickParticles library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QuickParticles6 +The Qt 6 QuickParticles library. +This library does not have any ABI or API guarantees. + +%package -n qt6-quickparticles-private-devel +Summary: Qt 6 QuickParticles library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QuickParticles6 = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-quick-private-devel = %{version} +%requires_eq qt6-core-private-devel +%requires_eq qt6-gui-private-devel +# Renamed in 6.2.0 +Provides: qt6-quickparticles-devel = 6.2.0 +Obsoletes: qt6-quickparticles-devel < 6.2.0 + +%description -n qt6-quickparticles-private-devel +Development files for the Qt 6 QuickParticles library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QuickShapes6 +Summary: Qt 6 QuickShapes library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QuickShapes6 +The Qt 6 QuickShapes library. +This library does not have any ABI or API guarantees. + +%package -n qt6-quickshapes-private-devel +Summary: Qt 6 QuickShapes library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QuickShapes6 = %{version} +Requires: qt6-quick-private-devel = %{version} +Requires: cmake(Qt6Qml) = %{real_version} +%requires_eq qt6-gui-private-devel +# Renamed in 6.2.0 +Provides: qt6-quickshapes-devel = 6.2.0 +Obsoletes: qt6-quickshapes-devel < 6.2.0 + +%description -n qt6-quickshapes-private-devel +Development files for the Qt 6 QuickShapes library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QuickTemplates2-6 +Summary: Qt 6 QuickTemplates2 library + +%description -n libQt6QuickTemplates2-6 +The Qt 6 QuickTemplates2 library. +This library does not have any ABI or API guarantees. + +%package -n qt6-quicktemplates2-private-devel +Summary: Non-ABI stable API for the Qt 6 QuickTemplates2 library +Requires: libQt6QuickTemplates2-6 = %{version} +Requires: qt6-qmlmodels-private-devel = %{version} +Requires: cmake(Qt6Gui) = %{real_version} +Requires: cmake(Qt6Qml) = %{real_version} +Requires: cmake(Qt6QmlModels) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Provides: qt6-quicktemplates2-devel = %{version} +Obsoletes: qt6-quicktemplates2-devel < %{version} + +%description -n qt6-quicktemplates2-private-devel +Development files for the Qt 6 QuickTemplates2 library. +This library does not have any ABI or API guarantees. + +%package -n libQt6QuickVectorImage6 +Summary: Qt 6 QuickVectorImage library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only + +%description -n libQt6QuickVectorImage6 +The Qt 6 QuickVectorImage library. +This library does not have any ABI or API guarantees. + +%package -n qt6-quickvectorimage-private-devel +Summary: Qt 6 QuickVectorImage library - Development files +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: libQt6QuickVectorImage6 = %{version} +Requires: qt6-quick-private-devel = %{version} +Requires: qt6-quickshapes-private-devel = %{version} +%requires_eq qt6-svg-private-devel + +%description -n qt6-quickvectorimage-private-devel +Development files for the Qt 6 QuickVectorImage library. +This library does not have any ABI or API guarantees. + +### Static libraries ### + +%package -n qt6-packetprotocol-devel-static +Summary: Qt6 PacketProtocol static library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +%requires_eq qt6-core-private-devel +# Renamed in 6.2.0 +Provides: qt6-packetprotocol-private-devel = 6.2.0 +Obsoletes: qt6-packetprotocol-private-devel < 6.2.0 + +%description -n qt6-packetprotocol-devel-static +The Qt6 PacketProtocol static library. +This library does not have any ABI or API guarantees. + +%package -n qt6-qmldebug-devel-static +Summary: Qt6 QmlDebug static library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: qt6-packetprotocol-devel-static = %{version} +Requires: qt6-qml-private-devel = %{version} +Requires: cmake(Qt6Network) +%requires_eq qt6-core-private-devel +# Renamed in 6.2.0 +Provides: qt6-qmldebug-private-devel = 6.2.0 +Obsoletes: qt6-qmldebug-private-devel < 6.2.0 + +%description -n qt6-qmldebug-devel-static +The Qt6 QmlDebug static library. +This library does not have any ABI or API guarantees. + +%package -n qt6-qmldom-devel-static +Summary: Qt6 QmlDom static library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: qt6-qml-private-devel = %{version} +# Renamed in 6.2.0 +Provides: qt6-qmldom-private-devel = 6.2.0 +Obsoletes: qt6-qmldom-private-devel < 6.2.0 + +%description -n qt6-qmldom-devel-static +The Qt6 QmlDom static library. +The goal of the Dom library is to provide a nicer to use basis for the +Qml Code model, to be used by the various QML tools, the designer and +the new compiler. + +%package -n qt6-qmlls-devel-static +Summary: Qt6 QmlLS static library +Requires: qt6-qml-private-devel = %{version} +Requires: qt6-qmlcompiler-private-devel = %{version} +Requires: cmake(Qt6LanguageServerPrivate) = %{real_version} +Requires: cmake(Qt6QmlCompiler) = %{real_version} +Requires: cmake(Qt6QmlDomPrivate) = %{real_version} +Requires: cmake(Qt6QmlToolingSettingsPrivate) = %{real_version} + +%description -n qt6-qmlls-devel-static +The Qt6 QmlLS static library. + +%package -n qt6-qmltoolingsettings-devel-static +Summary: Qt6 QmlToolingSettings static library +Requires: qt6-core-private-devel = %{version} + +%description -n qt6-qmltoolingsettings-devel-static +The Qt6 QmlToolingSettings static library. + +%package -n qt6-qmltyperegistrar-devel-static +Summary: Qt6 QmlTypeRegistrar static library + +%description -n qt6-qmltyperegistrar-devel-static +The Qt6 QmlTypeRegistrar static library. +This library does not have any ABI or API guarantees. + +%package -n qt6-quickcontrolstestutils-devel-static +Summary: Qt6 QuickControlsTestUtils static library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: qt6-quick-private-devel = %{version} +Requires: qt6-quickdialogs2quickimpl-private-devel = %{version} +Requires: qt6-quicktemplates2-private-devel = %{version} +Requires: qt6-quicktestutils-devel-static = %{version} +Requires: cmake(Qt6QuickControls2) = %{real_version} +Requires: cmake(Qt6QuickDialogs2QuickImpl) = %{real_version} +Requires: cmake(Qt6Test) = %{real_version} + +%description -n qt6-quickcontrolstestutils-devel-static +The Qt6 QuickControlsTestUtils static library. + +%package -n qt6-quicktestutils-devel-static +Summary: Qt6 QuickTestUtils static library +License: GPL-2.0-only OR GPL-3.0-or-later OR LGPL-3.0-only +Requires: qt6-qml-private-devel = %{version} +Requires: cmake(Qt6Network) = %{real_version} +Requires: cmake(Qt6Quick) = %{real_version} +Requires: cmake(Qt6QuickTest) = %{real_version} +Requires: cmake(Qt6Test) = %{real_version} + +%description -n qt6-quicktestutils-devel-static +The Qt6 QuickTestUtils static library. + +%endif + +%prep +%autosetup -p1 -n %{tar_name}-%{real_version}%{tar_suffix} + +# Empty file used for the meta packages +cat >> meta_package << EOF +This is a meta package, it does not contain any file +EOF + +%build +%ifarch s390x +%if "%{qt6_flavor}" == "" +# Determine the right number of parallel processes based on the available memory +%limit_build -m 1700 +%endif +%endif +# Package provides static libraries +%global _lto_cflags %{_lto_cflags} -ffat-lto-objects + +%cmake_qt6 + +%{qt6_build} + +%install +%{qt6_install} + +%if !%{qt6_docs_flavor} + +# Empty folder provided by libQt6Qml6 +mkdir -p %{buildroot}%{_qt6_importsdir} + +%{qt6_link_executables} + +# CMake files are not needed for plugins +rm -r %{buildroot}%{_qt6_cmakedir}/Qt6Qml/QmlPlugins +rm %{buildroot}%{_qt6_cmakedir}/*/*Plugin{Config,Targets}*.cmake + +# There are no private headers +rm %{buildroot}%{_qt6_mkspecsdir}/modules/qt_lib_qmlintegration_private.pri + +%ldconfig_scriptlets -n libQt6LabsAnimation6 +%ldconfig_scriptlets -n libQt6LabsFolderListModel6 +%ldconfig_scriptlets -n libQt6LabsPlatform6 +%ldconfig_scriptlets -n libQt6LabsQmlModels6 +%ldconfig_scriptlets -n libQt6LabsSettings6 +%ldconfig_scriptlets -n libQt6LabsSharedImage6 +%ldconfig_scriptlets -n libQt6LabsWavefrontMesh6 +%ldconfig_scriptlets -n libQt6Qml6 +%ldconfig_scriptlets -n libQt6QmlCompiler6 +%ldconfig_scriptlets -n libQt6QmlCore6 +%ldconfig_scriptlets -n libQt6QmlLocalStorage6 +%ldconfig_scriptlets -n libQt6QmlMeta6 +%ldconfig_scriptlets -n libQt6QmlModels6 +%ldconfig_scriptlets -n libQt6QmlNetwork6 +%ldconfig_scriptlets -n libQt6QmlWorkerScript6 +%ldconfig_scriptlets -n libQt6QmlXmlListModel6 +%ldconfig_scriptlets -n libQt6Quick6 +%ldconfig_scriptlets -n libQt6QuickControls2-6 +%ldconfig_scriptlets -n libQt6QuickControls2Impl6 +%ldconfig_scriptlets -n libQt6QuickDialogs2-6 +%ldconfig_scriptlets -n libQt6QuickDialogs2QuickImpl6 +%ldconfig_scriptlets -n libQt6QuickDialogs2Utils6 +%ldconfig_scriptlets -n libQt6QuickEffects6 +%ldconfig_scriptlets -n libQt6QuickLayouts6 +%ldconfig_scriptlets -n libQt6QuickParticles6 +%ldconfig_scriptlets -n libQt6QuickShapes6 +%ldconfig_scriptlets -n libQt6QuickTemplates2-6 +%ldconfig_scriptlets -n libQt6QuickTest6 +%ldconfig_scriptlets -n libQt6QuickVectorImage6 +%ldconfig_scriptlets -n libQt6QuickWidgets6 + +%files devel +%doc meta_package + +%files private-devel +%doc meta_package + +%files examples +%{_qt6_examplesdir}/* + +%files imports +%{_qt6_qmldir}/QML/ +%{_qt6_qmldir}/QmlTime/ +%{_qt6_qmldir}/Qt/ +%{_qt6_qmldir}/QtCore/ +%{_qt6_qmldir}/QtNetwork/ +%{_qt6_qmldir}/QtQml/ +%{_qt6_qmldir}/QtQuick/ +%{_qt6_qmldir}/QtTest/ +%{_qt6_qmldir}/builtins.qmltypes +%{_qt6_qmldir}/jsroot.qmltypes + +%files tools +%{_bindir}/qml6 +%{_bindir}/qmldom6 +%{_bindir}/qmleasing6 +%{_bindir}/qmlformat6 +%{_bindir}/qmllint6 +%{_bindir}/qmlls6 +%{_bindir}/qmlplugindump6 +%{_bindir}/qmlpreview6 +%{_bindir}/qmlprofiler6 +%{_bindir}/qmlscene6 +%{_bindir}/qmltc6 +%{_bindir}/qmltestrunner6 +%{_bindir}/qmltime6 +%{_bindir}/svgtoqml6 +%{_qt6_bindir}/qml +%{_qt6_bindir}/qmldom +%{_qt6_bindir}/qmleasing +%{_qt6_bindir}/qmlformat +%{_qt6_bindir}/qmllint +%{_qt6_bindir}/qmlls +%{_qt6_bindir}/qmlplugindump +%{_qt6_bindir}/qmlpreview +%{_qt6_bindir}/qmlprofiler +%{_qt6_bindir}/qmlscene +%{_qt6_bindir}/qmltc +%{_qt6_bindir}/qmltestrunner +%{_qt6_bindir}/qmltime +%{_qt6_bindir}/svgtoqml +%{_qt6_libexecdir}/qmlaotstats +%{_qt6_libexecdir}/qmlcachegen +%{_qt6_libexecdir}/qmlimportscanner +%{_qt6_libexecdir}/qmljsrootgen +%{_qt6_libexecdir}/qmltyperegistrar +%{_qt6_pluginsdir}/qmllint/ +%{_qt6_pluginsdir}/qmlls/ +%{_qt6_pluginsdir}/qmltooling/ + +%files -n libQt6Qml6 +%license LICENSES/* +# libQt6Qml6 'provides' %%_qt6_importsdir and %%_qt6_qmldir +%dir %{_qt6_importsdir} +%dir %{_qt6_qmldir} +%{_qt6_libdir}/libQt6Qml.so.* + +%files -n qt6-qml-devel +%dir %{_qt6_mkspecsdir}/features +%{_qt6_cmakedir}/Qt6Qml/ +%{_qt6_cmakedir}/Qt6QmlIntegration/ +# Files from the two directories above are only used by Qt6QmlMacros.cmake +%{_qt6_cmakedir}/Qt6QmlImportScanner/ +%{_qt6_cmakedir}/Qt6QmlTools/ +%{_qt6_descriptionsdir}/Qml.json +%{_qt6_descriptionsdir}/QmlIntegration.json +%{_qt6_includedir}/QtQml/ +%{_qt6_includedir}/QtQmlIntegration/ +%{_qt6_libdir}/libQt6Qml.prl +%{_qt6_libdir}/libQt6Qml.so +%{_qt6_metatypesdir}/qt6qml_*_metatypes.json +%{_qt6_mkspecsdir}/features/qmlcache.prf +%{_qt6_mkspecsdir}/features/qmltypes.prf +%{_qt6_mkspecsdir}/features/qtquickcompiler.prf +%{_qt6_mkspecsdir}/modules/qt_lib_qml.pri +%{_qt6_mkspecsdir}/modules/qt_lib_qmlintegration.pri +%{_qt6_pkgconfigdir}/Qt6Qml.pc +%{_qt6_pkgconfigdir}/Qt6QmlIntegration.pc +%exclude %{_qt6_includedir}/QtQml/%{real_version} + +%files -n qt6-qml-private-devel +%{_qt6_includedir}/QtQml/%{real_version}/ +%{_qt6_mkspecsdir}/modules/qt_lib_qml_private.pri + +%files -n libQt6QmlCompiler6 +%{_qt6_libdir}/libQt6QmlCompiler.so.* + +%files -n qt6-qmlcompiler-devel +%{_qt6_cmakedir}/Qt6QmlCompiler/ +%{_qt6_descriptionsdir}/QmlCompiler.json +%{_qt6_includedir}/QtQmlCompiler/ +%{_qt6_libdir}/libQt6QmlCompiler.prl +%{_qt6_libdir}/libQt6QmlCompiler.so +%{_qt6_metatypesdir}/qt6qmlcompiler_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmlcompiler.pri +%{_qt6_pkgconfigdir}/Qt6QmlCompiler.pc +%exclude %{_qt6_includedir}/QtQmlCompiler/%{real_version} + +%files -n qt6-qmlcompiler-private-devel +%{_qt6_includedir}/QtQmlCompiler/%{real_version}/ +%{_qt6_mkspecsdir}/modules/qt_lib_qmlcompiler_private.pri + +%files -n libQt6Quick6 +%{_qt6_libdir}/libQt6Quick.so.* + +%files -n qt6-quick-devel +%{_qt6_cmakedir}/Qt6BuildInternals/StandaloneTests/QtDeclarativeTestsConfig.cmake +%{_qt6_cmakedir}/Qt6Quick/ +%{_qt6_cmakedir}/Qt6QuickTools/ +%{_qt6_descriptionsdir}/Quick.json +%{_qt6_includedir}/QtQuick/ +%{_qt6_libdir}/libQt6Quick.prl +%{_qt6_libdir}/libQt6Quick.so +%{_qt6_metatypesdir}/qt6quick_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quick.pri +%{_qt6_pkgconfigdir}/Qt6Quick.pc +%exclude %{_qt6_includedir}/QtQuick/%{real_version} + +%files -n qt6-quick-private-devel +%{_qt6_includedir}/QtQuick/%{real_version}/ +%{_qt6_mkspecsdir}/modules/qt_lib_quick_private.pri + +%files -n libQt6QuickControls2-6 +%{_qt6_libdir}/libQt6QuickControls2.so.* +%{_qt6_libdir}/libQt6QuickControls2Basic.so.* +%{_qt6_libdir}/libQt6QuickControls2Fusion.so.* +%{_qt6_libdir}/libQt6QuickControls2Imagine.so.* +%{_qt6_libdir}/libQt6QuickControls2Material.so.* +%{_qt6_libdir}/libQt6QuickControls2Universal.so.* + +%files -n qt6-quickcontrols2-devel +%{_qt6_cmakedir}/Qt6QuickControls2/ +%{_qt6_descriptionsdir}/QuickControls2.json +%{_qt6_includedir}/QtQuickControls2/ +%{_qt6_libdir}/libQt6QuickControls2.prl +%{_qt6_libdir}/libQt6QuickControls2.so +%{_qt6_metatypesdir}/qt6quickcontrols2_*.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2.pri +%{_qt6_pkgconfigdir}/Qt6QuickControls2.pc +%exclude %{_qt6_includedir}/QtQuickControls2/%{real_version} + +%files -n qt6-quickcontrols2-private-devel +%{_qt6_cmakedir}/Qt6QuickControls2Basic/ +%{_qt6_cmakedir}/Qt6QuickControls2Fusion/ +%{_qt6_cmakedir}/Qt6QuickControls2Imagine/ +%{_qt6_cmakedir}/Qt6QuickControls2Material/ +%{_qt6_cmakedir}/Qt6QuickControls2Universal/ +%{_qt6_descriptionsdir}/QuickControls2Basic.json +%{_qt6_descriptionsdir}/QuickControls2Fusion.json +%{_qt6_descriptionsdir}/QuickControls2Imagine.json +%{_qt6_descriptionsdir}/QuickControls2Material.json +%{_qt6_descriptionsdir}/QuickControls2Universal.json +%{_qt6_includedir}/QtQuickControls2/%{real_version}/ +%{_qt6_includedir}/QtQuickControls2Basic/ +%{_qt6_includedir}/QtQuickControls2Fusion/ +%{_qt6_includedir}/QtQuickControls2Imagine/ +%{_qt6_includedir}/QtQuickControls2Material/ +%{_qt6_includedir}/QtQuickControls2Universal/ +%{_qt6_libdir}/libQt6QuickControls2Basic.prl +%{_qt6_libdir}/libQt6QuickControls2Basic.so +%{_qt6_libdir}/libQt6QuickControls2Fusion.prl +%{_qt6_libdir}/libQt6QuickControls2Fusion.so +%{_qt6_libdir}/libQt6QuickControls2Imagine.prl +%{_qt6_libdir}/libQt6QuickControls2Imagine.so +%{_qt6_libdir}/libQt6QuickControls2Material.prl +%{_qt6_libdir}/libQt6QuickControls2Material.so +%{_qt6_libdir}/libQt6QuickControls2Universal.prl +%{_qt6_libdir}/libQt6QuickControls2Universal.so +%{_qt6_metatypesdir}/qt6quickcontrols2basic_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2fusion_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2imagine_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2material_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2universal_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2basic.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2basic_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2fusion.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2fusion_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2imagine.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2imagine_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2material.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2material_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2universal.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2universal_private.pri +%{_qt6_pkgconfigdir}/Qt6QuickControls2Basic.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2Fusion.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2Imagine.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2Material.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2Universal.pc + +%files -n libQt6QuickControls2Impl6 +%{_qt6_libdir}/libQt6QuickControls2BasicStyleImpl.so.* +%{_qt6_libdir}/libQt6QuickControls2FluentWinUI3StyleImpl.so.* +%{_qt6_libdir}/libQt6QuickControls2FusionStyleImpl.so.* +%{_qt6_libdir}/libQt6QuickControls2ImagineStyleImpl.so.* +%{_qt6_libdir}/libQt6QuickControls2Impl.so.* +%{_qt6_libdir}/libQt6QuickControls2MaterialStyleImpl.so.* +%{_qt6_libdir}/libQt6QuickControls2UniversalStyleImpl.so.* + +%files -n qt6-quickcontrols2impl-devel +%{_qt6_cmakedir}/Qt6QuickControls2BasicStyleImpl/ +%{_qt6_cmakedir}/Qt6QuickControls2FluentWinUI3StyleImpl/ +%{_qt6_cmakedir}/Qt6QuickControls2FusionStyleImpl/ +%{_qt6_cmakedir}/Qt6QuickControls2ImagineStyleImpl/ +%{_qt6_cmakedir}/Qt6QuickControls2Impl/ +%{_qt6_cmakedir}/Qt6QuickControls2MaterialStyleImpl/ +%{_qt6_cmakedir}/Qt6QuickControls2UniversalStyleImpl/ +%{_qt6_descriptionsdir}/QuickControls2BasicStyleImpl.json +%{_qt6_descriptionsdir}/QuickControls2FluentWinUI3StyleImpl.json +%{_qt6_descriptionsdir}/QuickControls2FusionStyleImpl.json +%{_qt6_descriptionsdir}/QuickControls2ImagineStyleImpl.json +%{_qt6_descriptionsdir}/QuickControls2Impl.json +%{_qt6_descriptionsdir}/QuickControls2MaterialStyleImpl.json +%{_qt6_descriptionsdir}/QuickControls2UniversalStyleImpl.json +%{_qt6_includedir}/QtQuickControls2BasicStyleImpl/ +%{_qt6_includedir}/QtQuickControls2FluentWinUI3StyleImpl/ +%{_qt6_includedir}/QtQuickControls2FusionStyleImpl/ +%{_qt6_includedir}/QtQuickControls2ImagineStyleImpl/ +%{_qt6_includedir}/QtQuickControls2Impl/ +%{_qt6_includedir}/QtQuickControls2MaterialStyleImpl/ +%{_qt6_includedir}/QtQuickControls2UniversalStyleImpl/ +%{_qt6_libdir}/libQt6QuickControls2BasicStyleImpl.prl +%{_qt6_libdir}/libQt6QuickControls2BasicStyleImpl.so +%{_qt6_libdir}/libQt6QuickControls2FluentWinUI3StyleImpl.prl +%{_qt6_libdir}/libQt6QuickControls2FluentWinUI3StyleImpl.so +%{_qt6_libdir}/libQt6QuickControls2FusionStyleImpl.prl +%{_qt6_libdir}/libQt6QuickControls2FusionStyleImpl.so +%{_qt6_libdir}/libQt6QuickControls2ImagineStyleImpl.prl +%{_qt6_libdir}/libQt6QuickControls2ImagineStyleImpl.so +%{_qt6_libdir}/libQt6QuickControls2Impl.prl +%{_qt6_libdir}/libQt6QuickControls2Impl.so +%{_qt6_libdir}/libQt6QuickControls2MaterialStyleImpl.prl +%{_qt6_libdir}/libQt6QuickControls2MaterialStyleImpl.so +%{_qt6_libdir}/libQt6QuickControls2UniversalStyleImpl.prl +%{_qt6_libdir}/libQt6QuickControls2UniversalStyleImpl.so +%{_qt6_metatypesdir}/qt6quickcontrols2basicstyleimpl_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2fluentwinui3styleimpl_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2fusionstyleimpl_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2imaginestyleimpl_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2impl_*.json +%{_qt6_metatypesdir}/qt6quickcontrols2materialstyleimpl_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickcontrols2universalstyleimpl_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2basicstyleimpl.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2fluentwinui3styleimpl.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2fusionstyleimpl.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2imaginestyleimpl.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2impl.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2materialstyleimpl.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2universalstyleimpl.pri +%{_qt6_pkgconfigdir}/Qt6QuickControls2BasicStyleImpl.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2FluentWinUI3StyleImpl.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2FusionStyleImpl.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2ImagineStyleImpl.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2Impl.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2MaterialStyleImpl.pc +%{_qt6_pkgconfigdir}/Qt6QuickControls2UniversalStyleImpl.pc +%exclude %{_qt6_includedir}/QtQuickControls2BasicStyleImpl/%{real_version} +%exclude %{_qt6_includedir}/QtQuickControls2FluentWinUI3StyleImpl/%{real_version} +%exclude %{_qt6_includedir}/QtQuickControls2FusionStyleImpl/%{real_version} +%exclude %{_qt6_includedir}/QtQuickControls2Impl/%{real_version} +%exclude %{_qt6_includedir}/QtQuickControls2MaterialStyleImpl/%{real_version} +%exclude %{_qt6_includedir}/QtQuickControls2UniversalStyleImpl/%{real_version} + +%files -n qt6-quickcontrols2impl-private-devel +%{_qt6_includedir}/QtQuickControls2BasicStyleImpl/%{real_version}/ +%{_qt6_includedir}/QtQuickControls2FluentWinUI3StyleImpl/%{real_version}/ +%{_qt6_includedir}/QtQuickControls2FusionStyleImpl/%{real_version}/ +%{_qt6_includedir}/QtQuickControls2Impl/%{real_version}/ +%{_qt6_includedir}/QtQuickControls2MaterialStyleImpl/%{real_version}/ +%{_qt6_includedir}/QtQuickControls2UniversalStyleImpl/%{real_version}/ +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2basicstyleimpl_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2fluentwinui3styleimpl_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2fusionstyleimpl_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2imaginestyleimpl_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2impl_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2materialstyleimpl_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrols2universalstyleimpl_private.pri + +%files -n libQt6QuickDialogs2-6 +%{_qt6_libdir}/libQt6QuickDialogs2.so.* + +%files -n qt6-quickdialogs2-devel +%{_qt6_cmakedir}/Qt6QuickDialogs2/ +%{_qt6_descriptionsdir}/QuickDialogs2.json +%{_qt6_includedir}/QtQuickDialogs2/ +%{_qt6_libdir}/libQt6QuickDialogs2.prl +%{_qt6_libdir}/libQt6QuickDialogs2.so +%{_qt6_metatypesdir}/qt6quickdialogs2_*.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickdialogs2.pri +%{_qt6_pkgconfigdir}/Qt6QuickDialogs2.pc +%exclude %{_qt6_includedir}/QtQuickDialogs2/%{real_version} + +%files -n qt6-quickdialogs2-private-devel +%{_qt6_includedir}/QtQuickDialogs2/%{real_version}/ +%{_qt6_mkspecsdir}/modules/qt_lib_quickdialogs2_private.pri + +%files -n libQt6QuickDialogs2QuickImpl6 +%{_qt6_libdir}/libQt6QuickDialogs2QuickImpl.so.* + +%files -n qt6-quickdialogs2quickimpl-devel +%{_qt6_cmakedir}/Qt6QuickDialogs2QuickImpl/ +%{_qt6_descriptionsdir}/QuickDialogs2QuickImpl.json +%{_qt6_includedir}/QtQuickDialogs2QuickImpl/ +%{_qt6_libdir}/libQt6QuickDialogs2QuickImpl.prl +%{_qt6_libdir}/libQt6QuickDialogs2QuickImpl.so +%{_qt6_metatypesdir}/qt6quickdialogs2quickimpl_*.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickdialogs2quickimpl.pri +%{_qt6_pkgconfigdir}/Qt6QuickDialogs2QuickImpl.pc +%exclude %{_qt6_includedir}/QtQuickDialogs2QuickImpl/%{real_version} + +%files -n qt6-quickdialogs2quickimpl-private-devel +%{_qt6_includedir}/QtQuickDialogs2QuickImpl/%{real_version}/ +%{_qt6_mkspecsdir}/modules/qt_lib_quickdialogs2quickimpl_private.pri + +%files -n libQt6QuickTest6 +%{_qt6_libdir}/libQt6QuickTest.so.* + +%files -n qt6-quicktest-devel +%{_qt6_cmakedir}/Qt6QuickTest/ +%{_qt6_descriptionsdir}/QuickTest.json +%{_qt6_includedir}/QtQuickTest/ +%{_qt6_libdir}/libQt6QuickTest.prl +%{_qt6_libdir}/libQt6QuickTest.so +%{_qt6_metatypesdir}/qt6quicktest_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmltest.pri +%{_qt6_pkgconfigdir}/Qt6QuickTest.pc +%exclude %{_qt6_includedir}/QtQuickTest/%{real_version} + +%files -n qt6-quicktest-private-devel +%{_qt6_includedir}/QtQuickTest/%{real_version}/ +%{_qt6_mkspecsdir}/modules/qt_lib_qmltest_private.pri + +%files -n libQt6QuickWidgets6 +%{_qt6_libdir}/libQt6QuickWidgets.so.* + +%files -n qt6-quickwidgets-devel +%{_qt6_cmakedir}/Qt6QuickWidgets/ +%{_qt6_descriptionsdir}/QuickWidgets.json +%{_qt6_includedir}/QtQuickWidgets/ +%{_qt6_libdir}/libQt6QuickWidgets.prl +%{_qt6_libdir}/libQt6QuickWidgets.so +%{_qt6_metatypesdir}/qt6quickwidgets_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickwidgets.pri +%{_qt6_pkgconfigdir}/Qt6QuickWidgets.pc +%exclude %{_qt6_includedir}/QtQuickWidgets/%{real_version} + +%files -n qt6-quickwidgets-private-devel +%{_qt6_includedir}/QtQuickWidgets/%{real_version} +%{_qt6_mkspecsdir}/modules/qt_lib_quickwidgets_private.pri + +### Private only libraries ### + +%files -n libQt6LabsPlatform6 +%{_qt6_libdir}/libQt6LabsPlatform.so.* + +%files -n qt6-labsplatform-private-devel +%{_qt6_cmakedir}/Qt6LabsPlatform/ +%{_qt6_descriptionsdir}/LabsPlatform.json +%{_qt6_includedir}/QtLabsPlatform/ +%{_qt6_libdir}/libQt6LabsPlatform.prl +%{_qt6_libdir}/libQt6LabsPlatform.so +%{_qt6_metatypesdir}/qt6labsplatform_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_labsplatform.pri +%{_qt6_mkspecsdir}/modules/qt_lib_labsplatform_private.pri +%{_qt6_pkgconfigdir}/Qt6LabsPlatform.pc + +%files -n libQt6LabsAnimation6 +%{_qt6_libdir}/libQt6LabsAnimation.so.* + +%files -n qt6-labsanimation-private-devel +%{_qt6_cmakedir}/Qt6LabsAnimation/ +%{_qt6_descriptionsdir}/LabsAnimation.json +%{_qt6_includedir}/QtLabsAnimation/ +%{_qt6_libdir}/libQt6LabsAnimation.prl +%{_qt6_libdir}/libQt6LabsAnimation.so +%{_qt6_metatypesdir}/qt6labsanimation_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_labsanimation.pri +%{_qt6_mkspecsdir}/modules/qt_lib_labsanimation_private.pri +%{_qt6_pkgconfigdir}/Qt6LabsAnimation.pc + +%files -n libQt6LabsFolderListModel6 +%{_qt6_libdir}/libQt6LabsFolderListModel.so.* + +%files -n qt6-labsfolderlistmodel-private-devel +%{_qt6_cmakedir}/Qt6LabsFolderListModel/ +%{_qt6_descriptionsdir}/LabsFolderListModel.json +%{_qt6_includedir}/QtLabsFolderListModel/ +%{_qt6_libdir}/libQt6LabsFolderListModel.prl +%{_qt6_libdir}/libQt6LabsFolderListModel.so +%{_qt6_metatypesdir}/qt6labsfolderlistmodel_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_labsfolderlistmodel.pri +%{_qt6_mkspecsdir}/modules/qt_lib_labsfolderlistmodel_private.pri +%{_qt6_pkgconfigdir}/Qt6LabsFolderListModel.pc + +%files -n libQt6LabsQmlModels6 +%{_qt6_libdir}/libQt6LabsQmlModels.so.* + +%files -n qt6-labsqmlmodels-private-devel +%{_qt6_cmakedir}/Qt6LabsQmlModels/ +%{_qt6_descriptionsdir}/LabsQmlModels.json +%{_qt6_includedir}/QtLabsQmlModels/ +%{_qt6_libdir}/libQt6LabsQmlModels.prl +%{_qt6_libdir}/libQt6LabsQmlModels.so +%{_qt6_metatypesdir}/qt6labsqmlmodels_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_labsqmlmodels.pri +%{_qt6_mkspecsdir}/modules/qt_lib_labsqmlmodels_private.pri +%{_qt6_pkgconfigdir}/Qt6LabsQmlModels.pc + +%files -n libQt6LabsSettings6 +%{_qt6_libdir}/libQt6LabsSettings.so.* + +%files -n qt6-labssettings-private-devel +%{_qt6_cmakedir}/Qt6LabsSettings/ +%{_qt6_descriptionsdir}/LabsSettings.json +%{_qt6_includedir}/QtLabsSettings/ +%{_qt6_libdir}/libQt6LabsSettings.prl +%{_qt6_libdir}/libQt6LabsSettings.so +%{_qt6_metatypesdir}/qt6labssettings_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_labssettings.pri +%{_qt6_mkspecsdir}/modules/qt_lib_labssettings_private.pri +%{_qt6_pkgconfigdir}/Qt6LabsSettings.pc + +%files -n libQt6LabsSharedImage6 +%{_qt6_libdir}/libQt6LabsSharedImage.so.* + +%files -n qt6-labssharedimage-private-devel +%{_qt6_cmakedir}/Qt6LabsSharedImage/ +%{_qt6_descriptionsdir}/LabsSharedImage.json +%{_qt6_includedir}/QtLabsSharedImage/ +%{_qt6_libdir}/libQt6LabsSharedImage.prl +%{_qt6_libdir}/libQt6LabsSharedImage.so +%{_qt6_metatypesdir}/qt6labssharedimage_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_labssharedimage.pri +%{_qt6_mkspecsdir}/modules/qt_lib_labssharedimage_private.pri +%{_qt6_pkgconfigdir}/Qt6LabsSharedImage.pc + +%files -n libQt6LabsWavefrontMesh6 +%{_qt6_libdir}/libQt6LabsWavefrontMesh.so.* + +%files -n qt6-labswavefrontmesh-private-devel +%{_qt6_cmakedir}/Qt6LabsWavefrontMesh/ +%{_qt6_descriptionsdir}/LabsWavefrontMesh.json +%{_qt6_includedir}/QtLabsWavefrontMesh/ +%{_qt6_libdir}/libQt6LabsWavefrontMesh.prl +%{_qt6_libdir}/libQt6LabsWavefrontMesh.so +%{_qt6_metatypesdir}/qt6labswavefrontmesh_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_labswavefrontmesh.pri +%{_qt6_mkspecsdir}/modules/qt_lib_labswavefrontmesh_private.pri +%{_qt6_pkgconfigdir}/Qt6LabsWavefrontMesh.pc + +%files -n libQt6QmlLocalStorage6 +%{_qt6_libdir}/libQt6QmlLocalStorage.so.* + +%files -n qt6-qmllocalstorage-private-devel +%{_qt6_cmakedir}/Qt6QmlLocalStorage/ +%{_qt6_descriptionsdir}/QmlLocalStorage.json +%{_qt6_includedir}/QtQmlLocalStorage/ +%{_qt6_libdir}/libQt6QmlLocalStorage.prl +%{_qt6_libdir}/libQt6QmlLocalStorage.so +%{_qt6_metatypesdir}/qt6qmllocalstorage_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmllocalstorage.pri +%{_qt6_mkspecsdir}/modules/qt_lib_qmllocalstorage_private.pri +%{_qt6_pkgconfigdir}/Qt6QmlLocalStorage.pc + +%files -n libQt6QmlMeta6 +%{_qt6_libdir}/libQt6QmlMeta.so.* + +%files -n qt6-qmlmeta-private-devel +%{_qt6_cmakedir}/Qt6QmlMeta/ +%{_qt6_descriptionsdir}/QmlMeta.json +%{_qt6_includedir}/QtQmlMeta +%{_qt6_libdir}/libQt6QmlMeta.prl +%{_qt6_libdir}/libQt6QmlMeta.so +%{_qt6_metatypesdir}/qt6qmlmeta_relwithdebinfo_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmlmeta.pri +%{_qt6_mkspecsdir}/modules/qt_lib_qmlmeta_private.pri +%{_qt6_pkgconfigdir}/Qt6QmlMeta.pc + +%files -n libQt6QmlModels6 +%{_qt6_libdir}/libQt6QmlModels.so.* + +%files -n qt6-qmlmodels-private-devel +%{_qt6_cmakedir}/Qt6QmlModels/ +%{_qt6_descriptionsdir}/QmlModels.json +%{_qt6_includedir}/QtQmlModels/ +%{_qt6_libdir}/libQt6QmlModels.prl +%{_qt6_libdir}/libQt6QmlModels.so +%{_qt6_metatypesdir}/qt6qmlmodels_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmlmodels.pri +%{_qt6_mkspecsdir}/modules/qt_lib_qmlmodels_private.pri +%{_qt6_pkgconfigdir}/Qt6QmlModels.pc + +%files -n libQt6QmlNetwork6 +%{_qt6_libdir}/libQt6QmlNetwork.so.* + +%files -n qt6-qmlnetwork-private-devel +%{_qt6_cmakedir}/Qt6QmlNetwork/ +%{_qt6_descriptionsdir}/QmlNetwork.json +%{_qt6_includedir}/QtQmlNetwork/ +%{_qt6_libdir}/libQt6QmlNetwork.prl +%{_qt6_libdir}/libQt6QmlNetwork.so +%{_qt6_metatypesdir}/qt6qmlnetwork_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmlnetwork.pri +%{_qt6_mkspecsdir}/modules/qt_lib_qmlnetwork_private.pri +%{_qt6_pkgconfigdir}/Qt6QmlNetwork.pc + +%files -n libQt6QmlCore6 +%{_qt6_libdir}/libQt6QmlCore.so.* + +%files -n qt6-qmlcore-private-devel +%{_qt6_cmakedir}/Qt6QmlCore/ +%{_qt6_descriptionsdir}/QmlCore.json +%{_qt6_includedir}/QtQmlCore/ +%{_qt6_libdir}/libQt6QmlCore.prl +%{_qt6_libdir}/libQt6QmlCore.so +%{_qt6_metatypesdir}/qt6qmlcore_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmlcore.pri +%{_qt6_mkspecsdir}/modules/qt_lib_qmlcore_private.pri +%{_qt6_pkgconfigdir}/Qt6QmlCore.pc + +%files -n libQt6QmlWorkerScript6 +%{_qt6_libdir}/libQt6QmlWorkerScript.so.* + +%files -n qt6-qmlworkerscript-private-devel +%{_qt6_cmakedir}/Qt6QmlWorkerScript/ +%{_qt6_descriptionsdir}/QmlWorkerScript.json +%{_qt6_includedir}/QtQmlWorkerScript/ +%{_qt6_libdir}/libQt6QmlWorkerScript.prl +%{_qt6_libdir}/libQt6QmlWorkerScript.so +%{_qt6_metatypesdir}/qt6qmlworkerscript_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmlworkerscript.pri +%{_qt6_mkspecsdir}/modules/qt_lib_qmlworkerscript_private.pri +%{_qt6_pkgconfigdir}/Qt6QmlWorkerScript.pc + +%files -n libQt6QmlXmlListModel6 +%{_qt6_libdir}/libQt6QmlXmlListModel.so.* + +%files -n qt6-qmlxmllistmodel-private-devel +%{_qt6_cmakedir}/Qt6QmlXmlListModel/ +%{_qt6_descriptionsdir}/QmlXmlListModel.json +%{_qt6_includedir}/QtQmlXmlListModel/ +%{_qt6_libdir}/libQt6QmlXmlListModel.prl +%{_qt6_libdir}/libQt6QmlXmlListModel.so +%{_qt6_metatypesdir}/qt6qmlxmllistmodel_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmlxmllistmodel.pri +%{_qt6_mkspecsdir}/modules/qt_lib_qmlxmllistmodel_private.pri +%{_qt6_pkgconfigdir}/Qt6QmlXmlListModel.pc + +%files -n libQt6QuickDialogs2Utils6 +%{_qt6_libdir}/libQt6QuickDialogs2Utils.so.* + +%files -n qt6-quickdialogs2utils-private-devel +%{_qt6_cmakedir}/Qt6QuickDialogs2Utils/ +%{_qt6_descriptionsdir}/QuickDialogs2Utils.json +%{_qt6_includedir}/QtQuickDialogs2Utils/ +%{_qt6_libdir}/libQt6QuickDialogs2Utils.prl +%{_qt6_libdir}/libQt6QuickDialogs2Utils.so +%{_qt6_metatypesdir}/qt6quickdialogs2utils_*.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickdialogs2utils.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickdialogs2utils_private.pri +%{_qt6_pkgconfigdir}/Qt6QuickDialogs2Utils.pc + +%files -n libQt6QuickEffects6 +%{_qt6_libdir}/libQt6QuickEffects.so.* + +%files -n qt6-quickeffects-private-devel +%{_qt6_cmakedir}/Qt6QuickEffectsPrivate/ +%{_qt6_descriptionsdir}/QuickEffectsPrivate.json +%{_qt6_includedir}/QtQuickEffects/ +%{_qt6_libdir}/libQt6QuickEffects.prl +%{_qt6_libdir}/libQt6QuickEffects.so +%{_qt6_metatypesdir}/qt6quickeffectsprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickeffects_private.pri + +%files -n libQt6QuickLayouts6 +%{_qt6_libdir}/libQt6QuickLayouts.so.* + +%files -n qt6-quicklayouts-private-devel +%{_qt6_cmakedir}/Qt6QuickLayouts/ +%{_qt6_descriptionsdir}/QuickLayouts.json +%{_qt6_includedir}/QtQuickLayouts/ +%{_qt6_libdir}/libQt6QuickLayouts.prl +%{_qt6_libdir}/libQt6QuickLayouts.so +%{_qt6_metatypesdir}/qt6quicklayouts_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quicklayouts.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quicklayouts_private.pri +%{_qt6_pkgconfigdir}/Qt6QuickLayouts.pc + +%files -n libQt6QuickParticles6 +%{_qt6_libdir}/libQt6QuickParticles.so.* + +%files -n qt6-quickparticles-private-devel +%{_qt6_cmakedir}/Qt6QuickParticlesPrivate/ +%{_qt6_descriptionsdir}/QuickParticlesPrivate.json +%{_qt6_includedir}/QtQuickParticles/ +%{_qt6_libdir}/libQt6QuickParticles.prl +%{_qt6_libdir}/libQt6QuickParticles.so +%{_qt6_metatypesdir}/qt6quickparticlesprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickparticles_private.pri + +%files -n libQt6QuickShapes6 +%{_qt6_libdir}/libQt6QuickShapes.so.* + +%files -n qt6-quickshapes-private-devel +%{_qt6_cmakedir}/Qt6QuickShapesPrivate/ +%{_qt6_descriptionsdir}/QuickShapesPrivate.json +%{_qt6_includedir}/QtQuickShapes/ +%{_qt6_libdir}/libQt6QuickShapes.prl +%{_qt6_libdir}/libQt6QuickShapes.so +%{_qt6_metatypesdir}/qt6quickshapesprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickshapes_private.pri + +%files -n libQt6QuickTemplates2-6 +%{_qt6_libdir}/libQt6QuickTemplates2.so.* + +%files -n qt6-quicktemplates2-private-devel +%{_qt6_cmakedir}/Qt6QuickTemplates2/ +%{_qt6_descriptionsdir}/QuickTemplates2.json +%{_qt6_includedir}/QtQuickTemplates2/ +%{_qt6_libdir}/libQt6QuickTemplates2.prl +%{_qt6_libdir}/libQt6QuickTemplates2.so +%{_qt6_metatypesdir}/qt6quicktemplates2_*.json +%{_qt6_mkspecsdir}/modules/qt_lib_quicktemplates2.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quicktemplates2_private.pri +%{_qt6_pkgconfigdir}/Qt6QuickTemplates2.pc + +%files -n libQt6QuickVectorImage6 +%{_qt6_libdir}/libQt6QuickVectorImage.so.* +%{_qt6_libdir}/libQt6QuickVectorImageGenerator.so.* + +%files -n qt6-quickvectorimage-private-devel +%{_qt6_cmakedir}/Qt6QuickVectorImage/ +%{_qt6_cmakedir}/Qt6QuickVectorImageGeneratorPrivate/ +%{_qt6_descriptionsdir}/QuickVectorImage.json +%{_qt6_descriptionsdir}/QuickVectorImageGeneratorPrivate.json +%{_qt6_includedir}/QtQuickVectorImage/ +%{_qt6_includedir}/QtQuickVectorImageGenerator/ +%{_qt6_libdir}/libQt6QuickVectorImage.prl +%{_qt6_libdir}/libQt6QuickVectorImage.so +%{_qt6_libdir}/libQt6QuickVectorImageGenerator.prl +%{_qt6_libdir}/libQt6QuickVectorImageGenerator.so +%{_qt6_metatypesdir}/qt6quickvectorimage_*_metatypes.json +%{_qt6_metatypesdir}/qt6quickvectorimagegeneratorprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickvectorimage.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickvectorimage_private.pri +%{_qt6_mkspecsdir}/modules/qt_lib_quickvectorimagegenerator_private.pri +%{_qt6_pkgconfigdir}/Qt6QuickVectorImage.pc + +### Static libraries ### + +%files -n qt6-packetprotocol-devel-static +%{_qt6_cmakedir}/Qt6PacketProtocolPrivate/ +%{_qt6_descriptionsdir}/PacketProtocolPrivate.json +%{_qt6_includedir}/QtPacketProtocol/ +%{_qt6_libdir}/libQt6PacketProtocol.a +%{_qt6_libdir}/libQt6PacketProtocol.prl +%{_qt6_metatypesdir}/qt6packetprotocolprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_packetprotocol_private.pri + +%files -n qt6-qmldebug-devel-static +%{_qt6_cmakedir}/Qt6QmlDebugPrivate/ +%{_qt6_descriptionsdir}/QmlDebugPrivate.json +%{_qt6_includedir}/QtQmlDebug/ +%{_qt6_libdir}/libQt6QmlDebug.a +%{_qt6_libdir}/libQt6QmlDebug.prl +%{_qt6_metatypesdir}/qt6qmldebugprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmldebug_private.pri + +%files -n qt6-qmldom-devel-static +%{_qt6_cmakedir}/Qt6QmlDomPrivate/ +%{_qt6_descriptionsdir}/QmlDomPrivate.json +%{_qt6_includedir}/QtQmlDom/ +%{_qt6_libdir}/libQt6QmlDom.a +%{_qt6_libdir}/libQt6QmlDom.prl +%{_qt6_metatypesdir}/qt6qmldomprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmldom_private.pri + +%files -n qt6-qmlls-devel-static +%{_qt6_cmakedir}/Qt6QmlLSPrivate/ +%{_qt6_descriptionsdir}/QmlLSPrivate.json +%{_qt6_includedir}/QtQmlLS/ +%{_qt6_libdir}/libQt6QmlLS.a +%{_qt6_libdir}/libQt6QmlLS.prl +%{_qt6_metatypesdir}/qt6qmllsprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmlls_private.pri + +%files -n qt6-qmltoolingsettings-devel-static +%{_qt6_cmakedir}/Qt6QmlToolingSettingsPrivate/ +%{_qt6_descriptionsdir}/QmlToolingSettingsPrivate.json +%{_qt6_includedir}/QtQmlToolingSettings/ +%{_qt6_libdir}/libQt6QmlToolingSettings.a +%{_qt6_libdir}/libQt6QmlToolingSettings.prl +%{_qt6_metatypesdir}/qt6qmltoolingsettingsprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmltoolingsettings_private.pri + +%files -n qt6-qmltyperegistrar-devel-static +# Expected development files +%dir %{_qt6_archdatadir}/objects-* +%{_qt6_archdatadir}/objects-*/QmlTypeRegistrarPrivate_resources_1/ +%{_qt6_cmakedir}/Qt6QmlTypeRegistrarPrivate/ +%{_qt6_descriptionsdir}/QmlTypeRegistrarPrivate.json +%{_qt6_includedir}/QtQmlTypeRegistrar/ +%{_qt6_libdir}/libQt6QmlTypeRegistrar.a +%{_qt6_libdir}/libQt6QmlTypeRegistrar.prl +%{_qt6_metatypesdir}/qt6qmltyperegistrarprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qmltyperegistrar_private.pri + +%files -n qt6-quickcontrolstestutils-devel-static +%{_qt6_cmakedir}/Qt6QuickControlsTestUtilsPrivate/ +%{_qt6_descriptionsdir}/QuickControlsTestUtilsPrivate.json +%{_qt6_includedir}/QtQuickControlsTestUtils/ +%{_qt6_libdir}/libQt6QuickControlsTestUtils.a +%{_qt6_libdir}/libQt6QuickControlsTestUtils.prl +%{_qt6_metatypesdir}/qt6quickcontrolstestutilsprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quickcontrolstestutilsprivate_private.pri + +%files -n qt6-quicktestutils-devel-static +%{_qt6_cmakedir}/Qt6QuickTestUtilsPrivate/ +%{_qt6_descriptionsdir}/QuickTestUtilsPrivate.json +%{_qt6_includedir}/QtQuickTestUtils/ +%{_qt6_libdir}/libQt6QuickTestUtils.a +%{_qt6_libdir}/libQt6QuickTestUtils.prl +%{_qt6_metatypesdir}/qt6quicktestutilsprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_quicktestutilsprivate_private.pri + +%else + +%pre -n qt6-declarative-docs-qch -f qch.pre + +%files -n qt6-declarative-docs-html +%dir %{_qt6_docdir} +%{_qt6_docdir}/* +%exclude %{_qt6_docdir}/*.qch + +%files -n qt6-declarative-docs-qch +%dir %{_qt6_docdir} +%{_qt6_docdir}/*.qch + +%endif + +%changelog diff --git a/qtdeclarative-everywhere-src-6.7.2.tar.xz b/qtdeclarative-everywhere-src-6.7.2.tar.xz new file mode 100644 index 0000000..c7a7f37 --- /dev/null +++ b/qtdeclarative-everywhere-src-6.7.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c29cba1af8c42d425d8eb6e01bad24cb80f4b983d71eef566a0542dfdb9b999 +size 35629324 diff --git a/qtdeclarative-everywhere-src-6.7.3.tar.xz b/qtdeclarative-everywhere-src-6.7.3.tar.xz new file mode 100644 index 0000000..e9b513a --- /dev/null +++ b/qtdeclarative-everywhere-src-6.7.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:937b70e441abf5bc4e50d44d26610e2714a28514acf3885cd36116cd610b9875 +size 35663596 diff --git a/qtdeclarative-everywhere-src-6.8.0.tar.xz b/qtdeclarative-everywhere-src-6.8.0.tar.xz new file mode 100644 index 0000000..a1c6598 --- /dev/null +++ b/qtdeclarative-everywhere-src-6.8.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b41a36b42e919a3aa0da1f71107591504200f41707bee2ad8e8d4f99b5644c2 +size 37029068