File strawberry.spec of Package strawberry
#
# spec file for package strawberry
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define sha 83dca405afb2110b10a7241364970eae5a358212
Name: strawberry
Version: 1.2.13.21.g83dca405
Release: 0
Summary: A music player and music collection organizer
License: GPL-3.0+
Group: Productivity/Multimedia/Sound/Players
URL: https://www.strawberrymusicplayer.org/
Source: https://github.com/strawberrymusicplayer/strawberry/archive/%{sha}.tar.gz#/%{name}-%{version}.tar.gz
%if 0%{?suse_version}
BuildRequires: libboost_headers-devel
%else
BuildRequires: boost-devel
%endif
BuildRequires: cmake
%if 0%{?sle_version} == 150500 || 0%{?sle_version} == 150600
%if 0%{?sle_version} == 150500
BuildRequires: gcc12
BuildRequires: gcc12-c++
%endif
%if 0%{?sle_version} == 150600
BuildRequires: gcc13
BuildRequires: gcc13-c++
%endif
%else
BuildRequires: gcc
BuildRequires: gcc-c++
%endif
BuildRequires: hicolor-icon-theme
BuildRequires: make
BuildRequires: git
BuildRequires: desktop-file-utils
%if 0%{?suse_version}
BuildRequires: update-desktop-files
BuildRequires: appstream-glib
%endif
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos}
BuildRequires: libappstream-glib
%endif
%if 0%{?mageia} || "%{?_vendor}" == "openmandriva"
BuildRequires: appstream-util
%endif
BuildRequires: pkgconfig
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(gthread-2.0)
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(sqlite3) >= 3.9
BuildRequires: pkgconfig(taglib)
BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(icu-uc)
BuildRequires: pkgconfig(icu-i18n)
BuildRequires: cmake(Qt6Core)
BuildRequires: cmake(Qt6Concurrent)
BuildRequires: cmake(Qt6Network)
BuildRequires: cmake(Qt6Sql)
BuildRequires: cmake(Qt6DBus)
BuildRequires: cmake(Qt6Gui)
BuildRequires: cmake(Qt6Widgets)
BuildRequires: cmake(Qt6Test)
BuildRequires: cmake(Qt6LinguistTools)
BuildRequires: cmake(Qt6XcbQpaPrivate)
%if 0%{?fedora} || 0%{?suse_version} || "%{?_vendor}" == "openmandriva"
BuildRequires: cmake(KDSingleApplication-qt6)
%endif
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-app-1.0)
BuildRequires: pkgconfig(gstreamer-audio-1.0)
BuildRequires: pkgconfig(gstreamer-base-1.0)
BuildRequires: pkgconfig(gstreamer-tag-1.0)
BuildRequires: pkgconfig(libchromaprint)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libcdio)
BuildRequires: pkgconfig(libebur128)
BuildRequires: pkgconfig(libgpod-1.0)
BuildRequires: pkgconfig(libmtp)
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(libsparsehash)
BuildRequires: cmake(GTest)
BuildRequires: pkgconfig(gmock)
BuildRequires: cmake(RapidJSON)
%if 0%{?fedora}
BuildRequires: openssl-devel
BuildRequires: qt6-qtbase-private-devel
%ifarch x86_64
BuildRequires: libvpl-devel
%endif
%endif
%if 0%{?mageia}
%ifarch x86_64
BuildRequires: lib64taglib-devel
%else
BuildRequires: libtaglib-devel
%endif
%endif
%if 0%{?suse_version} || 0%{?sle_version}
Requires: qt6-sql-sqlite
%endif
Conflicts: strawberry-qt6
%description
Strawberry is a music player and music collection organizer.
It is a fork of Clementine. The name is inspired by the band Strawbs.
Features:
- Play and organize music
- Supports WAV, FLAC, WavPack, Ogg FLAC, Ogg Vorbis, Ogg Opus, Ogg Speex,
MPC, TrueAudio, AIFF, MP4, MP3, ASF and Monkey's Audio.
- Audio CD playback
- Native desktop notifications
- Playlist management
- Playlists in multiple formats
- Advanced audio output and device configuration for bit-perfect playback on Linux
- Edit tags on audio files
- Automatically retrieve tags from MusicBrainz
- Album cover art from Last.fm, Musicbrainz, Discogs, Musixmatch, Deezer, Tidal, Qobuz and Spotify
- Song lyrics from Genius, Musixmatch, ChartLyrics, lyrics.ovh, lololyrics.com, songlyrics.com, azlyrics.com, elyrics.net and lyricsmode.com
- Support for multiple backends
- Audio analyzer
- Audio equalizer
- Scrobbler with support for Last.fm, Libre.fm and ListenBrainz
- Transfer music to mass-storage USB players, MTP compatible devices and iPod Nano/Classic
- Streaming support for Subsonic-compatible servers
- Unofficial streaming support for Tidal and Qobuz
%prep
%setup -qn strawberry-%{sha}
%autopatch -p1
%build
%if 0%{?sle_version} && 0%{?sle_version} <= 150500
export CC="gcc-12"
export CXX="g++-12"
%endif
%if 0%{?sle_version} && 0%{?sle_version} == 150600
export CC="gcc-13"
export CXX="g++-13"
%endif
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos}
export CXXFLAGS="-fPIC $RPM_OPT_FLAGS"
%endif
%cmake -DBUILD_WERROR=OFF \
-DFORCE_GIT_REVISION=1.2.13-21-g83dca405
%cmake_build
%install
%cmake_install
%if 0%{?suse_version}
%suse_update_desktop_file org.strawberrymusicplayer.strawberry Qt AudioVideo Audio Player
%endif
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/org.strawberrymusicplayer.strawberry.desktop
%if 0%{?suse_version}
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/org.strawberrymusicplayer.strawberry.appdata.xml
%else
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.strawberrymusicplayer.strawberry.appdata.xml
%endif
%files
%doc README.md Changelog
%license COPYING
%{_bindir}/strawberry
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*/apps/strawberry.*
%{_mandir}/man1/%{name}.1.*
%if 0%{?suse_version}
%{_datadir}/metainfo/*.appdata.xml
%else
%{_metainfodir}/*.appdata.xml
%endif
%changelog