sassc 2.1.0.pre1-x86-linux → 2.1.0.pre2-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b061758cbf74fc360322b3f898ed3713b6c736b908abb277f424ac7076bf67ee
4
- data.tar.gz: 6fb0b162a89e85615f42b2f2da1ef128b25114cbf5b9e3448f3131f9468c5538
3
+ metadata.gz: ad04ef35e4718a6b9fe624367b48b31346ac3277dcff7f1f1ff097afeb65b2d5
4
+ data.tar.gz: 37d763e20efded0e5277e529eed455e1ff5c6ded96ff340e260d2d831f9a7dbb
5
5
  SHA512:
6
- metadata.gz: 5445a9dafba0aa2ed8942bf5f5103cbe80ace0e9532ca644c50a867866e491cd89cec28a3f52d4688792f501fc854fcf9e044ef95edb146a82f3f4160f8463e6
7
- data.tar.gz: 92a4df2b15f0dd26c5364f826c4ba85bb74d168283e4c2ac37686fa032cb9ad4512a6aeffbc0c931a773176f0e912e0e217252d6349caf33f188895821ea4803
6
+ metadata.gz: d45a58b52184f18979904eec2e550dec094bf8d90c46238708f6bc19594812c5ba895dffdf6b32502e68a82a44896415ebd89c3fc4962f05c0a9cfc7f0478dc7
7
+ data.tar.gz: 165a788a95eb33feecdab2d8fbf66f21e3f61980afef461f29760dddeebfb7487ff41fc51fc97079d737331713e3f71621788cf814dd5ad5402dfba2c3d32be4
data/.gitignore CHANGED
@@ -15,3 +15,4 @@
15
15
  *.gem
16
16
  mkmf.log
17
17
  vendor/bundle
18
+ /ext/Makefile
@@ -3,9 +3,12 @@ language: ruby
3
3
  bundler_args: "--binstubs --standalone --without documentation --path ../bundle"
4
4
  script: "bundle exec rake test"
5
5
  rvm:
6
+ - 2.0.0
7
+ - 2.1.10
8
+ - 2.2.10
6
9
  - 2.3.8
7
- - 2.4.5
8
- - 2.5.3
9
- - 2.6.1
10
+ - 2.4.6
11
+ - 2.5.5
12
+ - 2.6.3
10
13
  notifications:
11
14
  email: false
