Accepting request 1088916 from home:krop:Qt6:Release

Qt 6.5.1

OBS-URL: https://build.opensuse.org/request/show/1088916
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt6/qt6-base?expand=0&rev=52
This commit is contained in:
Luca Beltrame 2023-05-26 05:58:40 +00:00 committed by Git OBS Bridge
parent 6f6dec6e46
commit ca806c6e68
8 changed files with 100 additions and 171 deletions

View File

@ -0,0 +1,52 @@
From 4e517492a03b6c0b710a2d9a3df05922ac233992 Mon Sep 17 00:00:00 2001
From: Christophe Marin <christophe@krop.fr>
Date: Wed, 24 May 2023 11:23:39 +0200
Subject: [PATCH] CMake: Install objects files into 'ARCHDATADIR'
Change-Id: I917a9ef4d83f93eb5c3e47964bf1814d1b53fdab
---
cmake/QtResourceHelpers.cmake | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/cmake/QtResourceHelpers.cmake b/cmake/QtResourceHelpers.cmake
index 2df1fed50f..e4f34b5ff1 100644
--- a/cmake/QtResourceHelpers.cmake
+++ b/cmake/QtResourceHelpers.cmake
@@ -38,7 +38,7 @@ function(qt_internal_add_resource target resourceName)
if (out_targets)
qt_install(TARGETS ${out_targets}
EXPORT "${INSTALL_CMAKE_NAMESPACE}${target}Targets"
- DESTINATION "${INSTALL_LIBDIR}"
+ DESTINATION "${INSTALL_ARCHDATADIR}"
)
qt_internal_add_targets_to_additional_targets_export_file(
TARGETS ${out_targets}
@@ -47,7 +47,7 @@ function(qt_internal_add_resource target resourceName)
qt_internal_install_resource_pdb_files("${out_targets}")
qt_internal_record_rcc_object_files("${target}" "${out_targets}"
- INSTALL_DIRECTORY "${INSTALL_LIBDIR}")
+ INSTALL_DIRECTORY "${INSTALL_ARCHDATADIR}")
endif()
if (arg_OUTPUT_TARGETS)
@@ -77,7 +77,7 @@ function(qt_internal_record_rcc_object_files target resource_targets)
# It's comprised of thee following path parts:
#
# part (1) INSTALL_DIRECTORY.
- # A usual value is '${INSTALL_LIBDIR}/' for libraries
+ # A usual value is '${INSTALL_ARCHDATADIR}/' for libraries
# and '${INSTALL_QMLDIR}/foo/bar/' for qml plugin resources.
#
# part (2) the value computed by CMake's computeInstallObjectDir comprised of an
@@ -128,6 +128,6 @@ function(qt_internal_install_resource_pdb_files objlib_targets)
_qt_resource_generated_cpp_relative_path)
get_filename_component(rel_obj_file_dir "${generated_cpp_file_relative_path}" DIRECTORY)
qt_internal_install_pdb_files(${target}
- "${INSTALL_LIBDIR}/objects-$<CONFIG>/${target}/${rel_obj_file_dir}")
+ "${INSTALL_ARCHDATADIR}/objects-$<CONFIG>/${target}/${rel_obj_file_dir}")
endforeach()
endfunction()
--
2.40.1

View File

@ -1,32 +0,0 @@
From 99975ec07feb6b1a9f6be9e0d392a35e40f9550a Mon Sep 17 00:00:00 2001
From: Nicolas Fella <nicolas.fella@kdab.com>
Date: Tue, 14 Mar 2023 19:14:41 +0100
Subject: [PATCH] QApplication: Fix DEPRECATED_VERSION for setActiveWindow
It's not deprecated in 6.4, only 6.5
Pick-to: 6.5
Change-Id: I86a09b9ce5a7f4d8b1d80a6e67218dfe00f93844
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
---
src/widgets/kernel/qapplication.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/widgets/kernel/qapplication.h b/src/widgets/kernel/qapplication.h
index c4c73d4cf8..fd698fb69f 100644
--- a/src/widgets/kernel/qapplication.h
+++ b/src/widgets/kernel/qapplication.h
@@ -79,8 +79,8 @@ public:
static QWidget *activeWindow();
-#if QT_DEPRECATED_SINCE(6,4)
- QT_DEPRECATED_VERSION_X_6_4("Use QWidget::activateWindow() instead.")
+#if QT_DEPRECATED_SINCE(6, 5)
+ QT_DEPRECATED_VERSION_X_6_5("Use QWidget::activateWindow() instead.")
static void setActiveWindow(QWidget* act);
#endif
--
2.40.0

View File

