%define uname Clementine # comment out when not pre-release #define prel rc2 #define prel2 rc1-814-g2b340da79 %define tag 47-g19c3d75c9 %define rel 1.1 Summary: A cross-platform music player based on Amarok 1.4 Name: clementine Version: 1.4.2 Release: %mkrel %{?prel:0.%prel.}%{rel} License: GPLv3 Group: Sound/Players URL: https://www.clementine-player.org/ Source0: https://github.com/clementine-player/Clementine/archive/refs/tags/%{version}%{?prel}%{?tag:-%tag}.tar.gz?/%{name}-%{version}%{?prel}%{?tag:-%tag}.tar.gz #Patch0: clementine-qt5-libraries.patch #Based on patch from OpenMandriva #Patch1: clementine-1.4.1-cmake-4.0.0.patch #Based on patch from OpemMamba #Patch2: clementine-1.4.1-cmake-fix-version.patch BuildRequires: kf6-rpm-macros BuildRequires: boost-devel BuildRequires: ffmpeg-devel BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(cryptopp) BuildRequires: pkgconfig(fftw3) BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(glew) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-app-1.0) BuildRequires: pkgconfig(gstreamer-base-1.0) BuildRequires: pkgconfig(gstreamer-tag-1.0) BuildRequires: pkgconfig(gthread-2.0) BuildRequires: pkgconfig(libcdio) BuildRequires: pkgconfig(libchromaprint) BuildRequires: pkgconfig(libgpod-1.0) >= 0.7.92 BuildRequires: pkgconfig(libmtp) >= 1.0 BuildRequires: pkgconfig(libmygpo-qt5) #BuildRequires: pkgconfig(libprojectM) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libsparsehash) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(protobuf) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(taglib) >= 1.11 BuildRequires: pkgconfig(Qt6Core) BuildRequires: pkgconfig(Qt6Gui) BuildRequires: pkgconfig(Qt6Widgets) BuildRequires: pkgconfig(Qt6Concurrent) BuildRequires: pkgconfig(Qt6Sql) BuildRequires: pkgconfig(Qt6Network) BuildRequires: pkgconfig(Qt6Xml) BuildRequires: pkgconfig(Qt6OpenGL) BuildRequires: pkgconfig(Qt6OpenGLWidgets) BuildRequires: pkgconfig(Qt6DBus) BuildRequires: pkgconfig(Qt6Test) BuildRequires: pkgconfig(Qt6Core5Compat) BuildRequires: cmake(Qt6LinguistTools) Requires: libprojectm-data Requires: qt5-database-plugin-sqlite Recommends: gstreamer1.0-plugins-good Recommends: gstreamer1.0-plugins-ugly Recommends: gstreamer1.0-flac Recommends: gstreamer1.0-musepack Recommends: gstreamer1.0-gsm Recommends: gstreamer1.0-faad Recommends: gstreamer1.0-neon Recommends: gstreamer1.0-plugins-bad Recommends: gstreamer1.0-ffmpeg # Needed to be able to mount ipod/iphone/ipad (not tested locally) but it's also pulling gvfs # which is need at least to mount mtp devices (tested locally) Recommends: gvfs-iphone # Needed to be able to listen tracks from soundcloud (mga#15004) #Recommends: glib-networking %description Clementine is a modern music player and library organiser. Clementine is a port of Amarok 1.4, with some features rewritten to take advantage of Qt5. Features: * Search and play your local music library * Listen to internet radio from Last.fm, SomaFM and Magnatune * Tabbed playlists, import and export M3U, XSPF, PLS and ASX * Visualisations from projectM * Transcode music into MP3, Ogg Vorbis, Ogg Speex, FLAC or AAC * Edit tags on MP3 and OGG files, organise your music * Download missing album cover art from Last.fm * Remote control using a Wii Remote, MPRIS or the command-line * Copy music to your iPod, iPhone, MTP or mass-storage USB player * Queue manager %files %doc COPYING Changelog %{_bindir}/clementine %{_bindir}/clementine-tagreader %{_kf5_services}/clementine-*.protocol %{_datadir}/applications/*Clementine.desktop %{_iconsdir}/hicolor/*/apps/*Clementine.* %{_datadir}/metainfo/*Clementine.appdata.xml #--------------------------------------------------------------------- %prep %autosetup -p1 -n %{uname}-%{version}%{?prel}%{?tag:-%tag} sed -i -e '/^\[Play Shortcut Group\]$/,300d' dist/*.desktop # Fixes from Fedora # Not needed and fails build #sed -i "/add_dependencies(clementine_lib qtsingleapplication)/d" src/CMakeLists.txt # Fix for GCC 12, to send upstream when root cause is determined #sed -i 's|local_server_name_ = qApp->applicationName().toLower();|local_server_name_ = QString(qApp->applicationName()).toLower();|' ext/libclementine-common/core/workerpool.h %build %cmake \ -DFORCE_GIT_REVISION:STRING=%{version}%{?tag:-%tag} \ -DBUNDLE_PROJECTM_PRESETS=OFF \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -D QT_DEFAULT_MAJOR_VERSION=6 \ -DUSE_SYSTEM_TAGLIB=ON %cmake_build %install %cmake_install