license_scout 0.1.3 → 1.0.0

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.
Files changed (40) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +13 -5
  3. data/bin/license_scout +39 -1
  4. data/bin/rebar_lock_json +0 -0
  5. data/erl_src/rebar_lock_json/README.md +17 -0
  6. data/erl_src/rebar_lock_json/rebar.config +19 -0
  7. data/erl_src/rebar_lock_json/rebar.lock +36 -0
  8. data/erl_src/rebar_lock_json/src/rebar_lock_json.app.src +17 -0
  9. data/erl_src/rebar_lock_json/src/rebar_lock_json.erl +20 -0
  10. data/lib/license_scout/canonical_licenses/BSD-2-Clause.txt +19 -0
  11. data/lib/license_scout/canonical_licenses/BSD-3-Clause.txt +27 -0
  12. data/lib/license_scout/canonical_licenses/Chef-MLSA.txt +5 -0
  13. data/lib/license_scout/collector.rb +1 -1
  14. data/lib/license_scout/dependency_manager/base.rb +8 -1
  15. data/lib/license_scout/dependency_manager/berkshelf.rb +1 -1
  16. data/lib/license_scout/dependency_manager/bundler.rb +1 -1
  17. data/lib/license_scout/dependency_manager/cpanm.rb +160 -0
  18. data/lib/license_scout/dependency_manager/dep.rb +87 -0
  19. data/lib/license_scout/dependency_manager/glide.rb +79 -0
  20. data/lib/license_scout/dependency_manager/godep.rb +71 -0
  21. data/lib/license_scout/dependency_manager/rebar.rb +6 -35
  22. data/lib/license_scout/dependency_manager.rb +5 -2
  23. data/lib/license_scout/license_file_analyzer/definitions.rb +8 -1
  24. data/lib/license_scout/license_file_analyzer/templates/Apache2.txt +0 -2
  25. data/lib/license_scout/license_file_analyzer/templates/Chef-MLSA.txt +5 -0
  26. data/lib/license_scout/net_fetcher.rb +1 -0
  27. data/lib/license_scout/options.rb +1 -1
  28. data/lib/license_scout/overrides.rb +553 -19
  29. data/lib/license_scout/version.rb +1 -1
  30. metadata +45 -13
  31. data/.gitignore +0 -9
  32. data/.rspec +0 -3
  33. data/.rubocop.yml +0 -4
  34. data/.travis.yml +0 -11
  35. data/Gemfile +0 -24
  36. data/Rakefile +0 -39
  37. data/appveyor.yml +0 -19
  38. data/bin/config_to_json +0 -0
  39. data/lib/license_scout/dependency_manager/cpan.rb +0 -322
  40. data/license_scout.gemspec +0 -54
@@ -16,5 +16,5 @@
16
16
  #
17
17
 
18
18
  module LicenseScout
19
- VERSION = "0.1.3"
19
+ VERSION = "1.0.0"
20
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_scout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serdar Sutay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-15 00:00:00.000000000 Z
11
+ date: 2018-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi-yajl
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: toml-rb
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - ">="
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: chefstyle
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: berkshelf
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -130,19 +158,20 @@ executables:
130
158
  extensions: []
131
159
  extra_rdoc_files: []
132
160
  files:
133
- - ".gitignore"
134
- - ".rspec"
135
- - ".rubocop.yml"
136
- - ".travis.yml"
137
- - Gemfile
138
161
  - LICENSE
139
162
  - README.md
140
- - Rakefile
141
- - appveyor.yml
142
- - bin/config_to_json
143
163
  - bin/license_scout
164
+ - bin/rebar_lock_json
165
+ - erl_src/rebar_lock_json/README.md
166
+ - erl_src/rebar_lock_json/rebar.config
167
+ - erl_src/rebar_lock_json/rebar.lock
168
+ - erl_src/rebar_lock_json/src/rebar_lock_json.app.src
169
+ - erl_src/rebar_lock_json/src/rebar_lock_json.erl
144
170
  - lib/license_scout.rb
171
+ - lib/license_scout/canonical_licenses/BSD-2-Clause.txt
172
+ - lib/license_scout/canonical_licenses/BSD-3-Clause.txt
145
173
  - lib/license_scout/canonical_licenses/BSD-4-Clause.txt
