From dc3a6f3ef0101e7f661e64d837992d769a96ff169c60b38ca1cf8c2a7da1737a Mon Sep 17 00:00:00 2001 From: Christophe Marin Date: Thu, 23 May 2024 08:31:42 +0000 Subject: [PATCH] Accepting request 1175612 from home:krop:Qt6:Release Qt 6.7.1 OBS-URL: https://build.opensuse.org/request/show/1175612 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt6/qt6-multimedia?expand=0&rev=44 --- ...-wrt-QAudioSink-Source-stateChanged-.patch | 267 ------------------ qt6-multimedia.changes | 8 + qt6-multimedia.spec | 28 +- qtmultimedia-everywhere-src-6.7.0.tar.xz | 3 - qtmultimedia-everywhere-src-6.7.1.tar.xz | 3 + 5 files changed, 34 insertions(+), 275 deletions(-) delete mode 100644 0001-Fix-ABI-breakage-wrt-QAudioSink-Source-stateChanged-.patch delete mode 100644 qtmultimedia-everywhere-src-6.7.0.tar.xz create mode 100644 qtmultimedia-everywhere-src-6.7.1.tar.xz diff --git a/0001-Fix-ABI-breakage-wrt-QAudioSink-Source-stateChanged-.patch b/0001-Fix-ABI-breakage-wrt-QAudioSink-Source-stateChanged-.patch deleted file mode 100644 index ed14916..0000000 --- a/0001-Fix-ABI-breakage-wrt-QAudioSink-Source-stateChanged-.patch +++ /dev/null @@ -1,267 +0,0 @@ -From 7fcea568c9c64f3bcebda21f0df02aa0107dfd0c Mon Sep 17 00:00:00 2001 -From: Volker Hilsheimer -Date: Thu, 4 Apr 2024 15:55:10 +0200 -Subject: [PATCH] Fix ABI breakage wrt QAudioSink/Source::stateChanged signals -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Amends edaec2bf714c98d65f12c8ed9a2ffbd1603635a7, which -removed the QAudioSink/Source::stateChanged(QAudio::State) -symbols from the API, thus breaking binary compatibility to -Qt 6.6. Since moc-generated code compares pointer-to-member- -functions, we cannot bring that symbol back and still have -such connections work. - -The only reasonable way to fix this is to reverse the -namespace aliasing: QAudio is the real namespace, QtAudio -becomes an alias. All symbols are then exported with the -QAudio type in their signature, even if declared with -QtAudio types as parameters, so we don't need any removed_api -tricks to bring the old symbols back. - -We just need to trick qdoc into seeing the namespace as -QtAudio, which is trivial and has no ABI implications. The -previous caveat that string-based connections need to use -QAudio doesn't change with this. - -[ChangeLog][Binary Compatibility Note] Qt 6.7.0 broke binary -compatibility by renaming the QAudio namespace to QtAudio. -Qt 6.7.1 restores compatibility with previous Qt 6 versions -again by making QtAudio an alias for the QAudio namespace, -but breaks BC with 6.7.0. Code previously built against 6.7.0 -needs to be recompiled. - -Fixes: QTBUG-123997 -Change-Id: I456db61ff0bd1d97af7ce2d2a7968999d891a84d -Reviewed-by: Axel Spoerl -Reviewed-by: Jøger Hansegård -(cherry picked from commit 6f590d44bb186178902a5fc3dc4a12cee8e88eaa) -Reviewed-by: Qt Cherry-pick Bot ---- - src/multimedia/audio/qaudio.h | 8 +++- - src/multimedia/audio/qaudiosink.cpp | 4 +- - src/multimedia/audio/qaudiosink.h | 15 +++----- - src/multimedia/audio/qaudiosource.cpp | 4 +- - src/multimedia/audio/qaudiosource.h | 15 +++----- - src/multimedia/audio/qtaudio.cpp | 4 ++ - src/multimedia/compat/removed_api.cpp | 55 --------------------------- - 7 files changed, 26 insertions(+), 79 deletions(-) - -diff --git a/src/multimedia/audio/qaudio.h b/src/multimedia/audio/qaudio.h -index b569b3a15..5ae994b9f 100644 ---- a/src/multimedia/audio/qaudio.h -+++ b/src/multimedia/audio/qaudio.h -@@ -19,7 +19,11 @@ QT_BEGIN_NAMESPACE - // Class forward declaration required for QDoc bug - class QString; - -+#if defined(Q_QDOC) - namespace QtAudio -+#else -+namespace QAudio -+#endif - { - enum Error { NoError, OpenError, IOError, UnderrunError, FatalError }; - enum State { ActiveState, SuspendedState, StoppedState, IdleState }; -@@ -34,8 +38,8 @@ namespace QtAudio - Q_MULTIMEDIA_EXPORT float convertVolume(float volume, VolumeScale from, VolumeScale to); - } - --#if !defined(Q_QDOC) && !QT_MULTIMEDIA_REMOVED_SINCE(6, 7) --namespace QAudio = QtAudio; -+#if !defined(Q_QDOC) -+namespace QtAudio = QAudio; - #endif - - #ifndef QT_NO_DEBUG_STREAM -diff --git a/src/multimedia/audio/qaudiosink.cpp b/src/multimedia/audio/qaudiosink.cpp -index aac96c342..12263d32a 100644 ---- a/src/multimedia/audio/qaudiosink.cpp -+++ b/src/multimedia/audio/qaudiosink.cpp -@@ -279,7 +279,7 @@ qint64 QAudioSink::elapsedUSecs() const - /*! - Returns the error state. - */ --QtAudio::Error QAudioSink::error(QT6_IMPL_NEW_OVERLOAD) const -+QtAudio::Error QAudioSink::error() const - { - return d ? d->error() : QAudio::OpenError; - } -@@ -287,7 +287,7 @@ QtAudio::Error QAudioSink::error(QT6_IMPL_NEW_OVERLOAD) const - /*! - Returns the state of audio processing. - */ --QtAudio::State QAudioSink::state(QT6_IMPL_NEW_OVERLOAD) const -+QtAudio::State QAudioSink::state() const - { - return d ? d->state() : QAudio::StoppedState; - } -diff --git a/src/multimedia/audio/qaudiosink.h b/src/multimedia/audio/qaudiosink.h -index 7a4eb732a..e071e6fbc 100644 ---- a/src/multimedia/audio/qaudiosink.h -+++ b/src/multimedia/audio/qaudiosink.h -@@ -49,21 +49,18 @@ public: - qint64 processedUSecs() const; - qint64 elapsedUSecs() const; - --#if QT_MULTIMEDIA_REMOVED_SINCE(6, 7) -- QAudio::Error error() const; -- QAudio::State state() const; --#endif -- QtAudio::Error error(QT6_DECL_NEW_OVERLOAD) const; -- QtAudio::State state(QT6_DECL_NEW_OVERLOAD) const; -+ QtAudio::Error error() const; -+ QtAudio::State state() const; - - void setVolume(qreal); - qreal volume() const; - - Q_SIGNALS: --#ifdef Q_MOC_RUN -- void stateChanged(QAudio::State state); --#else -+#if defined(Q_QDOC) - void stateChanged(QtAudio::State state); -+#else -+ // use QAudio here to keep string-based connections working -+ void stateChanged(QAudio::State state); - #endif - - private: -diff --git a/src/multimedia/audio/qaudiosource.cpp b/src/multimedia/audio/qaudiosource.cpp -index 5e59a4798..1ed5e82bc 100644 ---- a/src/multimedia/audio/qaudiosource.cpp -+++ b/src/multimedia/audio/qaudiosource.cpp -@@ -340,7 +340,7 @@ qint64 QAudioSource::elapsedUSecs() const - Returns the error state. - */ - --QtAudio::Error QAudioSource::error(QT6_IMPL_NEW_OVERLOAD) const -+QtAudio::Error QAudioSource::error() const - { - return d ? d->error() : QAudio::OpenError; - } -@@ -349,7 +349,7 @@ QtAudio::Error QAudioSource::error(QT6_IMPL_NEW_OVERLOAD) const - Returns the state of audio processing. - */ - --QtAudio::State QAudioSource::state(QT6_IMPL_NEW_OVERLOAD) const -+QtAudio::State QAudioSource::state() const - { - return d ? d->state() : QAudio::StoppedState; - } -diff --git a/src/multimedia/audio/qaudiosource.h b/src/multimedia/audio/qaudiosource.h -index 71c5446ee..f0ad0ceb5 100644 ---- a/src/multimedia/audio/qaudiosource.h -+++ b/src/multimedia/audio/qaudiosource.h -@@ -50,18 +50,15 @@ public: - qint64 processedUSecs() const; - qint64 elapsedUSecs() const; - --#if QT_MULTIMEDIA_REMOVED_SINCE(6, 7) -- QAudio::Error error() const; -- QAudio::State state() const; --#endif -- QtAudio::Error error(QT6_DECL_NEW_OVERLOAD) const; -- QtAudio::State state(QT6_DECL_NEW_OVERLOAD) const; -+ QtAudio::Error error() const; -+ QtAudio::State state() const; - - Q_SIGNALS: --#ifdef Q_MOC_RUN -- void stateChanged(QAudio::State state); --#else -+#if defined(Q_QDOC) - void stateChanged(QtAudio::State state); -+#else -+ // use QAudio here to keep string-based connections working -+ void stateChanged(QAudio::State state); - #endif - - private: -diff --git a/src/multimedia/audio/qtaudio.cpp b/src/multimedia/audio/qtaudio.cpp -index 999248bb6..fb14e5093 100644 ---- a/src/multimedia/audio/qtaudio.cpp -+++ b/src/multimedia/audio/qtaudio.cpp -@@ -62,7 +62,11 @@ QT_BEGIN_NAMESPACE - \sa QtAudio::convertVolume() - */ - -+#if defined(Q_QDOC) - namespace QtAudio -+#else -+namespace QAudio -+#endif - { - - /*! -diff --git a/src/multimedia/compat/removed_api.cpp b/src/multimedia/compat/removed_api.cpp -index 15e92c414..567024c8e 100644 ---- a/src/multimedia/compat/removed_api.cpp -+++ b/src/multimedia/compat/removed_api.cpp -@@ -9,61 +9,6 @@ QT_USE_NAMESPACE - - #if QT_MULTIMEDIA_REMOVED_SINCE(6, 7) - --// implement removed functions from qaudio.h --#include --#include -- --namespace QAudio --{ -- enum VolumeScale {}; -- enum Error {}; -- enum State {}; -- Q_MULTIMEDIA_EXPORT float convertVolume(float volume, QAudio::VolumeScale from, QAudio::VolumeScale to) -- { -- return QtAudio::convertVolume(volume, static_cast(from), -- static_cast(to)); -- } --} -- --#ifndef QT_NO_DEBUG_STREAM --Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::Error error) --{ -- return dbg << static_cast(error); --} --Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::State state) --{ -- return dbg << static_cast(state); --} --Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::VolumeScale role) --{ -- return dbg << static_cast(role); --} --#endif -- --#include -- --QAudio::Error QAudioSink::error() const --{ -- return static_cast(error(QT6_CALL_NEW_OVERLOAD)); --} -- --QAudio::State QAudioSink::state() const --{ -- return static_cast(state(QT6_CALL_NEW_OVERLOAD)); --} -- --#include -- --QAudio::Error QAudioSource::error() const --{ -- return static_cast(error(QT6_CALL_NEW_OVERLOAD)); --} -- --QAudio::State QAudioSource::state() const --{ -- return static_cast(state(QT6_CALL_NEW_OVERLOAD)); --} -- - // #include "qotherheader.h" - // // implement removed functions from qotherheader.h - // order sections alphabetically --- -2.44.0 - diff --git a/qt6-multimedia.changes b/qt6-multimedia.changes index cea4020..c26c585 100644 --- a/qt6-multimedia.changes +++ b/qt6-multimedia.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Tue May 21 08:31:36 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-ABI-breakage-wrt-QAudioSink-Source-stateChanged-.patch + ------------------------------------------------------------------- Sat Apr 6 13:14:31 UTC 2024 - Christophe Marin diff --git a/qt6-multimedia.spec b/qt6-multimedia.spec index e198834..fdd4c5b 100644 --- a/qt6-multimedia.spec +++ b/qt6-multimedia.spec @@ -16,7 +16,7 @@ # -%define real_version 6.7.0 +%define real_version 6.7.1 %define short_version 6.7 %define short_name qtmultimedia %define tar_name qtmultimedia-everywhere-src @@ -28,15 +28,13 @@ %endif # Name: qt6-multimedia%{?pkg_suffix} -Version: 6.7.0 +Version: 6.7.1 Release: 0 Summary: Qt 6 Multimedia libraries License: GPL-3.0-or-later 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 +Source0: https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz Source1: qt6-multimedia-rpmlintrc -# PATCH-FIX-UPSTREAM -Patch0: 0001-Fix-ABI-breakage-wrt-QAudioSink-Source-stateChanged-.patch BuildRequires: fdupes BuildRequires: pkgconfig BuildRequires: qt6-core-private-devel @@ -211,6 +209,17 @@ Summary: Qt6 BundledResonanceAudio static library The Qt6 BundledResonanceAudio static library. This library does not have any ABI or API guarantees. +%package -n qt6-gstreamermediaplugin-devel-static +Summary: Qt6 QGstreamerMediaPlugin static library +Requires: qt6-multimedia-private-devel = %{version} +Requires: pkgconfig(gstreamer-1.0) +Requires: pkgconfig(gstreamer-app-1.0) +%requires_eq qt6-core-private-devel + +%description -n qt6-gstreamermediaplugin-devel-static +The Qt6 QGstreamerMediaPlugin static library. +This library does not have any ABI or API guarantees. + %{qt6_examples_package} %endif @@ -349,6 +358,15 @@ rm %{buildroot}%{_qt6_cmakedir}/*/*Plugin{Config,Targets}*.cmake %{_qt6_cmakedir}/Qt6BundledResonanceAudio/ %{_qt6_libdir}/libQt6BundledResonanceAudio.a +%files -n qt6-gstreamermediaplugin-devel-static +%{_qt6_cmakedir}/Qt6QGstreamerMediaPluginPrivate/ +%{_qt6_descriptionsdir}/QGstreamerMediaPluginPrivate.json +%{_qt6_includedir}/QtQGstreamerMediaPlugin/ +%{_qt6_libdir}/libQt6QGstreamerMediaPlugin.a +%{_qt6_libdir}/libQt6QGstreamerMediaPlugin.prl +%{_qt6_metatypesdir}/qt6qgstreamermediapluginprivate_*_metatypes.json +%{_qt6_mkspecsdir}/modules/qt_lib_qgstreamermediaplugin_private.pri + %endif %changelog diff --git a/qtmultimedia-everywhere-src-6.7.0.tar.xz b/qtmultimedia-everywhere-src-6.7.0.tar.xz deleted file mode 100644 index eb0acad..0000000 --- a/qtmultimedia-everywhere-src-6.7.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f394bae49e3d4ee6a3b0c9e1e5e31bb870cc04a4b44f4cda3615baf7bd078c70 -size 8315312 diff --git a/qtmultimedia-everywhere-src-6.7.1.tar.xz b/qtmultimedia-everywhere-src-6.7.1.tar.xz new file mode 100644 index 0000000..02e1b77 --- /dev/null +++ b/qtmultimedia-everywhere-src-6.7.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:656d1543727f5bf1bd39fe2548ac454860109dc8555df77d7940f21e3d65cd3e +size 8362120