From 36cf985e0f55690ff8e3e6a05cda3f8190aef37e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jul 2019 17:49:37 +0000 Subject: [PATCH 01/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 4265608..a1f070d 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 4%{?dist} +Release: 5%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -288,6 +288,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Wed Jul 24 2019 Fedora Release Engineering - 2.9.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Mon Apr 22 2019 Rex Dieter - 2.9.0-4 - rebuild From 0222e1daf6243d0cc5cab723511e9acc3754cc75 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 11:29:48 +0000 Subject: [PATCH 02/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index a1f070d..0b2168f 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 5%{?dist} +Release: 6%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -288,6 +288,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 2.9.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Wed Jul 24 2019 Fedora Release Engineering - 2.9.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 3a29be43d8a9edd376985093d4b02687c0ae9540 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Tue, 23 Jun 2020 15:48:59 -0500 Subject: [PATCH 03/38] drop loudmouth support f33+ --- amarok.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 0b2168f..943009a 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 6%{?dist} +Release: 7%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -64,7 +64,10 @@ BuildRequires: kf5-rpm-macros Requires: kf5-filesystem BuildRequires: liblastfm-devel >= 1.0.3 BuildRequires: pkgconfig(libmygpo-qt) >= 1.0.7 +# loudmouth orphaned/unsupported f33+ +%if 0%{?fedora} < 33 BuildRequires: pkgconfig(loudmouth-1.0) +%endif BuildRequires: pkgconfig(libmtp) >= 0.3.0 BuildRequires: pkgconfig(libgpod-1.0) >= 0.7.0 Requires: ifuse @@ -288,6 +291,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Tue Jun 23 2020 Rex Dieter - 2.9.0-7 +- drop loudmouth support f33+ + * Tue Jan 28 2020 Fedora Release Engineering - 2.9.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From 766f9885fc93d8551392f859882c3a1857a6e74b Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 24 Jun 2020 11:19:24 -0500 Subject: [PATCH 04/38] loudmouth feature macro --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 943009a..c474029 100644 --- a/amarok.spec +++ b/amarok.spec @@ -66,6 +66,7 @@ BuildRequires: liblastfm-devel >= 1.0.3 BuildRequires: pkgconfig(libmygpo-qt) >= 1.0.7 # loudmouth orphaned/unsupported f33+ %if 0%{?fedora} < 33 +%global loudmouth BuildRequires: pkgconfig(loudmouth-1.0) %endif BuildRequires: pkgconfig(libmtp) >= 0.3.0 @@ -200,8 +201,10 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %{_kde4_bindir}/amarok %{_kde4_bindir}/amarokpkg %{_kde4_bindir}/amarok_afttagger -%if 0%{?fedora} +%if 0%{?loudmouth} %{_kde4_bindir}/amarokmp3tunesharmonydaemon +%endif +%if 0%{?fedora} %{_kf5_datadir}/solid/actions/amarok-play-audiocd.desktop %{_kf5_datadir}/kservices5/ServiceMenus/amarok_append.desktop %endif From 256663c125ad7dbce670f60084aaac8aceb2860b Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 24 Jun 2020 11:19:58 -0500 Subject: [PATCH 05/38] actually set macro to a value --- amarok.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index c474029..62ca3d1 100644 --- a/amarok.spec +++ b/amarok.spec @@ -66,7 +66,7 @@ BuildRequires: liblastfm-devel >= 1.0.3 BuildRequires: pkgconfig(libmygpo-qt) >= 1.0.7 # loudmouth orphaned/unsupported f33+ %if 0%{?fedora} < 33 -%global loudmouth +%global loudmouth 1 BuildRequires: pkgconfig(loudmouth-1.0) %endif BuildRequires: pkgconfig(libmtp) >= 0.3.0 From 7be83962f68bee4f1f5f1affa8739a60df3fd2a3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 11:59:13 +0000 Subject: [PATCH 06/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 62ca3d1..aaac07a 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 7%{?dist} +Release: 8%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -294,6 +294,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 2.9.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Tue Jun 23 2020 Rex Dieter - 2.9.0-7 - drop loudmouth support f33+ From 093efd244c333082d31b10ba2a6a292aaf58651c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 31 Jul 2020 23:56:54 +0000 Subject: [PATCH 07/38] - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index aaac07a..3006f0e 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 8%{?dist} +Release: 9%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -294,6 +294,10 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Fri Jul 31 2020 Fedora Release Engineering - 2.9.0-9 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Mon Jul 27 2020 Fedora Release Engineering - 2.9.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 3889fb5610a798abed4ac75676d68302337a29d2 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 16 Dec 2020 23:26:01 +0000 Subject: [PATCH 08/38] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- amarok.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/amarok.spec b/amarok.spec index 3006f0e..8b21c06 100644 --- a/amarok.spec +++ b/amarok.spec @@ -87,6 +87,7 @@ Requires: kio-upnp-ms %endif %endif BuildRequires: qtscriptbindings +BuildRequires: make Requires: qtscriptbindings%{?_isa} Requires: %{name}-utils = %{version}-%{release} Requires: kde-runtime From 30eb67f8c33899dc4fa18fe3615c8a9e310936f8 Mon Sep 17 00:00:00 2001 From: Honza Horak Date: Mon, 25 Jan 2021 17:08:44 +0100 Subject: [PATCH 09/38] Use correct name for the mariadb package --- amarok.spec | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/amarok.spec b/amarok.spec index 8b21c06..4d307b9 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 9%{?dist} +Release: 10%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -41,12 +41,8 @@ BuildRequires: kdelibs4-webkit-devel %if 0%{?fedora} > 21 BuildRequires: libappstream-glib %endif -%if 0%{?fedora} > 27 BuildRequires: mariadb-connector-c-devel -%else -BuildRequires: mysql-devel -%endif -BuildRequires: mysql-embedded-devel +BuildRequires: mariadb-embedded-devel BuildRequires: libgcrypt-devel BuildRequires: perl-generators BuildRequires: pkgconfig(gdk-pixbuf-2.0) @@ -295,6 +291,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Mon Jan 25 2021 Honza Horak - 2.9.0-10 +- Use correct name for the mariadb package + * Fri Jul 31 2020 Fedora Release Engineering - 2.9.0-9 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 7421d7594cee7e36537aa304e5ee7663efcf2fd5 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 00:02:16 +0000 Subject: [PATCH 10/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 4d307b9..1d4c39c 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 10%{?dist} +Release: 11%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -291,6 +291,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 2.9.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Jan 25 2021 Honza Horak - 2.9.0-10 - Use correct name for the mariadb package From 06441de93a50a17fdd6641123b64c9781fa59694 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 12:34:31 +0000 Subject: [PATCH 11/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 46dd0d741ff9279c3e315b707932bb56bab91b44 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 17:29:55 +0000 Subject: [PATCH 12/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 1d4c39c..a24986b 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 11%{?dist} +Release: 12%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -291,6 +291,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 2.9.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Tue Jan 26 2021 Fedora Release Engineering - 2.9.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From b75d718ab05a1bc984d66c24d23e4c227b64b76a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 21:11:04 +0000 Subject: [PATCH 13/38] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index a24986b..06dad24 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 12%{?dist} +Release: 13%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -291,6 +291,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 2.9.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Jul 21 2021 Fedora Release Engineering - 2.9.0-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From 7d08cdc39dc1a42fd6972378ee09edbf1bb416b3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 20:42:54 +0000 Subject: [PATCH 14/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 06dad24..caeada3 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 13%{?dist} +Release: 14%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -291,6 +291,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 2.9.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Wed Jan 19 2022 Fedora Release Engineering - 2.9.0-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From b50e43e564817f27f821640ad1d899597a828744 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 21:39:40 +0000 Subject: [PATCH 15/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index caeada3..c6855f0 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 14%{?dist} +Release: 15%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -291,6 +291,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Wed Jan 18 2023 Fedora Release Engineering - 2.9.0-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Wed Jul 20 2022 Fedora Release Engineering - 2.9.0-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From f183c1e9b61635b2b11e0851754a51bdf8c37f36 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 13:11:45 +0000 Subject: [PATCH 16/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index c6855f0..cf8f432 100644 --- a/amarok.spec +++ b/amarok.spec @@ -4,7 +4,7 @@ Name: amarok Summary: Media player Version: 2.9.0 -Release: 15%{?dist} +Release: 16%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPLv2 or GPLv3 @@ -291,6 +291,9 @@ grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.d %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 2.9.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Wed Jan 18 2023 Fedora Release Engineering - 2.9.0-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From f9957dab1c737e2dc2131fe4b0850cda42a1d6a4 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 2 Jan 2024 16:29:50 -0500 Subject: [PATCH 17/38] Update to KF5-based git snapshot Based on changes from @marcdeop in the KDE SIG COPR, updated to a more recent snapshot, and fixed for flatpak builds. EPEL 9 would need at least taglib-extras before this could be added there. --- .gitignore | 1 + amarok-2.8.0-no_kdewebkit.patch | 117 --- amarok-2.8.0-onlinedoc.patch | 91 -- amarok-2.8.90-mysql_found.patch | 12 - amarok.spec | 395 ++++---- fix-mygpo-qt5-compilation.patch | 125 +++ ...-settings-functionalities-on-Wayland.patch | 285 ++++++ refresh-deprecated-codepaths.patch | 854 ++++++++++++++++++ revert.patch | 31 + sources | 2 +- 10 files changed, 1478 insertions(+), 435 deletions(-) delete mode 100644 amarok-2.8.0-no_kdewebkit.patch delete mode 100644 amarok-2.8.0-onlinedoc.patch delete mode 100644 amarok-2.8.90-mysql_found.patch create mode 100644 fix-mygpo-qt5-compilation.patch create mode 100644 port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch create mode 100644 refresh-deprecated-codepaths.patch create mode 100644 revert.patch diff --git a/.gitignore b/.gitignore index 039c87c..39948e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /amarok-2.8.0.tar.bz2 /amarok-2.8.90.tar.xz /amarok-2.9.0.tar.xz +/amarok-387c30de482522774c28dc02c2636cd41c8334e9.tar.bz2 diff --git a/amarok-2.8.0-no_kdewebkit.patch b/amarok-2.8.0-no_kdewebkit.patch deleted file mode 100644 index 9f3b871..0000000 --- a/amarok-2.8.0-no_kdewebkit.patch +++ /dev/null @@ -1,117 +0,0 @@ -diff -up amarok-2.8.0/src/context/applets/CMakeLists.txt.webkit amarok-2.8.0/src/context/applets/CMakeLists.txt -diff -up amarok-2.8.0/src/context/applets/info/CMakeLists.txt.webkit amarok-2.8.0/src/context/applets/info/CMakeLists.txt ---- amarok-2.8.0/src/context/applets/info/CMakeLists.txt.webkit 2013-08-14 15:22:52.000000000 -0500 -+++ amarok-2.8.0/src/context/applets/info/CMakeLists.txt 2014-06-18 13:35:31.496217418 -0500 -@@ -16,7 +16,6 @@ target_link_libraries(amarok_context_app - amarokcore - amaroklib - ${KDE4_PLASMA_LIBS} -- ${KDE4_KDEWEBKIT_LIBS} - ${QT_QTWEBKIT_LIBRARY} - ) - -diff -up amarok-2.8.0/src/context/applets/info/InfoApplet.cpp.webkit amarok-2.8.0/src/context/applets/info/InfoApplet.cpp ---- amarok-2.8.0/src/context/applets/info/InfoApplet.cpp.webkit 2013-08-14 15:22:52.000000000 -0500 -+++ amarok-2.8.0/src/context/applets/info/InfoApplet.cpp 2014-06-18 14:10:15.337284616 -0500 -@@ -26,7 +26,7 @@ - #include "PaletteHandler.h" - #include "playlist/PlaylistController.h" - --#include -+#include - #include - - #include -@@ -63,7 +63,7 @@ void InfoApplet::init() - - dataEngine( "amarok-info" )->connectSource( "info", this ); - -- m_webView = new KGraphicsWebView( this ); -+ m_webView = new QGraphicsWebView( this ); - - QPalette p = m_webView->palette(); - p.setColor( QPalette::Dark, QColor( 255, 255, 255, 0) ); -diff -up amarok-2.8.0/src/context/applets/info/InfoApplet.h.webkit amarok-2.8.0/src/context/applets/info/InfoApplet.h ---- amarok-2.8.0/src/context/applets/info/InfoApplet.h.webkit 2013-08-14 15:22:52.000000000 -0500 -+++ amarok-2.8.0/src/context/applets/info/InfoApplet.h 2014-06-18 13:35:31.496217418 -0500 -@@ -27,7 +27,7 @@ - - #include - --class KGraphicsWebView; -+class QGraphicsWebView; - - class InfoApplet : public Context::Applet - { -@@ -47,7 +47,7 @@ private slots: - void linkClicked( const QUrl & url ); - - private: -- KGraphicsWebView *m_webView; -+ QGraphicsWebView *m_webView; - bool m_initialized; - - static QString s_defaultHtml; -diff -up amarok-2.8.0/src/context/applets/wikipedia/CMakeLists.txt.webkit amarok-2.8.0/src/context/applets/wikipedia/CMakeLists.txt ---- amarok-2.8.0/src/context/applets/wikipedia/CMakeLists.txt.webkit 2014-06-18 14:07:24.355163151 -0500 -+++ amarok-2.8.0/src/context/applets/wikipedia/CMakeLists.txt 2014-06-18 14:07:34.347695400 -0500 -@@ -18,7 +18,6 @@ target_link_libraries(amarok_context_app - amaroklib - ${KDE4_PLASMA_LIBS} - ${KDE4_KIO_LIBS} -- ${KDE4_KDEWEBKIT_LIBS} - ${QT_QTWEBKIT_LIBRARY} - ) - -diff -up amarok-2.8.0/src/context/applets/wikipedia/WikipediaApplet_p.h.webkit amarok-2.8.0/src/context/applets/wikipedia/WikipediaApplet_p.h ---- amarok-2.8.0/src/context/applets/wikipedia/WikipediaApplet_p.h.webkit 2013-08-14 15:22:52.000000000 -0500 -+++ amarok-2.8.0/src/context/applets/wikipedia/WikipediaApplet_p.h 2014-06-18 13:56:15.446760436 -0500 -@@ -23,7 +23,7 @@ - #include "ui_wikipediaGeneralSettings.h" - #include "ui_wikipediaLanguageSettings.h" - --#include -+#include - #include - #include - -@@ -180,13 +180,13 @@ protected: - } - }; - --class WikipediaWebView : public KGraphicsWebView -+class WikipediaWebView : public QGraphicsWebView - { - Q_OBJECT - - public: - WikipediaWebView( QGraphicsItem *parent = 0 ) -- : KGraphicsWebView( parent ) -+ : QGraphicsWebView( parent ) - { - m_lineEdit = new WikipediaSearchLineEdit( this ); - m_lineEdit->setContentsMargins( 0, 0, 0, 0 ); -@@ -242,7 +242,7 @@ protected: - } - return false; - } -- return KGraphicsWebView::eventFilter( obj, event ); -+ return QGraphicsWebView::eventFilter( obj, event ); - } - - void keyPressEvent( QKeyEvent *event ) -@@ -258,12 +258,12 @@ protected: - event->accept(); - } - else -- KGraphicsWebView::keyPressEvent( event ); -+ QGraphicsWebView::keyPressEvent( event ); - } - - void resizeEvent( QGraphicsSceneResizeEvent *event ) - { -- KGraphicsWebView::resizeEvent( event ); -+ QGraphicsWebView::resizeEvent( event ); - if( m_topBorder ) - { - m_topBorder->resize( event->newSize().width(), m_topBorder->size().height() ); diff --git a/amarok-2.8.0-onlinedoc.patch b/amarok-2.8.0-onlinedoc.patch deleted file mode 100644 index a4d1df8..0000000 --- a/amarok-2.8.0-onlinedoc.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff -up amarok-2.8.0/src/ActionClasses.cpp.onlinedoc amarok-2.8.0/src/ActionClasses.cpp ---- amarok-2.8.0/src/ActionClasses.cpp.onlinedoc 2013-08-14 15:22:51.000000000 -0500 -+++ amarok-2.8.0/src/ActionClasses.cpp 2013-08-15 10:40:40.656472890 -0500 -@@ -33,10 +33,12 @@ - #include "widgets/Osd.h" - #include "KNotificationBackend.h" - -+#include - #include - #include - #include - #include -+#include - - extern OcsData ocsData; - -@@ -62,6 +64,7 @@ namespace Amarok - using namespace Amarok; - - KHelpMenu *Menu::s_helpMenu = 0; -+OnlineHelpHandler *Menu::s_onlineHelpHandler = 0; - - static void - safePlug( KActionCollection *ac, const char *name, QWidget *w ) -@@ -151,6 +154,20 @@ Menu::helpMenu( QWidget *parent ) //STAT - - KMenu* menu = s_helpMenu->menu(); - -+ // If amarok-doc is not installed, bring up the online version instead. -+ if ( !QFile::exists( "/usr/share/doc/HTML/en/amarok/index.docbook" ) ) { -+ QAction *contentsAction = s_helpMenu->action( KHelpMenu::menuHelpContents ); -+ // disconnect the default slot which fires up KHelpCenter -+ disconnect( contentsAction, SIGNAL(triggered(bool)), s_helpMenu, SLOT(appHelpActivated()) ); -+ if ( s_onlineHelpHandler == 0 ) -+ s_onlineHelpHandler = new OnlineHelpHandler( parent ); -+ else -+ // ensure no duplicate connection -+ disconnect( contentsAction, SIGNAL(triggered(bool)), s_onlineHelpHandler, SLOT(onlineHelpActivated()) ); -+ // connect our custom slot which fires up a browser on UserBase instead -+ connect( contentsAction, SIGNAL(triggered(bool)), s_onlineHelpHandler, SLOT(onlineHelpActivated()) ); -+ } -+ - // "What's This" isn't currently defined for anything in Amarok, so let's remove it - s_helpMenu->action( KHelpMenu::menuWhatsThis )->setVisible( false ); - -@@ -160,6 +177,17 @@ Menu::helpMenu( QWidget *parent ) //STAT - return menu; - } - -+OnlineHelpHandler::OnlineHelpHandler( QObject* parent ) -+ : QObject( parent ) -+{ -+} -+ -+void -+OnlineHelpHandler::onlineHelpActivated() -+{ -+ KToolInvocation::invokeBrowser( "http://userbase.kde.org/Amarok/Manual" ); -+} -+ - ////////////////////////////////////////////////////////////////////////////////////////// - // PlayPauseAction - ////////////////////////////////////////////////////////////////////////////////////////// -diff -up amarok-2.8.0/src/ActionClasses.h.onlinedoc amarok-2.8.0/src/ActionClasses.h ---- amarok-2.8.0/src/ActionClasses.h.onlinedoc 2013-08-14 15:22:51.000000000 -0500 -+++ amarok-2.8.0/src/ActionClasses.h 2013-08-15 10:38:12.378047150 -0500 -@@ -34,6 +34,16 @@ class KHelpMenu; - - namespace Amarok - { -+ class OnlineHelpHandler : public QObject -+ { -+ Q_OBJECT -+ public: -+ OnlineHelpHandler( QObject* parent ); -+ -+ public slots: -+ void onlineHelpActivated(); -+ }; -+ - class Menu : public KMenu - { - Q_OBJECT -@@ -45,6 +55,7 @@ namespace Amarok - private: - static Menu *s_instance; - static KHelpMenu *s_helpMenu; -+ static OnlineHelpHandler *s_onlineHelpHandler; - }; - - class MenuAction : public KAction diff --git a/amarok-2.8.90-mysql_found.patch b/amarok-2.8.90-mysql_found.patch deleted file mode 100644 index 44a94ff..0000000 --- a/amarok-2.8.90-mysql_found.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up amarok-2.8.90/CMakeLists.txt.mysql_embedded amarok-2.8.90/CMakeLists.txt ---- amarok-2.8.90/CMakeLists.txt.mysql_embedded 2015-12-10 11:44:35.094776255 -0600 -+++ amarok-2.8.90/CMakeLists.txt 2015-12-10 11:43:04.047091677 -0600 -@@ -142,7 +142,7 @@ if( WITH_PLAYER ) - else( WITH_MYSQL_EMBEDDED ) - add_definitions( "-DNO_MYSQL_EMBEDDED" ) - endif( WITH_MYSQL_EMBEDDED ) -- macro_log_feature( MYSQL_FOUND "mysql" "MySQL Server Libraries" "http://www.mysql.com" TRUE "" "" ) -+ macro_log_feature( MYSQL_EMBEDDED_FOUND "mysql" "MySQL Server Libraries" "http://www.mysql.com" FALSE "" "" ) - - # zlib is required for mysql embedded - find_package(ZLIB REQUIRED) diff --git a/amarok.spec b/amarok.spec index cf8f432..54a0617 100644 --- a/amarok.spec +++ b/amarok.spec @@ -1,98 +1,136 @@ +%global commit 387c30de482522774c28dc02c2636cd41c8334e9 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commitdate 20231231 -%define kdewebkit 1 +%global __provides_exclude_from ^%{_kf5_qmldir}/org/kde/amarok/.*\.so$ Name: amarok Summary: Media player -Version: 2.9.0 -Release: 16%{?dist} +Version: 2.9.71%{?commitdate:^git%{commitdate}.%{shortcommit}} +Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted -License: GPLv2 or GPLv3 -Url: http://amarok.kde.org/ -#global revision %(echo %{version} | cut -d. -f3) -#if %{revision} >= 50 -#global stable unstable -#else -%global stable stable -#endif -Source0: http://download.kde.org/%{stable}/amarok/%{version}/src/amarok-%{version}.tar.xz +License: GPL-2.0-only or GPL-3.0-only +Url: https://amarok.kde.org/ +%if 0%{?commitdate} +Source0: https://invent.kde.org/multimedia/amarok/-/archive/%{commit}/amarok-%{commit}.tar.bz2 +%else +Source0: https://download.kde.org/%{stable_kf5}/amarok/%{version}/src/amarok-%{version}.tar.xz +%endif -# Invoke a browser on the online UserBase documentation instead of KHelpCenter -# for the help contents if the amarok-doc subpackage is not installed. -Patch0: amarok-2.8.0-onlinedoc.patch +# partially revert https://invent.kde.org/multimedia/amarok/-/commit/c095ebf8780b693605ab23efa4eae6f4dd18fc5e +# it causes amarok to crash on launch for some reason +Patch1: revert.patch -# try to allow build without kdewebkit (like rhel), use QWeb* instead of KWeb* -Patch1: amarok-2.8.0-no_kdewebkit.patch +# https://invent.kde.org/multimedia/amarok/-/merge_requests/55 +Patch2: port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch -## upstreamable patches -# make mysql_found non-fatal -Patch100: amarok-2.8.90-mysql_found.patch +# https://invent.kde.org/multimedia/amarok/-/merge_requests/53 +Patch3: refresh-deprecated-codepaths.patch + +# Needed because not every distro installs mygpo-qt5 under the same path. +# For instance, Fedora namespaces qt5 +Patch10: fix-mygpo-qt5-compilation.patch -BuildRequires: curl-devel BuildRequires: desktop-file-utils +BuildRequires: extra-cmake-modules BuildRequires: gcc-c++ -## non-modular MusicBrainz-based audio fingerprint tag lookup support :( -#BuildRequires: ffmpeg-devel libofa-devel BuildRequires: gettext -BuildRequires: kdelibs4-devel >= 4.9 -%if 0%{?kdewebkit} -BuildRequires: kdelibs4-webkit-devel -%endif -%if 0%{?fedora} > 21 +BuildRequires: kf5-rpm-macros BuildRequires: libappstream-glib -%endif -BuildRequires: mariadb-connector-c-devel -BuildRequires: mariadb-embedded-devel -BuildRequires: libgcrypt-devel BuildRequires: perl-generators -BuildRequires: pkgconfig(gdk-pixbuf-2.0) -BuildRequires: pkgconfig(glib-2.0) pkgconfig(gobject-2.0) -BuildRequires: pkgconfig(libxml-2.0) -BuildRequires: pkgconfig(phonon) >= 4.5.0 -BuildRequires: pkgconfig(qca2) -BuildRequires: pkgconfig(QJson) -BuildRequires: pkgconfig(QtWebKit) + +BuildRequires: cmake(Qt5Core) +BuildRequires: cmake(Qt5DBus) +BuildRequires: cmake(Qt5Gui) +BuildRequires: cmake(Qt5QuickWidgets) +BuildRequires: cmake(Qt5Qml) +BuildRequires: cmake(Qt5Sql) +BuildRequires: cmake(Qt5Svg) +BuildRequires: cmake(Qt5Test) +BuildRequires: cmake(Qt5Widgets) +BuildRequires: cmake(Qt5Xml) +BuildRequires: cmake(Qt5QuickControls2) +%ifarch %{qt5_qtwebengine_arches} +BuildRequires: cmake(Qt5WebEngine) +%endif +BuildRequires: cmake(Qt5UiTools) + +BuildRequires: cmake(KF5Archive) +BuildRequires: cmake(KF5Attica) +BuildRequires: cmake(KF5Codecs) +BuildRequires: cmake(KF5Config) +BuildRequires: cmake(KF5ConfigWidgets) +BuildRequires: cmake(KF5CoreAddons) +BuildRequires: cmake(KF5Crash) +BuildRequires: cmake(KF5DBusAddons) +BuildRequires: cmake(KF5Declarative) +BuildRequires: cmake(KF5DNSSD) +BuildRequires: cmake(KF5DocTools) +BuildRequires: cmake(KF5GlobalAccel) +BuildRequires: cmake(KF5GuiAddons) +BuildRequires: cmake(KF5I18n) +BuildRequires: cmake(KF5IconThemes) +BuildRequires: cmake(KF5KCMUtils) +BuildRequires: cmake(KF5KIO) +BuildRequires: cmake(KF5NewStuff) +BuildRequires: cmake(KF5Notifications) +BuildRequires: cmake(KF5Package) +BuildRequires: cmake(KF5Solid) +BuildRequires: cmake(KF5TextEditor) +BuildRequires: cmake(KF5ThreadWeaver) +BuildRequires: cmake(KF5WidgetsAddons) +BuildRequires: cmake(KF5WindowSystem) +BuildRequires: cmake(KF5Kirigami2) +# gpodder, lastfm +BuildRequires: cmake(KF5Wallet) + BuildRequires: pkgconfig(taglib) >= 1.6 BuildRequires: pkgconfig(taglib-extras) >= 1.0.1 - +BuildRequires: cmake(Phonon4Qt5) +BuildRequires: pkgconfig(libmariadb) +BuildRequires: pkgconfig(mariadb) +BuildRequires: mariadb-embedded-devel +BuildRequires: ffmpeg-free-devel +BuildRequires: fftw-devel %if 0%{?fedora} -BuildRequires: kf5-rpm-macros -Requires: kf5-filesystem -BuildRequires: liblastfm-devel >= 1.0.3 -BuildRequires: pkgconfig(libmygpo-qt) >= 1.0.7 -# loudmouth orphaned/unsupported f33+ -%if 0%{?fedora} < 33 -%global loudmouth 1 -BuildRequires: pkgconfig(loudmouth-1.0) -%endif +# dependencies not available in RHEL or EPEL +BuildRequires: liblastfm-qt5-devel +BuildRequires: libofa-devel +BuildRequires: cmake(Mygpo-qt5) BuildRequires: pkgconfig(libmtp) >= 0.3.0 BuildRequires: pkgconfig(libgpod-1.0) >= 0.7.0 -Requires: ifuse -# not strictly required at buildtime, but if it's not available here, -# then you're hosed at runtime anyway -BuildRequires: clamz -Requires: clamz -%if 0%{?fedora} > 23 -Recommends: audiocd-kio -Recommends: kio_mtp -Recommends: kio-upnp-ms +# only used together with libgpod +BuildRequires: pkgconfig(gdk-pixbuf-2.0) +# MP3Tunes +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libxml-2.0) +BuildRequires: libgcrypt-devel +BuildRequires: pkgconfig(loudmouth-1.0) +BuildRequires: pkgconfig(glib-2.0) pkgconfig(gobject-2.0) +%endif + +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-utils = %{version}-%{release} +Requires: kf5-filesystem +# QML module dependencies +Requires: kf5-kirigami2%{?_isa} +Requires: qt5-qtquickcontrols2%{?_isa} + +Recommends: kf5-audiocd-kio +%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 +Recommends: kio-extras-kf5 %else -Requires: audiocd-kio -Requires: kio_mtp -Requires: kio-upnp-ms +Recommends: kio-extras %endif +%ifarch %{qt5_qtwebengine_arches} +# Wikipedia QML plugin +Recommends: qt5-qtwebengine%{?_isa} +%endif +%if 0%{?fedora} +Recommends: ifuse +Recommends: media-player-info %endif -BuildRequires: qtscriptbindings -BuildRequires: make -Requires: qtscriptbindings%{?_isa} -Requires: %{name}-utils = %{version}-%{release} -Requires: kde-runtime -Requires: media-player-info - -Requires: %{name}-libs%{?_isa} = %{version}-%{release} - -BuildConflicts: nepomuk-core-devel -Obsoletes: amarok-nepomukcollection < %{version}-%{release} %description Amarok is a multimedia player with: @@ -104,19 +142,17 @@ Amarok is a multimedia player with: %package libs Summary: Runtime libraries for %{name} -Requires: %{name} = %{version}-%{release} %description libs %{summary}. %package utils Summary: Amarok standalone utilities -%description utils +Requires: %{name}-libs = %{version}-%{release} +%description utils %{summary}, including amarokcollectionscanner. %package doc Summary: Application handbook, documentation, translations -# for upgrade path -Obsoletes: amarok < 2.5.0-4 Requires: %{name} = %{version}-%{release} BuildArch: noarch %description doc @@ -124,173 +160,104 @@ BuildArch: noarch %prep -%setup -q +%autosetup %{?commitdate:-n %{name}-%{commit}} -p1 -%patch0 -p1 -b .onlinedoc -%if ! 0%{?kdewebkit} -%patch1 -p1 -b .no_kdewebkit -%endif - -## upstream - -## upstreamable +sed -i -e 's|/usr/bin/mysqld|%{_libexecdir}/mysqld|' src/importers/amarok/AmarokConfigWidget.cpp %build -mkdir %{_target_platform} -pushd %{_target_platform} +%if 0%{?flatpak} +# find /app-built libmygpo-qt headers +CXXFLAGS="$CXXFLAGS -I%{_includedir}/qt5" +%endif # force non-use of MYSQLCONFIG, to avoid (potential bogus) stuff from: mysql_config --libmysqld-libs -%{cmake_kde4} .. \ +%{cmake_kf5} \ -DMYSQLCONFIG_EXECUTABLE:BOOL=OFF -popd - -%make_build -C %{_target_platform} +%{cmake_build} %install -make install/fast DESTDIR=%{buildroot} -C %{_target_platform} +%cmake_install -# appdata/metainfo -%if "%{_kde4_datadir}/metainfo" != "%{_kf5_metainfodir}" -mkdir -p %{buildroot}%{_kf5_metainfodir} -mv %{buildroot}%{_kde4_datadir}/metainfo/*.xml \ - %{buildroot}%{_kf5_metainfodir} -%endif - -# NoDisplay Amazon Downloader in menus -desktop-file-edit \ - --set-key=NoDisplay --set-value=true \ - %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.desktop - -%if 0%{?fedora} -mkdir -p %{buildroot}%{_kf5_datadir}/solid/actions/ -cp -alf \ - %{buildroot}%{_kde4_appsdir}/solid/actions/amarok-play-audiocd.desktop \ - %{buildroot}%{_kf5_datadir}/solid/actions/ -mkdir -p %{buildroot}%{_kf5_datadir}/kservices5/ServiceMenus -cp -alf \ - %{buildroot}%{_kde4_datadir}/kde4/services/ServiceMenus/amarok_append.desktop \ - %{buildroot}%{_kf5_datadir}/kservices5/ServiceMenus/ -%endif - -%find_lang amarok --with-kde --without-mo && mv amarok.lang amarok-doc.lang -%find_lang amarok -%find_lang amarokcollectionscanner_qt -%find_lang amarokpkg && cat amarokpkg.lang >> amarok.lang -%find_lang amarok_scriptengine_qscript && cat amarok_scriptengine_qscript.lang >> amarok.lang - -# unpackaged files -rm -fv %{buildroot}%{_kde4_libdir}/libamarok{-sqlcollection,_taglib,core,lib,plasma,pud,ocsclient,shared,-transcoding}.so +%find_lang amarokcollectionscanner_qt --with-qt --without-mo --all-name +%find_lang amarok --all-name +%find_lang amarok-doc --with-html --without-mo --all-name %check -%if 0%{?fedora} > 20 appstream-util validate-relax --nonet %{buildroot}%{_kf5_metainfodir}/org.kde.%{name}.appdata.xml -%endif -desktop-file-validate %{buildroot}%{_kde4_datadir}/applications/kde4/*amarok.desktop -desktop-file-validate %{buildroot}%{_kde4_datadir}/applications/kde4/*amarok_containers.desktop -grep '^NoDisplay' %{buildroot}%{_kde4_datadir}/applications/kde4/amzdownloader.desktop +desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*.desktop %files -f amarok.lang %doc AUTHORS ChangeLog README %license COPYING -%{_kde4_bindir}/amarok -%{_kde4_bindir}/amarokpkg -%{_kde4_bindir}/amarok_afttagger -%if 0%{?loudmouth} -%{_kde4_bindir}/amarokmp3tunesharmonydaemon -%endif -%if 0%{?fedora} -%{_kf5_datadir}/solid/actions/amarok-play-audiocd.desktop +%{_qt5_settingsdir}/amarok_homerc +%{_kf5_bindir}/amarok +%{_kf5_bindir}/amarokpkg +%{_kf5_bindir}/amarok_afttagger +%{_kf5_datadir}/amarok/ +%{_kf5_datadir}/applications/org.kde.amarok.desktop +%{_kf5_datadir}/applications/org.kde.amarok_containers.desktop +%{_kf5_datadir}/config.kcfg/amarokconfig.kcfg +%{_kf5_datadir}/dbus-1/interfaces/*.xml +%{_kf5_datadir}/dbus-1/services/org.kde.amarok.service +%{_kf5_datadir}/icons/hicolor/*/*/* +%{_kf5_datadir}/kconf_update/amarok* +%{_kf5_datadir}/knotifications5/amarok.notifyrc +%{_kf5_datadir}/knsrcfiles/amarok.knsrc +%{_kf5_datadir}/kpackage/amarok/org.kde.amarok.* +%{_kf5_datadir}/kpackage/genericqml/org.kde.amarok.context %{_kf5_datadir}/kservices5/ServiceMenus/amarok_append.desktop -%endif -%{_kde4_bindir}/amzdownloader -%{_kde4_appsdir}/amarok/ -%{_kde4_appsdir}/kconf_update/amarok* -%{_kde4_appsdir}/desktoptheme/default/widgets/* -%{_kde4_appsdir}/solid/actions/amarok-play-audiocd.desktop -%{_kde4_configdir}/amarok.knsrc -%{_kde4_configdir}/amarok_homerc -%{_kde4_configdir}/amarokapplets.knsrc -%{_kf5_metainfodir}/org.kde.%{name}.appdata.xml -%{_kde4_datadir}/applications/kde4/*amarok.desktop -%{_kde4_datadir}/applications/kde4/*amarok_containers.desktop -%{_kde4_datadir}/applications/kde4/amzdownloader.desktop -%{_kde4_datadir}/config.kcfg/amarokconfig.kcfg -%{_kde4_datadir}/kde4/services/amarok-containment-*.desktop -%{_kde4_datadir}/kde4/services/amarok-context-applet-*.desktop -%{_kde4_datadir}/kde4/services/amarok-data-engine-*.desktop -%{_kde4_datadir}/kde4/services/amarok_collection-audiocdcollection.desktop -%{_kde4_datadir}/kde4/services/amarok_collection-daapcollection.desktop -%{_kde4_datadir}/kde4/services/amarok_collection-mysqlcollection.desktop -%{_kde4_datadir}/kde4/services/amarok_collection-playdarcollection.desktop -%{_kde4_datadir}/kde4/services/amarok_collection-umscollection.desktop -%{_kde4_datadir}/kde4/services/amarok_collection-upnpcollection.desktop -%{_kde4_datadir}/kde4/services/amarok_importer-amarok.desktop -%{_kde4_datadir}/kde4/services/amarok_importer-banshee.desktop -%{_kde4_datadir}/kde4/services/amarok_importer-clementine.desktop -%{_kde4_datadir}/kde4/services/amarok_importer-fastforward.desktop -%{_kde4_datadir}/kde4/services/amarok_importer-itunes.desktop -%{_kde4_datadir}/kde4/services/amarok_importer-rhythmbox.desktop -%{_kde4_datadir}/kde4/services/amarok_service_*.desktop -%{_kde4_datadir}/kde4/services/amarok_storage-mysqlestorage.desktop -%{_kde4_datadir}/kde4/services/amarok_storage-mysqlserverstorage.desktop -%{_kde4_datadir}/kde4/services/*.protocol -%{_kde4_datadir}/kde4/services/ServiceMenus/amarok_append.desktop -%{_kde4_datadir}/kde4/servicetypes/*.desktop -%{_kde4_iconsdir}/hicolor/*/*/* -%{_kde4_libdir}/kde4/amarok_collection-audiocdcollection.so -%{_kde4_libdir}/kde4/amarok_collection-daapcollection.so -%if 0%{?fedora} -%{_kde4_datadir}/kde4/services/amarok_collection-ipodcollection.desktop -%{_kde4_datadir}/kde4/services/amarok_collection-mtpcollection.desktop -%{_kde4_libdir}/kde4/amarok_collection-ipodcollection.so -%{_kde4_libdir}/kde4/amarok_collection-mtpcollection.so -%endif -%{_kde4_libdir}/kde4/amarok_collection-mysqlcollection.so -%{_kde4_libdir}/kde4/amarok_collection-playdarcollection.so -%{_kde4_libdir}/kde4/amarok_collection-umscollection.so -%{_kde4_libdir}/kde4/amarok_collection-upnpcollection.so -%{_kde4_libdir}/kde4/amarok_containment_*.so -%{_kde4_libdir}/kde4/amarok_context_applet_*.so -%{_kde4_libdir}/kde4/amarok_data_engine_*.so -%{_kde4_libdir}/kde4/amarok_importer-amarok.so -%{_kde4_libdir}/kde4/amarok_importer-banshee.so -%{_kde4_libdir}/kde4/amarok_importer-clementine.so -%{_kde4_libdir}/kde4/amarok_importer-fastforward.so -%{_kde4_libdir}/kde4/amarok_importer-itunes.so -%{_kde4_libdir}/kde4/amarok_importer-rhythmbox.so -%{_kde4_libdir}/kde4/amarok_service_*.so -%{_kde4_libdir}/kde4/amarok_storage-mysqlestorage.so -%{_kde4_libdir}/kde4/amarok_storage-mysqlserverstorage.so -%{_kde4_libdir}/kde4/kcm_amarok_service*.so -%{_datadir}/dbus-1/interfaces/*.xml -%{_datadir}/mime/packages/amzdownloader.xml - -%ldconfig_scriptlets libs +%{_kf5_datadir}/kservices5/amarok* +%{_kf5_datadir}/kservicetypes5/amarok* +%{_kf5_datadir}/solid/actions/amarok-play-audiocd.desktop +%{_kf5_metainfodir}/org.kde.amarok.*.xml +%{_kf5_qmldir}/org/kde/amarok +%{_kf5_qtplugindir}/amarok_collection-audiocdcollection.so +%{_kf5_qtplugindir}/amarok_collection-daapcollection.so +%{_kf5_qtplugindir}/amarok_collection-ipodcollection.so +%{_kf5_qtplugindir}/amarok_collection-mtpcollection.so +%{_kf5_qtplugindir}/amarok_collection-mysqlcollection.so +%{_kf5_qtplugindir}/amarok_collection-playdarcollection.so +%{_kf5_qtplugindir}/amarok_collection-umscollection.so +%{_kf5_qtplugindir}/amarok_importer-amarok.so +%{_kf5_qtplugindir}/amarok_importer-banshee.so +%{_kf5_qtplugindir}/amarok_importer-clementine.so +%{_kf5_qtplugindir}/amarok_importer-fastforward.so +%{_kf5_qtplugindir}/amarok_importer-itunes.so +%{_kf5_qtplugindir}/amarok_importer-rhythmbox.so +%{_kf5_qtplugindir}/amarok_service_*.so +%{_kf5_qtplugindir}/amarok_storage-mysqlestorage.so +%{_kf5_qtplugindir}/amarok_storage-mysqlserverstorage.so +%{_kf5_qtplugindir}/kcm_amarok_service*.so %files libs -%{_kde4_libdir}/libamarokcore.so.1* -%{_kde4_libdir}/libamaroklib.so.1* -%{_kde4_libdir}/libamarokocsclient.so.4* -%{_kde4_libdir}/libamarokpud.so.1* -%{_kde4_libdir}/libamarokshared.so.1* -%{_kde4_libdir}/libamarok-sqlcollection.so.1* -%{_kde4_libdir}/libamarok-transcoding.so.1* -# private libs -%if 0%{?fedora} -%{_kde4_libdir}/libamarok_service_lastfm_shared.so -%endif -%{_kde4_libdir}/libampache_account_login.so +%{_kf5_libdir}/libamarokcore.so.1* +%{_kf5_libdir}/libamaroklib.so.1* +%{_kf5_libdir}/libamarokshared.so.1* +%{_kf5_libdir}/libamarok-sqlcollection.so.1* +%{_kf5_libdir}/libamarok-transcoding.so.1* +%{_kf5_libdir}/libampache_account_login.so +%{_kf5_libdir}/libamarok-sqlcollection.so +%{_kf5_libdir}/libamarok-transcoding.so +%{_kf5_libdir}/libamarokcore.so +%{_kf5_libdir}/libamaroklib.so +%{_kf5_libdir}/libamarokpud.so +%{_kf5_libdir}/libamarokshared.so +%{_kf5_libdir}/libamarok_service_lastfm_config.so +%{_kf5_libdir}/libgpodder_service_config.so %files utils -f amarokcollectionscanner_qt.lang -%{_kde4_bindir}/amarokcollectionscanner +%{_kf5_bindir}/amarokcollectionscanner %files doc -f amarok-doc.lang %changelog +* Tue Jan 02 2024 Yaakov Selkowitz - 2.9.71^20231231git387c30d-1 +- Update to KF5-based git snapshot + * Wed Jul 19 2023 Fedora Release Engineering - 2.9.0-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/fix-mygpo-qt5-compilation.patch b/fix-mygpo-qt5-compilation.patch new file mode 100644 index 0000000..9b5d555 --- /dev/null +++ b/fix-mygpo-qt5-compilation.patch @@ -0,0 +1,125 @@ +diff --git a/src/services/gpodder/GpodderPodcastMeta.h b/src/services/gpodder/GpodderPodcastMeta.h +index abe2c9f2b6..8bd28f82c1 100644 +--- a/src/services/gpodder/GpodderPodcastMeta.h ++++ b/src/services/gpodder/GpodderPodcastMeta.h +@@ -22,7 +22,7 @@ + + #include "core/playlists/PlaylistProvider.h" + #include "core/podcasts/PodcastMeta.h" +-#include ++#include + + namespace Podcasts { + +diff --git a/src/services/gpodder/GpodderPodcastRequestHandler.h b/src/services/gpodder/GpodderPodcastRequestHandler.h +index c56ec1942f..2b65e5d5df 100644 +--- a/src/services/gpodder/GpodderPodcastRequestHandler.h ++++ b/src/services/gpodder/GpodderPodcastRequestHandler.h +@@ -20,7 +20,7 @@ + #define GPODDERPODCASTREQUESTHANDLER_H_ + + #include "GpodderServiceModel.h" +-#include ++#include + + #include + +diff --git a/src/services/gpodder/GpodderPodcastTreeItem.h b/src/services/gpodder/GpodderPodcastTreeItem.h +index 91323fb770..1c5fd45c0c 100644 +--- a/src/services/gpodder/GpodderPodcastTreeItem.h ++++ b/src/services/gpodder/GpodderPodcastTreeItem.h +@@ -20,7 +20,7 @@ + #define GPODDERPODCASTTREEITEM_H_ + + #include "GpodderTreeItem.h" +-#include ++#include + + class GpodderPodcastTreeItem: public GpodderTreeItem + { +diff --git a/src/services/gpodder/GpodderProvider.h b/src/services/gpodder/GpodderProvider.h +index e6deb51868..db7a664060 100644 +--- a/src/services/gpodder/GpodderProvider.h ++++ b/src/services/gpodder/GpodderProvider.h +@@ -23,8 +23,8 @@ + #include "core/podcasts/PodcastProvider.h" + #include "core/podcasts/PodcastReader.h" + #include "GpodderPodcastMeta.h" +-#include +-#include ++#include ++#include + #include "playlistmanager/file/KConfigSyncRelStore.h" + #include "playlistmanager/PlaylistManager.h" + +diff --git a/src/services/gpodder/GpodderService.cpp b/src/services/gpodder/GpodderService.cpp +index 6ead72cc74..0294850143 100644 +--- a/src/services/gpodder/GpodderService.cpp ++++ b/src/services/gpodder/GpodderService.cpp +@@ -27,8 +27,8 @@ + #include "GpodderServiceModel.h" + #include "GpodderServiceView.h" + #include "GpodderSortFilterProxyModel.h" +-#include +-#include ++#include ++#include + #include "playlistmanager/PlaylistManager.h" + #include "widgets/SearchWidget.h" + +diff --git a/src/services/gpodder/GpodderServiceModel.h b/src/services/gpodder/GpodderServiceModel.h +index 08b5a559e1..e443c79b08 100644 +--- a/src/services/gpodder/GpodderServiceModel.h ++++ b/src/services/gpodder/GpodderServiceModel.h +@@ -20,8 +20,8 @@ + #define GPODDERSERVICEMODEL_H_ + + #include "GpodderTreeItem.h" +-#include +-#include ++#include ++#include + #include "NetworkAccessManagerProxy.h" + + #include +diff --git a/src/services/gpodder/GpodderServiceSettings.h b/src/services/gpodder/GpodderServiceSettings.h +index 1c3707b7ee..f519404958 100644 +--- a/src/services/gpodder/GpodderServiceSettings.h ++++ b/src/services/gpodder/GpodderServiceSettings.h +@@ -21,7 +21,7 @@ + #define GPODDERSERVICESETTINGS_H + + #include "GpodderServiceConfig.h" +-#include ++#include + + #include + +diff --git a/src/services/gpodder/GpodderTagTreeItem.h b/src/services/gpodder/GpodderTagTreeItem.h +index 63cc965d89..8941cb8fc3 100644 +--- a/src/services/gpodder/GpodderTagTreeItem.h ++++ b/src/services/gpodder/GpodderTagTreeItem.h +@@ -20,7 +20,7 @@ + #define GPODDERTAGTREEITEM_H_ + + #include "GpodderTreeItem.h" +-#include ++#include + + #include + +diff --git a/src/services/gpodder/GpodderTreeItem.h b/src/services/gpodder/GpodderTreeItem.h +index 642e1cb371..ce1d4d070a 100644 +--- a/src/services/gpodder/GpodderTreeItem.h ++++ b/src/services/gpodder/GpodderTreeItem.h +@@ -19,8 +19,8 @@ + #ifndef GPODDERTREEITEM_H_ + #define GPODDERTREEITEM_H_ + +-#include +-#include ++#include ++#include + + #include + #include diff --git a/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch b/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch new file mode 100644 index 0000000..d712965 --- /dev/null +++ b/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch @@ -0,0 +1,285 @@ +From c60f5dab3729d587eb025afefaf1f5555706368d Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Thu, 9 Mar 2023 18:07:10 +0200 +Subject: [PATCH 1/3] Port away from deprecated QDesktopWidget functions. + +Following the instructions on https://doc.qt.io/qt-5/qdesktopwidget-obsolete.html +--- + src/covermanager/CoverManager.cpp | 4 ++-- + src/covermanager/CoverViewDialog.cpp | 3 +-- + src/dialogs/OrganizeCollectionDialog.cpp | 4 ++-- + src/widgets/Osd.cpp | 22 +++++++++++----------- + src/widgets/PixmapViewer.cpp | 6 +++--- + 5 files changed, 19 insertions(+), 20 deletions(-) + +diff --git a/src/covermanager/CoverManager.cpp b/src/covermanager/CoverManager.cpp +index e67a89416a..eb0d63f637 100644 +--- a/src/covermanager/CoverManager.cpp ++++ b/src/covermanager/CoverManager.cpp +@@ -39,11 +39,11 @@ + + #include + #include +-#include + #include + #include //showCoverMenu() + #include + #include ++#include + #include + #include + #include +@@ -228,7 +228,7 @@ CoverManager::slotContinueConstruction() //SLOT + + connect( m_progress, &CompoundProgressBar::allDone, this, &CoverManager::progressAllDone ); + +- QSize size = QApplication::desktop()->screenGeometry( this ).size() / 1.5; ++ QSize size = this->screen()->size() / 1.5; + QSize sz = Amarok::config( "Cover Manager" ).readEntry( "Window Size", size ); + resize( sz.width(), sz.height() ); + +diff --git a/src/covermanager/CoverViewDialog.cpp b/src/covermanager/CoverViewDialog.cpp +index bb01e1f7fb..d3a1b96f7e 100644 +--- a/src/covermanager/CoverViewDialog.cpp ++++ b/src/covermanager/CoverViewDialog.cpp +@@ -25,7 +25,6 @@ + #include + #include + +-#include + #include + #include + +@@ -72,7 +71,7 @@ CoverViewDialog::zoomFactorChanged( qreal value ) + void + CoverViewDialog::createViewer( const QImage &image, const QWidget *widget ) + { +- int screenNumber = QApplication::desktop()->screenNumber( widget ); ++ int screenNumber = QApplication::screens().indexOf( widget->screen() ); + PixmapViewer *pixmapViewer = new PixmapViewer( this, QPixmap::fromImage(image), screenNumber ); + QHBoxLayout *layout = new QHBoxLayout( this ); + layout->addWidget( pixmapViewer ); +diff --git a/src/dialogs/OrganizeCollectionDialog.cpp b/src/dialogs/OrganizeCollectionDialog.cpp +index fb59c98224..cfda1f109c 100644 +--- a/src/dialogs/OrganizeCollectionDialog.cpp ++++ b/src/dialogs/OrganizeCollectionDialog.cpp +@@ -30,9 +30,9 @@ + #include "ui_OrganizeCollectionDialogBase.h" + + #include +-#include + #include + #include ++#include + #include + + #include +@@ -84,7 +84,7 @@ OrganizeCollectionWidget::OrganizeCollectionWidget( QWidget *parent ) + + // show some non-editable tags before and after + // but only if screen size is large enough (BR: 283361) +- const QRect screenRect = QApplication::desktop()->screenGeometry(); ++ const QRect screenRect = QApplication::primaryScreen()->geometry(); + if( screenRect.width() >= 1024 ) + { + m_schemaLineLayout->insertWidget( 0, +diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp +index dc1cf722e3..062f3ceeb9 100644 +--- a/src/widgets/Osd.cpp ++++ b/src/widgets/Osd.cpp +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -245,7 +246,7 @@ OSDWidget::determineMetrics( const int M ) + // determine a sensible maximum size, don't cover the whole desktop or cross the screen + const QSize margin( ( M + MARGIN ) * 2, ( M + MARGIN ) * 2 ); //margins + const QSize image = m_cover.isNull() ? QSize( 0, 0 ) : minImageSize; +- const QSize max = QApplication::desktop()->screen( m_screen )->size() - margin; ++ const QSize max = QApplication::screens()[ screen() ]->size() - margin; + + // If we don't do that, the boundingRect() might not be suitable for drawText() (Qt issue N67674) + m_text.replace( QRegExp( " +\n" ), "\n" ); +@@ -311,7 +312,7 @@ OSDWidget::determineMetrics( const int M ) + rect.adjust( -M, -M, M, M ); + + const QSize newSize = rect.size(); +- const QRect screen = QApplication::desktop()->screenGeometry( m_screen ); ++ const QRect screenRect = QApplication::screens()[ screen() ]->geometry(); + QPoint newPos( MARGIN, m_yOffset ); + + switch( m_alignment ) +@@ -320,25 +321,25 @@ OSDWidget::determineMetrics( const int M ) + break; + + case Right: +- newPos.rx() = screen.width() - MARGIN - newSize.width(); ++ newPos.rx() = screenRect.width() - MARGIN - newSize.width(); + break; + + case Center: +- newPos.ry() = ( screen.height() - newSize.height() ) / 2; ++ newPos.ry() = ( screenRect.height() - newSize.height() ) / 2; + + Q_FALLTHROUGH(); + + case Middle: +- newPos.rx() = ( screen.width() - newSize.width() ) / 2; ++ newPos.rx() = ( screenRect.width() - newSize.width() ) / 2; + break; + } + + //ensure we don't dip below the screen +- if ( newPos.y() + newSize.height() > screen.height() - MARGIN ) +- newPos.ry() = screen.height() - MARGIN - newSize.height(); ++ if ( newPos.y() + newSize.height() > screenRect.height() - MARGIN ) ++ newPos.ry() = screenRect.height() - MARGIN - newSize.height(); + + // correct for screen position +- newPos += screen.topLeft(); ++ newPos += screenRect.topLeft(); + + return QRect( newPos, rect.size() ); + } +@@ -551,7 +552,7 @@ OSDPreviewWidget::mouseMoveEvent( QMouseEvent *e ) + { + // Here we implement a "snap-to-grid" like positioning system for the preview widget + +- const QRect screenRect = QApplication::desktop()->screenGeometry( screen() ); ++ const QRect screenRect = QApplication::screens()[ screen() ]->geometry(); + const uint hcenter = screenRect.width() / 2; + const uint eGlobalPosX = e->globalPos().x() - screenRect.left(); + const uint snapZone = screenRect.width() / 24; +@@ -592,8 +593,7 @@ OSDPreviewWidget::mouseMoveEvent( QMouseEvent *e ) + move( destination ); + + // compute current Position && Y-offset +- QDesktopWidget *desktop = QApplication::desktop(); +- const int currentScreen = desktop->screenNumber( pos() ); ++ const int currentScreen = QGuiApplication::screens().indexOf( QGuiApplication::screenAt( pos() ) ); + + // set new data + OSDWidget::setScreen( currentScreen ); +diff --git a/src/widgets/PixmapViewer.cpp b/src/widgets/PixmapViewer.cpp +index 158540f541..332dbc5d5e 100644 +--- a/src/widgets/PixmapViewer.cpp ++++ b/src/widgets/PixmapViewer.cpp +@@ -21,11 +21,11 @@ + + #include + +-#include + #include + #include + #include + #include ++#include + #include + + +@@ -35,8 +35,8 @@ PixmapViewer::PixmapViewer( QWidget *parent, const QPixmap &pix, int screenNumbe + { + m_zoomFactor = 1.0; // initial zoom + +- int screenWidth = QApplication::desktop()->availableGeometry( screenNumber ).width(); +- int screenHeight = QApplication::desktop()->availableGeometry( screenNumber ).height(); ++ int screenWidth = QApplication::screens()[ screenNumber ]->availableGeometry().width(); ++ int screenHeight = QApplication::screens()[ screenNumber ]->availableGeometry().height(); + if( screenWidth < m_pixmap.width() || screenHeight < m_pixmap.height() ) + { + qreal zoomFactorX = qreal(screenWidth) / m_pixmap.width(); +-- +GitLab + + +From b95c439ebba30ba257ba75d060b237a293415ea8 Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Sat, 11 Mar 2023 15:22:18 +0200 +Subject: [PATCH 2/3] Disable OSD options not available on Wayland. + +--- + src/configdialog/dialogs/NotificationsConfig.cpp | 6 +++++- + src/widgets/Osd.cpp | 8 ++++++-- + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/src/configdialog/dialogs/NotificationsConfig.cpp b/src/configdialog/dialogs/NotificationsConfig.cpp +index 0c16fdcb17..1c3387206a 100644 +--- a/src/configdialog/dialogs/NotificationsConfig.cpp ++++ b/src/configdialog/dialogs/NotificationsConfig.cpp +@@ -51,7 +51,11 @@ NotificationsConfig::NotificationsConfig( Amarok2ConfigDialog* parent ) + #endif + + // Enable/disable the translucency option depending on availability of desktop compositing +- kcfg_OsdUseTranslucency->setEnabled( KWindowSystem::compositingActive() ); ++ // As opacity functionality is not available on Wayland at least with current implementation, don't enable option there ++ kcfg_OsdUseTranslucency->setEnabled( !KWindowSystem::isPlatformWayland() && KWindowSystem::compositingActive() ); ++ ++ // Also disable other functionalities not (yet?) available on Wayland ++ kcfg_OsdScreen->setEnabled( !KWindowSystem::isPlatformWayland() ); + + connect( m_osdPreview, &OSDPreviewWidget::positionChanged, this, &NotificationsConfig::slotPositionChanged ); + +diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp +index 062f3ceeb9..e29a1b2347 100644 +--- a/src/widgets/Osd.cpp ++++ b/src/widgets/Osd.cpp +@@ -509,7 +509,9 @@ OSDPreviewWidget::OSDPreviewWidget( QWidget *parent ) + setDuration( 0 ); + setImage( Amarok::icon() ); + setTranslucent( AmarokConfig::osdUseTranslucency() ); +- setText( i18n( "On-Screen-Display preview\nDrag to reposition" ) ); ++ // Drag-positioning not available on Wayland, so let's hide any untrue ideas about dragging ++ // TODO maybe one day Wayland will be first-class OSD citizen ++ setText( KWindowSystem::isPlatformWayland() ? i18n ( "Preview" ) : i18n( "On-Screen-Display preview\nDrag to reposition" ) ); + } + + void +@@ -517,7 +519,9 @@ OSDPreviewWidget::mousePressEvent( QMouseEvent *event ) + { + m_dragYOffset = event->pos(); + +- if( event->button() == Qt::LeftButton && !m_dragging ) ++ // As we can't position OSD on Wayland at the moment, and grabbing mouse doesn't quite work ++ // either, let's disable this for now. ++ if( !KWindowSystem::isPlatformWayland() && event->button() == Qt::LeftButton && !m_dragging ) + { + grabMouse( Qt::SizeAllCursor ); + m_dragging = true; +-- +GitLab + + +From d70177ab4a57c3aecf63cfd3937044c575ee1a6a Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Sat, 11 Mar 2023 17:58:59 +0200 +Subject: [PATCH 3/3] Remove obsolete ifdef. + +Apparently Q_WS's are not defined any more. Turns out, if run, the setType +actually makes the OSD positioning to go totally bonkers on X11, so let's just +remove it. +--- + src/widgets/Osd.cpp | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp +index e29a1b2347..1eee135be4 100644 +--- a/src/widgets/Osd.cpp ++++ b/src/widgets/Osd.cpp +@@ -87,10 +87,6 @@ OSDWidget::OSDWidget( QWidget *parent, const char *name ) + setObjectName( name ); + setFocusPolicy( Qt::NoFocus ); + +- #ifdef Q_WS_X11 +- KWindowSystem::setType( winId(), NET::Notification ); +- #endif +- + m_timer->setSingleShot( true ); + connect( m_timer, &QTimer::timeout, this, &OSDWidget::hide ); + +-- +GitLab + diff --git a/refresh-deprecated-codepaths.patch b/refresh-deprecated-codepaths.patch new file mode 100644 index 0000000..436f785 --- /dev/null +++ b/refresh-deprecated-codepaths.patch @@ -0,0 +1,854 @@ +From 33780eaddae9905a36ac96882c1ff1416a508082 Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Thu, 9 Mar 2023 13:58:44 +0200 +Subject: [PATCH 1/8] Make deprecated QMutex::Recursives QRecursiveMutexes. + +Reading https://doc.qt.io/qt-5/qrecursivemutex.html this should be +a pretty straightforward change. +--- + src/EngineController.cpp | 1 - + src/EngineController.h | 4 ++-- + src/core-impl/collections/db/sql/SqlMeta.cpp | 1 - + src/core-impl/collections/db/sql/SqlMeta.h | 4 ++-- + src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp | 1 - + src/core-impl/storage/sql/mysql-shared/MySqlStorage.h | 4 ++-- + src/core/playlists/Playlist.cpp | 4 +--- + src/core/playlists/Playlist.h | 6 +++--- + src/core/support/Debug.cpp | 4 ++-- + src/core/support/Debug.h | 4 ++-- + src/dynamic/biases/EchoNestBias.cpp | 1 - + src/dynamic/biases/EchoNestBias.h | 4 ++-- + src/importers/ImporterSqlConnection.cpp | 3 --- + src/importers/ImporterSqlConnection.h | 4 ++-- + src/services/lastfm/biases/LastFmBias.cpp | 1 - + src/services/lastfm/biases/LastFmBias.h | 4 ++-- + src/statusbar/CompoundProgressBar.cpp | 1 - + src/statusbar/CompoundProgressBar.h | 4 ++-- + tests/TestExpression.cpp | 2 +- + tests/TestQStringx.cpp | 2 +- + 20 files changed, 24 insertions(+), 35 deletions(-) + +diff --git a/src/EngineController.cpp b/src/EngineController.cpp +index 8eea4c5921..5dd8db9190 100644 +--- a/src/EngineController.cpp ++++ b/src/EngineController.cpp +@@ -84,7 +84,6 @@ EngineController::EngineController() + , m_tickInterval( 0 ) + , m_lastTickPosition( -1 ) + , m_lastTickCount( 0 ) +- , m_mutex( QMutex::Recursive ) + { + DEBUG_BLOCK + // ensure this object is created in a main thread +diff --git a/src/EngineController.h b/src/EngineController.h +index ca4ebfe132..0653868947 100644 +--- a/src/EngineController.h ++++ b/src/EngineController.h +@@ -27,7 +27,7 @@ + #include "playback/EqualizerController.h" + #include "core/meta/Meta.h" + +-#include ++#include + #include + #include + #include +@@ -579,7 +579,7 @@ private: + qint64 m_lastTickPosition; + qint64 m_lastTickCount; + +- QMutex m_mutex; ++ QRecursiveMutex m_mutex; + + // FIXME: this variable should be updated when + // Phonon::BackendCapabilities::notifier()'s capabilitiesChanged signal is emitted +diff --git a/src/core-impl/collections/db/sql/SqlMeta.cpp b/src/core-impl/collections/db/sql/SqlMeta.cpp +index 5fd0b11abf..45e7513f3d 100644 +--- a/src/core-impl/collections/db/sql/SqlMeta.cpp ++++ b/src/core-impl/collections/db/sql/SqlMeta.cpp +@@ -1471,7 +1471,6 @@ SqlAlbum::SqlAlbum( Collections::SqlCollection *collection, int id, const QStrin + , m_unsetImageId( -1 ) + , m_tracksLoaded( NotLoaded ) + , m_suppressAutoFetch( false ) +- , m_mutex( QMutex::Recursive ) + { + Q_ASSERT( m_collection ); + Q_ASSERT( m_id > 0 ); +diff --git a/src/core-impl/collections/db/sql/SqlMeta.h b/src/core-impl/collections/db/sql/SqlMeta.h +index cf0204ff9e..dd385b1c50 100644 +--- a/src/core-impl/collections/db/sql/SqlMeta.h ++++ b/src/core-impl/collections/db/sql/SqlMeta.h +@@ -28,7 +28,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include +@@ -450,7 +450,7 @@ class AMAROK_SQLCOLLECTION_EXPORT SqlAlbum : public Meta::Album + bool m_suppressAutoFetch; + Meta::ArtistPtr m_artist; + Meta::TrackList m_tracks; +- mutable QMutex m_mutex; ++ mutable QRecursiveMutex m_mutex; + + //TODO: add album artist + +diff --git a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp +index e13a32951d..4b8cf3ca65 100644 +--- a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp ++++ b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp +@@ -90,7 +90,6 @@ QThreadStorage< ThreadInitializer* > ThreadInitializer::storage; + MySqlStorage::MySqlStorage() + : SqlStorage() + , m_db( nullptr ) +- , m_mutex( QMutex::Recursive ) + , m_debugIdent( "MySQL-none" ) + { + //Relevant code must be implemented in subclasses +diff --git a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h +index 2ff4fa1bec..7027072738 100644 +--- a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h ++++ b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h +@@ -22,7 +22,7 @@ + #include + + +-#include ++#include + #include + + #ifdef Q_WS_WIN +@@ -87,7 +87,7 @@ class MySqlStorage: public SqlStorage + MYSQL* m_db; + + /** Mutex protecting the m_lastErrors list */ +- mutable QMutex m_mutex; ++ mutable QRecursiveMutex m_mutex; + + QString m_debugIdent; + QStringList m_lastErrors; +diff --git a/src/core/playlists/Playlist.cpp b/src/core/playlists/Playlist.cpp +index 06dee458a5..a77c726cd8 100644 +--- a/src/core/playlists/Playlist.cpp ++++ b/src/core/playlists/Playlist.cpp +@@ -21,7 +21,6 @@ + using namespace Playlists; + + PlaylistObserver::PlaylistObserver() +- : m_playlistSubscriptionsMutex( QMutex::Recursive ) // prevent deadlocks + { + } + +@@ -73,8 +72,7 @@ void PlaylistObserver::tracksLoaded( PlaylistPtr ) + } + + Playlist::Playlist() +- : m_observersMutex( QMutex::Recursive ) // prevent deadlocks +- , m_async( true ) ++ : m_async( true ) + { + } + +diff --git a/src/core/playlists/Playlist.h b/src/core/playlists/Playlist.h +index 1ff92df5a1..6a0b25965a 100644 +--- a/src/core/playlists/Playlist.h ++++ b/src/core/playlists/Playlist.h +@@ -22,7 +22,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include +@@ -128,7 +128,7 @@ namespace Playlists + + private: + QSet m_playlistSubscriptions; +- QMutex m_playlistSubscriptionsMutex; // guards access to m_playlistSubscriptions ++ QRecursiveMutex m_playlistSubscriptionsMutex; // guards access to m_playlistSubscriptions + }; + + class AMAROKCORE_EXPORT Playlist : public virtual QSharedData +@@ -292,7 +292,7 @@ namespace Playlists + * write, even if it is recursive. This can cause deadlocks, so it would be + * never safe to lock it just for read. + */ +- QMutex m_observersMutex; ++ QRecursiveMutex m_observersMutex; + bool m_async; + }; + } +diff --git a/src/core/support/Debug.cpp b/src/core/support/Debug.cpp +index 138c080b9a..50c6e5e830 100644 +--- a/src/core/support/Debug.cpp ++++ b/src/core/support/Debug.cpp +@@ -24,7 +24,7 @@ + #include + + #include +-#include ++#include + #include + + #include +@@ -37,7 +37,7 @@ + + #define DEBUG_INDENT_OBJECTNAME QLatin1String("Debug_Indent_object") + +-AMAROKCORE_EXPORT QMutex Debug::mutex( QMutex::Recursive ); ++AMAROKCORE_EXPORT QRecursiveMutex Debug::mutex; + + using namespace Debug; + +diff --git a/src/core/support/Debug.h b/src/core/support/Debug.h +index b0872f1b80..1504a8ea2b 100644 +--- a/src/core/support/Debug.h ++++ b/src/core/support/Debug.h +@@ -26,7 +26,7 @@ + + #include "core/amarokcore_export.h" + #include +-#include ++#include + #include + + // BEGIN: DEBUG_ASSERT +@@ -116,7 +116,7 @@ + */ + namespace Debug + { +- extern AMAROKCORE_EXPORT QMutex mutex; ++ extern AMAROKCORE_EXPORT QRecursiveMutex mutex; + + // from kdebug.h + enum DebugLevel { +diff --git a/src/dynamic/biases/EchoNestBias.cpp b/src/dynamic/biases/EchoNestBias.cpp +index 5831fcd259..c14264326a 100644 +--- a/src/dynamic/biases/EchoNestBias.cpp ++++ b/src/dynamic/biases/EchoNestBias.cpp +@@ -64,7 +64,6 @@ Dynamic::EchoNestBias::EchoNestBias() + : SimpleMatchBias() + , m_artistSuggestedQuery( nullptr ) + , m_match( PreviousTrack ) +- , m_mutex( QMutex::Recursive ) + { + loadDataFromFile(); + } +diff --git a/src/dynamic/biases/EchoNestBias.h b/src/dynamic/biases/EchoNestBias.h +index 413cdb33d0..54eee360f5 100644 +--- a/src/dynamic/biases/EchoNestBias.h ++++ b/src/dynamic/biases/EchoNestBias.h +@@ -20,7 +20,7 @@ + + #include "dynamic/biases/TagMatchBias.h" + +-#include ++#include + + namespace KIO { + class StoredTransferJob; +@@ -104,7 +104,7 @@ namespace Dynamic + + MatchType m_match; + +- mutable QMutex m_mutex; // mutex protecting all of the below structures ++ mutable QRecursiveMutex m_mutex; // mutex protecting all of the below structures + mutable QMap< QString, QStringList> m_similarArtistMap; + mutable QMap< QString, TrackSet> m_tracksMap; + +diff --git a/src/importers/ImporterSqlConnection.cpp b/src/importers/ImporterSqlConnection.cpp +index 8176baca85..0853279ebb 100644 +--- a/src/importers/ImporterSqlConnection.cpp ++++ b/src/importers/ImporterSqlConnection.cpp +@@ -35,7 +35,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &driver, + const QString &user, + const QString &password ) + : m_connectionName( QUuid::createUuid().toString() ) +- , m_apiMutex( QMutex::Recursive ) + , m_openTransaction( false ) + { + QSqlDatabase db = QSqlDatabase::addDatabase( driver, m_connectionName ); +@@ -48,7 +47,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &driver, + + ImporterSqlConnection::ImporterSqlConnection( const QString &dbPath ) + : m_connectionName( QUuid::createUuid().toString() ) +- , m_apiMutex( QMutex::Recursive ) + , m_openTransaction( false ) + { + QSqlDatabase db = QSqlDatabase::addDatabase( QStringLiteral("QSQLITE"), m_connectionName ); +@@ -57,7 +55,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &dbPath ) + + ImporterSqlConnection::ImporterSqlConnection() + : m_connectionName( QUuid::createUuid().toString() ) +- , m_apiMutex( QMutex::Recursive ) + , m_openTransaction( false ) + { + } +diff --git a/src/importers/ImporterSqlConnection.h b/src/importers/ImporterSqlConnection.h +index b0b7c844e9..70896ef223 100644 +--- a/src/importers/ImporterSqlConnection.h ++++ b/src/importers/ImporterSqlConnection.h +@@ -22,7 +22,7 @@ + #include "amarok_export.h" + + #include +-#include ++#include + #include + #include + #include +@@ -130,7 +130,7 @@ private: + + Qt::ConnectionType blockingConnectionType() const; + +- QMutex m_apiMutex; ++ QRecursiveMutex m_apiMutex; + bool m_openTransaction; + QList m_result; + +diff --git a/src/services/lastfm/biases/LastFmBias.cpp b/src/services/lastfm/biases/LastFmBias.cpp +index af4ae2a987..468ca714aa 100644 +--- a/src/services/lastfm/biases/LastFmBias.cpp ++++ b/src/services/lastfm/biases/LastFmBias.cpp +@@ -64,7 +64,6 @@ Dynamic::LastFmBiasFactory::createBias() + Dynamic::LastFmBias::LastFmBias() + : SimpleMatchBias() + , m_match( SimilarArtist ) +- , m_mutex( QMutex::Recursive ) + { + loadDataFromFile(); + } +diff --git a/src/services/lastfm/biases/LastFmBias.h b/src/services/lastfm/biases/LastFmBias.h +index 2848b38d9a..77509dc9f1 100644 +--- a/src/services/lastfm/biases/LastFmBias.h ++++ b/src/services/lastfm/biases/LastFmBias.h +@@ -20,7 +20,7 @@ + + #include "dynamic/biases/TagMatchBias.h" + +-#include ++#include + + namespace Dynamic + { +@@ -95,7 +95,7 @@ namespace Dynamic + + MatchType m_match; + +- mutable QMutex m_mutex; // mutex protecting all of the below structures ++ mutable QRecursiveMutex m_mutex; // mutex protecting all of the below structures + mutable QMap< QString, QStringList> m_similarArtistMap; + mutable QMap< TitleArtistPair, QList > m_similarTrackMap; + mutable QMap< QString, TrackSet> m_tracksMap; // for artist AND album +diff --git a/src/statusbar/CompoundProgressBar.cpp b/src/statusbar/CompoundProgressBar.cpp +index 3741ff5b34..3f437ff432 100644 +--- a/src/statusbar/CompoundProgressBar.cpp ++++ b/src/statusbar/CompoundProgressBar.cpp +@@ -26,7 +26,6 @@ + + CompoundProgressBar::CompoundProgressBar( QWidget *parent ) + : ProgressBar( parent ) +- , m_mutex( QMutex::Recursive ) + { + m_progressDetailsWidget = new PopupWidget(); + m_progressDetailsWidget->hide(); +diff --git a/src/statusbar/CompoundProgressBar.h b/src/statusbar/CompoundProgressBar.h +index cfd5070c41..ed9e72012a 100644 +--- a/src/statusbar/CompoundProgressBar.h ++++ b/src/statusbar/CompoundProgressBar.h +@@ -23,7 +23,7 @@ + #include + #include + #include +-#include ++#include + + /** + * A progress bar that wraps a number of simple progress bars and displays their +@@ -75,7 +75,7 @@ private: + + QMap< const QObject *, ProgressBar *> m_progressMap; + PopupWidget *m_progressDetailsWidget; +- QMutex m_mutex; // protecting m_progressMap consistency ++ QRecursiveMutex m_mutex; // protecting m_progressMap consistency + }; + + #endif +diff --git a/tests/TestExpression.cpp b/tests/TestExpression.cpp +index a84ee6f7f8..ea298c10c5 100644 +--- a/tests/TestExpression.cpp ++++ b/tests/TestExpression.cpp +@@ -27,7 +27,7 @@ + QTEST_GUILESS_MAIN( TestExpression ) + + //required for Debug.h +-QMutex Debug::mutex; ++QRecursiveMutex Debug::mutex; + + TestExpression::TestExpression() + { +diff --git a/tests/TestQStringx.cpp b/tests/TestQStringx.cpp +index 7b96d83ae9..010db2252e 100644 +--- a/tests/TestQStringx.cpp ++++ b/tests/TestQStringx.cpp +@@ -28,7 +28,7 @@ + QTEST_GUILESS_MAIN( TestQStringx ) + + //required for Debug.h +-QMutex Debug::mutex; ++QRecursiveMutex Debug::mutex; + + TestQStringx::TestQStringx() + { +-- +GitLab + + +From 413efb028f41808e9a59166805f4a8ec73737237 Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Thu, 9 Mar 2023 17:33:54 +0200 +Subject: [PATCH 2/8] Use more-recently-deprecated codepaths. + +KDeclarative::setupBindings() is deprecated since 5.45 and current +KF5_MIN_VERSION is 5.57, so this is probably a feasible thing to do. +--- + src/context/ContextView.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/context/ContextView.cpp b/src/context/ContextView.cpp +index 9e3ba064d2..1aa3fc70af 100644 +--- a/src/context/ContextView.cpp ++++ b/src/context/ContextView.cpp +@@ -60,7 +60,8 @@ ContextView::ContextView( QWidget *parent ) + + KDeclarative::KDeclarative decl; + decl.setDeclarativeEngine( engine() ); +- decl.setupBindings(); ++ engine()->rootContext()->setContextObject( new KLocalizedContext( this ) ); ++ decl.setupEngine( engine() ); + + connect( this, &QQuickWidget::statusChanged, this, &ContextView::slotStatusChanged ); + connect( The::paletteHandler(), &PaletteHandler::newPalette, this, &ContextView::updatePalette ); +-- +GitLab + + +From f212bcb2466a2faee48ff43c631a67335c42b2f0 Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Thu, 9 Mar 2023 17:39:18 +0200 +Subject: [PATCH 3/8] Port away from deprecated QDesktopWidget::numScreens. + +Replace with QGuiApplication::screens() based approaches as instructed on +https://doc.qt.io/qt-5/qdesktopwidget-obsolete.html#numScreens +--- + src/configdialog/dialogs/NotificationsConfig.cpp | 2 +- + src/widgets/Osd.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/configdialog/dialogs/NotificationsConfig.cpp b/src/configdialog/dialogs/NotificationsConfig.cpp +index 0c16fdcb17..00a15f6bef 100644 +--- a/src/configdialog/dialogs/NotificationsConfig.cpp ++++ b/src/configdialog/dialogs/NotificationsConfig.cpp +@@ -55,7 +55,7 @@ NotificationsConfig::NotificationsConfig( Amarok2ConfigDialog* parent ) + + connect( m_osdPreview, &OSDPreviewWidget::positionChanged, this, &NotificationsConfig::slotPositionChanged ); + +- const int numScreens = QApplication::desktop()->numScreens(); ++ const int numScreens = QApplication::screens().size(); + for( int i = 0; i < numScreens; i++ ) + kcfg_OsdScreen->addItem( QString::number( i ) ); + +diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp +index dc1cf722e3..4de9749a76 100644 +--- a/src/widgets/Osd.cpp ++++ b/src/widgets/Osd.cpp +@@ -463,7 +463,7 @@ OSDWidget::setTextColor(const QColor& color) + void + OSDWidget::setScreen( int screen ) + { +- const int n = QApplication::desktop()->numScreens(); ++ const int n = QApplication::screens().size(); + m_screen = ( screen >= n ) ? n - 1 : screen; + } + +-- +GitLab + + +From d9cf76b03ea64bc7fa4c40a65f4de2fdc6d57fdc Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Thu, 9 Mar 2023 18:34:21 +0200 +Subject: [PATCH 4/8] Avoid some warnings from a TODO function. + +--- + src/scripting/scriptengine/AmarokLyricsScript.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/scripting/scriptengine/AmarokLyricsScript.cpp b/src/scripting/scriptengine/AmarokLyricsScript.cpp +index d4b5eedd5a..fae437130d 100644 +--- a/src/scripting/scriptengine/AmarokLyricsScript.cpp ++++ b/src/scripting/scriptengine/AmarokLyricsScript.cpp +@@ -97,6 +97,8 @@ AmarokLyricsScript::escape( const QString &str ) + void + AmarokLyricsScript::setLyricsForTrack( const QString &trackUrl, const QString &lyrics ) const + { ++ Q_UNUSED( trackUrl ); ++ Q_UNUSED( lyrics ); + /* TODO - convert method invocation below + LyricsManager::instance()->setLyricsForTrack( trackUrl, lyrics ); + */ +-- +GitLab + + +From 3dd0add1d17d52132db13ef74f74034d14c4ffb6 Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Thu, 9 Mar 2023 18:39:01 +0200 +Subject: [PATCH 5/8] Use non-deprecated signals. + +Introduced in Qt 5.15 ( https://doc.qt.io/qt-5/qsignalmapper.html#mappedObject +https://doc.qt.io/qt-5/qsignalmapper.html#mappedString ), which is currently +the minimum version for us. +--- + src/network/NetworkAccessViewer.cpp | 2 +- + src/playlistgenerator/PresetEditDialog.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/network/NetworkAccessViewer.cpp b/src/network/NetworkAccessViewer.cpp +index 38f50ed038..5454ab8819 100644 +--- a/src/network/NetworkAccessViewer.cpp ++++ b/src/network/NetworkAccessViewer.cpp +@@ -33,7 +33,7 @@ NetworkAccessViewer::NetworkAccessViewer( QWidget *parent ) + networkRequestsDialog->setupUi(dialog); + + mapper = new QSignalMapper(this); +- connect( mapper, QOverload::of(&QSignalMapper::mapped), ++ connect( mapper, QOverload::of(&QSignalMapper::mappedObject), + this, &NetworkAccessViewer::requestFinished ); + + connect( networkRequestsDialog->requestList, &QTreeWidget::currentItemChanged, this, &NetworkAccessViewer::showItemDetails ); +diff --git a/src/playlistgenerator/PresetEditDialog.cpp b/src/playlistgenerator/PresetEditDialog.cpp +index 7ef060ce22..fcf0f8e2d0 100644 +--- a/src/playlistgenerator/PresetEditDialog.cpp ++++ b/src/playlistgenerator/PresetEditDialog.cpp +@@ -52,7 +52,7 @@ APG::PresetEditDialog::PresetEditDialog( const PresetPtr &p ) + ui.constraintTreeView->expandAll(); + + QSignalMapper* adderMapper = new QSignalMapper( this ); +- connect( adderMapper, QOverload::of(&QSignalMapper::mapped), ++ connect( adderMapper, QOverload::of(&QSignalMapper::mappedString), + this, &PresetEditDialog::addNode ); + + QMenuBar* menuBar_Actions = new QMenuBar( this ); +-- +GitLab + + +From 5f27e8531b603b82aa7d3371868e2425a1095b77 Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Thu, 9 Mar 2023 18:51:44 +0200 +Subject: [PATCH 6/8] Port away from deprecated TagLib::String::Null. + +As instructed on https://taglib.org/api/classTagLib_1_1String.html#ae5f42b9ceca1b59814cffc2eddff3d09 +and https://taglib.org/api/classTagLib_1_1String.html#a8c35a7ec22fdfcf8afaf3edee01a01e0 +--- + shared/tag_helpers/APETagHelper.cpp | 2 +- + shared/tag_helpers/ASFTagHelper.cpp | 2 +- + shared/tag_helpers/ID3v2TagHelper.cpp | 2 +- + shared/tag_helpers/MP4TagHelper.cpp | 2 +- + shared/tag_helpers/StringHelper.cpp | 2 +- + shared/tag_helpers/VorbisCommentTagHelper.cpp | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/shared/tag_helpers/APETagHelper.cpp b/shared/tag_helpers/APETagHelper.cpp +index eee34e05a3..66e8510a53 100644 +--- a/shared/tag_helpers/APETagHelper.cpp ++++ b/shared/tag_helpers/APETagHelper.cpp +@@ -84,7 +84,7 @@ APETagHelper::setTags( const Meta::FieldHash &changes ) + QVariant value = changes.value( key ); + TagLib::String field = fieldName( key ); + +- if( !field.isNull() && !field.isEmpty() ) ++ if( !field.isEmpty() ) + { + if( key == Meta::valRating ) + m_tag->addValue( field, Qt4QStringToTString( QString::number( value.toFloat() / 10.0 ) ) ); +diff --git a/shared/tag_helpers/ASFTagHelper.cpp b/shared/tag_helpers/ASFTagHelper.cpp +index 241e93d714..772728b58f 100644 +--- a/shared/tag_helpers/ASFTagHelper.cpp ++++ b/shared/tag_helpers/ASFTagHelper.cpp +@@ -107,7 +107,7 @@ ASFTagHelper::setTags( const Meta::FieldHash &changes ) + QVariant value = changes.value( key ); + TagLib::String field = fieldName( key ); + +- if( !field.isNull() && !field.isEmpty() ) ++ if( !field.isEmpty() ) + { + if( key == Meta::valHasCover ) + continue; +diff --git a/shared/tag_helpers/ID3v2TagHelper.cpp b/shared/tag_helpers/ID3v2TagHelper.cpp +index ea9281dc30..7dd98062bc 100644 +--- a/shared/tag_helpers/ID3v2TagHelper.cpp ++++ b/shared/tag_helpers/ID3v2TagHelper.cpp +@@ -187,7 +187,7 @@ ID3v2TagHelper::setTags( const Meta::FieldHash &changes ) + QVariant value = changes.value( key ); + TagLib::ByteVector field( fieldName( key ).toCString() ); + +- if( !field.isNull() && !field.isEmpty() ) ++ if( !field.isEmpty() ) + { + if( key == Meta::valHasCover ) + continue; +diff --git a/shared/tag_helpers/MP4TagHelper.cpp b/shared/tag_helpers/MP4TagHelper.cpp +index 7a28b4473c..54d192ffae 100644 +--- a/shared/tag_helpers/MP4TagHelper.cpp ++++ b/shared/tag_helpers/MP4TagHelper.cpp +@@ -106,7 +106,7 @@ MP4TagHelper::setTags( const Meta::FieldHash &changes ) + QVariant value = changes.value( key ); + TagLib::String field = fieldName( key ); + +- if( !field.isNull() && !field.isEmpty() ) ++ if( !field.isEmpty() ) + { + // http://gitorious.org/~jefferai/xdg-specs/jefferais-xdg-specs/blobs/mediaspecs/specifications/FMPSpecs/specification.txt sais that mp4 tags should be saved as strings + if( key == Meta::valHasCover ) +diff --git a/shared/tag_helpers/StringHelper.cpp b/shared/tag_helpers/StringHelper.cpp +index fd7e49b432..a8d2aa3e97 100644 +--- a/shared/tag_helpers/StringHelper.cpp ++++ b/shared/tag_helpers/StringHelper.cpp +@@ -36,7 +36,7 @@ Meta::Tag::Qt4QStringToTString( const QString &str ) + { + // Declare new var to prevent double call of trimmed func + QString val = str.trimmed(); +- return val.isEmpty() ? TagLib::String::null : TagLib::String( val.toUtf8().data(), TagLib::String::UTF8 ); ++ return val.isEmpty() ? TagLib::String() : TagLib::String( val.toUtf8().data(), TagLib::String::UTF8 ); + } + + QString +diff --git a/shared/tag_helpers/VorbisCommentTagHelper.cpp b/shared/tag_helpers/VorbisCommentTagHelper.cpp +index f3ff542db6..95dc041d8a 100644 +--- a/shared/tag_helpers/VorbisCommentTagHelper.cpp ++++ b/shared/tag_helpers/VorbisCommentTagHelper.cpp +@@ -151,7 +151,7 @@ VorbisCommentTagHelper::setTags( const Meta::FieldHash &changes ) + QVariant value = changes.value( key ); + TagLib::String field = fieldName( key ); + +- if( !field.isNull() && !field.isEmpty() ) ++ if( !field.isEmpty() ) + { + if( key == Meta::valHasCover ) + continue; +-- +GitLab + + +From 45fbce7eff1d4e38751db49f6ee0c4ede884e44e Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Thu, 9 Mar 2023 19:22:02 +0200 +Subject: [PATCH 7/8] Port away from KDiskFreeSpaceInfo. + +Deprecated in KF 5.88. QStorageInfo is available since Qt 5.4, and actually +provides better functionality with bytesAvailable() instead of just bytesFree(). +--- + .../db/sql/SqlCollectionLocation.cpp | 24 +++++++------------ + .../ipodcollection/IpodCollection.cpp | 8 +++---- + .../MediaDeviceCollection.cpp | 2 -- + .../umscollection/UmsCollection.cpp | 6 ++--- + 4 files changed, 16 insertions(+), 24 deletions(-) + +diff --git a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp +index 7f761432ef..2f6835c073 100644 +--- a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp ++++ b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp +@@ -38,8 +38,8 @@ + #include + #include + #include ++#include + +-#include + #include + #include + #include +@@ -90,13 +90,7 @@ SqlCollectionLocation::isWritable() const + QStringList folders = actualLocation(); + foreach( const QString &path, folders ) + { +- float used = KDiskFreeSpaceInfo::freeSpaceInfo( path ).used(); +- float total = KDiskFreeSpaceInfo::freeSpaceInfo( path ).size(); +- +- if( total <= 0 ) // protect against div by zero +- continue; //How did this happen? +- +- float free_space = total - used; ++ float free_space = QStorageInfo( path ).bytesAvailable(); + if( free_space >= 500*1000*1000 ) // ~500 megabytes + path_exists_with_space = true; + +@@ -298,18 +292,18 @@ SqlCollectionLocation::showDestinationDialog( const Meta::TrackList &tracks, + if( path.isEmpty() ) + continue; + debug() << "Path" << path; +- KDiskFreeSpaceInfo spaceInfo = KDiskFreeSpaceInfo::freeSpaceInfo( path ); ++ QStorageInfo spaceInfo(path); + if( !spaceInfo.isValid() ) + continue; + +- KIO::filesize_t totalCapacity = spaceInfo.size(); +- KIO::filesize_t used = spaceInfo.used(); ++ KIO::filesize_t totalCapacity = spaceInfo.bytesTotal(); ++ KIO::filesize_t used = totalCapacity - spaceInfo.bytesFree(); + +- KIO::filesize_t freeSpace = totalCapacity - used; ++ KIO::filesize_t availableSpace = spaceInfo.bytesAvailable(); + + debug() << "used:" << used; + debug() << "total:" << totalCapacity; +- debug() << "Free space" << freeSpace; ++ debug() << "Available space" << availableSpace; + debug() << "transfersize" << transferSize; + + if( totalCapacity <= 0 ) // protect against div by zero +@@ -320,8 +314,8 @@ SqlCollectionLocation::showDestinationDialog( const Meta::TrackList &tracks, + // since bad things happen when drives become totally full + // we make sure there is at least ~500MB left + // finally, ensure the path is writable +- debug() << ( freeSpace - transferSize ); +- if( ( freeSpace - transferSize ) > 1024*1024*500 && info.isWritable() ) ++ debug() << ( availableSpace - transferSize ); ++ if( ( availableSpace - transferSize ) > 1024*1024*500 && info.isWritable() ) + available_folders << path; + } + +diff --git a/src/core-impl/collections/ipodcollection/IpodCollection.cpp b/src/core-impl/collections/ipodcollection/IpodCollection.cpp +index cd555ca47f..1aab224054 100644 +--- a/src/core-impl/collections/ipodcollection/IpodCollection.cpp ++++ b/src/core-impl/collections/ipodcollection/IpodCollection.cpp +@@ -34,7 +34,6 @@ + #include "core-impl/collections/support/MemoryQueryMaker.h" + #include "playlistmanager/PlaylistManager.h" + +-#include + #include + #include + #include +@@ -47,6 +46,7 @@ + #include + #include + #include ++#include + #include + + +@@ -261,19 +261,19 @@ IpodCollection::icon() const + bool + IpodCollection::hasCapacity() const + { +- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).isValid(); ++ return QStorageInfo( m_mountPoint ).isValid(); + } + + float + IpodCollection::usedCapacity() const + { +- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).used(); ++ return QStorageInfo( m_mountPoint ).bytesTotal() - QStorageInfo( m_mountPoint ).bytesFree(); + } + + float + IpodCollection::totalCapacity() const + { +- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).size(); ++ return QStorageInfo( m_mountPoint ).bytesTotal(); + } + + Collections::CollectionLocation* +diff --git a/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp b/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp +index 0eec859ffd..f6795e733a 100644 +--- a/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp ++++ b/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp +@@ -24,8 +24,6 @@ + #include "core-impl/collections/mediadevicecollection/support/MediaDeviceInfo.h" + #include "core-impl/collections/support/MemoryQueryMaker.h" + +-#include +- + using namespace Collections; + + MediaDeviceCollectionFactoryBase::MediaDeviceCollectionFactoryBase( ConnectionAssistant* assistant ) +diff --git a/src/core-impl/collections/umscollection/UmsCollection.cpp b/src/core-impl/collections/umscollection/UmsCollection.cpp +index 32873350e9..0ac4b438fb 100644 +--- a/src/core-impl/collections/umscollection/UmsCollection.cpp ++++ b/src/core-impl/collections/umscollection/UmsCollection.cpp +@@ -44,12 +44,12 @@ + #include + #include + ++#include + #include + #include + #include + + #include +-#include + + + UmsCollectionFactory::UmsCollectionFactory() +@@ -407,13 +407,13 @@ UmsCollection::hasCapacity() const + float + UmsCollection::usedCapacity() const + { +- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).used(); ++ return QStorageInfo( m_mountPoint ).bytesTotal()-QStorageInfo( m_mountPoint ).bytesFree(); + } + + float + UmsCollection::totalCapacity() const + { +- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).size(); ++ return QStorageInfo( m_mountPoint ).bytesTotal(); + } + + CollectionLocation * +-- +GitLab + + +From 7b1af767ba420e175a0f2f3c0486a3e49730c33e Mon Sep 17 00:00:00 2001 +From: Tuomas Nurmi +Date: Fri, 10 Mar 2023 19:41:19 +0200 +Subject: [PATCH 8/8] Update KF5 and Qt5 requirements in README. + +--- + README | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/README b/README +index f2639a2a7c..346094923f 100644 +--- a/README ++++ b/README +@@ -39,14 +39,14 @@ not be entirely up to date. You can always look at CMakeLists.txt to discover + the most recent dependencies. + + Required +- * KDE Frameworks 5.41 (or newer, for an exact list look at CMakeLists.txt) ++ * KDE Frameworks 5.57 (or newer, for an exact list look at CMakeLists.txt) + https://www.kde.org + + * Phonon 4.6.60 (or newer with support for Qt5) and one of the following backends: + * phonon-gstreamer 4.6.3 (or newer) + * phonon-vlc 0.6.1 (or newer; as of 0.6.1 doesn't yet play Audio CDs, bug 313046) + +- * Qt 5.10 (or newer) ++ * Qt 5.15 + https://qt.io/ + + * TagLib 1.7 (or newer) +-- +GitLab + diff --git a/revert.patch b/revert.patch new file mode 100644 index 0000000..bd4bb89 --- /dev/null +++ b/revert.patch @@ -0,0 +1,31 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5d9b0944e0..99c22bda33 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -188,8 +188,13 @@ if( CMAKE_BUILD_TYPE_TOLOWER MATCHES debug ) + add_definitions(-Wall -Wextra) + endif() + ++# this needs to be here because also code in shared/ needs config.h. This is also the ++# reason why various checks are above why they belong under if( WITH_PLAYER ) ++configure_file( shared/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/shared/config.h ) ++ + add_subdirectory( data ) + add_subdirectory( images ) ++add_subdirectory( shared ) + + if( WITH_PLAYER ) + find_package(X11) +@@ -309,12 +314,6 @@ if( WITH_PLAYER ) + + endif() + +-# this needs to be here because also code in shared/ needs config.h. This is also the +-# reason why various checks are above why they belong under if( WITH_PLAYER ) +-configure_file( shared/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/shared/config.h ) +- +-add_subdirectory( shared ) +- + if( WITH_UTILITIES ) + add_subdirectory( utilities ) + endif() diff --git a/sources b/sources index 291ed11..283aa6a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-2.9.0.tar.xz) = 6db9a2635725c87280956ad0c4ca199b585c65c688fa5199c6e6ebe238548f47ffa4e465fde8edb415f159828ec5102d394dbfcdd15ae9999f9c378e7bce8846 +SHA512 (amarok-387c30de482522774c28dc02c2636cd41c8334e9.tar.bz2) = b474d591ba106002e202624c76c8ecde1014061c40a155875ecc65c0a53493d23af565e3facabc9de3403e735044862dc53b7d9bd85cb61d1ee8212082734af4 From 07230ef2afe6182af8046cbeaad09f2003db9802 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 12:48:45 +0000 Subject: [PATCH 18/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 54a0617..751bd4b 100644 --- a/amarok.spec +++ b/amarok.spec @@ -7,7 +7,7 @@ Name: amarok Summary: Media player Version: 2.9.71%{?commitdate:^git%{commitdate}.%{shortcommit}} -Release: 1%{?dist} +Release: 2%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only or GPL-3.0-only @@ -255,6 +255,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 2.9.71^git20231231.387c30d-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Tue Jan 02 2024 Yaakov Selkowitz - 2.9.71^20231231git387c30d-1 - Update to KF5-based git snapshot From 31c314bca6bcce7e990187146f92ddcb8e6227be Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 22:58:19 +0000 Subject: [PATCH 19/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 751bd4b..9786101 100644 --- a/amarok.spec +++ b/amarok.spec @@ -7,7 +7,7 @@ Name: amarok Summary: Media player Version: 2.9.71%{?commitdate:^git%{commitdate}.%{shortcommit}} -Release: 2%{?dist} +Release: 3%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only or GPL-3.0-only @@ -255,6 +255,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Mon Jan 22 2024 Fedora Release Engineering - 2.9.71^git20231231.387c30d-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 2.9.71^git20231231.387c30d-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From cf93aac98f532a8d61697686912299a971ab6502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Mon, 19 Feb 2024 05:43:07 +0000 Subject: [PATCH 20/38] Correct SPDX license The operator in the SPDX formula has to be uppercase according to the specification. --- amarok.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 9786101..8d6b186 100644 --- a/amarok.spec +++ b/amarok.spec @@ -10,7 +10,7 @@ Version: 2.9.71%{?commitdate:^git%{commitdate}.%{shortcommit}} Release: 3%{?dist} # KDE e.V. may determine that future GPL versions are accepted -License: GPL-2.0-only or GPL-3.0-only +License: GPL-2.0-only OR GPL-3.0-only Url: https://amarok.kde.org/ %if 0%{?commitdate} Source0: https://invent.kde.org/multimedia/amarok/-/archive/%{commit}/amarok-%{commit}.tar.bz2 From 4cd84c70123a2a9afd6a9b4abf3cba121811e71c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Deop=20i=20Argem=C3=AD?= Date: Sun, 31 Mar 2024 22:46:37 +0200 Subject: [PATCH 21/38] feat: update to latest snapshot --- .gitignore | 2 + amarok.spec | 15 +- ...-settings-functionalities-on-Wayland.patch | 285 ------ refresh-deprecated-codepaths.patch | 854 ------------------ sources | 2 +- 5 files changed, 9 insertions(+), 1149 deletions(-) delete mode 100644 port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch delete mode 100644 refresh-deprecated-codepaths.patch diff --git a/.gitignore b/.gitignore index 39948e4..b6c39fc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /amarok-2.8.90.tar.xz /amarok-2.9.0.tar.xz /amarok-387c30de482522774c28dc02c2636cd41c8334e9.tar.bz2 +/amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.gz +/amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.bz2 diff --git a/amarok.spec b/amarok.spec index 8d6b186..12047ba 100644 --- a/amarok.spec +++ b/amarok.spec @@ -1,13 +1,13 @@ -%global commit 387c30de482522774c28dc02c2636cd41c8334e9 +%global commit 7ec45dddb109fd391b900dad8705dacd4088a3c3 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20231231 +%global commitdate 20240330 %global __provides_exclude_from ^%{_kf5_qmldir}/org/kde/amarok/.*\.so$ Name: amarok Summary: Media player Version: 2.9.71%{?commitdate:^git%{commitdate}.%{shortcommit}} -Release: 3%{?dist} +Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -22,12 +22,6 @@ Source0: https://download.kde.org/%{stable_kf5}/amarok/%{version}/src/amarok-%{v # it causes amarok to crash on launch for some reason Patch1: revert.patch -# https://invent.kde.org/multimedia/amarok/-/merge_requests/55 -Patch2: port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch - -# https://invent.kde.org/multimedia/amarok/-/merge_requests/53 -Patch3: refresh-deprecated-codepaths.patch - # Needed because not every distro installs mygpo-qt5 under the same path. # For instance, Fedora namespaces qt5 Patch10: fix-mygpo-qt5-compilation.patch @@ -255,6 +249,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Sun Mar 31 2024 Marc Deop i Argemí - 2.9.71^git20240330.7ec45dd-1 +- Update to snapshot 7ec45dddb109fd391b900dad8705dacd4088a3c3 + * Mon Jan 22 2024 Fedora Release Engineering - 2.9.71^git20231231.387c30d-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild diff --git a/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch b/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch deleted file mode 100644 index d712965..0000000 --- a/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch +++ /dev/null @@ -1,285 +0,0 @@ -From c60f5dab3729d587eb025afefaf1f5555706368d Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Thu, 9 Mar 2023 18:07:10 +0200 -Subject: [PATCH 1/3] Port away from deprecated QDesktopWidget functions. - -Following the instructions on https://doc.qt.io/qt-5/qdesktopwidget-obsolete.html ---- - src/covermanager/CoverManager.cpp | 4 ++-- - src/covermanager/CoverViewDialog.cpp | 3 +-- - src/dialogs/OrganizeCollectionDialog.cpp | 4 ++-- - src/widgets/Osd.cpp | 22 +++++++++++----------- - src/widgets/PixmapViewer.cpp | 6 +++--- - 5 files changed, 19 insertions(+), 20 deletions(-) - -diff --git a/src/covermanager/CoverManager.cpp b/src/covermanager/CoverManager.cpp -index e67a89416a..eb0d63f637 100644 ---- a/src/covermanager/CoverManager.cpp -+++ b/src/covermanager/CoverManager.cpp -@@ -39,11 +39,11 @@ - - #include - #include --#include - #include - #include //showCoverMenu() - #include - #include -+#include - #include - #include - #include -@@ -228,7 +228,7 @@ CoverManager::slotContinueConstruction() //SLOT - - connect( m_progress, &CompoundProgressBar::allDone, this, &CoverManager::progressAllDone ); - -- QSize size = QApplication::desktop()->screenGeometry( this ).size() / 1.5; -+ QSize size = this->screen()->size() / 1.5; - QSize sz = Amarok::config( "Cover Manager" ).readEntry( "Window Size", size ); - resize( sz.width(), sz.height() ); - -diff --git a/src/covermanager/CoverViewDialog.cpp b/src/covermanager/CoverViewDialog.cpp -index bb01e1f7fb..d3a1b96f7e 100644 ---- a/src/covermanager/CoverViewDialog.cpp -+++ b/src/covermanager/CoverViewDialog.cpp -@@ -25,7 +25,6 @@ - #include - #include - --#include - #include - #include - -@@ -72,7 +71,7 @@ CoverViewDialog::zoomFactorChanged( qreal value ) - void - CoverViewDialog::createViewer( const QImage &image, const QWidget *widget ) - { -- int screenNumber = QApplication::desktop()->screenNumber( widget ); -+ int screenNumber = QApplication::screens().indexOf( widget->screen() ); - PixmapViewer *pixmapViewer = new PixmapViewer( this, QPixmap::fromImage(image), screenNumber ); - QHBoxLayout *layout = new QHBoxLayout( this ); - layout->addWidget( pixmapViewer ); -diff --git a/src/dialogs/OrganizeCollectionDialog.cpp b/src/dialogs/OrganizeCollectionDialog.cpp -index fb59c98224..cfda1f109c 100644 ---- a/src/dialogs/OrganizeCollectionDialog.cpp -+++ b/src/dialogs/OrganizeCollectionDialog.cpp -@@ -30,9 +30,9 @@ - #include "ui_OrganizeCollectionDialogBase.h" - - #include --#include - #include - #include -+#include - #include - - #include -@@ -84,7 +84,7 @@ OrganizeCollectionWidget::OrganizeCollectionWidget( QWidget *parent ) - - // show some non-editable tags before and after - // but only if screen size is large enough (BR: 283361) -- const QRect screenRect = QApplication::desktop()->screenGeometry(); -+ const QRect screenRect = QApplication::primaryScreen()->geometry(); - if( screenRect.width() >= 1024 ) - { - m_schemaLineLayout->insertWidget( 0, -diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp -index dc1cf722e3..062f3ceeb9 100644 ---- a/src/widgets/Osd.cpp -+++ b/src/widgets/Osd.cpp -@@ -45,6 +45,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -245,7 +246,7 @@ OSDWidget::determineMetrics( const int M ) - // determine a sensible maximum size, don't cover the whole desktop or cross the screen - const QSize margin( ( M + MARGIN ) * 2, ( M + MARGIN ) * 2 ); //margins - const QSize image = m_cover.isNull() ? QSize( 0, 0 ) : minImageSize; -- const QSize max = QApplication::desktop()->screen( m_screen )->size() - margin; -+ const QSize max = QApplication::screens()[ screen() ]->size() - margin; - - // If we don't do that, the boundingRect() might not be suitable for drawText() (Qt issue N67674) - m_text.replace( QRegExp( " +\n" ), "\n" ); -@@ -311,7 +312,7 @@ OSDWidget::determineMetrics( const int M ) - rect.adjust( -M, -M, M, M ); - - const QSize newSize = rect.size(); -- const QRect screen = QApplication::desktop()->screenGeometry( m_screen ); -+ const QRect screenRect = QApplication::screens()[ screen() ]->geometry(); - QPoint newPos( MARGIN, m_yOffset ); - - switch( m_alignment ) -@@ -320,25 +321,25 @@ OSDWidget::determineMetrics( const int M ) - break; - - case Right: -- newPos.rx() = screen.width() - MARGIN - newSize.width(); -+ newPos.rx() = screenRect.width() - MARGIN - newSize.width(); - break; - - case Center: -- newPos.ry() = ( screen.height() - newSize.height() ) / 2; -+ newPos.ry() = ( screenRect.height() - newSize.height() ) / 2; - - Q_FALLTHROUGH(); - - case Middle: -- newPos.rx() = ( screen.width() - newSize.width() ) / 2; -+ newPos.rx() = ( screenRect.width() - newSize.width() ) / 2; - break; - } - - //ensure we don't dip below the screen -- if ( newPos.y() + newSize.height() > screen.height() - MARGIN ) -- newPos.ry() = screen.height() - MARGIN - newSize.height(); -+ if ( newPos.y() + newSize.height() > screenRect.height() - MARGIN ) -+ newPos.ry() = screenRect.height() - MARGIN - newSize.height(); - - // correct for screen position -- newPos += screen.topLeft(); -+ newPos += screenRect.topLeft(); - - return QRect( newPos, rect.size() ); - } -@@ -551,7 +552,7 @@ OSDPreviewWidget::mouseMoveEvent( QMouseEvent *e ) - { - // Here we implement a "snap-to-grid" like positioning system for the preview widget - -- const QRect screenRect = QApplication::desktop()->screenGeometry( screen() ); -+ const QRect screenRect = QApplication::screens()[ screen() ]->geometry(); - const uint hcenter = screenRect.width() / 2; - const uint eGlobalPosX = e->globalPos().x() - screenRect.left(); - const uint snapZone = screenRect.width() / 24; -@@ -592,8 +593,7 @@ OSDPreviewWidget::mouseMoveEvent( QMouseEvent *e ) - move( destination ); - - // compute current Position && Y-offset -- QDesktopWidget *desktop = QApplication::desktop(); -- const int currentScreen = desktop->screenNumber( pos() ); -+ const int currentScreen = QGuiApplication::screens().indexOf( QGuiApplication::screenAt( pos() ) ); - - // set new data - OSDWidget::setScreen( currentScreen ); -diff --git a/src/widgets/PixmapViewer.cpp b/src/widgets/PixmapViewer.cpp -index 158540f541..332dbc5d5e 100644 ---- a/src/widgets/PixmapViewer.cpp -+++ b/src/widgets/PixmapViewer.cpp -@@ -21,11 +21,11 @@ - - #include - --#include - #include - #include - #include - #include -+#include - #include - - -@@ -35,8 +35,8 @@ PixmapViewer::PixmapViewer( QWidget *parent, const QPixmap &pix, int screenNumbe - { - m_zoomFactor = 1.0; // initial zoom - -- int screenWidth = QApplication::desktop()->availableGeometry( screenNumber ).width(); -- int screenHeight = QApplication::desktop()->availableGeometry( screenNumber ).height(); -+ int screenWidth = QApplication::screens()[ screenNumber ]->availableGeometry().width(); -+ int screenHeight = QApplication::screens()[ screenNumber ]->availableGeometry().height(); - if( screenWidth < m_pixmap.width() || screenHeight < m_pixmap.height() ) - { - qreal zoomFactorX = qreal(screenWidth) / m_pixmap.width(); --- -GitLab - - -From b95c439ebba30ba257ba75d060b237a293415ea8 Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Sat, 11 Mar 2023 15:22:18 +0200 -Subject: [PATCH 2/3] Disable OSD options not available on Wayland. - ---- - src/configdialog/dialogs/NotificationsConfig.cpp | 6 +++++- - src/widgets/Osd.cpp | 8 ++++++-- - 2 files changed, 11 insertions(+), 3 deletions(-) - -diff --git a/src/configdialog/dialogs/NotificationsConfig.cpp b/src/configdialog/dialogs/NotificationsConfig.cpp -index 0c16fdcb17..1c3387206a 100644 ---- a/src/configdialog/dialogs/NotificationsConfig.cpp -+++ b/src/configdialog/dialogs/NotificationsConfig.cpp -@@ -51,7 +51,11 @@ NotificationsConfig::NotificationsConfig( Amarok2ConfigDialog* parent ) - #endif - - // Enable/disable the translucency option depending on availability of desktop compositing -- kcfg_OsdUseTranslucency->setEnabled( KWindowSystem::compositingActive() ); -+ // As opacity functionality is not available on Wayland at least with current implementation, don't enable option there -+ kcfg_OsdUseTranslucency->setEnabled( !KWindowSystem::isPlatformWayland() && KWindowSystem::compositingActive() ); -+ -+ // Also disable other functionalities not (yet?) available on Wayland -+ kcfg_OsdScreen->setEnabled( !KWindowSystem::isPlatformWayland() ); - - connect( m_osdPreview, &OSDPreviewWidget::positionChanged, this, &NotificationsConfig::slotPositionChanged ); - -diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp -index 062f3ceeb9..e29a1b2347 100644 ---- a/src/widgets/Osd.cpp -+++ b/src/widgets/Osd.cpp -@@ -509,7 +509,9 @@ OSDPreviewWidget::OSDPreviewWidget( QWidget *parent ) - setDuration( 0 ); - setImage( Amarok::icon() ); - setTranslucent( AmarokConfig::osdUseTranslucency() ); -- setText( i18n( "On-Screen-Display preview\nDrag to reposition" ) ); -+ // Drag-positioning not available on Wayland, so let's hide any untrue ideas about dragging -+ // TODO maybe one day Wayland will be first-class OSD citizen -+ setText( KWindowSystem::isPlatformWayland() ? i18n ( "Preview" ) : i18n( "On-Screen-Display preview\nDrag to reposition" ) ); - } - - void -@@ -517,7 +519,9 @@ OSDPreviewWidget::mousePressEvent( QMouseEvent *event ) - { - m_dragYOffset = event->pos(); - -- if( event->button() == Qt::LeftButton && !m_dragging ) -+ // As we can't position OSD on Wayland at the moment, and grabbing mouse doesn't quite work -+ // either, let's disable this for now. -+ if( !KWindowSystem::isPlatformWayland() && event->button() == Qt::LeftButton && !m_dragging ) - { - grabMouse( Qt::SizeAllCursor ); - m_dragging = true; --- -GitLab - - -From d70177ab4a57c3aecf63cfd3937044c575ee1a6a Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Sat, 11 Mar 2023 17:58:59 +0200 -Subject: [PATCH 3/3] Remove obsolete ifdef. - -Apparently Q_WS's are not defined any more. Turns out, if run, the setType -actually makes the OSD positioning to go totally bonkers on X11, so let's just -remove it. ---- - src/widgets/Osd.cpp | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp -index e29a1b2347..1eee135be4 100644 ---- a/src/widgets/Osd.cpp -+++ b/src/widgets/Osd.cpp -@@ -87,10 +87,6 @@ OSDWidget::OSDWidget( QWidget *parent, const char *name ) - setObjectName( name ); - setFocusPolicy( Qt::NoFocus ); - -- #ifdef Q_WS_X11 -- KWindowSystem::setType( winId(), NET::Notification ); -- #endif -- - m_timer->setSingleShot( true ); - connect( m_timer, &QTimer::timeout, this, &OSDWidget::hide ); - --- -GitLab - diff --git a/refresh-deprecated-codepaths.patch b/refresh-deprecated-codepaths.patch deleted file mode 100644 index 436f785..0000000 --- a/refresh-deprecated-codepaths.patch +++ /dev/null @@ -1,854 +0,0 @@ -From 33780eaddae9905a36ac96882c1ff1416a508082 Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Thu, 9 Mar 2023 13:58:44 +0200 -Subject: [PATCH 1/8] Make deprecated QMutex::Recursives QRecursiveMutexes. - -Reading https://doc.qt.io/qt-5/qrecursivemutex.html this should be -a pretty straightforward change. ---- - src/EngineController.cpp | 1 - - src/EngineController.h | 4 ++-- - src/core-impl/collections/db/sql/SqlMeta.cpp | 1 - - src/core-impl/collections/db/sql/SqlMeta.h | 4 ++-- - src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp | 1 - - src/core-impl/storage/sql/mysql-shared/MySqlStorage.h | 4 ++-- - src/core/playlists/Playlist.cpp | 4 +--- - src/core/playlists/Playlist.h | 6 +++--- - src/core/support/Debug.cpp | 4 ++-- - src/core/support/Debug.h | 4 ++-- - src/dynamic/biases/EchoNestBias.cpp | 1 - - src/dynamic/biases/EchoNestBias.h | 4 ++-- - src/importers/ImporterSqlConnection.cpp | 3 --- - src/importers/ImporterSqlConnection.h | 4 ++-- - src/services/lastfm/biases/LastFmBias.cpp | 1 - - src/services/lastfm/biases/LastFmBias.h | 4 ++-- - src/statusbar/CompoundProgressBar.cpp | 1 - - src/statusbar/CompoundProgressBar.h | 4 ++-- - tests/TestExpression.cpp | 2 +- - tests/TestQStringx.cpp | 2 +- - 20 files changed, 24 insertions(+), 35 deletions(-) - -diff --git a/src/EngineController.cpp b/src/EngineController.cpp -index 8eea4c5921..5dd8db9190 100644 ---- a/src/EngineController.cpp -+++ b/src/EngineController.cpp -@@ -84,7 +84,6 @@ EngineController::EngineController() - , m_tickInterval( 0 ) - , m_lastTickPosition( -1 ) - , m_lastTickCount( 0 ) -- , m_mutex( QMutex::Recursive ) - { - DEBUG_BLOCK - // ensure this object is created in a main thread -diff --git a/src/EngineController.h b/src/EngineController.h -index ca4ebfe132..0653868947 100644 ---- a/src/EngineController.h -+++ b/src/EngineController.h -@@ -27,7 +27,7 @@ - #include "playback/EqualizerController.h" - #include "core/meta/Meta.h" - --#include -+#include - #include - #include - #include -@@ -579,7 +579,7 @@ private: - qint64 m_lastTickPosition; - qint64 m_lastTickCount; - -- QMutex m_mutex; -+ QRecursiveMutex m_mutex; - - // FIXME: this variable should be updated when - // Phonon::BackendCapabilities::notifier()'s capabilitiesChanged signal is emitted -diff --git a/src/core-impl/collections/db/sql/SqlMeta.cpp b/src/core-impl/collections/db/sql/SqlMeta.cpp -index 5fd0b11abf..45e7513f3d 100644 ---- a/src/core-impl/collections/db/sql/SqlMeta.cpp -+++ b/src/core-impl/collections/db/sql/SqlMeta.cpp -@@ -1471,7 +1471,6 @@ SqlAlbum::SqlAlbum( Collections::SqlCollection *collection, int id, const QStrin - , m_unsetImageId( -1 ) - , m_tracksLoaded( NotLoaded ) - , m_suppressAutoFetch( false ) -- , m_mutex( QMutex::Recursive ) - { - Q_ASSERT( m_collection ); - Q_ASSERT( m_id > 0 ); -diff --git a/src/core-impl/collections/db/sql/SqlMeta.h b/src/core-impl/collections/db/sql/SqlMeta.h -index cf0204ff9e..dd385b1c50 100644 ---- a/src/core-impl/collections/db/sql/SqlMeta.h -+++ b/src/core-impl/collections/db/sql/SqlMeta.h -@@ -28,7 +28,7 @@ - - #include - #include --#include -+#include - #include - #include - #include -@@ -450,7 +450,7 @@ class AMAROK_SQLCOLLECTION_EXPORT SqlAlbum : public Meta::Album - bool m_suppressAutoFetch; - Meta::ArtistPtr m_artist; - Meta::TrackList m_tracks; -- mutable QMutex m_mutex; -+ mutable QRecursiveMutex m_mutex; - - //TODO: add album artist - -diff --git a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp -index e13a32951d..4b8cf3ca65 100644 ---- a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp -+++ b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp -@@ -90,7 +90,6 @@ QThreadStorage< ThreadInitializer* > ThreadInitializer::storage; - MySqlStorage::MySqlStorage() - : SqlStorage() - , m_db( nullptr ) -- , m_mutex( QMutex::Recursive ) - , m_debugIdent( "MySQL-none" ) - { - //Relevant code must be implemented in subclasses -diff --git a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h -index 2ff4fa1bec..7027072738 100644 ---- a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h -+++ b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h -@@ -22,7 +22,7 @@ - #include - - --#include -+#include - #include - - #ifdef Q_WS_WIN -@@ -87,7 +87,7 @@ class MySqlStorage: public SqlStorage - MYSQL* m_db; - - /** Mutex protecting the m_lastErrors list */ -- mutable QMutex m_mutex; -+ mutable QRecursiveMutex m_mutex; - - QString m_debugIdent; - QStringList m_lastErrors; -diff --git a/src/core/playlists/Playlist.cpp b/src/core/playlists/Playlist.cpp -index 06dee458a5..a77c726cd8 100644 ---- a/src/core/playlists/Playlist.cpp -+++ b/src/core/playlists/Playlist.cpp -@@ -21,7 +21,6 @@ - using namespace Playlists; - - PlaylistObserver::PlaylistObserver() -- : m_playlistSubscriptionsMutex( QMutex::Recursive ) // prevent deadlocks - { - } - -@@ -73,8 +72,7 @@ void PlaylistObserver::tracksLoaded( PlaylistPtr ) - } - - Playlist::Playlist() -- : m_observersMutex( QMutex::Recursive ) // prevent deadlocks -- , m_async( true ) -+ : m_async( true ) - { - } - -diff --git a/src/core/playlists/Playlist.h b/src/core/playlists/Playlist.h -index 1ff92df5a1..6a0b25965a 100644 ---- a/src/core/playlists/Playlist.h -+++ b/src/core/playlists/Playlist.h -@@ -22,7 +22,7 @@ - - #include - #include --#include -+#include - #include - #include - #include -@@ -128,7 +128,7 @@ namespace Playlists - - private: - QSet m_playlistSubscriptions; -- QMutex m_playlistSubscriptionsMutex; // guards access to m_playlistSubscriptions -+ QRecursiveMutex m_playlistSubscriptionsMutex; // guards access to m_playlistSubscriptions - }; - - class AMAROKCORE_EXPORT Playlist : public virtual QSharedData -@@ -292,7 +292,7 @@ namespace Playlists - * write, even if it is recursive. This can cause deadlocks, so it would be - * never safe to lock it just for read. - */ -- QMutex m_observersMutex; -+ QRecursiveMutex m_observersMutex; - bool m_async; - }; - } -diff --git a/src/core/support/Debug.cpp b/src/core/support/Debug.cpp -index 138c080b9a..50c6e5e830 100644 ---- a/src/core/support/Debug.cpp -+++ b/src/core/support/Debug.cpp -@@ -24,7 +24,7 @@ - #include - - #include --#include -+#include - #include - - #include -@@ -37,7 +37,7 @@ - - #define DEBUG_INDENT_OBJECTNAME QLatin1String("Debug_Indent_object") - --AMAROKCORE_EXPORT QMutex Debug::mutex( QMutex::Recursive ); -+AMAROKCORE_EXPORT QRecursiveMutex Debug::mutex; - - using namespace Debug; - -diff --git a/src/core/support/Debug.h b/src/core/support/Debug.h -index b0872f1b80..1504a8ea2b 100644 ---- a/src/core/support/Debug.h -+++ b/src/core/support/Debug.h -@@ -26,7 +26,7 @@ - - #include "core/amarokcore_export.h" - #include --#include -+#include - #include - - // BEGIN: DEBUG_ASSERT -@@ -116,7 +116,7 @@ - */ - namespace Debug - { -- extern AMAROKCORE_EXPORT QMutex mutex; -+ extern AMAROKCORE_EXPORT QRecursiveMutex mutex; - - // from kdebug.h - enum DebugLevel { -diff --git a/src/dynamic/biases/EchoNestBias.cpp b/src/dynamic/biases/EchoNestBias.cpp -index 5831fcd259..c14264326a 100644 ---- a/src/dynamic/biases/EchoNestBias.cpp -+++ b/src/dynamic/biases/EchoNestBias.cpp -@@ -64,7 +64,6 @@ Dynamic::EchoNestBias::EchoNestBias() - : SimpleMatchBias() - , m_artistSuggestedQuery( nullptr ) - , m_match( PreviousTrack ) -- , m_mutex( QMutex::Recursive ) - { - loadDataFromFile(); - } -diff --git a/src/dynamic/biases/EchoNestBias.h b/src/dynamic/biases/EchoNestBias.h -index 413cdb33d0..54eee360f5 100644 ---- a/src/dynamic/biases/EchoNestBias.h -+++ b/src/dynamic/biases/EchoNestBias.h -@@ -20,7 +20,7 @@ - - #include "dynamic/biases/TagMatchBias.h" - --#include -+#include - - namespace KIO { - class StoredTransferJob; -@@ -104,7 +104,7 @@ namespace Dynamic - - MatchType m_match; - -- mutable QMutex m_mutex; // mutex protecting all of the below structures -+ mutable QRecursiveMutex m_mutex; // mutex protecting all of the below structures - mutable QMap< QString, QStringList> m_similarArtistMap; - mutable QMap< QString, TrackSet> m_tracksMap; - -diff --git a/src/importers/ImporterSqlConnection.cpp b/src/importers/ImporterSqlConnection.cpp -index 8176baca85..0853279ebb 100644 ---- a/src/importers/ImporterSqlConnection.cpp -+++ b/src/importers/ImporterSqlConnection.cpp -@@ -35,7 +35,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &driver, - const QString &user, - const QString &password ) - : m_connectionName( QUuid::createUuid().toString() ) -- , m_apiMutex( QMutex::Recursive ) - , m_openTransaction( false ) - { - QSqlDatabase db = QSqlDatabase::addDatabase( driver, m_connectionName ); -@@ -48,7 +47,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &driver, - - ImporterSqlConnection::ImporterSqlConnection( const QString &dbPath ) - : m_connectionName( QUuid::createUuid().toString() ) -- , m_apiMutex( QMutex::Recursive ) - , m_openTransaction( false ) - { - QSqlDatabase db = QSqlDatabase::addDatabase( QStringLiteral("QSQLITE"), m_connectionName ); -@@ -57,7 +55,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &dbPath ) - - ImporterSqlConnection::ImporterSqlConnection() - : m_connectionName( QUuid::createUuid().toString() ) -- , m_apiMutex( QMutex::Recursive ) - , m_openTransaction( false ) - { - } -diff --git a/src/importers/ImporterSqlConnection.h b/src/importers/ImporterSqlConnection.h -index b0b7c844e9..70896ef223 100644 ---- a/src/importers/ImporterSqlConnection.h -+++ b/src/importers/ImporterSqlConnection.h -@@ -22,7 +22,7 @@ - #include "amarok_export.h" - - #include --#include -+#include - #include - #include - #include -@@ -130,7 +130,7 @@ private: - - Qt::ConnectionType blockingConnectionType() const; - -- QMutex m_apiMutex; -+ QRecursiveMutex m_apiMutex; - bool m_openTransaction; - QList m_result; - -diff --git a/src/services/lastfm/biases/LastFmBias.cpp b/src/services/lastfm/biases/LastFmBias.cpp -index af4ae2a987..468ca714aa 100644 ---- a/src/services/lastfm/biases/LastFmBias.cpp -+++ b/src/services/lastfm/biases/LastFmBias.cpp -@@ -64,7 +64,6 @@ Dynamic::LastFmBiasFactory::createBias() - Dynamic::LastFmBias::LastFmBias() - : SimpleMatchBias() - , m_match( SimilarArtist ) -- , m_mutex( QMutex::Recursive ) - { - loadDataFromFile(); - } -diff --git a/src/services/lastfm/biases/LastFmBias.h b/src/services/lastfm/biases/LastFmBias.h -index 2848b38d9a..77509dc9f1 100644 ---- a/src/services/lastfm/biases/LastFmBias.h -+++ b/src/services/lastfm/biases/LastFmBias.h -@@ -20,7 +20,7 @@ - - #include "dynamic/biases/TagMatchBias.h" - --#include -+#include - - namespace Dynamic - { -@@ -95,7 +95,7 @@ namespace Dynamic - - MatchType m_match; - -- mutable QMutex m_mutex; // mutex protecting all of the below structures -+ mutable QRecursiveMutex m_mutex; // mutex protecting all of the below structures - mutable QMap< QString, QStringList> m_similarArtistMap; - mutable QMap< TitleArtistPair, QList > m_similarTrackMap; - mutable QMap< QString, TrackSet> m_tracksMap; // for artist AND album -diff --git a/src/statusbar/CompoundProgressBar.cpp b/src/statusbar/CompoundProgressBar.cpp -index 3741ff5b34..3f437ff432 100644 ---- a/src/statusbar/CompoundProgressBar.cpp -+++ b/src/statusbar/CompoundProgressBar.cpp -@@ -26,7 +26,6 @@ - - CompoundProgressBar::CompoundProgressBar( QWidget *parent ) - : ProgressBar( parent ) -- , m_mutex( QMutex::Recursive ) - { - m_progressDetailsWidget = new PopupWidget(); - m_progressDetailsWidget->hide(); -diff --git a/src/statusbar/CompoundProgressBar.h b/src/statusbar/CompoundProgressBar.h -index cfd5070c41..ed9e72012a 100644 ---- a/src/statusbar/CompoundProgressBar.h -+++ b/src/statusbar/CompoundProgressBar.h -@@ -23,7 +23,7 @@ - #include - #include - #include --#include -+#include - - /** - * A progress bar that wraps a number of simple progress bars and displays their -@@ -75,7 +75,7 @@ private: - - QMap< const QObject *, ProgressBar *> m_progressMap; - PopupWidget *m_progressDetailsWidget; -- QMutex m_mutex; // protecting m_progressMap consistency -+ QRecursiveMutex m_mutex; // protecting m_progressMap consistency - }; - - #endif -diff --git a/tests/TestExpression.cpp b/tests/TestExpression.cpp -index a84ee6f7f8..ea298c10c5 100644 ---- a/tests/TestExpression.cpp -+++ b/tests/TestExpression.cpp -@@ -27,7 +27,7 @@ - QTEST_GUILESS_MAIN( TestExpression ) - - //required for Debug.h --QMutex Debug::mutex; -+QRecursiveMutex Debug::mutex; - - TestExpression::TestExpression() - { -diff --git a/tests/TestQStringx.cpp b/tests/TestQStringx.cpp -index 7b96d83ae9..010db2252e 100644 ---- a/tests/TestQStringx.cpp -+++ b/tests/TestQStringx.cpp -@@ -28,7 +28,7 @@ - QTEST_GUILESS_MAIN( TestQStringx ) - - //required for Debug.h --QMutex Debug::mutex; -+QRecursiveMutex Debug::mutex; - - TestQStringx::TestQStringx() - { --- -GitLab - - -From 413efb028f41808e9a59166805f4a8ec73737237 Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Thu, 9 Mar 2023 17:33:54 +0200 -Subject: [PATCH 2/8] Use more-recently-deprecated codepaths. - -KDeclarative::setupBindings() is deprecated since 5.45 and current -KF5_MIN_VERSION is 5.57, so this is probably a feasible thing to do. ---- - src/context/ContextView.cpp | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/context/ContextView.cpp b/src/context/ContextView.cpp -index 9e3ba064d2..1aa3fc70af 100644 ---- a/src/context/ContextView.cpp -+++ b/src/context/ContextView.cpp -@@ -60,7 +60,8 @@ ContextView::ContextView( QWidget *parent ) - - KDeclarative::KDeclarative decl; - decl.setDeclarativeEngine( engine() ); -- decl.setupBindings(); -+ engine()->rootContext()->setContextObject( new KLocalizedContext( this ) ); -+ decl.setupEngine( engine() ); - - connect( this, &QQuickWidget::statusChanged, this, &ContextView::slotStatusChanged ); - connect( The::paletteHandler(), &PaletteHandler::newPalette, this, &ContextView::updatePalette ); --- -GitLab - - -From f212bcb2466a2faee48ff43c631a67335c42b2f0 Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Thu, 9 Mar 2023 17:39:18 +0200 -Subject: [PATCH 3/8] Port away from deprecated QDesktopWidget::numScreens. - -Replace with QGuiApplication::screens() based approaches as instructed on -https://doc.qt.io/qt-5/qdesktopwidget-obsolete.html#numScreens ---- - src/configdialog/dialogs/NotificationsConfig.cpp | 2 +- - src/widgets/Osd.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/configdialog/dialogs/NotificationsConfig.cpp b/src/configdialog/dialogs/NotificationsConfig.cpp -index 0c16fdcb17..00a15f6bef 100644 ---- a/src/configdialog/dialogs/NotificationsConfig.cpp -+++ b/src/configdialog/dialogs/NotificationsConfig.cpp -@@ -55,7 +55,7 @@ NotificationsConfig::NotificationsConfig( Amarok2ConfigDialog* parent ) - - connect( m_osdPreview, &OSDPreviewWidget::positionChanged, this, &NotificationsConfig::slotPositionChanged ); - -- const int numScreens = QApplication::desktop()->numScreens(); -+ const int numScreens = QApplication::screens().size(); - for( int i = 0; i < numScreens; i++ ) - kcfg_OsdScreen->addItem( QString::number( i ) ); - -diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp -index dc1cf722e3..4de9749a76 100644 ---- a/src/widgets/Osd.cpp -+++ b/src/widgets/Osd.cpp -@@ -463,7 +463,7 @@ OSDWidget::setTextColor(const QColor& color) - void - OSDWidget::setScreen( int screen ) - { -- const int n = QApplication::desktop()->numScreens(); -+ const int n = QApplication::screens().size(); - m_screen = ( screen >= n ) ? n - 1 : screen; - } - --- -GitLab - - -From d9cf76b03ea64bc7fa4c40a65f4de2fdc6d57fdc Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Thu, 9 Mar 2023 18:34:21 +0200 -Subject: [PATCH 4/8] Avoid some warnings from a TODO function. - ---- - src/scripting/scriptengine/AmarokLyricsScript.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/scripting/scriptengine/AmarokLyricsScript.cpp b/src/scripting/scriptengine/AmarokLyricsScript.cpp -index d4b5eedd5a..fae437130d 100644 ---- a/src/scripting/scriptengine/AmarokLyricsScript.cpp -+++ b/src/scripting/scriptengine/AmarokLyricsScript.cpp -@@ -97,6 +97,8 @@ AmarokLyricsScript::escape( const QString &str ) - void - AmarokLyricsScript::setLyricsForTrack( const QString &trackUrl, const QString &lyrics ) const - { -+ Q_UNUSED( trackUrl ); -+ Q_UNUSED( lyrics ); - /* TODO - convert method invocation below - LyricsManager::instance()->setLyricsForTrack( trackUrl, lyrics ); - */ --- -GitLab - - -From 3dd0add1d17d52132db13ef74f74034d14c4ffb6 Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Thu, 9 Mar 2023 18:39:01 +0200 -Subject: [PATCH 5/8] Use non-deprecated signals. - -Introduced in Qt 5.15 ( https://doc.qt.io/qt-5/qsignalmapper.html#mappedObject -https://doc.qt.io/qt-5/qsignalmapper.html#mappedString ), which is currently -the minimum version for us. ---- - src/network/NetworkAccessViewer.cpp | 2 +- - src/playlistgenerator/PresetEditDialog.cpp | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/network/NetworkAccessViewer.cpp b/src/network/NetworkAccessViewer.cpp -index 38f50ed038..5454ab8819 100644 ---- a/src/network/NetworkAccessViewer.cpp -+++ b/src/network/NetworkAccessViewer.cpp -@@ -33,7 +33,7 @@ NetworkAccessViewer::NetworkAccessViewer( QWidget *parent ) - networkRequestsDialog->setupUi(dialog); - - mapper = new QSignalMapper(this); -- connect( mapper, QOverload::of(&QSignalMapper::mapped), -+ connect( mapper, QOverload::of(&QSignalMapper::mappedObject), - this, &NetworkAccessViewer::requestFinished ); - - connect( networkRequestsDialog->requestList, &QTreeWidget::currentItemChanged, this, &NetworkAccessViewer::showItemDetails ); -diff --git a/src/playlistgenerator/PresetEditDialog.cpp b/src/playlistgenerator/PresetEditDialog.cpp -index 7ef060ce22..fcf0f8e2d0 100644 ---- a/src/playlistgenerator/PresetEditDialog.cpp -+++ b/src/playlistgenerator/PresetEditDialog.cpp -@@ -52,7 +52,7 @@ APG::PresetEditDialog::PresetEditDialog( const PresetPtr &p ) - ui.constraintTreeView->expandAll(); - - QSignalMapper* adderMapper = new QSignalMapper( this ); -- connect( adderMapper, QOverload::of(&QSignalMapper::mapped), -+ connect( adderMapper, QOverload::of(&QSignalMapper::mappedString), - this, &PresetEditDialog::addNode ); - - QMenuBar* menuBar_Actions = new QMenuBar( this ); --- -GitLab - - -From 5f27e8531b603b82aa7d3371868e2425a1095b77 Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Thu, 9 Mar 2023 18:51:44 +0200 -Subject: [PATCH 6/8] Port away from deprecated TagLib::String::Null. - -As instructed on https://taglib.org/api/classTagLib_1_1String.html#ae5f42b9ceca1b59814cffc2eddff3d09 -and https://taglib.org/api/classTagLib_1_1String.html#a8c35a7ec22fdfcf8afaf3edee01a01e0 ---- - shared/tag_helpers/APETagHelper.cpp | 2 +- - shared/tag_helpers/ASFTagHelper.cpp | 2 +- - shared/tag_helpers/ID3v2TagHelper.cpp | 2 +- - shared/tag_helpers/MP4TagHelper.cpp | 2 +- - shared/tag_helpers/StringHelper.cpp | 2 +- - shared/tag_helpers/VorbisCommentTagHelper.cpp | 2 +- - 6 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/shared/tag_helpers/APETagHelper.cpp b/shared/tag_helpers/APETagHelper.cpp -index eee34e05a3..66e8510a53 100644 ---- a/shared/tag_helpers/APETagHelper.cpp -+++ b/shared/tag_helpers/APETagHelper.cpp -@@ -84,7 +84,7 @@ APETagHelper::setTags( const Meta::FieldHash &changes ) - QVariant value = changes.value( key ); - TagLib::String field = fieldName( key ); - -- if( !field.isNull() && !field.isEmpty() ) -+ if( !field.isEmpty() ) - { - if( key == Meta::valRating ) - m_tag->addValue( field, Qt4QStringToTString( QString::number( value.toFloat() / 10.0 ) ) ); -diff --git a/shared/tag_helpers/ASFTagHelper.cpp b/shared/tag_helpers/ASFTagHelper.cpp -index 241e93d714..772728b58f 100644 ---- a/shared/tag_helpers/ASFTagHelper.cpp -+++ b/shared/tag_helpers/ASFTagHelper.cpp -@@ -107,7 +107,7 @@ ASFTagHelper::setTags( const Meta::FieldHash &changes ) - QVariant value = changes.value( key ); - TagLib::String field = fieldName( key ); - -- if( !field.isNull() && !field.isEmpty() ) -+ if( !field.isEmpty() ) - { - if( key == Meta::valHasCover ) - continue; -diff --git a/shared/tag_helpers/ID3v2TagHelper.cpp b/shared/tag_helpers/ID3v2TagHelper.cpp -index ea9281dc30..7dd98062bc 100644 ---- a/shared/tag_helpers/ID3v2TagHelper.cpp -+++ b/shared/tag_helpers/ID3v2TagHelper.cpp -@@ -187,7 +187,7 @@ ID3v2TagHelper::setTags( const Meta::FieldHash &changes ) - QVariant value = changes.value( key ); - TagLib::ByteVector field( fieldName( key ).toCString() ); - -- if( !field.isNull() && !field.isEmpty() ) -+ if( !field.isEmpty() ) - { - if( key == Meta::valHasCover ) - continue; -diff --git a/shared/tag_helpers/MP4TagHelper.cpp b/shared/tag_helpers/MP4TagHelper.cpp -index 7a28b4473c..54d192ffae 100644 ---- a/shared/tag_helpers/MP4TagHelper.cpp -+++ b/shared/tag_helpers/MP4TagHelper.cpp -@@ -106,7 +106,7 @@ MP4TagHelper::setTags( const Meta::FieldHash &changes ) - QVariant value = changes.value( key ); - TagLib::String field = fieldName( key ); - -- if( !field.isNull() && !field.isEmpty() ) -+ if( !field.isEmpty() ) - { - // http://gitorious.org/~jefferai/xdg-specs/jefferais-xdg-specs/blobs/mediaspecs/specifications/FMPSpecs/specification.txt sais that mp4 tags should be saved as strings - if( key == Meta::valHasCover ) -diff --git a/shared/tag_helpers/StringHelper.cpp b/shared/tag_helpers/StringHelper.cpp -index fd7e49b432..a8d2aa3e97 100644 ---- a/shared/tag_helpers/StringHelper.cpp -+++ b/shared/tag_helpers/StringHelper.cpp -@@ -36,7 +36,7 @@ Meta::Tag::Qt4QStringToTString( const QString &str ) - { - // Declare new var to prevent double call of trimmed func - QString val = str.trimmed(); -- return val.isEmpty() ? TagLib::String::null : TagLib::String( val.toUtf8().data(), TagLib::String::UTF8 ); -+ return val.isEmpty() ? TagLib::String() : TagLib::String( val.toUtf8().data(), TagLib::String::UTF8 ); - } - - QString -diff --git a/shared/tag_helpers/VorbisCommentTagHelper.cpp b/shared/tag_helpers/VorbisCommentTagHelper.cpp -index f3ff542db6..95dc041d8a 100644 ---- a/shared/tag_helpers/VorbisCommentTagHelper.cpp -+++ b/shared/tag_helpers/VorbisCommentTagHelper.cpp -@@ -151,7 +151,7 @@ VorbisCommentTagHelper::setTags( const Meta::FieldHash &changes ) - QVariant value = changes.value( key ); - TagLib::String field = fieldName( key ); - -- if( !field.isNull() && !field.isEmpty() ) -+ if( !field.isEmpty() ) - { - if( key == Meta::valHasCover ) - continue; --- -GitLab - - -From 45fbce7eff1d4e38751db49f6ee0c4ede884e44e Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Thu, 9 Mar 2023 19:22:02 +0200 -Subject: [PATCH 7/8] Port away from KDiskFreeSpaceInfo. - -Deprecated in KF 5.88. QStorageInfo is available since Qt 5.4, and actually -provides better functionality with bytesAvailable() instead of just bytesFree(). ---- - .../db/sql/SqlCollectionLocation.cpp | 24 +++++++------------ - .../ipodcollection/IpodCollection.cpp | 8 +++---- - .../MediaDeviceCollection.cpp | 2 -- - .../umscollection/UmsCollection.cpp | 6 ++--- - 4 files changed, 16 insertions(+), 24 deletions(-) - -diff --git a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp -index 7f761432ef..2f6835c073 100644 ---- a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp -+++ b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp -@@ -38,8 +38,8 @@ - #include - #include - #include -+#include - --#include - #include - #include - #include -@@ -90,13 +90,7 @@ SqlCollectionLocation::isWritable() const - QStringList folders = actualLocation(); - foreach( const QString &path, folders ) - { -- float used = KDiskFreeSpaceInfo::freeSpaceInfo( path ).used(); -- float total = KDiskFreeSpaceInfo::freeSpaceInfo( path ).size(); -- -- if( total <= 0 ) // protect against div by zero -- continue; //How did this happen? -- -- float free_space = total - used; -+ float free_space = QStorageInfo( path ).bytesAvailable(); - if( free_space >= 500*1000*1000 ) // ~500 megabytes - path_exists_with_space = true; - -@@ -298,18 +292,18 @@ SqlCollectionLocation::showDestinationDialog( const Meta::TrackList &tracks, - if( path.isEmpty() ) - continue; - debug() << "Path" << path; -- KDiskFreeSpaceInfo spaceInfo = KDiskFreeSpaceInfo::freeSpaceInfo( path ); -+ QStorageInfo spaceInfo(path); - if( !spaceInfo.isValid() ) - continue; - -- KIO::filesize_t totalCapacity = spaceInfo.size(); -- KIO::filesize_t used = spaceInfo.used(); -+ KIO::filesize_t totalCapacity = spaceInfo.bytesTotal(); -+ KIO::filesize_t used = totalCapacity - spaceInfo.bytesFree(); - -- KIO::filesize_t freeSpace = totalCapacity - used; -+ KIO::filesize_t availableSpace = spaceInfo.bytesAvailable(); - - debug() << "used:" << used; - debug() << "total:" << totalCapacity; -- debug() << "Free space" << freeSpace; -+ debug() << "Available space" << availableSpace; - debug() << "transfersize" << transferSize; - - if( totalCapacity <= 0 ) // protect against div by zero -@@ -320,8 +314,8 @@ SqlCollectionLocation::showDestinationDialog( const Meta::TrackList &tracks, - // since bad things happen when drives become totally full - // we make sure there is at least ~500MB left - // finally, ensure the path is writable -- debug() << ( freeSpace - transferSize ); -- if( ( freeSpace - transferSize ) > 1024*1024*500 && info.isWritable() ) -+ debug() << ( availableSpace - transferSize ); -+ if( ( availableSpace - transferSize ) > 1024*1024*500 && info.isWritable() ) - available_folders << path; - } - -diff --git a/src/core-impl/collections/ipodcollection/IpodCollection.cpp b/src/core-impl/collections/ipodcollection/IpodCollection.cpp -index cd555ca47f..1aab224054 100644 ---- a/src/core-impl/collections/ipodcollection/IpodCollection.cpp -+++ b/src/core-impl/collections/ipodcollection/IpodCollection.cpp -@@ -34,7 +34,6 @@ - #include "core-impl/collections/support/MemoryQueryMaker.h" - #include "playlistmanager/PlaylistManager.h" - --#include - #include - #include - #include -@@ -47,6 +46,7 @@ - #include - #include - #include -+#include - #include - - -@@ -261,19 +261,19 @@ IpodCollection::icon() const - bool - IpodCollection::hasCapacity() const - { -- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).isValid(); -+ return QStorageInfo( m_mountPoint ).isValid(); - } - - float - IpodCollection::usedCapacity() const - { -- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).used(); -+ return QStorageInfo( m_mountPoint ).bytesTotal() - QStorageInfo( m_mountPoint ).bytesFree(); - } - - float - IpodCollection::totalCapacity() const - { -- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).size(); -+ return QStorageInfo( m_mountPoint ).bytesTotal(); - } - - Collections::CollectionLocation* -diff --git a/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp b/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp -index 0eec859ffd..f6795e733a 100644 ---- a/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp -+++ b/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp -@@ -24,8 +24,6 @@ - #include "core-impl/collections/mediadevicecollection/support/MediaDeviceInfo.h" - #include "core-impl/collections/support/MemoryQueryMaker.h" - --#include -- - using namespace Collections; - - MediaDeviceCollectionFactoryBase::MediaDeviceCollectionFactoryBase( ConnectionAssistant* assistant ) -diff --git a/src/core-impl/collections/umscollection/UmsCollection.cpp b/src/core-impl/collections/umscollection/UmsCollection.cpp -index 32873350e9..0ac4b438fb 100644 ---- a/src/core-impl/collections/umscollection/UmsCollection.cpp -+++ b/src/core-impl/collections/umscollection/UmsCollection.cpp -@@ -44,12 +44,12 @@ - #include - #include - -+#include - #include - #include - #include - - #include --#include - - - UmsCollectionFactory::UmsCollectionFactory() -@@ -407,13 +407,13 @@ UmsCollection::hasCapacity() const - float - UmsCollection::usedCapacity() const - { -- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).used(); -+ return QStorageInfo( m_mountPoint ).bytesTotal()-QStorageInfo( m_mountPoint ).bytesFree(); - } - - float - UmsCollection::totalCapacity() const - { -- return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).size(); -+ return QStorageInfo( m_mountPoint ).bytesTotal(); - } - - CollectionLocation * --- -GitLab - - -From 7b1af767ba420e175a0f2f3c0486a3e49730c33e Mon Sep 17 00:00:00 2001 -From: Tuomas Nurmi -Date: Fri, 10 Mar 2023 19:41:19 +0200 -Subject: [PATCH 8/8] Update KF5 and Qt5 requirements in README. - ---- - README | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/README b/README -index f2639a2a7c..346094923f 100644 ---- a/README -+++ b/README -@@ -39,14 +39,14 @@ not be entirely up to date. You can always look at CMakeLists.txt to discover - the most recent dependencies. - - Required -- * KDE Frameworks 5.41 (or newer, for an exact list look at CMakeLists.txt) -+ * KDE Frameworks 5.57 (or newer, for an exact list look at CMakeLists.txt) - https://www.kde.org - - * Phonon 4.6.60 (or newer with support for Qt5) and one of the following backends: - * phonon-gstreamer 4.6.3 (or newer) - * phonon-vlc 0.6.1 (or newer; as of 0.6.1 doesn't yet play Audio CDs, bug 313046) - -- * Qt 5.10 (or newer) -+ * Qt 5.15 - https://qt.io/ - - * TagLib 1.7 (or newer) --- -GitLab - diff --git a/sources b/sources index 283aa6a..b08545e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-387c30de482522774c28dc02c2636cd41c8334e9.tar.bz2) = b474d591ba106002e202624c76c8ecde1014061c40a155875ecc65c0a53493d23af565e3facabc9de3403e735044862dc53b7d9bd85cb61d1ee8212082734af4 +SHA512 (amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.bz2) = 0d0d647c452a2f1e019f9ab73749b6c19856cf598143a3bb6effb8c01410c17b33216fd017d788f20f24b2c7dbd4ae4e8c3ce824124678ba74db75f6553ee622 From 1fa650d320eed9a238b9d2555f3f9e94cf6b7e66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Deop=20i=20Argem=C3=AD?= Date: Sat, 4 May 2024 21:33:12 +0200 Subject: [PATCH 22/38] feat: 3.0.0 --- .gitignore | 1 + amarok.spec | 11 +++++------ revert.patch | 14 +++++++------- sources | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index b6c39fc..b8b3e38 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /amarok-387c30de482522774c28dc02c2636cd41c8334e9.tar.bz2 /amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.gz /amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.bz2 +/amarok-3.0.0.tar.xz diff --git a/amarok.spec b/amarok.spec index 12047ba..0db155f 100644 --- a/amarok.spec +++ b/amarok.spec @@ -1,12 +1,8 @@ -%global commit 7ec45dddb109fd391b900dad8705dacd4088a3c3 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commitdate 20240330 - %global __provides_exclude_from ^%{_kf5_qmldir}/org/kde/amarok/.*\.so$ Name: amarok Summary: Media player -Version: 2.9.71%{?commitdate:^git%{commitdate}.%{shortcommit}} +Version: 3.0.0 Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted @@ -15,7 +11,7 @@ Url: https://amarok.kde.org/ %if 0%{?commitdate} Source0: https://invent.kde.org/multimedia/amarok/-/archive/%{commit}/amarok-%{commit}.tar.bz2 %else -Source0: https://download.kde.org/%{stable_kf5}/amarok/%{version}/src/amarok-%{version}.tar.xz +Source0: https://download.kde.org/%{stable_kf5}/amarok/%{version}/amarok-%{version}.tar.xz %endif # partially revert https://invent.kde.org/multimedia/amarok/-/commit/c095ebf8780b693605ab23efa4eae6f4dd18fc5e @@ -249,6 +245,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Wed May 01 2024 Marc Deop i Argemí - 3.0.0-1 +- Update to 3.0.0 + * Sun Mar 31 2024 Marc Deop i Argemí - 2.9.71^git20240330.7ec45dd-1 - Update to snapshot 7ec45dddb109fd391b900dad8705dacd4088a3c3 diff --git a/revert.patch b/revert.patch index bd4bb89..b8c9a8b 100644 --- a/revert.patch +++ b/revert.patch @@ -1,11 +1,11 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5d9b0944e0..99c22bda33 100644 +index f7f34c0d69..9f20adcabe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -188,8 +188,13 @@ if( CMAKE_BUILD_TYPE_TOLOWER MATCHES debug ) add_definitions(-Wall -Wextra) endif() - + +# this needs to be here because also code in shared/ needs config.h. This is also the +# reason why various checks are above why they belong under if( WITH_PLAYER ) +configure_file( shared/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/shared/config.h ) @@ -13,13 +13,13 @@ index 5d9b0944e0..99c22bda33 100644 add_subdirectory( data ) add_subdirectory( images ) +add_subdirectory( shared ) - + if( WITH_PLAYER ) find_package(X11) -@@ -309,12 +314,6 @@ if( WITH_PLAYER ) - +@@ -315,12 +320,6 @@ if( WITH_PLAYER ) + kdoctools_install( po ) endif() - + -# this needs to be here because also code in shared/ needs config.h. This is also the -# reason why various checks are above why they belong under if( WITH_PLAYER ) -configure_file( shared/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/shared/config.h ) @@ -28,4 +28,4 @@ index 5d9b0944e0..99c22bda33 100644 - if( WITH_UTILITIES ) add_subdirectory( utilities ) - endif() + ecm_install_po_files_as_qm( poqm ) diff --git a/sources b/sources index b08545e..c77d31d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.bz2) = 0d0d647c452a2f1e019f9ab73749b6c19856cf598143a3bb6effb8c01410c17b33216fd017d788f20f24b2c7dbd4ae4e8c3ce824124678ba74db75f6553ee622 +SHA512 (amarok-3.0.0.tar.xz) = 95246aa81af183cb112b99d7966cc2c0056881f5576020206a693d8e28ad2be632943b27576b84cc4791ff8def7f51de857d33acc379e1a5406dcba72c13d014 From 7e7abbd7f2d1f5f95844e97af6ee6fc7fb45950c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Deop=20i=20Argem=C3=AD?= Date: Sun, 7 Jul 2024 10:20:15 +0200 Subject: [PATCH 23/38] feat: 3.0.1 --- .gitignore | 1 + amarok.spec | 5 ++++- revert.patch | 8 ++++---- sources | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index b8b3e38..b792f12 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.gz /amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.bz2 /amarok-3.0.0.tar.xz +/amarok-3.0.1.tar.xz diff --git a/amarok.spec b/amarok.spec index 0db155f..f151e36 100644 --- a/amarok.spec +++ b/amarok.spec @@ -2,7 +2,7 @@ Name: amarok Summary: Media player -Version: 3.0.0 +Version: 3.0.1 Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted @@ -245,6 +245,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Sun Jul 07 2024 Marc Deop i Argemí - 3.0.1-1 +- 3.0.1 + * Wed May 01 2024 Marc Deop i Argemí - 3.0.0-1 - Update to 3.0.0 diff --git a/revert.patch b/revert.patch index b8c9a8b..eaf15de 100644 --- a/revert.patch +++ b/revert.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index f7f34c0d69..9f20adcabe 100644 +index dfaa560d2d..cf1c37f5bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -188,8 +188,13 @@ if( CMAKE_BUILD_TYPE_TOLOWER MATCHES debug ) +@@ -187,8 +187,13 @@ if( CMAKE_BUILD_TYPE_TOLOWER MATCHES debug ) add_definitions(-Wall -Wextra) endif() @@ -15,8 +15,8 @@ index f7f34c0d69..9f20adcabe 100644 +add_subdirectory( shared ) if( WITH_PLAYER ) - find_package(X11) -@@ -315,12 +320,6 @@ if( WITH_PLAYER ) + find_package(Threads REQUIRED) +@@ -313,12 +318,6 @@ if( WITH_PLAYER ) kdoctools_install( po ) endif() diff --git a/sources b/sources index c77d31d..5c22aad 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-3.0.0.tar.xz) = 95246aa81af183cb112b99d7966cc2c0056881f5576020206a693d8e28ad2be632943b27576b84cc4791ff8def7f51de857d33acc379e1a5406dcba72c13d014 +SHA512 (amarok-3.0.1.tar.xz) = 79bd186d8202c06c389149ce73262ea798262950da7a430185ed42e39a56603f325e5007e486f053a4febd9a51d4cca0f401aa1f7f627cf54c5c453e6dde6e7a From cf60cb693d72ea2336a45ffa4381405e8c45b7f4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 16:54:51 +0000 Subject: [PATCH 24/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index f151e36..2f74cff 100644 --- a/amarok.spec +++ b/amarok.spec @@ -3,7 +3,7 @@ Name: amarok Summary: Media player Version: 3.0.1 -Release: 1%{?dist} +Release: 2%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -245,6 +245,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 3.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Sun Jul 07 2024 Marc Deop i Argemí - 3.0.1-1 - 3.0.1 From 44637a5441c45d65b47b9c784abc23b0f0e6417a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Deop=20i=20Argem=C3=AD?= Date: Wed, 24 Jul 2024 23:48:29 +0200 Subject: [PATCH 25/38] 3.0.81 --- .gitignore | 1 + amarok.spec | 10 +++++----- sources | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index b792f12..76ebb21 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.bz2 /amarok-3.0.0.tar.xz /amarok-3.0.1.tar.xz +/amarok-3.0.81.tar.xz diff --git a/amarok.spec b/amarok.spec index 2f74cff..f49e960 100644 --- a/amarok.spec +++ b/amarok.spec @@ -2,8 +2,8 @@ Name: amarok Summary: Media player -Version: 3.0.1 -Release: 2%{?dist} +Version: 3.0.81 +Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -184,7 +184,6 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %license COPYING %{_qt5_settingsdir}/amarok_homerc %{_kf5_bindir}/amarok -%{_kf5_bindir}/amarokpkg %{_kf5_bindir}/amarok_afttagger %{_kf5_datadir}/amarok/ %{_kf5_datadir}/applications/org.kde.amarok.desktop @@ -193,9 +192,7 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %{_kf5_datadir}/dbus-1/interfaces/*.xml %{_kf5_datadir}/dbus-1/services/org.kde.amarok.service %{_kf5_datadir}/icons/hicolor/*/*/* -%{_kf5_datadir}/kconf_update/amarok* %{_kf5_datadir}/knotifications5/amarok.notifyrc -%{_kf5_datadir}/knsrcfiles/amarok.knsrc %{_kf5_datadir}/kpackage/amarok/org.kde.amarok.* %{_kf5_datadir}/kpackage/genericqml/org.kde.amarok.context %{_kf5_datadir}/kservices5/ServiceMenus/amarok_append.desktop @@ -245,6 +242,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Wed Jul 24 2024 Marc Deop i Argemí - 3.0.81-1 +- 3.1 Beta + * Wed Jul 17 2024 Fedora Release Engineering - 3.0.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index 5c22aad..4f63d2c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-3.0.1.tar.xz) = 79bd186d8202c06c389149ce73262ea798262950da7a430185ed42e39a56603f325e5007e486f053a4febd9a51d4cca0f401aa1f7f627cf54c5c453e6dde6e7a +SHA512 (amarok-3.0.81.tar.xz) = ce8aafea4da8687d2ace131bf71e91ca566048b57818e16aac0271ff1103eee8529c9d5538205dad6fc81708d7eafb2e452740b673b9102034c9e6864c16d893 From f508a5ef60be0319e01c1c6121ffcfe2c00127f6 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Sun, 4 Aug 2024 18:36:57 -0400 Subject: [PATCH 26/38] Fix EPEL build The gpodder, ipod, and lastfm features are enabled by default. Since the corresponding dependencies are disabled on EPEL, the features need to be explicitly disabled, and their file components excluded. --- amarok.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/amarok.spec b/amarok.spec index f49e960..0f9ae95 100644 --- a/amarok.spec +++ b/amarok.spec @@ -162,6 +162,9 @@ CXXFLAGS="$CXXFLAGS -I%{_includedir}/qt5" %endif # force non-use of MYSQLCONFIG, to avoid (potential bogus) stuff from: mysql_config --libmysqld-libs %{cmake_kf5} \ +%if ! 0%{?fedora} + -DWITH_GPODDER=OFF -DWITH_IPOD=OFF -DWITH_LASTFM=OFF \ +%endif -DMYSQLCONFIG_EXECUTABLE:BOOL=OFF %{cmake_build} @@ -203,8 +206,10 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %{_kf5_qmldir}/org/kde/amarok %{_kf5_qtplugindir}/amarok_collection-audiocdcollection.so %{_kf5_qtplugindir}/amarok_collection-daapcollection.so +%if 0%{?fedora} %{_kf5_qtplugindir}/amarok_collection-ipodcollection.so %{_kf5_qtplugindir}/amarok_collection-mtpcollection.so +%endif %{_kf5_qtplugindir}/amarok_collection-mysqlcollection.so %{_kf5_qtplugindir}/amarok_collection-playdarcollection.so %{_kf5_qtplugindir}/amarok_collection-umscollection.so @@ -232,8 +237,10 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %{_kf5_libdir}/libamaroklib.so %{_kf5_libdir}/libamarokpud.so %{_kf5_libdir}/libamarokshared.so +%if 0%{?fedora} %{_kf5_libdir}/libamarok_service_lastfm_config.so %{_kf5_libdir}/libgpodder_service_config.so +%endif %files utils -f amarokcollectionscanner_qt.lang %{_kf5_bindir}/amarokcollectionscanner From 8828df05e2c0c799267d7e193bde929f9a8939a3 Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Wed, 25 Sep 2024 11:58:01 +0200 Subject: [PATCH 27/38] Rebuilt for FFmpeg 7 --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 0f9ae95..e8bec65 100644 --- a/amarok.spec +++ b/amarok.spec @@ -3,7 +3,7 @@ Name: amarok Summary: Media player Version: 3.0.81 -Release: 1%{?dist} +Release: 2%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -249,6 +249,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Wed Sep 25 2024 Dominik Mierzejewski - 3.0.81-2 +- Rebuilt for FFmpeg 7 + * Wed Jul 24 2024 Marc Deop i Argemí - 3.0.81-1 - 3.1 Beta From 239f39ca02f4de3311ee812f1ca1b95bd96a4184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Deop=20i=20Argem=C3=AD?= Date: Sun, 13 Oct 2024 21:21:33 +0200 Subject: [PATCH 28/38] feat: 3.1.1 --- .gitignore | 1 + amarok.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 76ebb21..03957a0 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /amarok-3.0.0.tar.xz /amarok-3.0.1.tar.xz /amarok-3.0.81.tar.xz +/amarok-3.1.1.tar.xz diff --git a/amarok.spec b/amarok.spec index e8bec65..aa65e5d 100644 --- a/amarok.spec +++ b/amarok.spec @@ -2,8 +2,8 @@ Name: amarok Summary: Media player -Version: 3.0.81 -Release: 2%{?dist} +Version: 3.1.1 +Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -249,6 +249,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Sun Sep 29 2024 Marc Deop i Argemí - 3.1.1-1 +- 3.1.1 + * Wed Sep 25 2024 Dominik Mierzejewski - 3.0.81-2 - Rebuilt for FFmpeg 7 diff --git a/sources b/sources index 4f63d2c..35a3b09 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-3.0.81.tar.xz) = ce8aafea4da8687d2ace131bf71e91ca566048b57818e16aac0271ff1103eee8529c9d5538205dad6fc81708d7eafb2e452740b673b9102034c9e6864c16d893 +SHA512 (amarok-3.1.1.tar.xz) = 91e63ebe1c62fb79ce0e5c63c021280f6938a2cc4d320dfa7f05de487ae0bf58b80714292f7b54600587a53b6cf3f596376ee157d90bd615b435beec8aa0123f From 80716fae93f418bd4008496881d980a6bd07a924 Mon Sep 17 00:00:00 2001 From: Steve Cossette Date: Mon, 30 Dec 2024 14:49:32 -0500 Subject: [PATCH 29/38] 3.2.0 --- .gitignore | 1 + amarok.spec | 6 ++++-- sources | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 03957a0..68d89c3 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /amarok-3.0.1.tar.xz /amarok-3.0.81.tar.xz /amarok-3.1.1.tar.xz +/amarok-3.2.0.tar.xz diff --git a/amarok.spec b/amarok.spec index aa65e5d..c423d6a 100644 --- a/amarok.spec +++ b/amarok.spec @@ -2,7 +2,7 @@ Name: amarok Summary: Media player -Version: 3.1.1 +Version: 3.2.0 Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted @@ -200,7 +200,6 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %{_kf5_datadir}/kpackage/genericqml/org.kde.amarok.context %{_kf5_datadir}/kservices5/ServiceMenus/amarok_append.desktop %{_kf5_datadir}/kservices5/amarok* -%{_kf5_datadir}/kservicetypes5/amarok* %{_kf5_datadir}/solid/actions/amarok-play-audiocd.desktop %{_kf5_metainfodir}/org.kde.amarok.*.xml %{_kf5_qmldir}/org/kde/amarok @@ -249,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Mon Dec 30 2024 Steve Cossette - 3.2.0-1 +- 3.2.0 + * Sun Sep 29 2024 Marc Deop i Argemí - 3.1.1-1 - 3.1.1 diff --git a/sources b/sources index 35a3b09..82f771c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-3.1.1.tar.xz) = 91e63ebe1c62fb79ce0e5c63c021280f6938a2cc4d320dfa7f05de487ae0bf58b80714292f7b54600587a53b6cf3f596376ee157d90bd615b435beec8aa0123f +SHA512 (amarok-3.2.0.tar.xz) = 4c6d094755b8144e20f0df4b01d9eb3e51b45495e7a341ad68b3bab9f1152eb91886c85447377aba9beba5e5d97f42be43139bd79d6f669856ce4d7d8162c7d8 From c4f79165ce5eb3284c2410504db4a73f4e803578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Deop=20i=20Argem=C3=AD?= Date: Sun, 12 Jan 2025 16:52:42 +0100 Subject: [PATCH 30/38] 3.2.1 --- .gitignore | 1 + amarok.spec | 5 ++++- fix-mygpo-qt5-compilation.patch | 20 ++++++++++---------- sources | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 68d89c3..5a3dc22 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /amarok-3.0.81.tar.xz /amarok-3.1.1.tar.xz /amarok-3.2.0.tar.xz +/amarok-3.2.1.tar.xz diff --git a/amarok.spec b/amarok.spec index c423d6a..0c7c435 100644 --- a/amarok.spec +++ b/amarok.spec @@ -2,7 +2,7 @@ Name: amarok Summary: Media player -Version: 3.2.0 +Version: 3.2.1 Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted @@ -248,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Sun Jan 12 2025 Marc Deop i Argemí - 3.2.1-1 +- 3.2.1 + * Mon Dec 30 2024 Steve Cossette - 3.2.0-1 - 3.2.0 diff --git a/fix-mygpo-qt5-compilation.patch b/fix-mygpo-qt5-compilation.patch index 9b5d555..2221b5e 100644 --- a/fix-mygpo-qt5-compilation.patch +++ b/fix-mygpo-qt5-compilation.patch @@ -38,7 +38,7 @@ index 91323fb770..1c5fd45c0c 100644 class GpodderPodcastTreeItem: public GpodderTreeItem { diff --git a/src/services/gpodder/GpodderProvider.h b/src/services/gpodder/GpodderProvider.h -index e6deb51868..db7a664060 100644 +index 9551a97a69..bfddcb1ff7 100644 --- a/src/services/gpodder/GpodderProvider.h +++ b/src/services/gpodder/GpodderProvider.h @@ -23,8 +23,8 @@ @@ -53,7 +53,7 @@ index e6deb51868..db7a664060 100644 #include "playlistmanager/PlaylistManager.h" diff --git a/src/services/gpodder/GpodderService.cpp b/src/services/gpodder/GpodderService.cpp -index 6ead72cc74..0294850143 100644 +index b2d51ea807..841942e9d7 100644 --- a/src/services/gpodder/GpodderService.cpp +++ b/src/services/gpodder/GpodderService.cpp @@ -27,8 +27,8 @@ @@ -68,7 +68,7 @@ index 6ead72cc74..0294850143 100644 #include "widgets/SearchWidget.h" diff --git a/src/services/gpodder/GpodderServiceModel.h b/src/services/gpodder/GpodderServiceModel.h -index 08b5a559e1..e443c79b08 100644 +index 6eb979ca07..76bc61da7b 100644 --- a/src/services/gpodder/GpodderServiceModel.h +++ b/src/services/gpodder/GpodderServiceModel.h @@ -20,8 +20,8 @@ @@ -83,18 +83,18 @@ index 08b5a559e1..e443c79b08 100644 #include diff --git a/src/services/gpodder/GpodderServiceSettings.h b/src/services/gpodder/GpodderServiceSettings.h -index 1c3707b7ee..f519404958 100644 +index 5d75f07e52..e7f773ae02 100644 --- a/src/services/gpodder/GpodderServiceSettings.h +++ b/src/services/gpodder/GpodderServiceSettings.h -@@ -21,7 +21,7 @@ - #define GPODDERSERVICESETTINGS_H - +@@ -23,7 +23,7 @@ #include "GpodderServiceConfig.h" + + #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) -#include +#include - - #include - + #else + #include + #endif diff --git a/src/services/gpodder/GpodderTagTreeItem.h b/src/services/gpodder/GpodderTagTreeItem.h index 63cc965d89..8941cb8fc3 100644 --- a/src/services/gpodder/GpodderTagTreeItem.h diff --git a/sources b/sources index 82f771c..2407f71 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-3.2.0.tar.xz) = 4c6d094755b8144e20f0df4b01d9eb3e51b45495e7a341ad68b3bab9f1152eb91886c85447377aba9beba5e5d97f42be43139bd79d6f669856ce4d7d8162c7d8 +SHA512 (amarok-3.2.1.tar.xz) = 52a2319e243034c82b4529fbbc54d5deabda64f67f6222ecc35999080548472b9e1540dbfc8305b1b53660e9102015e8ee7e2ce1efe317dc1b99c29cb2853bf1 From 91d7f1d53eb6f4e21c95071f5c3a2d6677a4f6b3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 10:56:43 +0000 Subject: [PATCH 31/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 0c7c435..9d2d3d9 100644 --- a/amarok.spec +++ b/amarok.spec @@ -3,7 +3,7 @@ Name: amarok Summary: Media player Version: 3.2.1 -Release: 1%{?dist} +Release: 2%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -248,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 3.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sun Jan 12 2025 Marc Deop i Argemí - 3.2.1-1 - 3.2.1 From 880b4ac556f78cb6de80eed9a4e48364480d91a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Deop=20i=20Argem=C3=AD?= Date: Sat, 15 Feb 2025 19:53:41 +0100 Subject: [PATCH 32/38] 3.2.2 --- .gitignore | 1 + amarok.spec | 9 ++++++--- revert.patch | 8 ++++---- sources | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 5a3dc22..b51ae3d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /amarok-3.1.1.tar.xz /amarok-3.2.0.tar.xz /amarok-3.2.1.tar.xz +/amarok-3.2.2.tar.xz diff --git a/amarok.spec b/amarok.spec index 9d2d3d9..e717c1e 100644 --- a/amarok.spec +++ b/amarok.spec @@ -2,8 +2,8 @@ Name: amarok Summary: Media player -Version: 3.2.1 -Release: 2%{?dist} +Version: 3.2.2 +Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -165,7 +165,7 @@ CXXFLAGS="$CXXFLAGS -I%{_includedir}/qt5" %if ! 0%{?fedora} -DWITH_GPODDER=OFF -DWITH_IPOD=OFF -DWITH_LASTFM=OFF \ %endif - -DMYSQLCONFIG_EXECUTABLE:BOOL=OFF + -DMYSQLCONFIG_EXECUTABLE:BOOL=OFF -DWITH_X11=OFF %{cmake_build} @@ -248,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Sat Feb 15 2025 Marc Deop i Argemí - 3.2.2-1 +- 3.2.2 + * Thu Jan 16 2025 Fedora Release Engineering - 3.2.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/revert.patch b/revert.patch index eaf15de..9460816 100644 --- a/revert.patch +++ b/revert.patch @@ -1,9 +1,9 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index dfaa560d2d..cf1c37f5bf 100644 +index f7e78371b0..25f567ef9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -187,8 +187,13 @@ if( CMAKE_BUILD_TYPE_TOLOWER MATCHES debug ) - add_definitions(-Wall -Wextra) +@@ -220,8 +220,13 @@ if( CMAKE_BUILD_TYPE_TOLOWER MATCHES debug ) + endif() endif() +# this needs to be here because also code in shared/ needs config.h. This is also the @@ -16,7 +16,7 @@ index dfaa560d2d..cf1c37f5bf 100644 if( WITH_PLAYER ) find_package(Threads REQUIRED) -@@ -313,12 +318,6 @@ if( WITH_PLAYER ) +@@ -365,12 +370,6 @@ if( WITH_PLAYER ) kdoctools_install( po ) endif() diff --git a/sources b/sources index 2407f71..400fe04 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-3.2.1.tar.xz) = 52a2319e243034c82b4529fbbc54d5deabda64f67f6222ecc35999080548472b9e1540dbfc8305b1b53660e9102015e8ee7e2ce1efe317dc1b99c29cb2853bf1 +SHA512 (amarok-3.2.2.tar.xz) = 918b4fd03a2de717cb1f5968e4ba3eda391c881de384ebabeec423303e84ac6f5a8dbbb8816668d3de52c77d57f1ab9fef6580a8111a9507c9082a8ca25097aa From 478c3847a4f332579dba0e9b007e932f7a67c343 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Mon, 5 May 2025 15:16:19 +0200 Subject: [PATCH 33/38] Fix rhbz#2290341 - Directory is missing in RPM database --- amarok.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/amarok.spec b/amarok.spec index e717c1e..698eb4c 100644 --- a/amarok.spec +++ b/amarok.spec @@ -3,7 +3,7 @@ Name: amarok Summary: Media player Version: 3.2.2 -Release: 1%{?dist} +Release: 2%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -196,7 +196,7 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %{_kf5_datadir}/dbus-1/services/org.kde.amarok.service %{_kf5_datadir}/icons/hicolor/*/*/* %{_kf5_datadir}/knotifications5/amarok.notifyrc -%{_kf5_datadir}/kpackage/amarok/org.kde.amarok.* +%{_kf5_datadir}/kpackage/amarok %{_kf5_datadir}/kpackage/genericqml/org.kde.amarok.context %{_kf5_datadir}/kservices5/ServiceMenus/amarok_append.desktop %{_kf5_datadir}/kservices5/amarok* @@ -248,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Mon May 05 2025 Than Ngo - 3.2.2-2 +- Fix rhbz#2290341 - Directory is missing in RPM database + * Sat Feb 15 2025 Marc Deop i Argemí - 3.2.2-1 - 3.2.2 From 0aa3ad246bad8c77f9bb544af404df29d285a7ae Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 16:56:18 +0000 Subject: [PATCH 34/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 698eb4c..8f07ea1 100644 --- a/amarok.spec +++ b/amarok.spec @@ -3,7 +3,7 @@ Name: amarok Summary: Media player Version: 3.2.2 -Release: 2%{?dist} +Release: 3%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -248,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*. %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 3.2.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Mon May 05 2025 Than Ngo - 3.2.2-2 - Fix rhbz#2290341 - Directory is missing in RPM database From 5721dac44439a4a58ea423d23db13bb77faad0a3 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Thu, 23 Oct 2025 16:35:57 -0400 Subject: [PATCH 35/38] 3.3.1 --- .gitignore | 1 + amarok.spec | 243 +++++++++--------- ...n.patch => fix-mygpo-qt6-compilation.patch | 36 +-- liblastfm-version.patch | 14 + sources | 2 +- 5 files changed, 157 insertions(+), 139 deletions(-) rename fix-mygpo-qt5-compilation.patch => fix-mygpo-qt6-compilation.patch (87%) create mode 100644 liblastfm-version.patch diff --git a/.gitignore b/.gitignore index b51ae3d..9d86dbb 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /amarok-3.2.0.tar.xz /amarok-3.2.1.tar.xz /amarok-3.2.2.tar.xz +/amarok-3.3.1.tar.xz diff --git a/amarok.spec b/amarok.spec index 8f07ea1..b17aa45 100644 --- a/amarok.spec +++ b/amarok.spec @@ -1,9 +1,9 @@ -%global __provides_exclude_from ^%{_kf5_qmldir}/org/kde/amarok/.*\.so$ +%global __provides_exclude_from ^%{_kf6_qmldir}/org/kde/amarok/.*\.so$ Name: amarok Summary: Media player -Version: 3.2.2 -Release: 3%{?dist} +Version: 3.3.1 +Release: 1%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -11,73 +11,80 @@ Url: https://amarok.kde.org/ %if 0%{?commitdate} Source0: https://invent.kde.org/multimedia/amarok/-/archive/%{commit}/amarok-%{commit}.tar.bz2 %else -Source0: https://download.kde.org/%{stable_kf5}/amarok/%{version}/amarok-%{version}.tar.xz +Source0: https://download.kde.org/%{stable_kf6}/amarok/%{version}/amarok-%{version}.tar.xz %endif # partially revert https://invent.kde.org/multimedia/amarok/-/commit/c095ebf8780b693605ab23efa4eae6f4dd18fc5e # it causes amarok to crash on launch for some reason Patch1: revert.patch -# Needed because not every distro installs mygpo-qt5 under the same path. -# For instance, Fedora namespaces qt5 -Patch10: fix-mygpo-qt5-compilation.patch +# Version 1.2.0 is a new fork which just bumps the version for Qt6 and includes +# one patch. Fedora's 1.1.0 is a snapshot from the old fork which includes Qt6 +# and applies the same patch. +Patch2: liblastfm-version.patch + +# Needed because not every distro installs mygpo-qt6 under the same path. +# For instance, Fedora namespaces qt6 +Patch10: fix-mygpo-qt6-compilation.patch BuildRequires: desktop-file-utils BuildRequires: extra-cmake-modules BuildRequires: gcc-c++ BuildRequires: gettext -BuildRequires: kf5-rpm-macros +BuildRequires: kf6-rpm-macros BuildRequires: libappstream-glib BuildRequires: perl-generators -BuildRequires: cmake(Qt5Core) -BuildRequires: cmake(Qt5DBus) -BuildRequires: cmake(Qt5Gui) -BuildRequires: cmake(Qt5QuickWidgets) -BuildRequires: cmake(Qt5Qml) -BuildRequires: cmake(Qt5Sql) -BuildRequires: cmake(Qt5Svg) -BuildRequires: cmake(Qt5Test) -BuildRequires: cmake(Qt5Widgets) -BuildRequires: cmake(Qt5Xml) -BuildRequires: cmake(Qt5QuickControls2) -%ifarch %{qt5_qtwebengine_arches} -BuildRequires: cmake(Qt5WebEngine) +BuildRequires: cmake(Qt6Core) +BuildRequires: cmake(Qt6DBus) +BuildRequires: cmake(Qt6Gui) +BuildRequires: cmake(Qt6QuickWidgets) +BuildRequires: cmake(Qt6Qml) +BuildRequires: cmake(Qt6Sql) +BuildRequires: cmake(Qt6Svg) +BuildRequires: cmake(Qt6Test) +BuildRequires: cmake(Qt6Widgets) +BuildRequires: cmake(Qt6Xml) +BuildRequires: cmake(Qt6QuickControls2) +BuildRequires: cmake(Qt6SvgWidgets) +%ifarch %{qt6_qtwebengine_arches} +BuildRequires: cmake(Qt6WebEngineWidgets) %endif -BuildRequires: cmake(Qt5UiTools) +BuildRequires: cmake(Qt6UiTools) -BuildRequires: cmake(KF5Archive) -BuildRequires: cmake(KF5Attica) -BuildRequires: cmake(KF5Codecs) -BuildRequires: cmake(KF5Config) -BuildRequires: cmake(KF5ConfigWidgets) -BuildRequires: cmake(KF5CoreAddons) -BuildRequires: cmake(KF5Crash) -BuildRequires: cmake(KF5DBusAddons) -BuildRequires: cmake(KF5Declarative) -BuildRequires: cmake(KF5DNSSD) -BuildRequires: cmake(KF5DocTools) -BuildRequires: cmake(KF5GlobalAccel) -BuildRequires: cmake(KF5GuiAddons) -BuildRequires: cmake(KF5I18n) -BuildRequires: cmake(KF5IconThemes) -BuildRequires: cmake(KF5KCMUtils) -BuildRequires: cmake(KF5KIO) -BuildRequires: cmake(KF5NewStuff) -BuildRequires: cmake(KF5Notifications) -BuildRequires: cmake(KF5Package) -BuildRequires: cmake(KF5Solid) -BuildRequires: cmake(KF5TextEditor) -BuildRequires: cmake(KF5ThreadWeaver) -BuildRequires: cmake(KF5WidgetsAddons) -BuildRequires: cmake(KF5WindowSystem) -BuildRequires: cmake(KF5Kirigami2) +BuildRequires: cmake(KF6Archive) +BuildRequires: cmake(KF6Codecs) +BuildRequires: cmake(KF6Config) +BuildRequires: cmake(KF6ConfigWidgets) +BuildRequires: cmake(KF6CoreAddons) +BuildRequires: cmake(KF6Crash) +BuildRequires: cmake(KF6DBusAddons) +BuildRequires: cmake(KF6DNSSD) +BuildRequires: cmake(KF6DocTools) +BuildRequires: cmake(KF6GlobalAccel) +BuildRequires: cmake(KF6GuiAddons) +BuildRequires: cmake(KF6I18n) +BuildRequires: cmake(KF6IconThemes) +BuildRequires: cmake(KF6KCMUtils) +BuildRequires: cmake(KF6KIO) +BuildRequires: cmake(KF6Notifications) +BuildRequires: cmake(KF6Package) +BuildRequires: cmake(KF6Solid) +BuildRequires: cmake(KF6TextEditor) +BuildRequires: cmake(KF6TextWidgets) +BuildRequires: cmake(KF6ThreadWeaver) +BuildRequires: cmake(KF6WidgetsAddons) +BuildRequires: cmake(KF6WindowSystem) +BuildRequires: cmake(KF6ColorScheme) +BuildRequires: cmake(KF6KCMUtils) +BuildRequires: cmake(KF6StatusNotifierItem) +BuildRequires: cmake(KF6Kirigami) # gpodder, lastfm -BuildRequires: cmake(KF5Wallet) +BuildRequires: cmake(KF6Wallet) -BuildRequires: pkgconfig(taglib) >= 1.6 -BuildRequires: pkgconfig(taglib-extras) >= 1.0.1 -BuildRequires: cmake(Phonon4Qt5) +BuildRequires: pkgconfig(gstreamer-audio-1.0) +BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) +BuildRequires: pkgconfig(taglib) >= 1.12 BuildRequires: pkgconfig(libmariadb) BuildRequires: pkgconfig(mariadb) BuildRequires: mariadb-embedded-devel @@ -85,10 +92,9 @@ BuildRequires: ffmpeg-free-devel BuildRequires: fftw-devel %if 0%{?fedora} # dependencies not available in RHEL or EPEL -BuildRequires: liblastfm-qt5-devel -BuildRequires: libofa-devel -BuildRequires: cmake(Mygpo-qt5) -BuildRequires: pkgconfig(libmtp) >= 0.3.0 +BuildRequires: liblastfm-qt6-devel >= 1.1.0 +BuildRequires: cmake(Mygpo-qt6) >= 1.2.0 +BuildRequires: pkgconfig(libmtp) >= 1.0.0 BuildRequires: pkgconfig(libgpod-1.0) >= 0.7.0 # only used together with libgpod BuildRequires: pkgconfig(gdk-pixbuf-2.0) @@ -102,20 +108,15 @@ BuildRequires: pkgconfig(glib-2.0) pkgconfig(gobject-2.0) Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: %{name}-utils = %{version}-%{release} -Requires: kf5-filesystem +Requires: kf6-filesystem # QML module dependencies -Requires: kf5-kirigami2%{?_isa} -Requires: qt5-qtquickcontrols2%{?_isa} +Requires: kf6-kirigami%{?_isa} -Recommends: kf5-audiocd-kio -%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 -Recommends: kio-extras-kf5 -%else +Recommends: audiocd-kio Recommends: kio-extras -%endif -%ifarch %{qt5_qtwebengine_arches} +%ifarch %{qt6_qtwebengine_arches} # Wikipedia QML plugin -Recommends: qt5-qtwebengine%{?_isa} +Recommends: qt6-qtwebengine%{?_isa} %endif %if 0%{?fedora} Recommends: ifuse @@ -158,10 +159,10 @@ sed -i -e 's|/usr/bin/mysqld|%{_libexecdir}/mysqld|' src/importers/amarok/Amarok %build %if 0%{?flatpak} # find /app-built libmygpo-qt headers -CXXFLAGS="$CXXFLAGS -I%{_includedir}/qt5" +CXXFLAGS="$CXXFLAGS -I%{_includedir}/qt6" %endif # force non-use of MYSQLCONFIG, to avoid (potential bogus) stuff from: mysql_config --libmysqld-libs -%{cmake_kf5} \ +%{cmake_kf6} \ %if ! 0%{?fedora} -DWITH_GPODDER=OFF -DWITH_IPOD=OFF -DWITH_LASTFM=OFF \ %endif @@ -178,76 +179,78 @@ CXXFLAGS="$CXXFLAGS -I%{_includedir}/qt5" %check -appstream-util validate-relax --nonet %{buildroot}%{_kf5_metainfodir}/org.kde.%{name}.appdata.xml -desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*.desktop +appstream-util validate-relax --nonet %{buildroot}%{_kf6_metainfodir}/org.kde.%{name}.appdata.xml +desktop-file-validate %{buildroot}%{_kf6_datadir}/applications/org.kde.%{name}*.desktop %files -f amarok.lang %doc AUTHORS ChangeLog README %license COPYING -%{_qt5_settingsdir}/amarok_homerc -%{_kf5_bindir}/amarok -%{_kf5_bindir}/amarok_afttagger -%{_kf5_datadir}/amarok/ -%{_kf5_datadir}/applications/org.kde.amarok.desktop -%{_kf5_datadir}/applications/org.kde.amarok_containers.desktop -%{_kf5_datadir}/config.kcfg/amarokconfig.kcfg -%{_kf5_datadir}/dbus-1/interfaces/*.xml -%{_kf5_datadir}/dbus-1/services/org.kde.amarok.service -%{_kf5_datadir}/icons/hicolor/*/*/* -%{_kf5_datadir}/knotifications5/amarok.notifyrc -%{_kf5_datadir}/kpackage/amarok -%{_kf5_datadir}/kpackage/genericqml/org.kde.amarok.context -%{_kf5_datadir}/kservices5/ServiceMenus/amarok_append.desktop -%{_kf5_datadir}/kservices5/amarok* -%{_kf5_datadir}/solid/actions/amarok-play-audiocd.desktop -%{_kf5_metainfodir}/org.kde.amarok.*.xml -%{_kf5_qmldir}/org/kde/amarok -%{_kf5_qtplugindir}/amarok_collection-audiocdcollection.so -%{_kf5_qtplugindir}/amarok_collection-daapcollection.so +%{_qt6_settingsdir}/amarok_homerc +%{_kf6_bindir}/amarok +%{_kf6_bindir}/amarok_afttagger +%{_kf6_datadir}/amarok/ +%{_kf6_datadir}/applications/org.kde.amarok.desktop +%{_kf6_datadir}/applications/org.kde.amarok_containers.desktop +%{_kf6_datadir}/config.kcfg/amarokconfig.kcfg +%{_kf6_datadir}/dbus-1/interfaces/*.xml +%{_kf6_datadir}/dbus-1/services/org.kde.amarok.service +%{_kf6_datadir}/icons/hicolor/*/*/* +%{_kf6_datadir}/kio/servicemenus/amarok_append.desktop +%{_kf6_datadir}/knotifications6/amarok.notifyrc +%{_kf6_datadir}/kpackage/amarok +%{_kf6_datadir}/kpackage/genericqml/org.kde.amarok.context +%{_kf6_datadir}/solid/actions/amarok-play-audiocd.desktop +%{_kf6_metainfodir}/org.kde.amarok.*.xml +%{_kf6_qmldir}/org/kde/amarok +%{_kf6_qtplugindir}/amarok_collection-audiocdcollection.so +%{_kf6_qtplugindir}/amarok_collection-daapcollection.so %if 0%{?fedora} -%{_kf5_qtplugindir}/amarok_collection-ipodcollection.so -%{_kf5_qtplugindir}/amarok_collection-mtpcollection.so +%{_kf6_qtplugindir}/amarok_collection-ipodcollection.so +%{_kf6_qtplugindir}/amarok_collection-mtpcollection.so %endif -%{_kf5_qtplugindir}/amarok_collection-mysqlcollection.so -%{_kf5_qtplugindir}/amarok_collection-playdarcollection.so -%{_kf5_qtplugindir}/amarok_collection-umscollection.so -%{_kf5_qtplugindir}/amarok_importer-amarok.so -%{_kf5_qtplugindir}/amarok_importer-banshee.so -%{_kf5_qtplugindir}/amarok_importer-clementine.so -%{_kf5_qtplugindir}/amarok_importer-fastforward.so -%{_kf5_qtplugindir}/amarok_importer-itunes.so -%{_kf5_qtplugindir}/amarok_importer-rhythmbox.so -%{_kf5_qtplugindir}/amarok_service_*.so -%{_kf5_qtplugindir}/amarok_storage-mysqlestorage.so -%{_kf5_qtplugindir}/amarok_storage-mysqlserverstorage.so -%{_kf5_qtplugindir}/kcm_amarok_service*.so +%{_kf6_qtplugindir}/amarok_collection-mysqlcollection.so +%{_kf6_qtplugindir}/amarok_collection-playdarcollection.so +%{_kf6_qtplugindir}/amarok_collection-umscollection.so +%{_kf6_qtplugindir}/amarok_importer-amarok.so +%{_kf6_qtplugindir}/amarok_importer-banshee.so +%{_kf6_qtplugindir}/amarok_importer-clementine.so +%{_kf6_qtplugindir}/amarok_importer-fastforward.so +%{_kf6_qtplugindir}/amarok_importer-itunes.so +%{_kf6_qtplugindir}/amarok_importer-rhythmbox.so +%{_kf6_qtplugindir}/amarok_service_*.so +%{_kf6_qtplugindir}/amarok_storage-mysqlestorage.so +%{_kf6_qtplugindir}/amarok_storage-mysqlserverstorage.so +%{_kf6_qtplugindir}/kcm_amarok_service*.so %files libs -%{_kf5_libdir}/libamarokcore.so.1* -%{_kf5_libdir}/libamaroklib.so.1* -%{_kf5_libdir}/libamarokshared.so.1* -%{_kf5_libdir}/libamarok-sqlcollection.so.1* -%{_kf5_libdir}/libamarok-transcoding.so.1* -%{_kf5_libdir}/libampache_account_login.so -%{_kf5_libdir}/libamarok-sqlcollection.so -%{_kf5_libdir}/libamarok-transcoding.so -%{_kf5_libdir}/libamarokcore.so -%{_kf5_libdir}/libamaroklib.so -%{_kf5_libdir}/libamarokpud.so -%{_kf5_libdir}/libamarokshared.so +%{_kf6_libdir}/libamarokcore.so.1* +%{_kf6_libdir}/libamaroklib.so.1* +%{_kf6_libdir}/libamarokshared.so.1* +%{_kf6_libdir}/libamarok-sqlcollection.so.1* +%{_kf6_libdir}/libamarok-transcoding.so.1* +%{_kf6_libdir}/libampache_account_login.so +%{_kf6_libdir}/libamarok-sqlcollection.so +%{_kf6_libdir}/libamarok-transcoding.so +%{_kf6_libdir}/libamarokcore.so +%{_kf6_libdir}/libamaroklib.so +%{_kf6_libdir}/libamarokpud.so +%{_kf6_libdir}/libamarokshared.so %if 0%{?fedora} -%{_kf5_libdir}/libamarok_service_lastfm_config.so -%{_kf5_libdir}/libgpodder_service_config.so +%{_kf6_libdir}/libamarok_service_lastfm_config.so +%{_kf6_libdir}/libgpodder_service_config.so %endif %files utils -f amarokcollectionscanner_qt.lang -%{_kf5_bindir}/amarokcollectionscanner +%{_kf6_bindir}/amarokcollectionscanner %files doc -f amarok-doc.lang %changelog +* Thu Oct 23 2025 Yaakov Selkowitz - 3.3.1-1 +- 3.3.1 + * Wed Jul 23 2025 Fedora Release Engineering - 3.2.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/fix-mygpo-qt5-compilation.patch b/fix-mygpo-qt6-compilation.patch similarity index 87% rename from fix-mygpo-qt5-compilation.patch rename to fix-mygpo-qt6-compilation.patch index 2221b5e..3b3d7e7 100644 --- a/fix-mygpo-qt5-compilation.patch +++ b/fix-mygpo-qt6-compilation.patch @@ -6,7 +6,7 @@ index abe2c9f2b6..8bd28f82c1 100644 #include "core/playlists/PlaylistProvider.h" #include "core/podcasts/PodcastMeta.h" --#include +-#include +#include namespace Podcasts { @@ -19,7 +19,7 @@ index c56ec1942f..2b65e5d5df 100644 #define GPODDERPODCASTREQUESTHANDLER_H_ #include "GpodderServiceModel.h" --#include +-#include +#include #include @@ -32,7 +32,7 @@ index 91323fb770..1c5fd45c0c 100644 #define GPODDERPODCASTTREEITEM_H_ #include "GpodderTreeItem.h" --#include +-#include +#include class GpodderPodcastTreeItem: public GpodderTreeItem @@ -45,8 +45,8 @@ index 9551a97a69..bfddcb1ff7 100644 #include "core/podcasts/PodcastProvider.h" #include "core/podcasts/PodcastReader.h" #include "GpodderPodcastMeta.h" --#include --#include +-#include +-#include +#include +#include #include "playlistmanager/file/KConfigSyncRelStore.h" @@ -60,8 +60,8 @@ index b2d51ea807..841942e9d7 100644 #include "GpodderServiceModel.h" #include "GpodderServiceView.h" #include "GpodderSortFilterProxyModel.h" --#include --#include +-#include +-#include +#include +#include #include "playlistmanager/PlaylistManager.h" @@ -75,8 +75,8 @@ index 6eb979ca07..76bc61da7b 100644 #define GPODDERSERVICEMODEL_H_ #include "GpodderTreeItem.h" --#include --#include +-#include +-#include +#include +#include #include "NetworkAccessManagerProxy.h" @@ -86,15 +86,15 @@ diff --git a/src/services/gpodder/GpodderServiceSettings.h b/src/services/gpodde index 5d75f07e52..e7f773ae02 100644 --- a/src/services/gpodder/GpodderServiceSettings.h +++ b/src/services/gpodder/GpodderServiceSettings.h -@@ -23,7 +23,7 @@ +@@ -22,7 +22,7 @@ + #include "GpodderServiceConfig.h" - #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) --#include +-#include +#include - #else - #include - #endif + + #include + diff --git a/src/services/gpodder/GpodderTagTreeItem.h b/src/services/gpodder/GpodderTagTreeItem.h index 63cc965d89..8941cb8fc3 100644 --- a/src/services/gpodder/GpodderTagTreeItem.h @@ -103,7 +103,7 @@ index 63cc965d89..8941cb8fc3 100644 #define GPODDERTAGTREEITEM_H_ #include "GpodderTreeItem.h" --#include +-#include +#include #include @@ -116,8 +116,8 @@ index 642e1cb371..ce1d4d070a 100644 #ifndef GPODDERTREEITEM_H_ #define GPODDERTREEITEM_H_ --#include --#include +-#include +-#include +#include +#include diff --git a/liblastfm-version.patch b/liblastfm-version.patch new file mode 100644 index 0000000..9073072 --- /dev/null +++ b/liblastfm-version.patch @@ -0,0 +1,14 @@ +diff -up ./CMakeLists.txt.orig ./CMakeLists.txt +--- ./CMakeLists.txt.orig 2025-10-23 13:37:33.366264984 -0400 ++++ ./CMakeLists.txt 2025-10-23 14:05:34.305924931 -0400 +@@ -199,8 +199,8 @@ endif() + add_definitions(-DQT_NO_URL_CAST_FROM_STRING -DQT_NO_CAST_TO_ASCII) + + if( WITH_LASTFM ) +- find_package( LibLastFm 1.2.0 ) +- set( LIBLASTFM_MIN_VERSION "1.2.0" ) ++ find_package( LibLastFm 1.1.0 ) ++ set( LIBLASTFM_MIN_VERSION "1.1.0" ) + if( LIBLASTFM_FOUND ) + if ( ${LIBLASTFM_MIN_VERSION} VERSION_LESS ${LIBLASTFM_VERSION} ) + set( LIBLASTFM_FOUND TRUE ) diff --git a/sources b/sources index 400fe04..6e33561 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (amarok-3.2.2.tar.xz) = 918b4fd03a2de717cb1f5968e4ba3eda391c881de384ebabeec423303e84ac6f5a8dbbb8816668d3de52c77d57f1ab9fef6580a8111a9507c9082a8ca25097aa +SHA512 (amarok-3.3.1.tar.xz) = d39f974f05d71ea11d5aab71fb5f51ac8273f989f10a79d8b630f54c4011b791f8e8e7bc958d529d6a1cfa8f0f6b323b6ffb9707e7bf10dc1cd375b3092a4821 From 7bddaf02ca6bb02217de36e67556f5cd769b3759 Mon Sep 17 00:00:00 2001 From: Steve Cossette Date: Thu, 30 Oct 2025 14:57:39 -0400 Subject: [PATCH 36/38] Bump for Qt 6.10 rebuild --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index b17aa45..4999386 100644 --- a/amarok.spec +++ b/amarok.spec @@ -3,7 +3,7 @@ Name: amarok Summary: Media player Version: 3.3.1 -Release: 1%{?dist} +Release: 2%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -248,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf6_datadir}/applications/org.kde.%{name}*. %changelog +* Thu Oct 30 2025 Steve Cossette - 3.3.1-2 +- Bump for Qt 6.10 rebuild + * Thu Oct 23 2025 Yaakov Selkowitz - 3.3.1-1 - 3.3.1 From 7da0ad219fb3b885ff0414886c82a576fec99945 Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Sat, 1 Nov 2025 17:02:25 +0100 Subject: [PATCH 37/38] Rebuilt for FFmpeg 8 --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index 4999386..f92e620 100644 --- a/amarok.spec +++ b/amarok.spec @@ -3,7 +3,7 @@ Name: amarok Summary: Media player Version: 3.3.1 -Release: 2%{?dist} +Release: 3%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -248,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf6_datadir}/applications/org.kde.%{name}*. %changelog +* Sat Nov 01 2025 Dominik Mierzejewski - 3.3.1-3 +- Rebuilt for FFmpeg 8 + * Thu Oct 30 2025 Steve Cossette - 3.3.1-2 - Bump for Qt 6.10 rebuild From 2c287f84879145ed5c54f0d1ccc55ef3c89097e1 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 16 Jan 2026 03:37:48 +0000 Subject: [PATCH 38/38] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild --- amarok.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/amarok.spec b/amarok.spec index f92e620..12dbcb0 100644 --- a/amarok.spec +++ b/amarok.spec @@ -3,7 +3,7 @@ Name: amarok Summary: Media player Version: 3.3.1 -Release: 3%{?dist} +Release: 4%{?dist} # KDE e.V. may determine that future GPL versions are accepted License: GPL-2.0-only OR GPL-3.0-only @@ -248,6 +248,9 @@ desktop-file-validate %{buildroot}%{_kf6_datadir}/applications/org.kde.%{name}*. %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 3.3.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + * Sat Nov 01 2025 Dominik Mierzejewski - 3.3.1-3 - Rebuilt for FFmpeg 8