174
+ - lib/license_scout/canonical_licenses/Chef-MLSA.txt
146
175
  - lib/license_scout/canonical_licenses/ISC.txt
147
176
  - lib/license_scout/canonical_licenses/MIT.txt
148
177
  - lib/license_scout/collector.rb
@@ -153,7 +182,10 @@ files:
153
182
  - lib/license_scout/dependency_manager/bundler.rb
154
183
  - lib/license_scout/dependency_manager/bundler/LICENSE.md
155
184
  - lib/license_scout/dependency_manager/bundler/_bundler_script.rb
156
- - lib/license_scout/dependency_manager/cpan.rb
185
+ - lib/license_scout/dependency_manager/cpanm.rb
186
+ - lib/license_scout/dependency_manager/dep.rb
187
+ - lib/license_scout/dependency_manager/glide.rb
188
+ - lib/license_scout/dependency_manager/godep.rb
157
189
  - lib/license_scout/dependency_manager/json/README.md
158
190
  - lib/license_scout/dependency_manager/manual.rb
159
191
  - lib/license_scout/dependency_manager/npm.rb
@@ -172,6 +204,7 @@ files:
172
204
  - lib/license_scout/license_file_analyzer/templates/BSD-3-Clause-alt-format.txt
173
205
  - lib/license_scout/license_file_analyzer/templates/BSD-3-Clause.txt
174
206
  - lib/license_scout/license_file_analyzer/templates/BSD.txt
207
+ - lib/license_scout/license_file_analyzer/templates/Chef-MLSA.txt
175
208
  - lib/license_scout/license_file_analyzer/templates/EPLICENSE.txt
176
209
  - lib/license_scout/license_file_analyzer/templates/GPL-2.0.txt
177
210
  - lib/license_scout/license_file_analyzer/templates/GPL-3.0.txt
@@ -187,7 +220,6 @@ files:
187
220
  - lib/license_scout/overrides.rb
188
221
  - lib/license_scout/reporter.rb
189
222
  - lib/license_scout/version.rb
190
- - license_scout.gemspec
191
223
  homepage: https://github.com/chef/license_scout
192
224
  licenses:
193
225
  - Apache-2.0
@@ -208,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
240
  version: '0'
209
241
  requirements: []
210
242
  rubyforge_project:
211
- rubygems_version: 2.6.6
243
+ rubygems_version: 2.7.4
212
244
  signing_key:
213
245
  specification_version: 4
