diff --git a/multimedia/amarok/amarok.spec b/multimedia/amarok/amarok.spec new file mode 100644 index 0000000..eff3c4d --- /dev/null +++ b/multimedia/amarok/amarok.spec @@ -0,0 +1,773 @@ +%global __provides_exclude_from ^%{_kf5_qmldir}/org/kde/amarok/.*\.so$ + +Name: amarok +Summary: Media player +Version: 3.1.0 +Release: 1%{?dist} + +# KDE e.V. may determine that future GPL versions are accepted +License: GPL-2.0-only or GPL-3.0-only +Url: https://amarok.kde.org/ + +Source0: https://download.kde.org/%{stable_kf5}/amarok/%{version}/amarok-%{version}.tar.xz + + +# Needed because not every distro installs mygpo-qt5 under the same path. +# For instance, Fedora namespaces qt5 +Patch10: fix-mygpo-qt5-compilation.patch + +BuildRequires: desktop-file-utils +BuildRequires: extra-cmake-modules +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: kf5-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) +%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.12 +BuildRequires: pkgconfig(taglib-extras) >= 1.0.1 +BuildRequires: cmake(Phonon4Qt5) +BuildRequires: pkgconfig(libmariadb) +BuildRequires: pkgconfig(mariadb) +BuildRequires: mariadb-embedded-devel +BuildRequires: ffmpeg-devel +BuildRequires: fftw-devel +%if 0%{?fedora} || 0%{?epel} +# 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 +# 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: glib2-devel +%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 +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 + +Suggests: ffmpeg + +%description +Amarok is a multimedia player with: + - fresh playlist concept, very fast to use, with drag and drop + - plays all formats supported by the various engines + - audio effects, like reverb and compressor + - compatible with the .m3u and .pls formats for playlists + - nice GUI, integrates into the KDE look, but with a unique touch + +%package libs +Summary: Runtime libraries for %{name} +%description libs +%{summary}. + + +%package doc +Summary: Application handbook, documentation, translations +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +%{summary}. + + +%prep +%autosetup -p1 + +sed -i -e 's|/usr/bin/mysqld|%{_libexecdir}/mysqld|' src/importers/amarok/AmarokConfigWidget.cpp + + +%build +%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_kf5} \ + -DMYSQLCONFIG_EXECUTABLE:BOOL=OFF +%{cmake_build} + + +%install +%cmake_install + +#find_lang %{name} --all-name --with-qt --with-html + + +%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 + + +%files +#-f amarok.lang +%doc AUTHORS ChangeLog README +%license COPYING +%{_qt5_settingsdir}/amarok_homerc +%{_kf5_bindir}/amarok +%{_kf5_bindir}/amarok_afttagger +%{_kf5_bindir}/amarokcollectionscanner +%{_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/org.kde.amarok.* +%{_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 +%{_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 +%{_docdir}/HTML/* +%{_kf5_datadir}/locale/* + +%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 +%{_kf5_libdir}/libamarok_service_lastfm_config.so +%{_kf5_libdir}/libgpodder_service_config.so + + + +%changelog +* Mon Aug 5 2024 Raven - 3.1.0-1 +- update to 3.1.0 + +* Tue Jun 4 2024 Raven - 3.0.1-1 +- update to 3.0.1 + +* Tue Apr 30 2024 Raven - 3.0.0-1 +- update to 3.0.0 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* Thu Jan 31 2019 Fedora Release Engineering - 2.9.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 2.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Mar 07 2018 Rex Dieter - 2.9.0-1 +- amarok-2.9.0 + +* Wed Feb 28 2018 Rex Dieter - 2.8.90-19 +- use %%ldconfig_scriptlets, %%_kf5_metainfodir, BR: gcc-c++ + +* Wed Feb 07 2018 Fedora Release Engineering - 2.8.90-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Jan 07 2018 Igor Gnatenko - 2.8.90-17 +- Remove obsolete scriptlets + +* Tue Oct 17 2017 Rex Dieter - 2.8.90-16 +- amzdownloader.desktop: NoDisplay=true + +* Thu Oct 05 2017 Rex Dieter - 2.8.90-15 +- use mariadb-connector-c-devel on f28+ (#1494091) + +* Wed Aug 02 2017 Fedora Release Engineering - 2.8.90-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 2.8.90-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Apr 03 2017 Rex Dieter - 2.8.90-11 +- pul in more upstream fixes + +* Thu Feb 23 2017 Rex Dieter - 2.8.90-10 +- Recommends: audiocd-kio kio_mtp kio-upnp-ms + +* Fri Feb 10 2017 Fedora Release Engineering - 2.8.90-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sun Aug 07 2016 Rex Dieter - 2.8.90-8 +- pull in upstream fixes + +* Sat Jul 23 2016 Rex Dieter - 2.8.90-7 +- fix mpris support (kde#365275) + +* Wed Jun 01 2016 Rex Dieter - 2.8.90-6 +- pull in upstream fixes, fix build with gcc6 (kde#363054) + +* Wed Feb 03 2016 Fedora Release Engineering - 2.8.90-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Dec 29 2015 Rex Dieter 2.8.90-4 +- add support for kf5 solid/actions,ServiceMenus + +* Thu Dec 10 2015 Rex Dieter 2.8.90-3 +- workaround 'mysql_config --libmysqld-libs' madness (#1290517) + +* Thu Dec 10 2015 Rex Dieter 2.8.90-2 +- make kde-runtime dep unversioned, use %%license + +* Fri Sep 11 2015 Rex Dieter 2.8.90-1 +- 2.8.90 + +* Fri Aug 28 2015 Rex Dieter 2.8.0-19 +- backport upstream FindTaglib.cmake fix + +* Mon Jun 29 2015 Rex Dieter 2.8.0-18 +- Amarok has an unmet dependency on rhel7: audiocd-kio (#1232818) + +* Sun Jun 28 2015 Rex Dieter 2.8.0-17 +- pull in upstream fixes for wikipedia plugin (kde#349313) + +* Tue Jun 16 2015 Fedora Release Engineering - 2.8.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 2.8.0-15 +- Rebuilt for GCC 5 C++11 ABI change + +* Fri Feb 20 2015 Rex Dieter - 2.8.0-14 +- backport gl crasher workaround (kde#323635) +- deprecate -nepomukcollection (f22+) + +* Sat Nov 08 2014 Rex Dieter 2.8.0-13 +- use fresher upstream appdata (translations mostly) + +* Fri Nov 07 2014 Rex Dieter 2.8.0-12 +- pull in upstream (master/ branch) appdata + +* Sat Oct 18 2014 Rex Dieter 2.8.0-11 +- drop Requires: moodbar (which still pulls in gstreamer-0.10) + +* Wed Oct 01 2014 Rex Dieter 2.8.0-10 +- rebuild (libmygpo-qt test) + +* Fri Aug 15 2014 Fedora Release Engineering - 2.8.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 08 2014 Rex Dieter 2.8.0-8 +- scriptet polish + +* Thu Jul 03 2014 Rex Dieter 2.8.0-7 +- optimize mimeinfo scriplet + +* Thu Jun 19 2014 Rex Dieter 2.8.0-6 +- work on epel7 support, BR: kdelibs4-webkit-devel + +* Sat Jun 07 2014 Fedora Release Engineering - 2.8.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 14 2014 Rex Dieter 2.8.0-4 +- -nepomukcollection subpkg + +* Tue Aug 27 2013 Rex Dieter 2.8.0-3.1 +- BR: libmygpo-qt-devel >= 1.0.7 + +* Sat Aug 17 2013 Rex Dieter 2.8.0-3 +- Requires: moodbar + +* Fri Aug 16 2013 Rex Dieter 2.8.0-2 +- (Build)Requires: clamz + +* Thu Aug 15 2013 Rex Dieter 2.8.0-1 +- 2.8.0 + +* Sat Aug 03 2013 Petr Pisar - 2.7.90-2 +- Perl 5.18 rebuild + +* Thu Aug 01 2013 Rex Dieter 2.7.90-1 +- 2.7.90 + +* Wed Jul 17 2013 Petr Pisar - 2.7.1-3 +- Perl 5.18 rebuild + +* Fri May 17 2013 Rex Dieter 2.7.1-2 +- drop already-included qtwebkit/wikipedia fixer + +* Thu May 16 2013 Rex Dieter 2.7.1-1 +- 2.7.1 + +* Mon May 13 2013 Rex Dieter - 2.7.0-4 +- backport a few upstream fixes, in particular... +- workaround for qtwebkit/wikipedia related crashes (kde #319371) + +* Sat Feb 02 2013 Rex Dieter 2.7.0-3 +- rebuild (mariadb) + +* Mon Jan 28 2013 Rex Dieter 2.7.0-2 +- Requires: kio_mtp, kio-upnp-ms + +* Thu Jan 17 2013 Rex Dieter 2.7.0-1 +- 2.7.0 + +* Sat Dec 15 2012 Rex Dieter - 2.6.90-2 +- up build deps (nepomuk-core, liblastfm) +- changelog: prune, fix bad dates + +* Fri Dec 14 2012 Rex Dieter 2.6.90-1 +- 2.6.90 + +* Tue Nov 27 2012 Jan Grulich 2.6.0-7 +- rebuild (qjson) + +* Sat Nov 24 2012 Rex Dieter 2.6.0-6 +- rebuild (qjson) + +* Tue Sep 11 2012 Rex Dieter 2.6.0-5 +- -doc: update summary to mention translations + +* Fri Sep 7 2012 Dominique Bribanick 2.6.0-4 +- add patch for french translation (#855655) + +* Sat Aug 25 2012 Rex Dieter 2.6.0-3 +- Requires: kdemultimedia-kio_audiocd/audiocd-kio + +* Wed Aug 22 2012 Rex Dieter 2.6.0-2.1 +- use liblastfm1 on f16/f17 too + +* Sun Aug 12 2012 Rex Dieter 2.6.0-2 +- Requires: media-player-info + +* Sat Aug 11 2012 Rex Dieter 2.6.0-1 +- 2.6.0 + +* Thu Aug 02 2012 Rex Dieter 2.5.96-1 +- 2.5.96 (2.6rc1) + +* Wed Jul 18 2012 Fedora Release Engineering - 2.5.90-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jul 16 2012 Rex Dieter 2.5.90-5 +- backport upstream commit to disable polling (kde#289462) + +* Sat Jul 14 2012 Rex Dieter 2.5.90-4 +- update kdelibs/phonon dep versions + +* Tue Jul 03 2012 Rex Dieter 2.5.90-3 +- add reviewboard patch to support liblastfm1 + +* Tue Jul 03 2012 Rex Dieter 2.5.90-2 +- rebuild (liblastfm) + +* Wed May 30 2012 Rex Dieter 2.5.90-1 +- 2.5.90 + +* Wed Mar 21 2012 Rex Dieter 2.5.0-9 +- new iteration of proxy_loading patch (kde#295199) + +* Tue Mar 13 2012 Rex Dieter 2.5.0-8 +- Load all XSPF tracks (kde#295199) + +* Tue Feb 28 2012 Fedora Release Engineering - 2.5.0-7 +- Rebuilt for c++ ABI breakage + +* Sun Jan 29 2012 Kevin Kofler 2.5.0-6 +- help: invoke a browser on the online UserBase doc if amarok-doc not installed + +* Fri Jan 27 2012 Rex Dieter 2.5.0-5 +- make -doc only handbook, put translations back in main pkg + +* Fri Jan 27 2012 Rex Dieter 2.5.0-4 +- -doc subpkg for large'ish application handbook and translations + +* Fri Jan 27 2012 Rex Dieter 2.5.0-3 +- fix context view when on kde48 (kde#290123) + +* Thu Jan 12 2012 Fedora Release Engineering - 2.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Dec 16 2011 Rex Dieter 2.5.0-1 +- 2.5.0 + +* Mon Nov 14 2011 Rex Dieter 2.4.90-1 +- 2.4.90 + +* Wed Nov 09 2011 Rex Dieter 2.4.3-4 +- pkgconfig-style deps +- drop extraneous/old BR's + +* Mon Sep 19 2011 Rex Dieter 2.4.3-3 +- Wikipedia applet crashes (kde#279813) + +* Fri Sep 16 2011 Rex Dieter 2.4.3-2 +- re-enable libgpod support inadvertantly lost in 2.4.1.90-1 + +* Sat Jul 30 2011 Rex Dieter 2.4.3-1 +- 2.4.3 + +* Sun Jul 24 2011 Rex Dieter 2.4.2-2 +- don't query kwallet for lastfm credentials on every track change (kde#278177) + +* Fri Jul 22 2011 Rex Dieter 2.4.2-1 +- 2.4.2 + +* Fri Jul 08 2011 Rex Dieter 2.4.1.90-1 +- 2.4.1.90 +- drop no-longer-needed %%ifarch s390 conditionals + +* Fri Jun 10 2011 Rex Dieter 2.4.1-4 +- drop ancient Obsoletes + +* Fri Jun 10 2011 Rex Dieter 2.4.1-3 +- rebuild (libmtp) + +* Tue May 24 2011 Rex Dieter 2.4.1-2 +- BR: libmygpo-qt-devel + +* Fri May 06 2011 Rex Dieter 2.4.1-1 +- 2.4.1 (final) + +* Wed Mar 23 2011 Rex Dieter 2.4.0.90-2 +- rebuild (mysql) + +* Mon Mar 21 2011 Rex Dieter 2.4.0.90-1 +- 2.4.1 beta1 + +* Wed Feb 09 2011 Rex Dieter 2.4.0-3 +- License: GPLv2 or GPLv3 + +* Mon Feb 07 2011 Fedora Release Engineering - 2.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jan 11 2011 Rex Dieter 2.4.0-1 +- 2.4.0 +- libmtp-hal dependency missing for amarok (#666173) + +* Tue Dec 28 2010 Rex Dieter 2.3.90-3 +- rebuild (mysql) + +* Tue Dec 07 2010 Thomas Janssen 2.3.90-2 +- fixed missing libampache + +* Mon Dec 06 2010 Thomas Janssen 2.3.90-1 +- 2.3.90 (2.4beta1) + +* Tue Nov 30 2010 Rex Dieter 2.3.2-7 +- recognize audio/flac mimetype too (kde#257488) + +* Fri Nov 05 2010 Thomas Janssen 2.3.2-6 +- rebuild for new libxml2 + +* Thu Nov 04 2010 Rex Dieter 2.3.2-5 +- appletsize patch +- fix/improve ipod3 support patch +- another collectionscanner patch + +* Wed Sep 29 2010 jkeating - 2.3.2-4 +- Rebuilt for gcc bug 634757 + +* Fri Sep 24 2010 Thomas Janssen 2.3.2-3 +- added patch to fix scanning qt bug/regression + +* Mon Sep 20 2010 Thomas Janssen 2.3.2-2 +- added patch to fix BPM tags in flac + +* Thu Sep 16 2010 Rex Dieter - 2.3.2-1 +- amarok-2.3.2 + +* Thu Sep 16 2010 Dan HorĂ¡k - 2.3.1.90-3 +- no libgpod on s390(x) + +* Mon Aug 16 2010 Rex Dieter - 2.3.1.90-2 +- fix/patch installation of amarok handbooks + +* Mon Aug 16 2010 Rex Dieter - 2.3.1.90-1 +- amarok-2.3.1.90 (2.3.2 beta1) + +* Fri Jul 09 2010 Rex Dieter - 2.3.1-2 +- No Notification Area icon for non-KDE desktops (kde#232578,rh#603336) + +* Fri May 28 2010 Rex Dieter - 2.3.1-1 +- amarok-2.3.1 + +* Sat Apr 17 2010 Rex Dieter - 2.3.0.90-1 +- amarok-2.3.0.90 + +* Thu Mar 25 2010 Rex Dieter - 2.3.0-5 +- fix mp3 support logic + +* Mon Mar 22 2010 Rex Dieter - 2.3.0-4 +- rebuild (libgpod) + +* Mon Mar 22 2010 Rex Dieter - 2.3.0-3 +- workaround info applet crasher (kde#227639,kde#229756) + +* Thu Mar 11 2010 Rex Dieter - 2.3.0-2 +- fix Source0 URL +- -libs: drop unused/extraneous kdelibs4 dep + +* Thu Mar 11 2010 Thomas Janssen 2.3.0-1 +- amarok 2.3.0 + +* Sat Feb 13 2010 Rex Dieter - 2.2.2.90-1 +- amarok-2.2.2.90 (2.3beta1) + +* Thu Jan 28 2010 Rex Dieter - 2.2.2-4 +- use %%{_kde4_version} provided elsewhere (kde-filesystem) + +* Sun Jan 10 2010 Rex Dieter - 2.2.2-3 +- collection scan crash patch, take 2 (kde#220532) + +* Fri Jan 08 2010 Rex Dieter - 2.2.2-2 +- collection scan crash patch (kde#220532) + +* Tue Jan 05 2010 Rex Dieter - 2.2.2-1 +- amarok-2.2.2 + +* Thu Dec 10 2009 Rex Dieter - 2.2.1.90-1 +- amarok-2.2.1.90 (2.2.2 beta1) + +* Mon Nov 23 2009 Rex Dieter - 2.2.1-3 +- rebuild (for qt-4.6.0-rc1, f13+) + +* Mon Nov 16 2009 Rex Dieter 2.2.1-2 +- playlist_default_layout_fix.diff (kde#211717) + +* Wed Nov 11 2009 Rex Dieter 2.2.1-1 +- amarok-2.2.1 + +* Thu Oct 08 2009 Rex Dieter 2.2.0-3 +- upstream lyric.patch + +* Fri Oct 02 2009 Rex Dieter 2.2.0-2 +- Requires: kdebase-runtime (need kio_trash, kcm_phonon, etc) + +* Tue Sep 29 2009 Rex Dieter 2.2.0-1 +- amarok-2.2.0 + +* Wed Sep 23 2009 Rex Dieter 2.1.90-2.20090923git +- 20090923git snapshot + +* Mon Sep 21 2009 Rex Dieter 2.1.90-1 +- amarok-2.1.90 (2.2rc1) + +* Thu Sep 17 2009 Rex Dieter 2.1.85-2 +- BR: taglib-devel >= 1.6, taglib-extras-devel >= 1.0 + +* Mon Sep 14 2009 Rex Dieter 2.1.85-1 +- amarok-2.1.85 (2.2beta2) + +* Wed Sep 02 2009 Rex Dieter 2.1.80-2 +- another lyricwiki fix + +* Wed Sep 02 2009 Rex Dieter 2.1.80-1 +- amarok-2.1.80 (2.2beta1) +- -libs subpkg + +* Fri Aug 21 2009 Tomas Mraz - 2.1.1-5 +- rebuilt with new openssl + +* Sat Aug 08 2009 Rex Dieter 2.1.1-4 +- lyricwiki patch (kdebug#202366) + +* Fri Jul 24 2009 Fedora Release Engineering - 2.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Jul 07 2009 Rex Dieter 2.1.1-2 +- Requires: qtscriptbindings%%{?_isa} (#510133) + +* Fri Jun 12 2009 Rex Dieter 2.1.1-1 +- amarok-2.1.1 + +* Sat May 30 2009 Rex Dieter 2.1-1 +- amarok-2.1 + +* Mon May 18 2009 Rex Dieter 2.0.96-2.20090518 +- 20090518svn snapshot + +* Mon May 11 2009 Rex Dieter 2.0.96-1 +- amarok-2.9.96 (2.1 beta2) +- -utilities -> -utils + +* Fri Apr 10 2009 Rex Dieter 2.0.90-2 +- -collectionscanner -> -utilities + +* Fri Apr 10 2009 Rex Dieter 2.0.90-1 +- amarok-2.0.90 (amarok-2.1 beta1) + +* Wed Apr 08 2009 Rex Dieter 2.0.2-6 +- fix lastfm (kdebug#188678, rhbz#494871) +- fix qtscriptgenerator/qtscriptbindings deps + +* Tue Apr 07 2009 Rex Dieter 2.0.2-5 +- enable external qtscriptgenerator/qtscriptbindings +- optimize scriptlets + +* Tue Mar 10 2009 Rex Dieter 2.0.2-4 +- Req: qtscriptgenerator (f11+) (not enabled, pending review) +- use desktop-file-validate + +* Fri Mar 06 2009 Rex Dieter 2.0.2-3 +- add minimal qt4,kdelibs4 deps + +* Wed Mar 04 2009 Rex Dieter 2.0.2-1 +- amarok-2.0.2 + +* Tue Feb 24 2009 Than Ngo 2.0.1.1-6 +- fix build issue against gcc-4.4 + +* Mon Feb 23 2009 Fedora Release Engineering - 2.0.1.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 23 2009 Rex Dieter - 2.0.1.1-4 +- qt45 patch + +* Fri Feb 20 2009 Todd Zullinger - 2.0.1.1-3 +- Rebuild against libgpod-0.7.0 +- Drop gtk2-devel BR, libgpod properly requires that now + +* Thu Jan 22 2009 Rex Dieter - 2.0.1.1-2 +- respin (mysql) + +* Fri Jan 09 2009 Rex Dieter - 2.0.1.1-1 +- amarok-2.0.1.1 + +* Tue Jan 06 2009 Rex Dieter - 2.0.1-1 +- amarok-2.0.1 + +* Tue Dec 09 2008 Rex Dieter - 2.0-2 +- respin tarball + +* Fri Dec 05 2008 Rex Dieter - 2.0-1 +- amarok-2.0 (final, first cut) diff --git a/multimedia/amarok/fix-mygpo-qt5-compilation.patch b/multimedia/amarok/fix-mygpo-qt5-compilation.patch new file mode 100644 index 0000000..9b5d555 --- /dev/null +++ b/multimedia/amarok/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/multimedia/amarok/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch b/multimedia/amarok/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/multimedia/amarok/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/multimedia/amarok/refresh-deprecated-codepaths.patch b/multimedia/amarok/refresh-deprecated-codepaths.patch new file mode 100644 index 0000000..436f785 --- /dev/null +++ b/multimedia/amarok/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/multimedia/amarok/revert.patch b/multimedia/amarok/revert.patch new file mode 100644 index 0000000..bd4bb89 --- /dev/null +++ b/multimedia/amarok/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()