libspotify 12.1.51.3-x86-mingw32 → 12.1.51.4-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0419e8e6af87adb386ce0fc1c70082945c37a6ba
4
- data.tar.gz: d011b15df251bd84dc742ad7a53479ebd17839b7
3
+ metadata.gz: 9fa437ddd34703a65b9de201d4dd97b365bf100f
4
+ data.tar.gz: 8e8c1610c71647c999115d4b98cfc8d24fdb3ed9
5
5
  SHA512:
6
- metadata.gz: c39e9c8b51680257200fcfdafd3d1e2bed93b2e2652c6149e9a0a207596a000961bcf4b3c12d39d04b4ab61c03ed36ff670b236817472ef279145d8f81c265ae
7
- data.tar.gz: 03a992880845928d1073052059fd6fd5f7bbe61a0595be7e1d77723bf42ebb69fc3dc98bcedc90e461fb072be31e47d4410f9b1e065713d980b2672e9797a71b
6
+ metadata.gz: d43c34234b2251464552e5b7052978edea59bd4eaf6f91c5bb95802525e6fe1ae8a2b627202d07f409b4a04240ebed292e39cff64c7f5d4e94513760451d5c06
7
+ data.tar.gz: c1662feeaa26aaaaa6f5e78d855d81c64ed5d5176bc32c1feac3c632086f9c99968d30500ca94298c5288691c0ec0ce5a9f5cdf0e4a22973f72adf37e71ff619
data/Rakefile CHANGED
@@ -11,29 +11,22 @@ task :build do
11
11
  # We want the right binary location.
12
12
  require_relative "lib/libspotify"
13
13
 
14
- # Maps platform to libspotify binary name.
15
- platforms =
16
- {
17
- "universal-darwin" => %w"universal-darwin",
18
- "i686-linux" => %w"i686-linux",
19
- "x86_64-linux" => %w"x86_64-linux",
20
- "arm-linux" => %w"armv5-linux",
21
- "x86-mingw32" => %w"windows.dll",
22
- "universal-java" => %w"universal-darwin i686-linux x86_64-linux armv5-linux",
23
- Gem::Platform::RUBY => [], # fallback platform
24
- }
14
+ platforms = Libspotify::PLATFORMS.dup
15
+ platforms[Gem::Platform::RUBY] = [] # fallback platform
16
+ platforms["universal-java"] = platforms.values.flatten.uniq
25
17
 
26
18
  # Maps binaries to system path.
27
19
  binaries =
28
20
  {
29
- "universal-darwin" => "bin/libspotify-12.1.51-Darwin-universal/libspotify.framework/Versions/Current/libspotify",
30
- "i686-linux" => "bin/libspotify-12.1.51-Linux-i686-release/lib/libspotify.so",
31
- "x86_64-linux" => "bin/libspotify-12.1.51-Linux-x86_64-release/lib/libspotify.so",
32
- "armv5-linux" => "bin/libspotify-12.1.51-Linux-armv5-release/lib/libspotify.so",
33
- "windows.dll" => "bin/libspotify-12.1.51-win32-release/lib/libspotify.dll",
21
+ "universal-darwin" => "libspotify-12.1.51-Darwin-universal/libspotify-12.1.51-Darwin-universal/libspotify.framework/Versions/Current/libspotify",
22
+ "x86-linux" => "libspotify-12.1.51-Linux-i686-release/lib/libspotify.so",
23
+ "x86_64-linux" => "libspotify-12.1.51-Linux-x86_64-release/lib/libspotify.so",
24
+ "armv5-linux" => "libspotify-12.1.51-Linux-armv5-release/lib/libspotify.so",
25
+ "armv6hf-linux" => "libspotify-12.1.103-Linux-armv6-bcm2708hardfp-release/lib/libspotify.so",
34
26
  # armv5 works on both armv6 and armv7, so we always use armv5.
35
- # "armv6-linux" => "libspotify-12.1.51-Linux-armv6-release/lib/libspotify.so",
36
- # "armv7-linux" => "libspotify-12.1.51-Linux-armv7-release/lib/libspotify.so",
27
+ "armv6-linux" => "libspotify-12.1.51-Linux-armv6-release/lib/libspotify.so",
28
+ "armv7-linux" => "libspotify-12.1.51-Linux-armv7-release/lib/libspotify.so",
29
+ "x86-windows.dll" => "libspotify-12.1.51-win32-release/lib/libspotify.dll",
37
30
  }
38
31
 
39
32
  # Load our gem specification.
