cf6d32a
# Force out of source build
cf6d32a
%undefine __cmake_in_source_build
cf6d32a
30addc4
%global commit          0be314337d5bbd6fc7f5c76c31d7b87e37ba3a04
30addc4
%global snapshotdate    20220107
b0a536a
%global shortcommit     %(c=%{commit}; echo ${c:0:7})
4633768
38cd3fe
Name:           clementine
8ee9268
Version:        1.4.0
30addc4
Release:        %autorelease -e rc1 -s %{snapshotdate}git%{shortcommit}
38cd3fe
Summary:        A music player and library organizer
38cd3fe
bc85a02
# 3rdparty/taglib, src/widgets/fancytabwidget and src/widgets/stylehelper: LGPLv2
bc85a02
# 3rdparty/utf8-cpp: Boost
30addc4
License:        GPLv3+ and GPLv2+ and Boost and LGPLv2
Orion Poplawski 77e9ba7
URL:            https://www.clementine-player.org/
b0a536a
Source0:        https://github.com/clementine-player/Clementine/archive/%{commit}/%{name}-%{shortcommit}.tar.gz
Orcan Ogetbil 9b3c2c1
98c1719
# Use qt5 libraries (qtiocompressor)
b0a536a
Patch11:        clementine-qt5-libraries.patch
Rex Dieter 854a3d9
b0a536a
BuildConflicts: pkgconfig(gmock) >= 1.6
b0a536a
BuildConflicts: pkgconfig(gtest)
38cd3fe
BuildRequires:  boost-devel
38cd3fe
BuildRequires:  cmake
38cd3fe
BuildRequires:  desktop-file-utils
b0a536a
BuildRequires:  gcc-c++
38cd3fe
BuildRequires:  gettext
b0a536a
BuildRequires:  libappstream-glib
b0a536a
BuildRequires:  liblastfm-qt5-devel
b0a536a
BuildRequires:  pkgconfig(alsa)
b0a536a
BuildRequires:  pkgconfig(cryptopp)
b0a536a
BuildRequires:  pkgconfig(dbus-1)
b0a536a
BuildRequires:  pkgconfig(fftw3)
b0a536a
BuildRequires:  pkgconfig(gio-2.0)
b0a536a
BuildRequires:  pkgconfig(gio-unix-2.0)
b0a536a
BuildRequires:  pkgconfig(glib-2.0)
b0a536a
BuildRequires:  pkgconfig(glu)
b0a536a
BuildRequires:  pkgconfig(gstreamer-1.0)
b0a536a
BuildRequires:  pkgconfig(gstreamer-app-1.0)
b0a536a
BuildRequires:  pkgconfig(gstreamer-audio-1.0)
b0a536a
BuildRequires:  pkgconfig(gstreamer-base-1.0)
b0a536a
BuildRequires:  pkgconfig(gstreamer-tag-1.0)
b0a536a
BuildRequires:  pkgconfig(gthread-2.0)
b0a536a
BuildRequires:  pkgconfig(libcdio)
b0a536a
BuildRequires:  pkgconfig(libchromaprint)
b0a536a
BuildRequires:  pkgconfig(libmtp)
b0a536a
BuildRequires:  pkgconfig(libmygpo-qt5)
b0a536a
BuildRequires:  pkgconfig(libnotify)
8ee9268
BuildRequires:  pkgconfig(libplist-2.0)
b0a536a
BuildRequires:  pkgconfig(libprojectM) >= 2.0.1-7
b0a536a
BuildRequires:  pkgconfig(libpulse)
b0a536a
BuildRequires:  pkgconfig(libsparsehash)
b0a536a
BuildRequires:  pkgconfig(libxml-2.0)
b0a536a
BuildRequires:  pkgconfig(protobuf)
b0a536a
BuildRequires:  pkgconfig(Qt5Concurrent)
b0a536a
BuildRequires:  pkgconfig(Qt5Core)
b0a536a
BuildRequires:  pkgconfig(Qt5DBus)
b0a536a
BuildRequires:  pkgconfig(Qt5Gui)
b0a536a
BuildRequires:  pkgconfig(Qt5Network)
b0a536a
BuildRequires:  pkgconfig(Qt5OpenGL)
b0a536a
BuildRequires:  pkgconfig(Qt5Sql)
b0a536a
BuildRequires:  pkgconfig(Qt5Widgets)
b0a536a
BuildRequires:  pkgconfig(Qt5X11Extras)
b0a536a
BuildRequires:  pkgconfig(Qt5Xml)
b0a536a
BuildRequires:  pkgconfig(QxtCore-qt5)
b0a536a
BuildRequires:  pkgconfig(sqlite3) >= 3.7
b0a536a
BuildRequires:  pkgconfig(taglib) >= 1.11
b0a536a
BuildRequires:  pkgconfig(udisks)
b0a536a
BuildRequires:  qt5-linguist
38cd3fe
BuildRequires:  qtiocompressor-devel
b0a536a
BuildRequires:  qtsingleapplication-qt5-devel >= 2.6.1-2
b0a536a
BuildRequires:  qtsinglecoreapplication-qt5-devel
16ee54f
BuildRequires:  sha2-devel
b0a536a
%ifnarch s390 s390x
b0a536a
BuildRequires:  pkgconfig(libgpod-1.0)
b0a536a
BuildRequires:  pkgconfig(libimobiledevice-1.0)
b0a536a
%endif
30587e9
4633768
Requires:       gstreamer1-plugins-good
38cd3fe
Requires:       hicolor-icon-theme
b0a536a
Requires:       qtiocompressor >= 2.3.1-17
38cd3fe
bc85a02
Provides:       bundled(utf8-cpp)
bc85a02
38cd3fe
%description
47a76eb
Clementine is a multi-platform music player. It is inspired by Amarok 1.4,
30587e9
focusing on a fast and easy-to-use interface for searching and playing your
30587e9
music.
38cd3fe
38cd3fe
%prep
b0a536a
%autosetup -p1 -n Clementine-%{commit}
fcd2ff4
Rex Dieter 854a3d9
# Remove most 3rdparty libraries
b0a536a
# Unbundle taglib next release:
b0a536a
# https://github.com/taglib/taglib/issues/837#issuecomment-428389347
30addc4
mv 3rdparty/{gmock,qocoa,qsqlite,utf8-cpp}/ .
fcd2ff4
rm -fr 3rdparty/*
30addc4
mv {gmock,qocoa,qsqlite,utf8-cpp}/ 3rdparty/
30addc4
# Not needed and fails build
30addc4
sed -i "/add_dependencies(clementine_lib qtsingleapplication)/d" src/CMakeLists.txt
30addc4
# Use system-wide qtiocompressor
30addc4
sed -i 's|#include "3rdparty/qtiocompressor/qtiocompressor.h"|#include "qtiocompressor.h"|' src/internet/spotifywebapi/spotifywebapiservice.cpp
38cd3fe
38cd3fe
%build
adc754c
# QT applications need to avoid local binding and copy relocations.  Forcing them to build with
adc754c
# -fPIC solves that problem
30addc4
%global optflags %{optflags} -fPIC
Rex Dieter 854a3d9
%{cmake} \
Rex Dieter 854a3d9
  -DBUILD_WERROR:BOOL=OFF \
Rex Dieter 854a3d9
  -DCMAKE_BUILD_TYPE:STRING=Release \
Rex Dieter 854a3d9
  -DUSE_SYSTEM_QTSINGLEAPPLICATION=1 \
Rex Dieter 854a3d9
  -DUSE_SYSTEM_PROJECTM=1 \
cf6d32a
  -DUSE_SYSTEM_QXT=1
cf6d32a
%cmake_build
Rex Dieter 854a3d9
38cd3fe
%install
cf6d32a
%cmake_install
38cd3fe
38cd3fe
%check
30addc4
desktop-file-validate %{buildroot}%{_datadir}/applications/org.clementine_player.Clementine.desktop
30addc4
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.clementine_player.Clementine.appdata.xml
16ee54f
38cd3fe
%files
Orion Poplawski 77e9ba7
%license COPYING
Orion Poplawski 77e9ba7
%doc Changelog
38cd3fe
%{_bindir}/clementine
471d256
%{_bindir}/clementine-tagreader
30addc4
%{_metainfodir}/org.clementine_player.Clementine.appdata.xml
30addc4
%{_datadir}/applications/org.clementine_player.Clementine.desktop
30addc4
%{_datadir}/icons/hicolor/*/apps/org.clementine_player.Clementine.*
b0a536a
%{_datadir}/kservices5/clementine-*.protocol
b0a536a
38cd3fe
%changelog
05a054d
%autochangelog