@ -1,131 +0,0 @@
From 42c87e932c308c6269c4195091adae24bce90af1 Mon Sep 17 00:00:00 2001
From: Fabian Kosmale <fabian.kosmale@qt.io>
Date: Thu, 27 Apr 2023 09:40:17 +0200
Subject: [PATCH] QVariant: Fix support for metatypes created by Qt < 6.5
In Qt >= 6.1, < 6.5, a trivially constructible type would have the
NeedsDestruction flag set, but it's dtor pointer would have been null.
In Qt 6.5, the meaning of the NeedsDestruction flag was changed to be
more aligned with what the name suggests, and thus would only be set for
non-trivially destructible types. For QMetaType this was fine, but
QVariant has a check for acceptable metatypes which attempts to verify
whether a QMetaType is usable for QVariant. The check assumes the
semantics of Qt 6.5, and thus fails for metatypes created by older Qt
versions.
To fix this issue, we increment the QMetaType revision field, and only
check the metatype's destruction support if the revision is high enough.
In theory, that allows passing unsuitable metatypes from older Qt
versions to QVariant; however, such code would have been broken in prior
Qt releases already (which didn't attempt the check), and no code that
used to work in any released Qt version will break (as we simply skip a
check that was passing before).
Fixes: QTBUG-113227
Pick-to: 6.5
Change-Id: I12e02bd97d2c410ea1a36efb0ce2389f21d50a30
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
---
src/corelib/kernel/qmetatype.h | 11 ++++++--
src/corelib/kernel/qmetatype_p.h | 7 ++++-
.../corelib/kernel/qvariant/tst_qvariant.cpp | 28 +++++++++++++++++++
3 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index e70f901..a641313 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -246,7 +246,14 @@ using NonConstMetaTypeInterface = const QMetaTypeInterface;
class QMetaTypeInterface
{
public:
- ushort revision; // 0 in Qt 6.0. Can increase if new field are added
+
+ /* Revision: Can increase if new field are added, or if semantics changes
+ 0: Initial Revision
+ 1: the meaning of the NeedsDestruction flag changed
+ */
+ static inline constexpr ushort CurrentRevision = 1;
+
+ ushort revision;
ushort alignment;
uint size;
uint flags;
@@ -2461,7 +2468,7 @@ struct QMetaTypeInterfaceWrapper
using InterfaceType = std::conditional_t<IsConstMetaTypeInterface, const QMetaTypeInterface, NonConstMetaTypeInterface>;
static inline InterfaceType metaType = {
- /*.revision=*/ 0,
+ /*.revision=*/ QMetaTypeInterface::CurrentRevision,
/*.alignment=*/ alignof(T),
/*.size=*/ sizeof(T),
/*.flags=*/ QMetaTypeForType<T>::Flags,
diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h
index 3defbc7..e649394 100644
--- a/src/corelib/kernel/qmetatype_p.h
+++ b/src/corelib/kernel/qmetatype_p.h
@@ -152,7 +152,12 @@ inline bool isMoveConstructible(const QtPrivate::QMetaTypeInterface *iface) noex
inline bool isDestructible(const QtPrivate::QMetaTypeInterface *iface) noexcept
{
- return checkMetaTypeFlagOrPointer(iface, iface->dtor, QMetaType::NeedsDestruction);
+ /* For metatypes of revision 1, the NeedsDestruction was set even for trivially
+ destructible types, but their dtor pointer would be null.
+ For that reason, we need the additional check here.
+ */
+ return iface->revision < 1 ||
+ checkMetaTypeFlagOrPointer(iface, iface->dtor, QMetaType::NeedsDestruction);
}
inline void defaultConstruct(const QtPrivate::QMetaTypeInterface *iface, void *where)
diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
index 61a8e76..9dfc143 100644
--- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -331,6 +331,7 @@ private slots:
void constructFromIncompatibleMetaType_data();
void constructFromIncompatibleMetaType();
+ void constructFromQtLT65MetaType();
void copyNonDefaultConstructible();
private:
@@ -5636,6 +5637,33 @@ void tst_QVariant::constructFromIncompatibleMetaType()
QVERIFY(!QVariant(regular).convert(type));
}
+void tst_QVariant::constructFromQtLT65MetaType()
+{
+ auto qsizeIface = QtPrivate::qMetaTypeInterfaceForType<QSize>();
+
+ QtPrivate::QMetaTypeInterface qsize64Iface = {
+ /*revision*/0,
+ 8,
+ 8,
+ QMetaType::NeedsConstruction | QMetaType::NeedsDestruction,
+ 0,
+ qsizeIface->metaObjectFn,
+ "FakeQSize",
+ qsizeIface->defaultCtr,
+ qsizeIface->copyCtr,
+ qsizeIface->moveCtr,
+ /*dtor =*/ nullptr,
+ qsizeIface->equals,
+ qsizeIface->lessThan,
+ qsizeIface->debugStream,
+ qsizeIface->dataStreamOut,
+ qsizeIface->dataStreamIn,
+ /*legacyregop =*/ nullptr
+ };
+ QVariant var{ QMetaType(&qsize64Iface) };
+ QVERIFY(var.isValid());
+}
+
void tst_QVariant::copyNonDefaultConstructible()
{
NonDefaultConstructible ndc(42);
--
2.40.0

View File

@ -7,3 +7,6 @@ addFilter("no-dependency-on .*")
# Only libraries used at link time are guaranteed to work
addFilter("shlib-fixed-dependency .*")
# libQt6ExampleIcons.a only contains embedded icons, there's nothing to extract
addFilter("lto-no-text-in-archive .*libQt6ExampleIcons.a")

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Wed May 24 07:45:34 UTC 2023 - Christophe Marin <christophe@krop.fr>
- Update to 6.5.1
* https://www.qt.io/blog/qt-6.5.1-released
- Drop patches, merged upstream:
* 0001-QApplication-Fix-DEPRECATED_VERSION-for-setActiveWin.patch
* 0001-QVariant-Fix-support-for-metatypes-created-by-Qt-6.5.patch
- Add patch
* 0001-CMake-Install-objects-files-into-ARCHDATADIR.patch
-------------------------------------------------------------------
Fri Apr 28 13:56:55 UTC 2023 - Christophe Marin <christophe@krop.fr>

View File

@ -16,7 +16,7 @@
#
%define real_version 6.5.0
%define real_version 6.5.1
%define short_version 6.5
%define tar_name qtbase-everywhere-src
%define tar_suffix %{nil}
@ -30,7 +30,7 @@
%global with_gles 1
%endif
Name: qt6-base%{?pkg_suffix}
Version: 6.5.0
Version: 6.5.1
Release: 0
Summary: Qt 6 core components (Core, Gui, Widgets, Network...)
# Legal: qtpaths is BSD-3-Clause
@ -39,12 +39,12 @@ URL: https://www.qt.io
Source: https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
Source99: qt6-base-rpmlintrc
# Patches 0-100 are upstream patches #
Patch0: 0001-QApplication-Fix-DEPRECATED_VERSION-for-setActiveWin.patch
Patch1: 0001-QVariant-Fix-support-for-metatypes-created-by-Qt-6.5.patch
# Patches 100-200 are openSUSE and/or non-upstream(able) patches #
Patch100: 0001-Tell-the-truth-about-private-API.patch
# No need to pollute the library dir with object files, install them in the qt6 subfolder
Patch101: 0001-CMake-Install-objects-files-into-ARCHDATADIR.patch
%if 0%{?suse_version} == 1500
Patch101: 0001-Require-GCC-10.patch
Patch102: 0001-Require-GCC-10.patch
%endif
##
BuildRequires: cmake >= 3.18.3
@ -577,6 +577,15 @@ This package contains common files used for building Qt documentation.
### Static libraries ###
%package -n qt6-exampleicons-devel-static
Summary: Qt ExampleIcons module
# TODO
Requires: qt6-core-private-devel = %{version}
Requires: qt6-gui-private-devel = %{version}
%description -n qt6-exampleicons-devel-static
Qt icon library for examples. This private library can be used by Qt examples.
%package -n qt6-kmssupport-devel-static
Summary: Qt KMSSupport module
Requires: qt6-core-private-devel = %{version}
@ -728,6 +737,10 @@ cat >> meta_package << EOF
This is a meta package, it does not contain any file
EOF
# Work around an issue with zstd CMake files (boo#1211566)
# TODO: Remove when the issue is fixed
sed -i '/zstd CONFIG/d' cmake/FindWrapZSTD.cmake
%build
%define _lto_cflags %{nil}
@ -1154,6 +1167,19 @@ rm -r %{buildroot}%{_qt6_mkspecsdir}/features/uikit
### Static libraries ###
%files -n qt6-exampleicons-devel-static
%doc src/assets/icons/README
%{_qt6_cmakedir}/Qt6ExampleIconsPrivate/
%{_qt6_descriptionsdir}/ExampleIconsPrivate.json
%{_qt6_includedir}/QtExampleIcons/
%{_qt6_libdir}/libQt6ExampleIcons.a
%{_qt6_libdir}/libQt6ExampleIcons.prl
# There's no mistake, this folder needs to be installed
# These are CMake objects files which are not part of any library
%dir %{_qt6_archdatadir}/objects-RelWithDebInfo
%{_qt6_archdatadir}/objects-RelWithDebInfo/ExampleIconsPrivate_resources_1/
%{_qt6_metatypesdir}/qt6exampleiconsprivate_*_metatypes.json
%files -n qt6-kmssupport-devel-static
%{_qt6_cmakedir}/Qt6KmsSupportPrivate/
%{_qt6_descriptionsdir}/KmsSupportPrivate.json

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fde1aa7b4fbe64ec1b4fc576a57f4688ad1453d2fab59cbadd948a10a6eaf5ef
size 48020636

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:db56fa1f4303a1189fe33418d25d1924931c7aef237f89eea9de58e858eebfed
size 48287392