Burgestrand / spotify

Low-level Ruby bindings for libspotify, the official Spotify C API
https://rubygems.org/gems/spotify
Other
146 stars 17 forks source link

Problems installing on RaspberryPi #27

Closed ds1982 closed 10 years ago

ds1982 commented 10 years ago

Hello, after reading this https://github.com/Burgestrand/spotify/issues/12 i tried to install your spotify gem on my RaspberryPi. Installation worked fine and without any errors. "bundle install" completed successfully, too.

Now i'm trying the examples an getting the following error:


Failed to load the `libspotify` library. It is possible that the libspotify gem
does not exist for your platform, in which case you’ll need to install it manually.

For manual installation instructions, please see:
https://github.com/Burgestrand/Hallon/wiki/How-to-install-libspotify
/var/lib/gems/1.9.1/gems/ffi-1.9.3/lib/ffi/library.rb:133:in `block in ffi_lib': Could not open library '/var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin/armv5-linux': /var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin/armv5-linux: cannot open shared object file: No such file or directory. (LoadError)
Could not open library 'spotify': spotify: cannot open shared object file: No such file or directory.
Could not open library 'libspotify.so': libspotify.so: cannot open shared object file: No such file or directory.
Could not open library 'libspotify': libspotify: cannot open shared object file: No such file or directory.
Could not open library '/Library/Frameworks/libspotify.framework/libspotify': /Library/Frameworks/libspotify.framework/libspotify: cannot open shared object file: No such file or directory
    from /var/lib/gems/1.9.1/gems/ffi-1.9.3/lib/ffi/library.rb:100:in `map'
    from /var/lib/gems/1.9.1/gems/ffi-1.9.3/lib/ffi/library.rb:100:in `ffi_lib'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/lib/spotify.rb:32:in `<class:API>'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/lib/spotify.rb:28:in `<module:Spotify>'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/lib/spotify.rb:12:in `<top (required)>'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/examples/example_support.rb:2:in `require'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/examples/example_support.rb:2:in `<top (required)>'
    from console_example.rb:4:in `require_relative'
    from console_example.rb:4:in `<main>'

After reading the above Issue #12 i looked into

/var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/lib/libspotify.rb and thought that the hard/soft float thing cannot resolved on my system, so that "release_name" is empty. I tried to hardcode the "armv5-linux" binary which came with the libspotify-gem this way:

def binary_path
    File.expand_path("../bin/armv5-linux", File.dirname(__FILE__))
end

Now the error changed (and looks somehow better to me), but there still remains an error:

Failed to load the `libspotify` library. It is possible that the libspotify gem
does not exist for your platform, in which case you’ll need to install it manually.

For manual installation instructions, please see:
https://github.com/Burgestrand/Hallon/wiki/How-to-install-libspotify
/var/lib/gems/1.9.1/gems/ffi-1.9.3/lib/ffi/library.rb:133:in `block in ffi_lib': Could not open library '/var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin/armv5-linux': /var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin/armv5-linux: cannot open shared object file: No such file or directory. (LoadError)
Could not open library 'spotify': spotify: cannot open shared object file: No such file or directory.
Could not open library 'libspotify.so': libspotify.so: cannot open shared object file: No such file or directory.
Could not open library 'libspotify': libspotify: cannot open shared object file: No such file or directory.
Could not open library '/Library/Frameworks/libspotify.framework/libspotify': /Library/Frameworks/libspotify.framework/libspotify: cannot open shared object file: No such file or directory
    from /var/lib/gems/1.9.1/gems/ffi-1.9.3/lib/ffi/library.rb:100:in `map'
    from /var/lib/gems/1.9.1/gems/ffi-1.9.3/lib/ffi/library.rb:100:in `ffi_lib'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/lib/spotify.rb:32:in `<class:API>'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/lib/spotify.rb:28:in `<module:Spotify>'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/lib/spotify.rb:12:in `<top (required)>'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/examples/example_support.rb:2:in `require'
    from /var/lib/gems/1.9.1/gems/spotify-12.5.3/examples/example_support.rb:2:in `<top (required)>'
    from console_example.rb:4:in `require_relative'
    from console_example.rb:4:in `<main>'

So where does the folder /Library come from and how can i fix this error?

Burgestrand commented 10 years ago

What does the following code output: ruby -rlibspotify -e 'p [Libspotify.binary_path, File.exist?(Libspotify.binary_path)]'

ds1982 commented 10 years ago

Output with my changes is:

["/var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin/armv5-linux", true]

Output with your original code is:

["/var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin", true]
Burgestrand commented 10 years ago

Good! I needed to exclude the possibility of the pure ruby version being installed, but at least it appears that you have the arm-specific library. I should have seen it earlier based on the path, but it's nice to know the file exists where it should be. :)

Do you know if you run a hard or soft float OS?

At the moment, it appears as if the file /var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin/armv5-linux does exist, but for some reason FFI cannot load it. Usually this is because of the library being for the wrong architecture.

ds1982 commented 10 years ago

I am running the official and latest Raspbian OS, which i think is an hardfloat OS. I thought this would work, because with other Libraries i could use the softfloat Versions too.

I will try to install a softfloat OS now and give a feedback how libspotify behaves there. Thanks for your fast help so far.

Burgestrand commented 10 years ago

Hm. Indeed, the hard float vs. soft float would cause libspotify/FFI to behave like this. It cannot load soft float on hard float architecture.

I wonder why the hard float detection does not work on your RPI. What is the output of:

ruby -e 'puts `readelf -a #{RbConfig.ruby}`'
ds1982 commented 10 years ago

