Latest Spotify client re-packaged from the Ubuntu packages for supported Fedora and RHEL/CentOS distributions.
This package tries to comply as maximum to the Fedora Packaging Guidelines; this means the packages has debuginfo packages, default Fedora’s GCC compile time options (where possible) and standard locations for binaries, data and docs.
The provided client is binary only and compiled for Ubuntu, so the Fedora package de-assembles the original Ubuntu package and moves all files in the appropriate places. The Spotify client requires assets (icons, data packages, etc.) from where its run, so I’ve left them in its own folder and just linked the icons to the system path.
The client itself is linked to an old Ubuntu OpenSSL 1.0.0 library and dynamically loads the FFmpeg libraries required for local files playing from the system path. To overcome this, and avoid problems with Steam which also bundles OpenSSL 1.0.0, I’ve removed the
RUNPATH from the binaries and put everything in its own folder using an LD_LIBRARY_PATH override; so there are no conflicting libraries anywhere.
$ cd /usr/lib64/spotify-client $ ls -alghs lib* 0 lrwxrwxrwx. 1 root 23 Mar 1 19:21 libavcodec.so.53 -> libavcodec.so.53.61.100 6.7M -rwxr-xr-x. 1 root 6.7M Mar 1 19:21 libavcodec.so.53.61.100 0 lrwxrwxrwx. 1 root 24 Mar 1 19:21 libavformat.so.53 -> libavformat.so.53.32.100 1.2M -rwxr-xr-x. 1 root 1.2M Mar 1 19:21 libavformat.so.53.32.100 0 lrwxrwxrwx. 1 root 22 Mar 1 19:21 libavutil.so.51 -> libavutil.so.51.35.100 136K -rwxr-xr-x. 1 root 134K Mar 1 19:21 libavutil.so.51.35.100 84M -rwxr-xr-x. 1 root 84M Feb 23 11:09 libcef.so 1.8M -rwxr-xr-x. 1 root 1.8M Mar 1 19:23 libcrypto.so.1.0.0 0 lrwxrwxrwx. 1 root 23 Mar 1 19:21 libpostproc.so.52 -> libpostproc.so.52.0.100 96K -rwxr-xr-x. 1 root 96K Mar 1 19:21 libpostproc.so.52.0.100 396K -rwxr-xr-x. 1 root 393K Mar 1 19:23 libssl.so.1.0.0 0 lrwxrwxrwx. 1 root 24 Mar 1 19:21 libswresample.so.0 -> libswresample.so.0.6.100 36K -rwxr-xr-x. 1 root 36K Mar 1 19:21 libswresample.so.0.6.100 668K -rwxr-xr-x. 1 root 666K Mar 6 10:26 libwidevinecdmadapter.so $ rpm -qa spotify\* spotify-client-1.0-13.fc25.x86_64 spotify-ffmpeg-0.10.16-3.fc25.x86_64 spotify-openssl-1.0.0t-3.fc25.x86_64
Instead of bundling Ubuntu’s OpenSSL 1.0.0 and FFmpeg, it uses the spotify-openssl and spotify-ffmpegpackages from the same repository. Those are compiled with minimum options and settings, so they can be installed on a plain Fedora or CentOS/RHEL system without any external dependency.
Starting from Fedora 25, adding this repository to your system makes the Spotify client appear also in Gnome Software.
To install the repository on a supported Fedora 22+ distribution, run as root the following command:
dnf config-manager --add-repo=http://negativo17.org/repos/fedora-spotify.repo
To do the same on CentOS/RHEL:
Then, to install the client and its data files, perform the following command:
# yum -y install spotify-client
Spotify Connect configuration
The package includes the required service definitions for FirewallD. If you have installed a default desktop, FirewallD should be your firewall solution. Spotify Connect uses TCP and UDP port 57621 for switching and syncing playback across devices and port 57622 for syncing local files that are part of a playlist between devices that are connected to the same network.
To make sure that Spotify can listen on the required ports through your firewall software, execute the following commands as
root. After installation of the package you should be able to see the word “spotify” by running:
firewall-cmd --get-services | grep spotify
Then get the firewall zone you are in, and enable the service for it. For example, on my system, to get the firewall zone I’m using:
# firewall-cmd --get-active-zones public interfaces: em1
Then enable it permanently (i.e. at reboot) and immediately with these commands:
firewall-cmd --zone=public --add-service=spotify --permanent firewall-cmd --zone=public --add-service=spotify
Now start up Spotify and you should see all the available devices in your network.
If you don’t have SSDP (Simple Service Discovery Protocol) already enabled on your system, you also need to enable it. Paste the following XML file in
<?xml version="1.0" encoding="utf-8"?> <service version="1"> <short>Multicast SSDP (upnp)</short> <description>Simple Service Discovery Protocol for advertisement and discovery of network services and presence information.</description> <port protocol="udp" port="1900"/> <destination ipv6="ff02::c" ipv4="18.104.22.168"/> </service>
Then run the following commands, with the same zone you have used above:
firewall-cmd --reload --quiet firewall-cmd --zone=public --add-service=ssdp --permanent firewall-cmd --zone=public --add-service=ssdp
Just open an issue to the specific package on Github.