diff --git a/.gitignore b/.gitignore index 494adea..9fd2e96 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ /qtdeclarative-everywhere-src-6.5.3.tar.xz /qtdeclarative-everywhere-src-6.6.0.tar.xz /qtdeclarative-everywhere-src-6.6.1.tar.xz +/qtdeclarative-everywhere-src-6.7.0.tar.xz diff --git a/qquickselectiontriangle-fix-crash-when-target-is-null.patch b/qquickselectiontriangle-fix-crash-when-target-is-null.patch new file mode 100644 index 0000000..f92628b --- /dev/null +++ b/qquickselectiontriangle-fix-crash-when-target-is-null.patch @@ -0,0 +1,23 @@ +From ab88fcd990523070f2c018f4599b9bfa023d3b95 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Fri, 01 Mar 2024 22:44:05 +0100 +Subject: [PATCH] QQuickSelectionRectangle: Fix crash when target is null + +Pick-to: 6.7 6.6 +Change-Id: I9eb92583f2cfe1a0a6bee54e3e3f31528c3b6993 +Reviewed-by: Richard Moe Gustavsen +--- + +diff --git a/src/quicktemplates/qquickselectionrectangle.cpp b/src/quicktemplates/qquickselectionrectangle.cpp +index f4543f0..7ef9996 100644 +--- a/src/quicktemplates/qquickselectionrectangle.cpp ++++ b/src/quicktemplates/qquickselectionrectangle.cpp +@@ -491,7 +491,7 @@ + m_tapHandler->setEnabled(enabled); + + if (m_selectionMode == QQuickSelectionRectangle::Auto) { +- if (qobject_cast(m_target->parentItem())) { ++ if (m_target && qobject_cast(m_target->parentItem())) { + // ScrollView allows flicking with touch, but not with mouse. So we do + // the same here: you can drag to select with a mouse, but not with touch. + m_effectiveSelectionMode = QQuickSelectionRectangle::Drag; diff --git a/qquicktextedit-check-qquickaccessibleattached-for-nullptr.patch b/qquicktextedit-check-qquickaccessibleattached-for-nullptr.patch new file mode 100644 index 0000000..a1944af --- /dev/null +++ b/qquicktextedit-check-qquickaccessibleattached-for-nullptr.patch @@ -0,0 +1,35 @@ +From 121fcc597d7d756737613570ac05a09911cec265 Mon Sep 17 00:00:00 2001 +From: Ulf Hermann +Date: Tue, 26 Mar 2024 12:09:23 +0100 +Subject: [PATCH] QQuickTextEdit: Check QQuickAccessibleAttached for nullptr + +If the host object is in the process of being deleted, the attached +object will be null. We cannot rule this out here, and crashes have been +reported. + +Amends commmit 12517742fcbd40b2311b94abe840532eae3d8914 + +Pick-to: 6.7 +Change-Id: I31fcab2999c8ab8c20f3a2cd58060cbbefa7de40 +--- + +diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp +index 006d235..66615d9 100644 +--- a/src/quick/items/qquicktextedit.cpp ++++ b/src/quick/items/qquicktextedit.cpp +@@ -1015,10 +1015,11 @@ + return; + + Q_Q(QQuickTextEdit); +- QQuickAccessibleAttached *accessibleAttached = qobject_cast(qmlAttachedPropertiesObject(q, true)); +- Q_ASSERT(accessibleAttached); +- accessibleAttached->setRole(effectiveAccessibleRole()); +- accessibleAttached->set_readOnly(q->isReadOnly()); ++ if (QQuickAccessibleAttached *accessibleAttached = qobject_cast( ++ qmlAttachedPropertiesObject(q, true))) { ++ accessibleAttached->setRole(effectiveAccessibleRole()); ++ accessibleAttached->set_readOnly(q->isReadOnly()); ++ } + } + + QAccessible::Role QQuickTextEditPrivate::accessibleRole() const diff --git a/qt6-qtdeclarative.spec b/qt6-qtdeclarative.spec index 50a3446..0b609c3 100644 --- a/qt6-qtdeclarative.spec +++ b/qt6-qtdeclarative.spec @@ -16,8 +16,8 @@ Summary: Qt6 - QtDeclarative component Name: qt6-%{qt_module} -Version: 6.6.1 -Release: 4%{?dist} +Version: 6.7.0 +Release: 1%{?dist} License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0 Url: http://www.qt.io @@ -35,6 +35,8 @@ Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submod Source5: qv4global_p-multilib.h ## upstream patches +Patch0: qquickselectiontriangle-fix-crash-when-target-is-null.patch +Patch1: qquicktextedit-check-qquickaccessibleattached-for-nullptr.patch ## upstreamable patches @@ -113,7 +115,8 @@ export PATH=`pwd`:$PATH %cmake_qt6 \ -DQT_BUILD_EXAMPLES:BOOL=%{?examples:ON}%{!?examples:OFF} \ - -DQT_BUILD_TESTS=%{?build_tests:ON}%{!?build_tests:OFF} + -DQT_BUILD_TESTS=%{?build_tests:ON}%{!?build_tests:OFF} \ + -DQT_INSTALL_EXAMPLES_SOURCES=%{?examples:ON}%{!?examples:OFF} # FIXME: tests/auto/qml/qmltc doesn't build sed -i 's|add_subdirectory(qmltc)||' tests/auto/qml/CMakeLists.txt @@ -170,8 +173,6 @@ for prl_file in libQt6*.prl ; do done popd -# FIXME: where does it come from? -rm -rf %{buildroot}%{_qt6_libdir}/objects-RelWithDebInfo/QmlCompilerPrivate_resources_1/.rcc/qrc_builtins.cpp.o %check %if 0%{?tests} @@ -196,12 +197,13 @@ make check -k -C tests ||: %{_qt6_libdir}/libQt6LabsSharedImage.so.6* %{_qt6_libdir}/libQt6LabsWavefrontMesh.so.6* %{_qt6_libdir}/libQt6QmlLocalStorage.so.6* +%{_qt6_libdir}/libQt6QmlNetwork.so.6* %{_qt6_libdir}/libQt6Qml.so.6* %{_qt6_libdir}/libQt6QmlCompiler.so.* %{_qt6_libdir}/libQt6QmlCore.so.6* %{_qt6_libdir}/libQt6QmlModels.so.6* %{_qt6_libdir}/libQt6QmlWorkerScript.so.6* -%{_qt6_libdir}/libQt6Quick.so.6* +%{_qt6_libdir}/libQt6Quick*.so.6* %{_qt6_libdir}/libQt6QuickControls2.so.6* %{_qt6_libdir}/libQt6QuickControls2Impl.so.6* %{_qt6_libdir}/libQt6QuickDialogs2.so.6* @@ -223,6 +225,7 @@ make check -k -C tests ||: %dir %{_qt6_libdir}/cmake/Qt6PacketProtocolPrivate %dir %{_qt6_libdir}/cmake/Qt6Qml %dir %{_qt6_libdir}/cmake/Qt6Qml/QmlPlugins +%dir %{_qt6_libdir}/cmake/Qt6QmlBuiltins %dir %{_qt6_libdir}/cmake/Qt6QmlCompiler %dir %{_qt6_libdir}/cmake/Qt6QmlCore %dir %{_qt6_libdir}/cmake/Qt6QmlDebugPrivate @@ -234,10 +237,21 @@ make check -k -C tests ||: %dir %{_qt6_libdir}/cmake/Qt6LabsSettings %dir %{_qt6_libdir}/cmake/Qt6LabsSharedImage %dir %{_qt6_libdir}/cmake/Qt6LabsWavefrontMesh +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2Basic +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2BasicStyleImpl +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2Fusion +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2FusionStyleImpl +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2Imagine +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2ImagineStyleImpl +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2Material +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2MaterialStyleImpl +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2Universal +%dir %{_qt6_libdir}/cmake/Qt6QuickControls2UniversalStyleImpl %dir %{_qt6_libdir}/cmake/Qt6QmlLSPrivate %dir %{_qt6_libdir}/cmake/Qt6QmlDomPrivate %dir %{_qt6_libdir}/cmake/Qt6QmlLocalStorage %dir %{_qt6_libdir}/cmake/Qt6QmlModels +%dir %{_qt6_libdir}/cmake/Qt6QmlNetwork %dir %{_qt6_libdir}/cmake/Qt6QmlTools %dir %{_qt6_libdir}/cmake/Qt6QmlToolingSettingsPrivate %dir %{_qt6_libdir}/cmake/Qt6QmlWorkerScript @@ -262,6 +276,7 @@ make check -k -C tests ||: %{_qt6_libexecdir}/qmlcachegen %{_qt6_libexecdir}/qmlimportscanner %{_qt6_libexecdir}/qmltyperegistrar +%{_qt6_libexecdir}/qmljsrootgen %{_qt6_headerdir}/Qt*/ %{_qt6_libdir}/libQt6LabsAnimation.so %{_qt6_libdir}/libQt6LabsFolderListModel.so @@ -271,6 +286,7 @@ make check -k -C tests ||: %{_qt6_libdir}/libQt6LabsWavefrontMesh.so %{_qt6_libdir}/libQt6QmlLocalStorage.so %{_qt6_libdir}/libQt6Qml.so +%{_qt6_libdir}/libQt6QmlNetwork.so %{_qt6_libdir}/libQt6QmlCompiler.so %{_qt6_libdir}/libQt6QmlCore.so %{_qt6_libdir}/libQt6QmlModels.so @@ -278,6 +294,7 @@ make check -k -C tests ||: %{_qt6_libdir}/libQt6Quick*.so %{_qt6_libdir}/libQt6QmlXmlListModel.so %{_qt6_libdir}/qt6/metatypes/qt6*_metatypes.json +%{_qt6_libdir}/qt6/objects-RelWithDebInfo/QmlTypeRegistrarPrivate_resources_1/.rcc/qrc_jsRootMetaTypes_init.cpp.o %{_qt6_archdatadir}/mkspecs/modules/*.pri %{_qt6_archdatadir}/mkspecs/features/*.prf %{_qt6_libdir}/cmake/Qt6BuildInternals/StandaloneTests/QtDeclarativeTestsConfig.cmake @@ -285,6 +302,7 @@ make check -k -C tests ||: %{_qt6_libdir}/cmake/Qt6Qml/*.cmake* %{_qt6_libdir}/cmake/Qt6Qml/*.cpp.in %{_qt6_libdir}/cmake/Qt6Qml/*.qrc.in +%{_qt6_libdir}/cmake/Qt6QmlBuiltins/*cmake %{_qt6_libdir}/cmake/Qt6Qml/QmlPlugins/*.cmake %{_qt6_libdir}/cmake/Qt6QmlCompiler/*.cmake %{_qt6_libdir}/cmake/Qt6QmlCore/*.cmake @@ -300,7 +318,18 @@ make check -k -C tests ||: %{_qt6_libdir}/cmake/Qt6QmlLSPrivate/*.cmake %{_qt6_libdir}/cmake/Qt6QmlDomPrivate/*.cmake %{_qt6_libdir}/cmake/Qt6QmlLocalStorage/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2Basic/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2BasicStyleImpl/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2Fusion/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2FusionStyleImpl/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2Imagine/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2ImagineStyleImpl/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2Material/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2MaterialStyleImpl/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2Universal/*.cmake +%{_qt6_libdir}/cmake/Qt6QuickControls2UniversalStyleImpl/*.cmake %{_qt6_libdir}/cmake/Qt6QmlModels/*.cmake +%{_qt6_libdir}/cmake/Qt6QmlNetwork/*.cmake %{_qt6_libdir}/cmake/Qt6QmlTools/*.cmake %{_qt6_libdir}/cmake/Qt6QmlToolingSettingsPrivate/*.cmake %{_qt6_libdir}/cmake/Qt6QmlWorkerScript/*.cmake @@ -323,6 +352,8 @@ make check -k -C tests ||: %{_qt6_libdir}/cmake/Qt6QuickWidgets/*.cmake %{_qt6_libdir}/qt6/modules/*.json %{_qt6_libdir}/pkgconfig/*.pc +# FIXME: should be in -static, but looks it's required for all modules + %{_qt6_libdir}/libQt6QmlBuiltins.a %files static %{_qt6_libdir}/libQt6LabsAnimation.prl @@ -331,12 +362,14 @@ make check -k -C tests ||: %{_qt6_libdir}/libQt6LabsSettings.prl %{_qt6_libdir}/libQt6LabsSharedImage.prl %{_qt6_libdir}/libQt6LabsWavefrontMesh.prl +%{_qt6_libdir}/libQt6QmlBuiltins.prl %{_qt6_libdir}/libQt6QmlCore.prl %{_qt6_libdir}/libQt6QmlDom.a %{_qt6_libdir}/libQt6QmlDom.prl %{_qt6_libdir}/libQt6QmlLocalStorage.prl %{_qt6_libdir}/libQt6QmlLS.a %{_qt6_libdir}/libQt6QmlLS.prl +%{_qt6_libdir}/libQt6QmlNetwork.prl %{_qt6_libdir}/libQt6Quick*.prl %{_qt6_libdir}/libQt6QmlWorkerScript.prl %{_qt6_libdir}/libQt6QmlModels.prl @@ -365,6 +398,12 @@ make check -k -C tests ||: %endif %changelog +* Thu Apr 18 2024 Jan Grulich - 6.7.0-1 +- 6.7.0 + Resolves: RHEL-27845 + Resolves: RHEL-31151 + Resolves: RHEL-32080 + * Wed Mar 27 2024 Jan Grulich - 6.6.1-4 - Add -tests subpackage with unit tests that can run in CI Resolves: RHEL-28239 diff --git a/sources b/sources index c39630e..951fb46 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (qtdeclarative-everywhere-src-6.6.1.tar.xz) = 1a819187519670338df1c308d5980aed985670ee3e79a424e56d8e300855513541f46a1b89d9f595bdab382a0072761f0fda87d78653602041a10a5bd3e7bdcd +SHA512 (qtdeclarative-everywhere-src-6.7.0.tar.xz) = b189f3fc4ae9ad3e5c26aa56696b97cb2f1894cb23110928a31e5a62fb779578b492bec2f4dda5b31958a33eb2571ec4e1085ae6864442507be3ae0da83c96ee