File spotify-client.spec of Package spotify
#source: http://download.opensuse.org/repositories/home:/bosconovic:/spotify-client/
#download source: https://repository-origin.spotify.com/pool/non-free/s/spotify-client/
%global debug_package %{nil}
%global __strip /bin/true
%global __requires_exclude ^(libcef\\.so.*|libwidevine.*\\.so.*|libcurl-gnutls\\.so\\..*)$
# If firewalld macro is not defined, define it here:
%{!?firewalld_reload:%global firewalld_reload test -f /usr/bin/firewall-cmd && firewall-cmd --reload --quiet || :}
Name: spotify-client
Summary: Spotify music player native client
Version: 1.1.10.546
Release: 0
License: https://www.spotify.com/legal/end-user-agreement
URL: http://www.spotify.com/
ExclusiveArch: x86_64 %{ix86}
Source0: spotify-client_%{version}.ge08ef575-19_amd64.deb
Source2: spotify-wrapper
Source3: spotify.xml
Source4: spotify.appdata.xml
Source5: spotify.protocol
Source6: spotifywm-master.tar.gz
Source10: README.SUSE
BuildRequires: libglvnd
BuildRequires: libX11-devel
BuildRequires: gcc-c++
BuildRequires: chrpath
BuildRequires: pkgconfig(freetype2)
BuildRequires: desktop-file-utils
BuildRequires: pkgconfig(appstream-glib)
Requires: libcurl.so.4()(64bit)
Requires: libgtk-2_0-0
Requires: libX11.so.6()(64bit)
Requires: libXtst.so.6()(64bit)
Requires: hicolor-icon-theme
Requires: libnotify-tools
Requires: libsmime3.so()(64bit)
Requires: zenity
Requires: mozilla-nss
Requires: mozilla-nspr
Requires: libpng12-0
Requires: noto-sans-fonts
# jap/kr font support
Requires: noto-sans-kr-fonts
Requires: noto-sans-jp-fonts
Recommends: libmp3lame0
Recommends: ffmpeg
Provides: spotify = %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Think of Spotify as your new music collection. Your library. Only this time your
collection is vast: millions of tracks and counting. Spotify comes in all shapes
and sizes, available for your PC, Mac, home audio system and mobile phone.
Wherever you go, your music follows you. And because the music plays live,
there’s no need to wait for downloads and no big dent in your hard drive.
%prep
%setup -q -c -T %{name}_%{version}
# unpack deb
ar x %{SOURCE0}
# unpack data
tar -xzf data.tar.gz
# remove used files
rm data.tar.gz control.tar.gz debian-binary
%define _use_internal_dependency_generator 0
%define __find_requires %_builddir/%{name}-%{version}/find-requires.sh
cat >%__find_requires <<'EOF'
#!/bin/sh
EOF
chmod +x %__find_requires
chrpath -d \
.%{_datadir}/spotify/spotify
cp %{SOURCE10} .
%build
export CC=gcc
export CXX=g++
tar -xzf %{SOURCE6}
cd spotifywm-master
make %{?_smp_mflags}
%install
mkdir -p %{buildroot}%{_libdir}/%{name}
# Program resources - 512x512 icon along main executable is needed by the client
cp -frp \
.%{_datadir}/spotify/*.{pak,dat,bin} \
.%{_datadir}/spotify/{Apps,locales} \
%{buildroot}%{_libdir}/%{name}
install -p -D -m 644 .%{_datadir}/spotify/icons/spotify-linux-512.png \
%{buildroot}%{_libdir}/%{name}/icons/spotify-linux-512.png
# Binaries
install -p -m 755 \
.%{_datadir}/spotify/*.so \
.%{_datadir}/spotify/spotify \
%{buildroot}%{_libdir}/%{name}/
# Wrapper script
mkdir -p %{buildroot}%{_bindir}
cat %{SOURCE2} | sed -e 's|INSTALL_DIR|%{_libdir}/%{name}|g' \
> %{buildroot}%{_bindir}/spotify
chmod +x %{buildroot}%{_bindir}/spotify
# Desktop file
install -m 0644 -D -p .%{_datadir}/spotify/spotify.desktop \
%{buildroot}%{_datadir}/applications/spotify.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/spotify.desktop
# Icons
for size in 16 22 24 32 48 64 128 256 512; do
install -p -D -m 644 .%{_datadir}/spotify/icons/spotify-linux-${size}.png \
%{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/%{name}.png
done
# Firewalld rules
install -D -m 644 -p %{SOURCE3} \
%{buildroot}%{_libexecdir}/firewalld/services/spotify.xml
mkdir -p %{buildroot}%{_datadir}/appdata
install -p -m 0644 %{SOURCE4} %{buildroot}%{_datadir}/appdata/
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/spotify.appdata.xml
# The launcher will download the native client which requires libcurl-gnutls.so.4
mkdir -p %{buildroot}%{_libdir}
ln -s -f libcurl.so.4 %{buildroot}%{_libdir}/libcurl-gnutls.so.4
# Copy protocol file for KDE
mkdir -p %{buildroot}%{_datadir}/kservices5
install -D -m 644 -p %{SOURCE5} %{buildroot}%{_datadir}/kservices5/spotify.protocol
# Set kwin fix patch
mkdir -p %{buildroot}%{_libdir}/%{name}
rm -f spotifywm.so-%{version}-*.x86_64.debug
install -D -m 644 -p spotifywm-master/spotifywm.so %{buildroot}%{_libdir}/%{name}/spotifywm.so
%post
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
#%firewalld_reload
%postun
if [ $1 -eq 0 ] ; then
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
%{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
%posttrans
%{_bindir}/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files
%doc README.SUSE
%{_bindir}/spotify
%{_datadir}/applications/spotify.desktop
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/*
%dir %{_datadir}/icons/hicolor/*/apps
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/appdata/spotify.appdata.xml
%{_datadir}/kservices5
%{_datadir}/kservices5/spotify.protocol
%{_libdir}/%{name}
%{_libdir}/%{name}/spotifywm.so
%{_libdir}/libcurl-gnutls.so.4
%dir %{_libexecdir}/firewalld
%dir %{_libexecdir}/firewalld/services
%{_libexecdir}/firewalld/services/spotify.xml
%changelog