@@ -55,12 +48,9 @@ task :build do
55
48
  If you are on ARM (e.g. Raspberry PI), you might want to install the gem with explicit --platform:
56
49
  $> gem install libspotify --platform arm-linux
57
50
  MSG
58
- elsif source_binaries.none? { |binary| File.exists?(binaries[binary]) }
59
- puts "Skipping #{platform} build. Binaries missing."
60
- next
61
51
  else
62
52
  source_binaries.each do |binary|
63
- src_name = binaries[binary]
53
+ src_name = "bin/#{binaries.fetch(binary)}"
64
54
  dest_name = "bin/#{binary}"
65
55
  FileUtils.cp(src_name, dest_name, verbose: true)
66
56
  spec.files << dest_name
@@ -72,10 +62,10 @@ task :build do
72
62
  File.join(pkgs, File.basename(gemname)).tap do |gempath|
73
63
  FileUtils.mv(gemname, gempath, verbose: true)
74
64
  end
75
- end.compact
65
+ end
76
66
 
77
67
  puts
78
- puts "Gems successfully built. To publish, do:"
68
+ puts "All gems successfully built. To publish, do:"
79
69
  gempaths.each do |path|
80
70
  puts " gem push pkg/#{File.basename(path)}"
81
71
  end
@@ -84,6 +74,42 @@ task :build do
84
74
  puts "Do not forget to tag and push to GitHub as well."
85
75
  end
86
76
 
77
+ desc "Download all known libspotify releases and unpack them"
78
+ task :download do
79
+ urls = %w[
80
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.64-iOS-universal.zip
81
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Android-arm-release.tar.gz
82
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.51-win32-release.zip
83
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Darwin-universal.zip
84
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Linux-i686-release.tar.gz
85
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Linux-x86_64-release.tar.gz
86
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Linux-armv5-release.tar.gz
87
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Linux-armv6-release.tar.gz
88
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Linux-armv7-release.tar.gz
89
+ https://developer.spotify.com/download/libspotify/libspotify-12.1.103-Linux-armv6-bcm2708hardfp-release.tar.gz
90
+ ]
91
+
92
+ Dir.chdir "bin" do
93
+ urls.map do |url|
94
+ Thread.new do
95
+ unless File.exist?(File.basename(url))
96
+ sh "curl", "-O", "-s", url
97
+ else
98
+ puts "Skipping #{url}."
99
+ end
100
+ end
101
+ end.map(&:join)
102
+
103
+ Dir["./*.zip"].each do |zipfile|
104
+ sh "unzip", zipfile, "-d", File.basename(zipfile, ".zip")
105
+ end
106
+
107
+ Dir["./*.tar.gz"].each do |tarfile|
108
+ sh "tar", "xvfz", tarfile
109
+ end
110
+ end
111
+ end
112
+
87
113
  desc "Launch an IRB console with the gem loaded."
88
114
  task :console do
89
115
  exec "irb -Ilib -rlibspotify"
data/lib/libspotify.rb CHANGED
@@ -1,41 +1,96 @@
1
1
  module Libspotify
2
2
  VERSION = "12.1.51"
3
- GEM_VERSION = "#{VERSION}.3"
3
+ GEM_VERSION = "#{VERSION}.4"
4
4
 
5
- module_function
5
+ # Maps platform to libspotify binary name.
6
+ PLATFORMS = {
7
+ "universal-darwin" => %w"universal-darwin",
8
+ "x86-linux" => %w"x86-linux",
9
+ "x86_64-linux" => %w"x86_64-linux",
10
+ "arm-linux" => %w"armv6-linux armv6hf-linux",
11
+ "x86-mingw32" => %w"x86-windows.dll",
12
+ }
6
13
 
