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:
parent
6f6dec6e46
commit
ca806c6e68
52
0001-CMake-Install-objects-files-into-ARCHDATADIR.patch
Normal file
52
0001-CMake-Install-objects-files-into-ARCHDATADIR.patch
Normal 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
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -7,3 +7,6 @@ addFilter("no-dependency-on .*")
|
|||||||
|
|
||||||
# Only libraries used at link time are guaranteed to work
|
# Only libraries used at link time are guaranteed to work
|
||||||
addFilter("shlib-fixed-dependency .*")
|
addFilter("shlib-fixed-dependency .*")
|
||||||
|
|
||||||
|
# libQt6ExampleIcons.a only contains embedded icons, there's nothing to extract
|
||||||
|
addFilter("lto-no-text-in-archive .*libQt6ExampleIcons.a")
|
||||||
|
@ -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>
|
Fri Apr 28 13:56:55 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define real_version 6.5.0
|
%define real_version 6.5.1
|
||||||
%define short_version 6.5
|
%define short_version 6.5
|
||||||
%define tar_name qtbase-everywhere-src
|
%define tar_name qtbase-everywhere-src
|
||||||
%define tar_suffix %{nil}
|
%define tar_suffix %{nil}
|
||||||
@ -30,7 +30,7 @@
|
|||||||
%global with_gles 1
|
%global with_gles 1
|
||||||
%endif
|
%endif
|
||||||
Name: qt6-base%{?pkg_suffix}
|
Name: qt6-base%{?pkg_suffix}
|
||||||
Version: 6.5.0
|
Version: 6.5.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Qt 6 core components (Core, Gui, Widgets, Network...)
|
Summary: Qt 6 core components (Core, Gui, Widgets, Network...)
|
||||||
# Legal: qtpaths is BSD-3-Clause
|
# 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
|
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
|
Source99: qt6-base-rpmlintrc
|
||||||
# Patches 0-100 are upstream patches #
|
# 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 #
|
# Patches 100-200 are openSUSE and/or non-upstream(able) patches #
|
||||||
Patch100: 0001-Tell-the-truth-about-private-API.patch
|
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
|
%if 0%{?suse_version} == 1500
|
||||||
Patch101: 0001-Require-GCC-10.patch
|
Patch102: 0001-Require-GCC-10.patch
|
||||||
%endif
|
%endif
|
||||||
##
|
##
|
||||||
BuildRequires: cmake >= 3.18.3
|
BuildRequires: cmake >= 3.18.3
|
||||||
@ -577,6 +577,15 @@ This package contains common files used for building Qt documentation.
|
|||||||
|
|
||||||
### Static libraries ###
|
### 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
|
%package -n qt6-kmssupport-devel-static
|
||||||
Summary: Qt KMSSupport module
|
Summary: Qt KMSSupport module
|
||||||
Requires: qt6-core-private-devel = %{version}
|
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
|
This is a meta package, it does not contain any file
|
||||||
EOF
|
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
|
%build
|
||||||
%define _lto_cflags %{nil}
|
%define _lto_cflags %{nil}
|
||||||
|
|
||||||
@ -1154,6 +1167,19 @@ rm -r %{buildroot}%{_qt6_mkspecsdir}/features/uikit
|
|||||||
|
|
||||||
### Static libraries ###
|
### 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
|
%files -n qt6-kmssupport-devel-static
|
||||||
%{_qt6_cmakedir}/Qt6KmsSupportPrivate/
|
%{_qt6_cmakedir}/Qt6KmsSupportPrivate/
|
||||||
%{_qt6_descriptionsdir}/KmsSupportPrivate.json
|
%{_qt6_descriptionsdir}/KmsSupportPrivate.json
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:fde1aa7b4fbe64ec1b4fc576a57f4688ad1453d2fab59cbadd948a10a6eaf5ef
|
|
||||||
size 48020636
|
|
3
qtbase-everywhere-src-6.5.1.tar.xz
Normal file
3
qtbase-everywhere-src-6.5.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:db56fa1f4303a1189fe33418d25d1924931c7aef237f89eea9de58e858eebfed
|
||||||
|
size 48287392
|
Loading…
Reference in New Issue
Block a user