I tried to install your gem on several systems and architectures by now and i always experienced that it is hard to install your recommended nokorigi v1.4.7

while installing this gem things like this happen:

make
compiling xml_node_set.c
compiling xml_cdata.c
compiling xml_sax_push_parser.c
compiling xml_processing_instruction.c
compiling xml_document_fragment.c
compiling xml_schema.c
compiling html_entity_lookup.c
compiling xml_xpath_context.c
xml_xpath_context.c: In function ‘xpath_generic_exception_handler’:
xml_xpath_context.c:184:3: error: format not a string literal and no format arguments [-Werror=format-security]
cc1: some warnings being treated as errors
make: *** [xml_xpath_context.o] Error 1

Gem files will remain installed in /var/lib/gems/1.9.1/gems/nokogiri-1.4.7 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/nokogiri-1.4.7/ext/nokogiri/gem_make.out

is it possible to switch to a newer version here (which would be much easier to install)?

This is why i can actually not test your gem on the softfloat OS for my Rpi, but i am still trying to get it managed.

Other thing is the hardfloat detection on the hardfloat Rpi OS:

Output of 
ruby -e 'puts `readelf -a #{RbConfig.ruby}`'
is: 

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x8794
  Start of program headers:          52 (bytes into file)
  Start of section headers:          2956 (bytes into file)
  Flags:                             0x5000002, has entry point, Version5 EABI
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         8
  Size of section headers:           40 (bytes)
  Number of section headers:         29
  Section header string table index: 28

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .interp           PROGBITS        00008134 000134 000019 00   A  0   0  1
  [ 2] .note.ABI-tag     NOTE            00008150 000150 000020 00   A  0   0  4
  [ 3] .note.gnu.build-i NOTE            00008170 000170 000024 00   A  0   0  4
  [ 4] .hash             HASH            00008194 000194 0000b4 04   A  6   0  4
  [ 5] .gnu.hash         GNU_HASH        00008248 000248 0000c0 04   A  6   0  4
  [ 6] .dynsym           DYNSYM          00008308 000308 0001a0 10   A  7   1  4
  [ 7] .dynstr           STRTAB          000084a8 0004a8 000165 00   A  0   0  1
  [ 8] .gnu.version      VERSYM          0000860e 00060e 000034 02   A  6   0  2
  [ 9] .gnu.version_r    VERNEED         00008644 000644 000020 00   A  7   1  4
  [10] .rel.dyn          REL             00008664 000664 000008 08   A  6   0  4
  [11] .rel.plt          REL             0000866c 00066c 000048 08   A  6  13  4
  [12] .init             PROGBITS        000086b4 0006b4 00000c 00  AX  0   0  4
  [13] .plt              PROGBITS        000086c0 0006c0 000080 04  AX  0   0  4
  [14] .text             PROGBITS        00008740 000740 000164 00  AX  0   0  4
  [15] .fini             PROGBITS        000088a4 0008a4 000008 00  AX  0   0  4
  [16] .rodata           PROGBITS        000088ac 0008ac 000008 00   A  0   0  4
  [17] .ARM.exidx        ARM_EXIDX       000088b4 0008b4 000008 00  AL 14   0  4
  [18] .eh_frame         PROGBITS        000088bc 0008bc 000004 00   A  0   0  4
  [19] .init_array       INIT_ARRAY      000108c0 0008c0 000004 00  WA  0   0  4
  [20] .fini_array       FINI_ARRAY      000108c4 0008c4 000004 00  WA  0   0  4
  [21] .jcr              PROGBITS        000108c8 0008c8 000004 00  WA  0   0  4
  [22] .dynamic          DYNAMIC         000108cc 0008cc 000120 08  WA  7   0  4
  [23] .got              PROGBITS        000109ec 0009ec 000034 04  WA  0   0  4
  [24] .data             PROGBITS        00010a20 000a20 000008 00  WA  0   0  4
  [25] .bss              NOBITS          00010a28 000a28 000004 00  WA  0   0  1
  [26] .ARM.attributes   ARM_ATTRIBUTES  00000000 000a28 00002f 00      0   0  1
  [27] .gnu_debuglink    PROGBITS        00000000 000a57 000034 00      0   0  1
  [28] .shstrtab         STRTAB          00000000 000a8b 000100 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  EXIDX          0x0008b4 0x000088b4 0x000088b4 0x00008 0x00008 R   0x4
  PHDR           0x000034 0x00008034 0x00008034 0x00100 0x00100 R E 0x4
  INTERP         0x000134 0x00008134 0x00008134 0x00019 0x00019 R   0x1
      [Requesting program interpreter: /lib/ld-linux-armhf.so.3]
  LOAD           0x000000 0x00008000 0x00008000 0x008c0 0x008c0 R E 0x8000
  LOAD           0x0008c0 0x000108c0 0x000108c0 0x00168 0x0016c RW  0x8000
  DYNAMIC        0x0008cc 0x000108cc 0x000108cc 0x00120 0x00120 RW  0x4
  NOTE           0x000150 0x00008150 0x00008150 0x00044 0x00044 R   0x4
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4

 Section to Segment mapping:
  Segment Sections...
   00     .ARM.exidx 
   01     
   02     .interp 
   03     .interp .note.ABI-tag .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .ARM.exidx .eh_frame 
   04     .init_array .fini_array .jcr .dynamic .got .data .bss 
   05     .dynamic 
   06     .note.ABI-tag .note.gnu.build-id 
   07     

