Tuesday, August 7, 2012

Fedora core 17 and spotify-client_0.8.4.103.g9cb177b.260-1_amd64.deb

Ok, I love spotify. I even have a paid subscription.  I Just started using Fedora Core 17 and Spotify doesn't produce an rpm install; only .deb. You can convert .deb to rpm with 'alien' so that's not a problem.  A few tutorials already exist but figured I'd throw another one into the mix.

First you want the spotify .deb:

http://repository.spotify.com/pool/non-free/s/spotify/

Next, you probably will need alien if its not installed already.  At the time I did in the A.M the git repo was not responding so I downloaded the source tarball from here:

http://packages.debian.org/unstable/source/alien

Next you compile and install alien. Then convert the deb to rpm:

 cd ~/Downloads  #My package was downloaded here. Yours could be different.
 tar -xvzf alien_8.87.tar.gz  
 cd alien  
 perl Makefile.PL  
 make  
 sudo make install  #you can actually use alient without having to install if you prefer
 cd ~/Downloads  
 su -c 'alien --to-rpm ./spotify-client_0.8.4.103.g9cb177b.260-1_amd64.deb'  
 sudo rpm -ivh --nodeps spotify-client-0.8.4.103.g9cb177b.260-2.x86_64.rpm

But we aren't finished. You will get a ton of library failures if you try and run spotify. You can check yours with ldd. Your output might be a little different.

 ldd /usr/bin/spotify |grep "not found"  
   libssl.so.0.9.8 => not found  
   libcrypto.so.0.9.8 => not found  
   libnss3.so.1d => not found  
   libnssutil3.so.1d => not found  
   libsmime3.so.1d => not found  
   libplc4.so.0d => not found  
   libnspr4.so.0d => not found  

I already had fixed one dependancy before I took the ldd snapshot, and thats phonon.  'yum install phonon' should take care of that for you.

As for the rest, someone put together a nice compilation of the spotify libs together, with a short script to start spotify pointing to these libraries. Why are we doing this? One is FC17 uses a newer version of libssl. Spotify is using an older version. Downgrading it just for spotify might cause quite a few problems. So a second set of libraries will get it working.

*******
Part of the information below and tarball regarding the spotify libraries are from this blog:
http://xunlinkx.blogspot.com/2012/06/install-spotify-in-fedora-fc17-walien.html

Please visit it if you want a more expanded version of the instructions regarding the library files.
********

Download and extract this tarball:

http://dl.dropbox.com/u/17435887/CentOS6/andersx/spotify_libs.tar.gz

Modify the spotify.sh to where you moved your libraries.

Mine looks like so:
 cat spotify.sh   
 #!/bin/bash  
 export LD_LIBRARY_PATH=/home/spacehat/libs/spotify_libs  
 /usr/bin/spotify  


If you aren't familiar with LD_LIBRARY_PATH, a simple explanation is it provides a way to override the system default paths of library files. A program will look to the path your provide FIRST, and then onto the previous system defaults.  So in our instance, we are using it to tell Spotify to look at our custom set of library files first. Showing the libraries that were previously not found:

 ldd /usr/bin/spotify |grep spacehat  
   libQtWebKit.so.4 => /home/spacehat/libs/spotify_libs/libQtWebKit.so.4 (0x00007fa9b87a4000)  
   libssl.so.0.9.8 => /home/spacehat/libs/spotify_libs/libssl.so.0.9.8 (0x00007fa9b5240000)  
   libcrypto.so.0.9.8 => /home/spacehat/libs/spotify_libs/libcrypto.so.0.9.8 (0x00007fa9b4eb0000)  
   libnss3.so.1d => /home/spacehat/libs/spotify_libs/libnss3.so.1d (0x00007fa9b4071000)  
   libnssutil3.so.1d => /home/spacehat/libs/spotify_libs/libnssutil3.so.1d (0x00007fa9b3e51000)  
   libsmime3.so.1d => /home/spacehat/libs/spotify_libs/libsmime3.so.1d (0x00007fa9b3c25000)  
   libplc4.so.0d => /home/spacehat/libs/spotify_libs/libplc4.so.0d (0x00007fa9b3a20000)  
   libnspr4.so.0d => /home/spacehat/libs/spotify_libs/libnspr4.so.0d (0x00007fa9b37e3000)  

*******
Part of the information above and tarball regarding the spotify libraries are from this blog:
http://xunlinkx.blogspot.com/2012/06/install-spotify-in-fedora-fc17-walien.html

Please visit it if you want a more expanded version of the instructions regarding the library files. 
*******


No comments:

Post a Comment