Schnouki / spop

A Spotify client running as a daemon, similar to mpd.
GNU General Public License v3.0
248 stars 17 forks source link

Cannot open shared object file #27

Open bdouble opened 9 years ago

bdouble commented 9 years ago

Hi there - I am having the exact same behavior as issue #12 - I get the following any time I try to start spopd:

spopd: error while loading shared libraries: libspotify.so.12: cannot open shared object file: No such file or directory

I tried all of the stuff you recommended in the previous thread. I used the method you recommended on 7/29/13, building with the -DCMAKE_INSTALL_RPATH=/usr/local/lib setup.

Here's some system output for you:

root@volumio:~# spopd spopd: error while loading shared libraries: libspotify.so.12: cannot open shared object file: No such file or directory root@volumio:~# pkg-config --print-provides libspotify libspotify = 12.1.51 root@volumio:~# whereis libspotify libspotify: /usr/local/lib/libspotify.so

root@volumio:~# ls -al /usr/local/lib total 3068 drwxrwsr-x 5 root staff 4096 Oct 27 02:06 . drwxrwsr-x 10 root staff 4096 Aug 10 2013 .. -rwxr-xr-x 1 root staff 1015 Oct 27 01:58 libjson-glib-1.0.la lrwxrwxrwx 1 root staff 28 Oct 27 01:58 libjson-glib-1.0.so -> libjson-glib-1.0.so.0.1600.2 lrwxrwxrwx 1 root staff 28 Oct 27 01:58 libjson-glib-1.0.so.0 -> libjson-glib-1.0.so.0.1600.2 -rwxr-xr-x 1 root staff 472456 Oct 27 01:58 libjson-glib-1.0.so.0.1600.2 -rw-r--r-- 1 root staff 10604 Oct 27 02:05 libspop_audio_ao.so -rw-r--r-- 1 root staff 9212 Oct 27 02:05 libspop_audio_oss.so -rw-r--r-- 1 root staff 128976 Oct 27 02:05 libspop_plugin_mpris2.so -rw-r--r-- 1 root staff 15020 Oct 27 02:06 libspop_plugin_savestate.so lrwxrwxrwx 1 root staff 21 Oct 27 01:20 libspotify.so -> libspotify.so.12.1.51 lrwxrwxrwx 1 root staff 21 Oct 27 01:20 libspotify.so.12 -> libspotify.so.12.1.51 -rwxr-xr-x 1 root staff 2467752 Oct 27 01:20 libspotify.so.12.1.51 drwxr-sr-x 2 root staff 4096 Oct 27 01:58 pkgconfig drwxrwsr-x 4 root staff 4096 Oct 18 02:19 python2.7 drwxr-sr-x 3 root staff 4096 Oct 27 02:06 systemd

root@volumio:~# ldd /usr/local/bin/spopd libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x2ac48000) librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x2ac5b000) libspotify.so.12 => not found libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x2ac71000) libgmodule-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgmodule-2.0.so.0 (0x2aba4000) libgthread-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgthread-2.0.so.0 (0x2aad0000) libjson-glib-1.0.so.0 => /usr/local/lib/libjson-glib-1.0.so.0 (0x2abff000) libgio-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgio-2.0.so.0 (0x2ad48000) libgobject-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0 (0x2ae42000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x2ae8a000) /lib/ld-linux-armhf.so.3 (0x2ab3e000) libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x2ab6d000) libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x2af79000) libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x2abb7000) libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0x2aaf5000) libresolv.so.2 => /lib/arm-linux-gnueabihf/libresolv.so.2 (0x2ac27000) libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0x2aae2000) libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x2afd5000)

My one idea as to why this is happening is that libspotify is not the right build for my computer - I'm running this on a Cubox i-4 (Debian Wheezy), which is an ARMv7 Hard Float platform. Libspotify has an ARMv7 build, which seemed to build and install OK, but there is no build for ARMv7hf - and perhaps this is why the system isn't recognizing it. This sort of thing is beyond my technical understanding, though, so I'm just not sure. Hoping you can help!

bdouble commented 9 years ago

Oh - you were looking for this info in the thread on #12 :

root@volumio:/usr/local/lib# file /usr/local/lib/libspotify.so.12.1.51 /usr/local/lib/libspotify.so.12.1.51: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped

Schnouki commented 9 years ago

Hi @bdouble, thanks for this detailed report :)

Could you please try setting LD_LIBRARY_PATH as in #12:

LD_LIBRARY_PATH=/usr/local/lib spopd

If that fails, could you also please run file /usr/local/spopd and uname -mpi?

Thanks!

bdouble commented 9 years ago

Hi there - this didn't work, here's the output below.

The system is a Cubox i-4 and I'm running the "Volumio" 1.4 distribution (http://volumio.org/)

root@volumio:/var/www# LD_LIBRARY_PATH=/usr/local/lib spopd spopd: error while loading shared libraries: libspotify.so.12: cannot open shared object file: No such file or directory root@volumio:/var/www# file /usr/local/bin/spopd /usr/local/bin/spopd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x7fada01d8fa4125407348b7b718bbaa7099bd5ab, not stripped root@volumio:/var/www# uname -mpi armv7l unknown unknown

Schnouki commented 9 years ago

Ok, I investigated a bit. Apparently the armv7 version libspotify uses the NEON extensions, which are not available on the CPU of the Cubox i-4. Could you please try with the armv6 version of libspotify? https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Linux-armv6-release.tar.gz

bdouble commented 9 years ago

Thank you for looking into this! Unfortunately it appears that libspotify just isn't available on my platform. I get the same error. Here's what I did:

I uninstalled the armv7 version (via "make uninstall" as there is a target for this in the libspotify makefile).

Then installed the v6 version in the same place ("make install prefix=/usr/local")

Then re-compiled spopd (deleted the build directory and re-built with the command you gave in #12:

mkdir build && cd build && cmake -DCMAKE_INSTALL_RPATH=/usr/local/lib .. && make && sudo make install

I still get the "Cannot open shared object" error:

root@volumio:~/spop/build# spopd spopd: error while loading shared libraries: libspotify.so.12: cannot open shared object file: No such file or directory root@volumio:~/spop/build# file /usr/local/lib/libspotify.so.12.1.51 /usr/local/lib/libspotify.so.12.1.51: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped root@volumio:~/spop/build# file /usr/local/bin/spopd /usr/local/bin/spopd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x7fada01d8fa4125407348b7b718bbaa7099bd5ab, not stripped

Schnouki commented 9 years ago

Hmmm, this doesn't look good. Could you please try with the other ARM releases of libspotify?

AcidBurns commented 9 years ago

Hey,

Same Problem for me here. I tried all (arm) Versions, all failed.

However, I'm using a Raspberry Pi 2 which SHOULD have the NEON extensions (at least according to the raspberrypi forum: https://www.raspberrypi.org/forums/viewtopic.php?f=33&t=100631) cat /prof/cpuinfo also yields neon extensions: "Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm"

What did I forget?

uname -mpri gives: 3.18.0-trunk-rpi2 armv7l unknown unknown I'm running debian testing with some tweaks: http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/

Any help appreciated.