Dynamic section at offset 0x8cc contains 31 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libruby-1.9.1.so.1.9]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [librt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libcrypt.so.1]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000c (INIT)                       0x86b4
 0x0000000d (FINI)                       0x88a4
 0x00000019 (INIT_ARRAY)                 0x108c0
 0x0000001b (INIT_ARRAYSZ)               4 (bytes)
 0x0000001a (FINI_ARRAY)                 0x108c4
 0x0000001c (FINI_ARRAYSZ)               4 (bytes)
 0x00000004 (HASH)                       0x8194
 0x6ffffef5 (GNU_HASH)                   0x8248
 0x00000005 (STRTAB)                     0x84a8
 0x00000006 (SYMTAB)                     0x8308
 0x0000000a (STRSZ)                      357 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000015 (DEBUG)                      0x0
 0x00000003 (PLTGOT)                     0x109ec
 0x00000002 (PLTRELSZ)                   72 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x866c
 0x00000011 (REL)                        0x8664
 0x00000012 (RELSZ)                      8 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0x8644
 0x6fffffff (VERNEEDNUM)                 1
 0x6ffffff0 (VERSYM)                     0x860e
 0x00000000 (NULL)                       0x0

Relocation section '.rel.dyn' at offset 0x664 contains 1 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
00010a1c  00000115 R_ARM_GLOB_DAT    00000000   __gmon_start__

Relocation section '.rel.plt' at offset 0x66c contains 9 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
000109f8  00001316 R_ARM_JUMP_SLOT   000086d4   ruby_run_node
000109fc  00000716 R_ARM_JUMP_SLOT   000086e0   abort
00010a00  00000d16 R_ARM_JUMP_SLOT   000086ec   __libc_start_main
00010a04  00000116 R_ARM_JUMP_SLOT   00000000   __gmon_start__
00010a08  00001516 R_ARM_JUMP_SLOT   00008704   ruby_init
00010a0c  00001816 R_ARM_JUMP_SLOT   00008710   ruby_options
00010a10  00001416 R_ARM_JUMP_SLOT   0000871c   ruby_sysinit
00010a14  00001616 R_ARM_JUMP_SLOT   00008728   setlocale
00010a18  00001916 R_ARM_JUMP_SLOT   00008734   ruby_init_stack