7
- # @return [String] full path to libspotify binary.
8
- def binary_path
9
- File.expand_path("../bin/#{release_name}", File.dirname(__FILE__))
10
- end
14
+ class << self
15
+ # @return [String] full path to libspotify binary.
16
+ def binary_path
17
+ File.expand_path("../bin/#{release_name}", File.dirname(__FILE__))
18
+ end
19
+
20
+ # @return [String] name of libspotify binary.
21
+ def release_name
22
+ host_platform = Gem::Platform.new(host_string)
23
+
24
+ _, binaries = PLATFORMS.find do |platform, _|
25
+ Gem::Platform.new(platform) === host_platform
26
+ end
27
+
28
+ binaries ||= []
29
+
30
+ binary = if binaries.length == 1
31
+ binaries[0]
32
+ elsif host_cpu =~ /armv(\d+)(hf)?/
33
+ host_version = $1.to_i
34
+ host_hf = $2
35
+
36
+ matches = PLATFORMS["arm-linux"].select do |bin|
37
+ version, hf = bin.match(/armv(\d+)(hf)?/)[1..2]
38
+ hf == host_hf && version.to_i <= host_version
39
+ end
40
+
41
+ matches.max_by { |bin| bin[/armv(\d+)/, 1].to_i }
42
+ else
43
+ nil # no rules for matching binaries, what to do?
44
+ end
45
+
46
+ binary || host_string
47
+ end
48
+
49
+ private
50
+
51
+ # @return [String] platform name of the host, even on jruby
52
+ def host_string
53
+ "#{host_cpu}-#{host_os}"
54
+ end
11
55
 
12
- # @api private
13
- # @return [String] name of libspotify binary.
14
- def release_name
15
- case RbConfig::CONFIG["host_os"]
16
- when /darwin/
17
- "universal-darwin"
18
- when /linux/
56
+ # @return [String] host cpu, even on jruby
57
+ def host_cpu
19
58
  case RbConfig::CONFIG["host_cpu"]
20
59
  when /86_64/
21
- "x86_64-linux"
60
+ "x86_64"
22
61
  when /86/
23
- "i686-linux"
24
- when /armv(\d+)?/
62
+ "x86"
63
+ when /arm/
25
64
  hf = "hf" if hard_float?
26
- "armv5#{hf}-linux"
65
+ "armv#{arm_version}#{hf}"
66
+ else
67
+ RbConfig::CONFIG["host_cpu"]
27
68
  end
28
- when /mingw|mswin/
29
- "windows.dll"
30
- else
31
- "unknown-%s-%s" % RbConfig::CONFIG.values_at("host_cpu", "host_os")
32
69
  end
33
- end
34
70
 
35
- # @api private
36
- # @return [Boolean] true if on a hard floating point OS of arm
37
- def hard_float?
38
- `readelf -a #{RbConfig.ruby}`.match(/Tag_ABI_VFP_args/)
71
+ # @return [String] host os, even on jruby
72
+ def host_os
73
+ case RbConfig::CONFIG["host_os"]
74
+ when /darwin/
75
+ "darwin"
76
+ when /linux/
77
+ "linux"
78
+ when /mingw|mswin/
79
+ "mingw32"
80
+ else
81
+ RbConfig::CONFIG["host_os"]
82
+ end
83
+ end
84
+
85
+ # @return [Integer, nil] ARM instruction set version
86
+ def arm_version
87
+ File.read("/proc/cpuinfo")[/ARMv(\d+)/i, 1].to_i
88
+ end
89
+
90
+ # @return [Boolean] true if on a hard floating point OS of arm
91
+ def hard_float?
92
+ `readelf -a #{RbConfig.ruby}`.match(/Tag_ABI_VFP_args/)
93
+ end
39
94
  end
40
95
  end
41
96
 
data/libspotify.gemspec CHANGED
@@ -6,7 +6,13 @@ Gem::Specification.new do |gem|
6
6
  gem.authors = ["Kim Burgestrand"]
7
7
  gem.email = ["kim@burgestrand.se"]
8
8
  gem.summary = %q{A binary ruby gem for distribution of libspotify.}
9
- gem.description = gem.summary
9
+
10
+ gem.description = <<-DESCRIPTION
11
+ libspotify is a ruby gem for distribution of libspotify binaries. It allows
12
+ download of libspotify through the rubygems package manager, and provides an
13
+ API for retrieving the binary file path.
14
+ DESCRIPTION
15
+
10
16
  gem.homepage = "https://github.com/Burgestrand/libspotify"
11
17
  gem.require_paths = ["lib"]
12
18
  gem.files = `git ls-files`.split($/)
@@ -14,5 +20,6 @@ Gem::Specification.new do |gem|
14
20
 
15
21
  gem.version = Libspotify::GEM_VERSION
16
22
  gem.platform = Gem::Platform::RUBY
17
- gem.add_development_dependency "rspec"
23
+ gem.add_development_dependency "rspec", "~> 2.0"
24
+ gem.add_development_dependency "rake", "~> 10.0"
18
25
  end
@@ -18,26 +18,33 @@ describe Libspotify do
18
18
  end
19
19
 
20
20
  specify "linux-gnu:i686" do
