Spotify client

Latest Spotify client re-packaged from the Ubuntu packages for supported Fedora and RHEL/CentOS distributions.spotify-client

Package information

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.

gnome-software-spotify

Installation

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:

yum-config-manager --add-repo=http://negativo17.org/repos/epel-spotify.repo

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 /etc/firewalld/services/ssdp.xml:

<?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="239.255.255.250"/>
</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

Bugs

Just open an issue to the specific package on Github.

272 thoughts on “Spotify client

  1. This is currently not installable for me. Running “sudo dnf repository-packages fedora-spotify list all” only shows compat-libgcrypt{,-devel}.{i686,x86_64}

    1. Something wrong here. The package is there:

      #  dnf repository-packages fedora-spotify list all
      Last metadata expiration check: 0:00:09 ago on Sun Apr 17 19:22:48 2016.
      Installed Packages
      compat-libgcrypt.i686            1.5.5-5.fc23                    @fedora-spotify
      compat-libgcrypt.x86_64          1.5.5-5.fc23                    @fedora-spotify
      spotify-client.x86_64            1.0.26.125.g64dc8bc6-1.fc23     @fedora-spotify
      Available Packages
      compat-libgcrypt-devel.i686      1.5.5-5.fc23                    fedora-spotify
      compat-libgcrypt-devel.x86_64    1.5.5-5.fc23                    fedora-spotify
  2. Is it possible to find older versions of this package somewhere? Spotify 1.0.26 comes with broken mpris2 support, so I would like to downgrade to previous version.

    1. False alarm. Looks like it was problem with dbus on my system. Still, it would be nice if you could keep previous version on the repository in case something breaks. Anyway, thanks for good work!

  3. Hello. I’m using the Spotify client and I do have the ffmpeg-libs library installed, but my client keeps crashing anytime I try to play the local files. Any thoughts?

    1. Not really, the client relies on a “whitelisted” set of FFMPeg libraries, but since being a binary blob it’s not possible to recompile or debug it:

      $ strings /usr/lib64/spotify-client/spotify | grep -i libav
      libavformat.so.56
      libavformat.so.54
      libavformat.so.53
      libavformat.so.52
      libavcodec.so.56
      libavcodec.so.54
      libavcodec.so.53
      libavcodec.so.52
  4. Do you keep old versions of the spotify rpm anywhere? Looks like they messed up dbus support in 1.0.24.104 again and I’d like to go back to 1.0.23.93 where it worked better. I can’t find the old rpm in the repo anymore though.

  5. I’m usign Centos 7 / RHEL 7, when execute spotify, I recieve those messages:

    spotify: /lib64/libcurl.so.4: no version information available (required by spotify)

    spotify: symbol lookup error: /usr/lib64/spotify-client/libcef.so: undefined symbol: g_type_class_adjust_private_offset

  6. You rock! Thanks so much for putting this together. This version actually works better on Fedora than the Ubuntu version does on Lubuntu 15.10 where the Friends functionality is broken.

  7. Thank you for porting spotify to fedora.

    But I have one little problem:
    Spotify is not displayed as running app in taskbar.
    I’m running F23 x86_64 with Cinnamon 2.8.6.

    1. The bundle is a binary only application, you should point this upstream. I think they switched to appindicator or gnome 3 notifications. Not sure though.

  8. Hello, I’m having error:

    spotify: /lib64/libcurl.so.4: no version information available (required by spotify)
    [0114/114359:ERROR:main_delegate.cc(738)] Could not load cef_extensions.pak
    [0114/114359:ERROR:browser_main_loop.cc(189)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
    /usr/lib64/spotify-client/spotify: /lib64/libcurl.so.4: no version information available (required by /usr/lib64/spotify-client/spotify)
    /proc/self/exe: /lib64/libcurl.so.4: no version information available (required by /proc/self/exe)
    [0114/114359:ERROR:main_delegate.cc(738)] Could not load cef_extensions.pak
    [0114/114359:ERROR:main_delegate.cc(738)] Could not load cef_extensions.pak
    [0114/114400:ERROR:renderer_main.cc(200)] Running without renderer sandbox
    13:44:00.197 W [mpris.cpp:137 ] Unrecognized or unimplemented MPRIS MediaPlayer2 method ‘GetAll’

    I’m using Fedora 22 KDE x86_64

    Thanks

    1. These are errors coming from the embedded Chrome runtime. They are not blocking errors, and actually I can see them almost everywhere there’s a Chrome runtime embedded (Steam, for example).

  9. Great work, works really well and appears to be more up to date than the official Ubuntu version. How did you manage to do this exactly? On their page the official Linux version is much older.

  10. dnf install spotify-client –allowerasing
    Last metadata expiration check performed 0:35:51 ago on Fri Nov 6 11:33:53 2015.
    Ошибка: nothing provides ld-linux-x86-64.so.2()(64bit) needed by spotify-client-1.0.17.75.g8f111100-1.fc23.i686

    how to install?

  11. Hi, The 2 last updates didn’t work for me. Spotify is running but there is no sound. Is there a way to get an old version ?

    1. The package depends on RPMFusion packages. In the previous cycle (Fedora 22), I built also the package for rawhide, but that proved to be a complete nightmare; as I had to rebuild and keep updated most of the packages that were in RPMFusion. On top of this, at the moment that they finally woke up, I had to make sure there were no upgrade issues between my packages and the official RPMFusion ones. So I’m sorry, I’m not doing it unless RPMFusion is available.

  12. when I run spotify on centos 7:
    # spotify
    spotify: /lib64/libcurl.so.4: no version information available (required by spotify)

    spotify: symbol lookup error: /usr/lib64/spotify-client/libcef.so: undefined symbol: g_type_class_adjust_private_offset

  13. Hi Everybody
    I have this error when I try to run Spotify client on my fedora 22 :”Service is temporarily unvailable. Please try again later”. Someone encounts the same problem ? Thanks

  14. Are you planning on releasing rpm for version 1.0.13 soon? I’m asking because it has dbus support – something many people have been waiting for.

    1. Building it now, it will be available in a few hours. Where do you know it has dbus support? Is there a changelog published somewhere?

  15. For people who have the same problem as me => proxy preferences not saved for example… I used “strace” to understand and I see that spotify doesn’t find the `~/.config/spotify` directory.

    So, before to launch spotify the first time, you have to do it only once in a terminal:

    mkdir ~/.config/spotify/

    That’s all, Sptofy client can now connect through proxy. I’m surprised that no one has reported this bug… I will do it as soon as I can.

    Thanks for this repo !

  16. Hi,
    I have upgraded the spotify-client to the latest version (1.0.11.131.gf4d47cb0.1.fc22.x86_64).

    Every time I turn on the application , it shows an error:

    spotify-client quit unexpectedly, spotify killed by SIGABRT, /proc/self/exe --type=gpu-process --channel=3240.0.1136871389 --no-sandbox --lang=en-US --log-severity=disable --product-version=Spotify/1.0.11.131 --supports-dual-gpus=false --gpu-driver-bug-workarounds=2,28,31,44,53 --disable-accelerated-video-decode --gpu-vendor-id=0x10de --gpu-device-id=0x1381 --gpu-driver-vendor=NVIDIA --gpu-driver-version=352.30 --lang=en-US --log-severity=disable --product-version=Spotify/1.0.11.131

    I am on Fedora 22, with all patches and updates.

  17. I’ve got this problem:
    /usr/lib64/spotify-client/spotify: /usr/lib64/spotify-client/libcrypto.so.1.0.0: version `OPENSSL_1.0.0′ not found (required by /usr/lib64/spotify-client/spotify)
    /usr/lib64/spotify-client/spotify: /usr/lib64/spotify-client/libssl.so.1.0.0: version `OPENSSL_1.0.0′ not found (required by /usr/lib64/spotify-client/spotify)
    /usr/lib64/spotify-client/spotify: /usr/lib64/spotify-client/libgcrypt.so.11: version `GCRYPT_1.2′ not found (required by /usr/lib64/spotify-client/libcef.so)

    Any solution?
    Btw thanks a lot for this package, I hope it will work on my machine soon and I’ll start listening 😉

  18. Thanks for the great package.

    Just noticing that this Spotify package does not support MPRIS2 (for Media player indicator by eon in gnome-shell). Another package I found some time ago did support this, any idea where this regression may come from?

  19. Is Fedora 20 no longer supported? I see it listed under Supported Distributions, but there is no longer a fedora-20 directory in your repository.

    1. Fedora 20 is EOL since end of June, I’ve removed all folders from the repositories. Will update the pages accordingly. Thanks.

  20. I got an error:
    Failed to synchronize cache for repo ‘negativo17.org_repos_fedora-spotify.rep’ from ‘http://negativo17.org/repos/fedora-spotify.rep’: Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried, disabling.
    negativo17 – Spotify 6.7 kB/s | 3.6 kB 00:00
    Last metadata expiration check performed 0:00:00 ago on Sun Jul 5 22:17:44 2015.
    Error: nothing provides ffmpeg-libs needed by spotify-client-1.0.7.153.gb9e8174a-1.fc22.x86_64

  21. The spec file contains the wrong hostname. (It uses %{name} instead of spotify. This resolves to spotify-client…)

    The diff between the working and non-working is:
    — spotify-client.spec 2015-06-24 07:24:10.563882393 +0200
    +++ spotify-client.spec.orig 2015-06-11 09:37:23.000000000 +0200
    @@ -13,7 +13,7 @@
    URL: http://www.spotify.com/
    ExclusiveArch: x86_64

    -Source0: http://repository.spotify.com/pool/non-free/s/%{name}/%{name}_%{version}_amd64.deb
    +Source0: http://repository.%{name}.com/pool/non-free/s/%{name}/%{name}_%{version}_amd64.deb
    # Debian libraries, required by the binaries. Ugh.
    Source1: http://de.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.0.0_1.0.1f-1ubuntu11_amd64.deb

    Could you update the spec file?

    Afterwards spectool -g spotify-client.spec downloaded the sources 🙂

  22. Hmm, on Fedora 22 all I get is:
    Warning: failed loading ‘/etc/yum.repos.d/fedora-spotify.repo’, skipping.

    Same goes for the steam repo. Am I missing something here? :I

      1. Oh yes, that was it. You think “dnf config-manager –add-repo…” would set it up with the right permissions, strange.

        Thanks!

  23. I’m having many issues with the latest 1.0.7 version on Fedora 22 (Gnome):
    – Menu bar is hidden: I can’t switch to offline mode for instance.
    – The client always runs in full screen on my 13 inch laptop, I didn’t find a way to get to normal mode.
    – As Marco reported, MPRIS interface isn’t available to manage the player from gnome-shell for instance.

    Might it be possible to put the 0.9.x rpm somewhere so we could have a usable client until these issues are fixed? (I didn’t save it and I can’t find it anywhere). Thanks!

  24. It looks like something went wrong with my last comment…

    I have just installed Fedora 22 x64 using GNOME and used your repo to install Spotify. Spotify starts as “full screen” (or at least it looks like this) and hides all system toolbars, including the Activities button and hot corner gesture. I do not see any application menus, but a tiny button that gives me preferences, account settings and such that do not show anything related to fullscreen.

    Is this a known issue or is there a way for Spotify to behave like a normal application? I must use Alt+Tab or “super” key to switch to another app when this is running which is very annoying…

    Thanks 🙂 Great work btw.

  25. Just installed Spotify on Fedora 22 64-bit and it loads “fullscreen”, no menus are shown. What it’s worth, I can’t see Gnome’s top toolbar, or use the Activities gesture, so I must change application using the super key or alt-tab.

    Is this a known issue or is there a way to get back the menus?

    Thanks

  26. Hi,
    I’m using it on Fedora 22.
    However the updated Spotify client does not integrate into the desktop anymore.
    There is no tray icon 🙁
    So each time I accidentally click the close button and it shuts down instead of going into the tray.

    Any fix for this?

Leave a Reply