Unwind table index '.ARM.exidx' at offset 0x8b4 contains 1 entries:

0x8794: 0x1 [cantunwind]

Symbol table '.dynsym' contains 26 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
     2: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
     3: 00010a2c     0 NOTYPE  GLOBAL DEFAULT  ABS _bss_end__
     4: 000088a4     0 FUNC    GLOBAL DEFAULT   15 _fini
     5: 00010a28     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start__
     6: 000086b4     0 FUNC    GLOBAL DEFAULT   12 _init
     7: 000086e0     0 FUNC    GLOBAL DEFAULT  UND abort@GLIBC_2.4 (2)
     8: 00010a28     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
     9: 000088ac     4 OBJECT  GLOBAL DEFAULT   16 _IO_stdin_used
    10: 00010a2c     0 NOTYPE  GLOBAL DEFAULT  ABS __end__
    11: 00010a2c     0 NOTYPE  GLOBAL DEFAULT  ABS _end
    12: 00010a20     0 NOTYPE  GLOBAL DEFAULT   24 __data_start
    13: 000086ec     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.4 (2)
    14: 00010a28     0 NOTYPE  GLOBAL DEFAULT  ABS _edata
    15: 000088a0     4 FUNC    GLOBAL DEFAULT   14 __libc_csu_fini
    16: 00008794     0 FUNC    GLOBAL DEFAULT   14 _start
    17: 00008840    96 FUNC    GLOBAL DEFAULT   14 __libc_csu_init
    18: 00010a20     0 NOTYPE  WEAK   DEFAULT   24 data_start
    19: 000086d4     0 FUNC    GLOBAL DEFAULT  UND ruby_run_node
    20: 0000871c     0 FUNC    GLOBAL DEFAULT  UND ruby_sysinit
    21: 00008704     0 FUNC    GLOBAL DEFAULT  UND ruby_init
    22: 00008728     0 FUNC    GLOBAL DEFAULT  UND setlocale@GLIBC_2.4 (2)
    23: 00010a2c     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_end__
    24: 00008710     0 FUNC    GLOBAL DEFAULT  UND ruby_options
    25: 00008734     0 FUNC    GLOBAL DEFAULT  UND ruby_init_stack

Histogram for bucket list length (total of 17 buckets):
 Length  Number     % of total  Coverage
      0  3          ( 17.6%)
      1  7          ( 41.2%)     28.0%
      2  4          ( 23.5%)     60.0%
      3  2          ( 11.8%)     84.0%
      4  1          (  5.9%)    100.0%