@@ -1,3 +1,7 @@
1
+ - **2.1.0.pre2**
2
+ - [Reduce Ruby warnings](https://github.com/sass/sassc-ruby/pull/124)
3
+ - [prefer equal? to determine object identity](https://github.com/sass/sassc-ruby/pull/122)
4
+ - [Link C/C++ stdlib statically for binary gems](https://github.com/sass/sassc-ruby/pull/127)
1
5
  - **2.1.0.pre1**
2
6
  - [Update Libsass to 3.6.0](https://github.com/sass/sassc-ruby/pull/96/files)
3
7
  - [Support old Ruby versions](https://github.com/sass/sassc-ruby/pull/117/files)
data/Rakefile CHANGED
@@ -4,12 +4,27 @@ task default: :test
4
4
 
5
5
  require 'rake/extensiontask'
6
6
  gem_spec = Gem::Specification.load("sassc.gemspec")
7
+
8
+ # HACK: Prevent rake-compiler from overriding required_ruby_version,
9
+ # because the shared library here is Ruby-agnostic.
10
+ # See https://github.com/rake-compiler/rake-compiler/issues/153
11
+ module FixRequiredRubyVersion
12
+ def required_ruby_version=(*); end
13
+ end
14
+ Gem::Specification.send(:prepend, FixRequiredRubyVersion)
15
+
7
16
  Rake::ExtensionTask.new('libsass', gem_spec) do |ext|
8
17
  ext.name = 'libsass'
9
18
  ext.ext_dir = 'ext'
10
19
  ext.lib_dir = 'lib/sassc'
11
20
  ext.cross_compile = true
12
21
  ext.cross_platform = %w[x86-mingw32 x64-mingw32 x86-linux x86_64-linux]
22
+
23
+ # Link C++ stdlib statically when building binary gems.
24
+ ext.cross_config_options << '--enable-static-stdlib'
25
+
26
+ ext.cross_config_options << '--disable-march-tune-native'
27
+
13
28
  ext.cross_compiling do |spec|
14
29
  spec.files.reject! { |path| File.fnmatch?('ext/*', path) }
15
30
  end
@@ -18,11 +33,19 @@ end
18
33
  desc 'Compile all native gems via rake-compiler-dock (Docker)'
19
34
  task 'gem:native' do
20
35
  require 'rake_compiler_dock'
21
- RakeCompilerDock.sh "bundle && gem i rake --no-document && "\
22
- "rake cross native gem MAKE='nice make -j`nproc`' "\
23
- "RUBY_CC_VERSION=2.6.0:2.5.0:2.4.0:2.3.0"
36
+
37
+ # The RUBY_CC_VERSION here doesn't matter for the final package.
38
+ # Only one version should be specified, as the shared library is Ruby-agnostic.
39
+ #
40
+ # g++-multilib is installed for 64->32-bit cross-compilation.
41
+ RakeCompilerDock.sh "sudo apt-get install -y g++-multilib && bundle && gem i rake --no-document && "\
42
+ "rake clean && rake cross native gem MAKE='nice make -j`nproc`' "\
43
+ "RUBY_CC_VERSION=2.6.0 CLEAN=1"
24
44
  end
25
45
 
46
+ CLEAN.include 'tmp', 'pkg', 'lib/sassc/libsass.so', 'ext/libsass/VERSION',
47
+ 'ext/*.{o,so,bundle}', 'ext/Makefile'
48
+
26
49
  desc "Run all tests"
27
50
  task test: 'compile:libsass' do
28
51
  $LOAD_PATH.unshift('lib', 'test')
@@ -6,16 +6,8 @@ module SassC
6
6
  module Native
7
7
  extend FFI::Library
8
8
 
9
- spec = Gem.loaded_specs["sassc"]
10
- gem_root = spec.gem_dir
11
-
12
- dl_ext = (RUBY_PLATFORM =~ /darwin/ ? 'bundle' : 'so')
13
- ruby_version_so_path = "#{gem_root}/lib/sassc/#{RUBY_VERSION[/\d+.\d+/]}/libsass.#{dl_ext}"
14
- if File.exist?(ruby_version_so_path)
15
- ffi_lib ruby_version_so_path
16
- else
17
- ffi_lib "#{gem_root}/lib/sassc/libsass.#{dl_ext}"
18
- end
9
+ dl_ext = (RbConfig::CONFIG['host_os'] =~ /darwin/ ? 'bundle' : 'so')
10
+ ffi_lib File.expand_path("libsass.#{dl_ext}", __dir__)
19
11
 
20
12
  require_relative "native/sass_value"
21
13
 
@@ -42,7 +34,7 @@ module SassC
42
34
 
43
35
  # Remove the redundant "sass_" from the beginning of every method name
44
36
  def self.attach_function(*args)
45
- super if args.size != 3
37
+ return super if args.size != 3
46
38
 
47
39
  if args[0] =~ /^sass_/
48
40
  args.unshift args[0].to_s.sub(/^sass_/, "")
@@ -98,11 +98,6 @@ module SassC
98
98
  attach_function "sass_color_set_#{color_channel}".to_sym, [:sass_value_ptr, :double], :void
99
99
  end
100
100
 
101
- # ADDAPI size_t ADDCALL sass_list_get_length(const union Sass_Value* v)
102
- # ADDAPI union Sass_Value* ADDCALL sass_list_get_value (const union Sass_Value* v, size_t i);
103
- attach_function :sass_list_get_length, [:sass_value_ptr], :size_t
104
- attach_function :sass_list_get_value, [:sass_value_ptr, :size_t], :sass_value_ptr
105
-
106
101
  # ADDAPI char* ADDCALL sass_error_get_message (const union Sass_Value* v);
107
102
  # ADDAPI void ADDCALL sass_error_set_message (union Sass_Value* v, char* msg);
108
103
  attach_function :sass_error_get_message, [:sass_value_ptr], :string
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SassC
4
- VERSION = "2.1.0.pre1"
4
+ VERSION = "2.1.0.pre2"
5
5
  end
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
21
 
22
- spec.required_ruby_version = ">= 2.3.3"
22
+ spec.required_ruby_version = ">= 2.0.0"
23
23
 
24
24
  spec.require_paths = ["lib"]
25
25
 
@@ -40,18 +40,30 @@ Gem::Specification.new do |spec|
40
40
  gem_dir = File.expand_path(File.dirname(__FILE__)) + "/"
41
41
 
42
42
  libsass_dir = File.join(gem_dir, 'ext', 'libsass')
43
- if !File.directory?(libsass_dir)
44
- $stderr.puts "Error: ext/libsass not checked out. Please run:\n\n"\
45
- " git submodule update --init"
46
- exit 1
43
+ if !File.directory?(libsass_dir) ||
44
+ # '.', '..', and possibly '.git' from a failed checkout:
45
+ Dir.entries(libsass_dir).size <= 3
46
+ Dir.chdir(__dir__) { system('git submodule update --init') } or
47
+ fail 'Could not fetch libsass'
48
+ end
49
+
50
+ # Write a VERSION file for non-binary gems (for `SassC::Native.version`).
51
+ if !File.exist?(File.join(libsass_dir, 'VERSION'))
52
+ libsass_version = Dir.chdir(libsass_dir) do
53
+ %x[git describe --abbrev=4 --dirty --always --tags].chomp
54
+ end
55
+ File.write(File.join(libsass_dir, 'VERSION'), libsass_version)
47
56
  end
48
57
 
49
58
  Dir.chdir(libsass_dir) do
50
59
  submodule_relative_path = File.join('ext', 'libsass')
60
+ skip_re = %r{(^("?test|docs|script)/)|\.md$|\.yml$}
61
+ only_re = %r{\.[ch](pp)?$}
51
62
  `git ls-files`.split($\).each do |filename|
52
- next if filename =~ %r{(^("?test|docs|script)/)|\.md$|\.yml$}
63
+ next if filename =~ skip_re || filename !~ only_re
53
64
  spec.files << File.join(submodule_relative_path, filename)
54
65
  end
66
+ spec.files << File.join(submodule_relative_path, 'VERSION')
55
67
  end
56
68
 
57
69
  end
@@ -286,7 +286,7 @@ CSS
286
286
  def test_empty_template_returns_a_new_object
287
287
  input = String.new
288
288
  output = Engine.new(input).render
289
- assert input.object_id != output.object_id, 'empty template must return a new object'
289
+ assert !input.equal?(output), 'empty template must return a new object'
290
290
  end
291
291
 
292
292
  def test_empty_template_encoding_matches_input
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sassc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.pre1
4
+ version: 2.1.0.pre2
5
5
  platform: x86-linux
6
6
  authors:
7
7
  - Ryan Boland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-23 00:00:00.000000000 Z
11
+ date: 2019-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -153,16 +153,13 @@ files:
153
153
  - README.md
154
154
  - Rakefile
155
155
  - lib/sassc.rb
156
- - lib/sassc/2.3/libsass.so
157
- - lib/sassc/2.4/libsass.so
158
- - lib/sassc/2.5/libsass.so
159
- - lib/sassc/2.6/libsass.so
160
156
  - lib/sassc/dependency.rb
161
157
  - lib/sassc/engine.rb
162
158
  - lib/sassc/error.rb
163
159
  - lib/sassc/functions_handler.rb
164
160
  - lib/sassc/import_handler.rb
165
161
  - lib/sassc/importer.rb
162
+ - lib/sassc/libsass.so
166
163
  - lib/sassc/native.rb
167
164
  - lib/sassc/native/lib_c.rb
168
165
  - lib/sassc/native/native_context_api.rb
@@ -215,10 +212,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
212
  requirements:
216
213
  - - ">="
217
214
  - !ruby/object:Gem::Version
218
- version: '2.3'
219
- - - "<"
220
- - !ruby/object:Gem::Version
221
- version: 2.7.dev
215
+ version: 2.0.0
222
216
  required_rubygems_version: !ruby/object:Gem::Requirement
223
217
  requirements:
224
218
  - - ">"