214
246
  summary: Discovers license files of a project's dependencies.
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --color
2
- --require spec_helper
3
- --exclude-pattern spec/fixtures/**/*
data/.rubocop.yml DELETED
@@ -1,4 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.2
3
- Excludes:
4
- - spec/fixtures/**/*
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- language: ruby
2
- sudo: false
3
-
4
- # do not run expensive spec tests on PRs, only on branches
5
- branches:
6
- only:
7
- - master
8
-
9
- before_install: gem install bundler
10
- rvm:
11
- - 2.1
data/Gemfile DELETED
@@ -1,24 +0,0 @@
1
- #
2
- # Copyright:: Copyright 2016, Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- source "https://rubygems.org"
19
-
20
- gemspec
21
-
22
- group(:development, :test) do
23
- gem "chefstyle", git: "https://github.com/chef/chefstyle.git", branch: "master"
24
- end
data/Rakefile DELETED
@@ -1,39 +0,0 @@
1
- #
2
- # Copyright:: Copyright 2016, Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require "bundler/gem_tasks"
19
- require "rspec/core/rake_task"
20
-
21
- task default: :test
22
-
23
- desc "Run specs"
24
- RSpec::Core::RakeTask.new(:spec) do |spec|
25
- spec.pattern = "spec/**/*_spec.rb"
26
- end
27
-
28
- begin
29
- require "chefstyle"
30
- require "rubocop/rake_task"
31
- RuboCop::RakeTask.new(:style) do |task|
32
- task.options += ["--display-cop-names", "--no-color"]
33
- end
34
- rescue LoadError
35
- puts "chefstyle/rubocop is not available. gem install chefstyle to do style checking."
36
- end
37
-
38
- desc "Run all tests"
39
- task test: [:style, :spec]
data/appveyor.yml DELETED
@@ -1,19 +0,0 @@
1
- os: Windows Server 2012 R2
2
- platform:
3
- - x64
4
-
5
- skip_tags: true
6
- branches:
7
- only:
8
- - master
9
-
10
- install:
11
- - set PATH=C:\Ruby22\bin;%PATH%
12
- - appveyor DownloadFile http://curl.haxx.se/ca/cacert.pem -FileName C:\cacert.pem
13
- - set SSL_CERT_FILE=C:\cacert.pem
14
-
15
- build_script:
16
- - bundle install || bundle install || bundle install
17
-
18
- test_script:
19
- - bundle exec rake spec
data/bin/config_to_json DELETED
Binary file
@@ -1,322 +0,0 @@
1
- #
2
- # Copyright:: Copyright 2016, Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require "rexml/document"
19
-
20
- require "ffi_yajl"
21
- require "psych"
22
- require "mixlib/shellout"
23
-
24
- require "license_scout/dependency_manager/base"
25
- require "license_scout/net_fetcher"
26
- require "license_scout/exceptions"
27
- require "license_scout/dependency"
28
-
29
- module LicenseScout
30
- module DependencyManager
31
- class CPAN < Base
32
-
33
- class CPANDependency
34
-
35
- LICENSE_TYPE_MAP = {
36
- "perl_5" => "Perl-5",
37
- "perl" => "Perl-5",
38
- "apache_2_0" => "Apache-2.0",
39
- "artistic_2" => "Artistic-2.0",
40
- "gpl_3" => "GPL-3.0",
41
- }.freeze
42
-
43
- attr_reader :module_name
44
- attr_reader :dist
45
- attr_reader :version
46
- attr_reader :cpanfile
47
-
48
- attr_reader :license_files
49
- attr_reader :license
50
-
51
- attr_reader :cache_root
52
-
53
- attr_reader :overrides
54
-
55
- def initialize(module_name:, dist:, version:, cpanfile:, cache_root:, overrides:)
56
- @module_name = module_name
57
- @dist = dist
58
- @version = version
59
- @cpanfile = cpanfile
60
- @cache_root = cache_root
61
- @overrides = overrides
62
-
63
- @deps_list = nil
64
-
65
- @license = nil
66
- @license_files = []
67
- end
68
-
69
- def desc
70
- "#{module_name} in #{dist} (#{version}) [#{license}]"
71
- end
72
-
73
- def to_dep
74
- Dependency.new(
75
- # we use dist for the name because there can be multiple modules in
76
- # a dist, but the dist is the unit of packaging and licensing
77
- dist,
78
- version,
79
- license,
80
- license_files,
81
- "perl_cpan"
82
- )
83
- end
84
-
85
- def collect_licenses
86
- ensure_cached
87
- Dir.mktmpdir do |tmpdir|
88
- FileUtils.cp(distribution_fullpath, tmpdir)
89
- Dir.chdir(tmpdir) do
90
- untar!
91
- distribution_unpack_fullpath = File.join(tmpdir, distribution_unpack_relpath)
92
- collect_licenses_in(distribution_unpack_fullpath)
93
- end
94
- end
95
- end
96
-
97
- def ensure_cached
98
- cache_path = File.join(dist_cache_root, cpanfile)
99
-
100
- # CPAN download URL is like:
101
- # http://www.cpan.org/authors/id/R/RJ/RJBS/Sub-Install-0.928.tar.gz
102
- # cpanfile is like:
103
- # R/RJ/RJBS/Sub-Install-0.928.tar.gz
104
- unless File.exist?(cache_path)
105
-
106
- url = "http://www.cpan.org/authors/id/#{cpanfile}"
107
- tmp_path = NetFetcher.cache(url)
108
-
109
- FileUtils.mkdir_p(File.dirname(cache_path))
110
- FileUtils.cp(tmp_path, cache_path)
111
-
112
- end
113
- end
114
-
115
- def distribution_filename
116
- File.basename(cpanfile)
117
- end
118
-
119
- def distribution_unpack_relpath
120
- # Most packages have tar.gz extension but some have .tgz like
121
- # IO-Pager-0.36.tgz
122
- [".tar.gz", ".tgz"].each do |ext|
123
- if distribution_filename.end_with?(ext)
124
- return File.basename(distribution_filename, ext)
125
- end
126
- end
127
- end
128
-
129
- def distribution_fullpath
130
- File.join(dist_cache_root, cpanfile)
131
- end
132
-
133
- # Untar the distribution.
134
- #
135
- # NOTE: On some platforms, you only get a usable version of tar as
136
- # `gtar`, and on windows, symlinks break a lot of stuff. We (Chef
137
- # Software) currently only use perl in server products, which we only
138
- # build for a handful of Linux distros, so this is sufficient.
139
- def untar!
140
- s = Mixlib::ShellOut.new("tar zxf #{distribution_filename}")
141
- s.run_command
142
- s.error!
143
- s.stdout
144
- end
145
-
146
- def collect_licenses_in(unpack_path)
147
- collect_license_info_in(unpack_path)
148
- collect_license_files_info_in(unpack_path)
149
- end
150
-
151
- def collect_license_info_in(unpack_path)
152
- # Notice that we use "dist" as the dependency name
153
- # See #to_dep for details.
154
- @license = overrides.license_for("perl_cpan", dist, version) || begin
155
- metadata = if File.exist?(meta_json_in(unpack_path))
156
- slurp_meta_json_in(unpack_path)
157
- elsif File.exist?(meta_yaml_in(unpack_path))
158
- slurp_meta_yaml_in(unpack_path)
159
- end
160
-
161
- if metadata && metadata.key?("license")
162
- given_type = Array(metadata["license"]).reject { |l| l == "unknown" }.first
163
- normalize_license_type(given_type)
164
- end
165
- end
166
- end
167
-
168
- def collect_license_files_info_in(unpack_path)
169
- override_license_files = overrides.license_files_for("perl_cpan", dist, version)
170
-
171
- license_files = if override_license_files.empty?
172
- find_license_files_in(unpack_path)
173
- else
174
- override_license_files.resolve_locations(unpack_path)
175
- end
176
-
177
- license_files.each do |f|
178
- @license_files << cache_license_file(f)
179
- end
180
- end
181
-
182
- # Copy license file to the cache. We unpack the CPAN dists in a tempdir
183
- # and throw it away after we've inspected the contents, so we need to
184
- # put the license file somewhere it can be copied from later.
185
- def cache_license_file(unpacked_file)
186
- basename = File.basename(unpacked_file)
187
- license_cache_path = File.join(license_cache_root, "#{dist}-#{basename}")
188
- FileUtils.mkdir_p(license_cache_root)
189
- FileUtils.cp(unpacked_file, license_cache_path)
190
- # In some cases, the license files get unpacked with 0444
191
- # permissions which could make a re-run fail on the `cp` step.
192
- FileUtils.chmod(0644, license_cache_path)
193
- license_cache_path
194
- end
195
-
196
- def slurp_meta_yaml_in(unpack_path)
197
- Psych.safe_load(File.read(meta_yaml_in(unpack_path)))
198
- end
199
-
200
- def slurp_meta_json_in(unpack_path)
201
- FFI_Yajl::Parser.parse(File.read(meta_json_in(unpack_path)))
202
- end
203
-
204
- def license_cache_root
205
- File.join(cache_root, "cpan-licenses")
206
- end
207
-
208
- def dist_cache_root
209
- File.join(cache_root, "cpan-dists")
210
- end
211
-
212
- def normalize_license_type(given_type)
213
- LICENSE_TYPE_MAP[given_type] || given_type
214
- end
215
-
216
- def meta_json_in(unpack_path)
217
- File.join(unpack_path, "META.json")
218
- end
219
-
220
- def mymeta_json_in(unpack_path)
221
- File.join(unpack_path, "MYMETA.json")
222
- end
223
-
224
- def meta_yaml_in(unpack_path)
225
- File.join(unpack_path, "META.yml")
226
- end
227
-
228
- def find_license_files_in(unpack_path)
229
- Dir["#{unpack_path}/*"].select do |f|
230
- CPAN::POSSIBLE_LICENSE_FILES.include?(File.basename(f))
231
- end
232
- end
233
-
234
- end
235
-
236
- def initialize(*args, &block)
237
- super
238
- @dependencies = nil
239
- end
240
-
241
- def name
242
- "perl_cpan"
243
- end
244
-
245
- def dependencies
246
- return @dependencies if @dependencies
247
- @dependencies = deps_list.map do |d|
248
- d.collect_licenses
249
- d.to_dep
250
- end
251
- end
252
-
253
- def deps_list
254
- return @deps_list if @deps_list
255
-
256
- xml_doc = REXML::Document.new(dependency_graph_xml)
257
-
258
- root = xml_doc.root
259
-
260
- deps = root.get_elements("//dependency")
261
-
262
- @deps_list = []
263
-
264
- deps.each do |dep|
265
- dep_module_name = dep.get_text("module").to_s
266
- next if dep_module_name == module_name
267
- @deps_list << CPANDependency.new(
268
- module_name: dep_module_name,
269
- dist: dep.get_text("dist").to_s,
270
- version: dep.get_text("distversion").to_s,
271
- cpanfile: dep.get_text("cpanfile").to_s,
272
- cache_root: options.cpan_cache,
273
- overrides: options.overrides
274
- )
275
- end
276
-
277
- @deps_list
278
- end
279
-
280
- def dependency_graph_xml
281
- @dependency_graph_xml ||=
282
- begin
283
- dependency_graph_xml_file = NetFetcher.cache(dependency_graph_url)
284
- raw_xml = File.read(dependency_graph_xml_file)
285
- FileUtils.rm_f(dependency_graph_xml_file)
286
- raw_xml
287
- end
288
- end
289
-
290
- # NOTE: there's no SSL version available. Take care handling any
291
- # data/code referenced in responses from this site.
292
- def dependency_graph_url
293
- "http://deps.cpantesters.org/?xml=1;module=#{module_name};perl=5.24.0;os=any%20OS;pureperl=0"
294
- end
295
-
296
- # Infers the module name from the directory name. For Chef Server, the
297
- # two perl packages we use are:
298
- # * "App-Sqitch-VERSION" => "App::Sqitch"
299
- # * "DBD-Pg-VERSION" => "DBD::Pg"
300
- #
301
- # NOTE: Distributions may contain multiple modules that would each have
302
- # their own dependency graphs and it's possible to get a perl project
303
- # that doesn't obey this convention (e.g., if you git clone it). But this
304
- # meets our immediate needs.
305
- def module_name
306
- File.basename(project_dir).split("-")[0...-1].join("::")
307
- end
308
-
309
- # NOTE: it's possible that projects won't have a META.yml, but the two
310
- # that we care about for Chef Server do have one. As of 2015, 84% of perl
311
- # distribution packages have one: http://neilb.org/2015/10/18/spotters-guide.html
312
- def detected?
313
- File.exist?(meta_yml_path)
314
- end
315
-
316
- def meta_yml_path
317
- File.join(project_dir, "META.yml")
318
- end
319
-
320
- end
321
- end
322
- end
@@ -1,54 +0,0 @@
1
- #
2
- # Copyright:: Copyright 2016, Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- lib = File.expand_path("../lib", __FILE__)
19
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
20
- require "license_scout/version"
21
-
22
- Gem::Specification.new do |spec|
23
- spec.name = "license_scout"
24
- spec.version = LicenseScout::VERSION
25
- spec.authors = [ "Serdar Sutay" ]
26
- spec.email = [ "serdar@chef.io" ]
27
- spec.license = "Apache-2.0"
28
-
29
- spec.summary = "Discovers license files of a project's dependencies."
30
- spec.description = "Discovers license files of a project's dependencies."
31
- spec.homepage = "https://github.com/chef/license_scout"
32
-
33
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
34
- spec.bindir = "bin"
35
- spec.executables = %w{license_scout}
36
- spec.require_paths = %w{lib}
37
-
38
- spec.add_dependency "ffi-yajl", "~> 2.2"
39
- spec.add_dependency "mixlib-shellout", "~> 2.2"
40
-
41
- spec.add_development_dependency "bundler", "~> 1.12"
42
- spec.add_development_dependency "rake", "~> 10.0"
43
- spec.add_development_dependency "rspec"
44
- spec.add_development_dependency "pry"
45
- spec.add_development_dependency "rb-readline"
46
-
47
- # We do not have berkshelf as a dependency because some of its dependencies
48
- # can not be installed on uncommon platforms like Solaris which we need to
49
- # support. If a project needs to collect license information for a berkshelf
50
- # project it needs to include it seperately in its gem bundle. We have a nice
51
- # error message when they do not. But we add berkshelf as a development
52
- # dependency so that we can run our tests.
53
- spec.add_development_dependency "berkshelf", "~> 4.3"
54
- end