21
- release_name.should eq "i686-linux"
21
+ release_name.should eq "x86-linux"
22
22
  end
23
23
 
24
24
  specify "linux-gnu:x86_64" do
25
25
  release_name.should eq "x86_64-linux"
26
26
  end
27
27
 
28
+ specify "mingw32:i686" do
29
+ release_name.should eq "x86-windows.dll"
30
+ end
31
+
28
32
  context "soft float" do
29
33
  before { Libspotify.stub(hard_float?: false) }
30
34
 
31
35
  specify "linux-gnueabi:armv5l" do
36
+ Libspotify.stub(arm_version: 5)
32
37
  release_name.should eq "armv5-linux"
33
38
  end
34
39
 
35
40
  specify "linux-gnueabi:armv6l" do
36
- release_name.should eq "armv5-linux"
41
+ Libspotify.stub(arm_version: 6)
42
+ release_name.should eq "armv6-linux"
37
43
  end
38
44
 
39
45
  specify "linux-gnueabi:armv7l" do
40
- release_name.should eq "armv5-linux"
46
+ Libspotify.stub(arm_version: 7)
47
+ release_name.should eq "armv6-linux"
41
48
  end
42
49
  end
43
50
 
@@ -45,20 +52,27 @@ describe Libspotify do
45
52
  before { Libspotify.stub(hard_float?: true) }
46
53
 
47
54
  specify "linux-gnueabi:armv5l" do
55
+ Libspotify.stub(arm_version: 5)
48
56
  release_name.should eq "armv5hf-linux"
49
57
  end
50
58
 
51
59
  specify "linux-gnueabi:armv6l" do
52
- release_name.should eq "armv5hf-linux"
60
+ Libspotify.stub(arm_version: 6)
61
+ release_name.should eq "armv6hf-linux"
53
62
  end
54
63
 
55
64
  specify "linux-gnueabi:armv7l" do
56
- release_name.should eq "armv5hf-linux"
65
+ Libspotify.stub(arm_version: 7)
66
+ release_name.should eq "armv6hf-linux"
57
67
  end
58
68
  end
59
69
 
70
+ specify "linux:weird-cpu" do
71
+ release_name.should eq "weird-cpu-linux"
72
+ end
73
+
60
74
  specify "weird-os:weird-cpu" do
61
- release_name.should eq "unknown-weird-cpu-weird-os"
75
+ release_name.should eq "weird-cpu-weird-os"
62
76
  end
63
77
  end
64
78
 
metadata CHANGED
@@ -1,46 +1,63 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libspotify
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.1.51.3
4
+ version: 12.1.51.4
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Kim Burgestrand
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-09 00:00:00.000000000 Z
11
+ date: 2014-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '2.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
27
- description: A binary ruby gem for distribution of libspotify.
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: |
42
+ libspotify is a ruby gem for distribution of libspotify binaries. It allows
43
+ download of libspotify through the rubygems package manager, and provides an
44
+ API for retrieving the binary file path.
28
45
  email:
29
46
  - kim@burgestrand.se
30
47
  executables: []
31
48
  extensions: []
32
49
  extra_rdoc_files: []
33
50
  files:
34
- - .gitignore
35
- - .rspec
51
+ - ".gitignore"
52
+ - ".rspec"
36
53
  - Gemfile
37
54
  - README.md
38
55
  - Rakefile
39
56
  - bin/.gitkeep
57
+ - bin/x86-windows.dll
40
58
  - lib/libspotify.rb
41
59
  - libspotify.gemspec
42
60
  - spec/libspotify_spec.rb
43
- - bin/windows.dll
44
61
  homepage: https://github.com/Burgestrand/libspotify
45
62
  licenses:
46
63
  - MIT
@@ -51,17 +68,17 @@ require_paths:
51
68
  - lib
52
69
  required_ruby_version: !ruby/object:Gem::Requirement
53
70
  requirements:
54
- - - '>='
71
+ - - ">="
55
72
  - !ruby/object:Gem::Version
56
73
  version: '0'
57
74
  required_rubygems_version: !ruby/object:Gem::Requirement
58
75
  requirements:
59
- - - '>='
76
+ - - ">="
60
77
  - !ruby/object:Gem::Version
61
78
  version: '0'
62
79
  requirements: []
63
80
  rubyforge_project:
64
- rubygems_version: 2.1.10
81
+ rubygems_version: 2.2.2
65
82
  signing_key:
66
83
  specification_version: 4
67
84
  summary: A binary ruby gem for distribution of libspotify.