Histogram for `.gnu.hash' bucket list length (total of 17 buckets):
 Length  Number     % of total  Coverage
      0  3          ( 17.6%)
      1  7          ( 41.2%)     30.4%
      2  5          ( 29.4%)     73.9%
      3  2          ( 11.8%)    100.0%

Version symbols section '.gnu.version' contains 26 entries:
 Addr: 000000000000860e  Offset: 0x00060e  Link: 6 (.dynsym)
  000:   0 (*local*)       0 (*local*)       0 (*local*)       1 (*global*)   
  004:   1 (*global*)      1 (*global*)      1 (*global*)      2 (GLIBC_2.4)  
  008:   1 (*global*)      1 (*global*)      1 (*global*)      1 (*global*)   
  00c:   1 (*global*)      2 (GLIBC_2.4)     1 (*global*)      1 (*global*)   
  010:   1 (*global*)      1 (*global*)      1 (*global*)      0 (*local*)    
  014:   0 (*local*)       0 (*local*)       2 (GLIBC_2.4)     1 (*global*)   
  018:   0 (*local*)       0 (*local*)    

Version needs section '.gnu.version_r' contains 1 entries:
 Addr: 0x0000000000008644  Offset: 0x000644  Link: 7 (.dynstr)
  000000: Version: 1  File: libc.so.6  Cnt: 1
  0x0010:   Name: GLIBC_2.4  Flags: none  Version: 2

Notes at offset 0x00000150 with length 0x00000020:
  Owner                 Data size   Description
  GNU                  0x00000010   NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 2.6.26

Notes at offset 0x00000170 with length 0x00000024:
  Owner                 Data size   Description
  GNU                  0x00000014   NT_GNU_BUILD_ID (unique build ID bitstring)
    Build ID: 819f0640215b429108bdf01e19e5e1585698bdd7
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "6"
  Tag_CPU_arch: v6
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_FP_arch: VFPv2
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_align_preserved: 8-byte, except leaf SP
  Tag_ABI_enum_size: int
  Tag_ABI_HardFP_use: SP and DP
  Tag_ABI_VFP_args: VFP registers
  Tag_DIV_use: Not allowed
Burgestrand commented 10 years ago

I tried to install your gem on several systems and architectures by now and i always experienced that it is hard to install your recommended nokorigi v1.4.7

Nokogiri is not a dependency of Spotify. How are you installing it?

Regarding the readelf output... it contains the tag that says it is hard float. Not sure why it doesn't match the Libspotify.hard_float? check. Hmm.

ds1982 commented 10 years ago

Spotify is requiring rbgccxml wich depends on nokogiri v1.4.7

i am installing all this with

"bundle install" 
"gem install rbgccxml" 

throws the same nokogiri error like above...

ds1982 commented 10 years ago

Regarding the hf-check:

RbConfig::CONFIG["host_cpu"]

returns only "arm"

so line 24 needs to be changed to

when /arm(\d+)?/
ds1982 commented 10 years ago

Regarding rbgccxml:

I installed rbgccxml gem this way without errors:

  1. clone from git
  2. update gem spec to use nokogiri v1.6.1
  3. install rbgccxml gem locally

Hope this works without further errors now, but it seems to actually.

Burgestrand commented 10 years ago

rbgccxml is a development dependency of spotify, not a runtime dependency. You should not need rbgccxml. How are you installing the spotify gem?

ds1982 commented 10 years ago

i am installing the spotify gem with

gem install spotify

After installing i try to run your examples which are complaining about missing dependencies like "pry", "plaything", ... These dependencies i install with

bundle install

which is installing rbgccxml too.

Burgestrand commented 10 years ago

Alright, now we are on the same page. I understand.

I see from issue #28 that you managed to get the gem to work. How did you get it to find the libspotify library?

Did you do manual install, or change OS? What was the cause of the problem for this issue?

ds1982 commented 10 years ago

OK, i think we mixed up a few topics here, so i don't really understand your question.

Here is a short Timeline with what i did: tried to install spotify gem on Raspberry OS with hard float.

tried to install spotify gem on Raspberry's "wheezy" distro with soft float. ffi could load libspotify, but rbgccxml gem could not be installed. Solved like 4 posts above.

Problem on both OS:

Did this answer your question?

Burgestrand commented 10 years ago

hard float detection in libspotify did not work. Solved like 5 posts above. ... Output with my changes is: ["/var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin/armv5-linux", true]

Output with your original code is: ["/var/lib/gems/1.9.1/gems/libspotify-12.1.51.3-arm-linux/bin", true]

What were your changes? It is a bit hard to follow with all the malformatted text in this issue.

EDIT: Sorry, I see it now:

RbConfig::CONFIG["host_cpu"] returns only "arm"

So, if I understand correctly, the problem is that Libspotify.binary_path does not include the final armv5-linux part on your particular OS?

ds1982 commented 10 years ago
RbConfig::CONFIG["host_cpu"]

returns only "arm", not "armvX" or anything

so line 24 in libspotify.rb needs to be changed from

when /armv(\d+)?/

to

when /arm(\d+)?/
ds1982 commented 10 years ago

So, if I understand correctly, the problem is that Libspotify.binary_path does not include the final armv5-linux part on your particular OS?

right. and this is because in libspotify.rb the "case" in line 19

case RbConfig::CONFIG["host_cpu"]

has no "else" + my posting above

Burgestrand commented 10 years ago

I’ve created an issue on the libspotify gem for this, Burgestrand/libspotify#6.

Thanks for your patience! Also, thanks for cleaning up the comment formatting. It aids a lot in scanning the issue.

Burgestrand commented 10 years ago

Since both issues are now being tracked — libspotify host_os detection and rbgccxml/nokogiri on raspberry pi — I think we can close this (#27) issue, and track the other two issues separately.