omnibus 5.5.0 → 5.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.github/PULL_REQUEST_TEMPLATE.md +11 -0
  3. data/.travis.yml +2 -1
  4. data/CHANGELOG.md +37 -0
  5. data/Gemfile +5 -4
  6. data/MAINTAINERS.md +12 -17
  7. data/README.md +98 -107
  8. data/appveyor.yml +1 -1
  9. data/lib/omnibus.rb +4 -4
  10. data/lib/omnibus/builder.rb +42 -9
  11. data/lib/omnibus/cli.rb +5 -0
  12. data/lib/omnibus/cli/base.rb +1 -1
  13. data/lib/omnibus/cli/publish.rb +5 -3
  14. data/lib/omnibus/compressors/dmg.rb +2 -2
  15. data/lib/omnibus/config.rb +42 -5
  16. data/lib/omnibus/core_extensions/open_uri.rb +1 -0
  17. data/lib/omnibus/download_helpers.rb +4 -4
  18. data/lib/omnibus/fetchers/git_fetcher.rb +15 -5
  19. data/lib/omnibus/fetchers/net_fetcher.rb +1 -1
  20. data/lib/omnibus/fetchers/path_fetcher.rb +1 -1
  21. data/lib/omnibus/file_syncer.rb +2 -2
  22. data/lib/omnibus/generator_files/omnibus.rb.erb +1 -0
  23. data/lib/omnibus/git_cache.rb +31 -13
  24. data/lib/omnibus/health_check.rb +1 -173
  25. data/lib/omnibus/licensing.rb +48 -7
  26. data/lib/omnibus/manifest.rb +3 -5
  27. data/lib/omnibus/manifest_entry.rb +1 -1
  28. data/lib/omnibus/metadata.rb +2 -1
  29. data/lib/omnibus/packager.rb +3 -1
  30. data/lib/omnibus/packagers/appx.rb +3 -3
  31. data/lib/omnibus/packagers/base.rb +9 -0
  32. data/lib/omnibus/packagers/bff.rb +4 -6
  33. data/lib/omnibus/packagers/deb.rb +95 -1
  34. data/lib/omnibus/packagers/ips.rb +50 -4
  35. data/lib/omnibus/packagers/pkgsrc.rb +112 -0
  36. data/lib/omnibus/packagers/rpm.rb +72 -3
  37. data/lib/omnibus/packagers/solaris.rb +0 -4
  38. data/lib/omnibus/packagers/windows_base.rb +1 -1
  39. data/lib/omnibus/project.rb +13 -3
  40. data/lib/omnibus/publishers/artifactory_publisher.rb +4 -6
  41. data/lib/omnibus/publishers/s3_publisher.rb +8 -3
  42. data/lib/omnibus/reports.rb +1 -1
  43. data/lib/omnibus/s3_cache.rb +18 -5
  44. data/lib/omnibus/s3_helpers.rb +45 -8
  45. data/lib/omnibus/software.rb +55 -37
  46. data/lib/omnibus/sugarable.rb +4 -0
  47. data/lib/omnibus/templating.rb +29 -13
  48. data/lib/omnibus/util.rb +81 -2
  49. data/lib/omnibus/version.rb +1 -1
  50. data/lib/omnibus/whitelist.rb +228 -0
  51. data/omnibus.gemspec +9 -8
  52. data/resources/dmg/create_dmg.osascript.erb +33 -13
  53. data/resources/ips/doc-transform.erb +2 -0
  54. data/resources/rpm/spec.erb +1 -2
  55. data/spec/functional/builder_spec.rb +21 -21
  56. data/spec/functional/fetchers/git_fetcher_spec.rb +6 -6
  57. data/spec/functional/fetchers/net_fetcher_spec.rb +7 -7
  58. data/spec/functional/fetchers/path_fetcher_spec.rb +5 -5
  59. data/spec/functional/file_syncer_spec.rb +6 -6
  60. data/spec/functional/licensing_spec.rb +29 -16
  61. data/spec/functional/templating_spec.rb +23 -22
  62. data/spec/support/git_helpers.rb +30 -24
  63. data/spec/unit/build_version_spec.rb +1 -1
  64. data/spec/unit/builder_spec.rb +36 -24
  65. data/spec/unit/changelogprinter_spec.rb +10 -8
  66. data/spec/unit/cleanroom_spec.rb +6 -6
  67. data/spec/unit/compressors/dmg_spec.rb +23 -37
  68. data/spec/unit/compressors/null_spec.rb +2 -2
  69. data/spec/unit/compressors/tgz_spec.rb +2 -2
  70. data/spec/unit/config_spec.rb +2 -1
  71. data/spec/unit/digestable_spec.rb +2 -2
  72. data/spec/unit/fetchers/git_fetcher_spec.rb +5 -5
  73. data/spec/unit/fetchers/net_fetcher_spec.rb +46 -6
  74. data/spec/unit/fetchers/path_fetcher_spec.rb +5 -5
  75. data/spec/unit/file_syncer_spec.rb +19 -0
  76. data/spec/unit/git_cache_spec.rb +76 -22
  77. data/spec/unit/health_check_spec.rb +1 -1
  78. data/spec/unit/library_spec.rb +2 -2
  79. data/spec/unit/manifest_spec.rb +6 -6
  80. data/spec/unit/metadata_spec.rb +4 -4
  81. data/spec/unit/omnibus_spec.rb +4 -4
  82. data/spec/unit/package_spec.rb +6 -6
  83. data/spec/unit/packagers/appx_spec.rb +16 -12
  84. data/spec/unit/packagers/base_spec.rb +5 -5
  85. data/spec/unit/packagers/bff_spec.rb +45 -15
  86. data/spec/unit/packagers/deb_spec.rb +95 -17
  87. data/spec/unit/packagers/ips_spec.rb +61 -17
  88. data/spec/unit/packagers/makeself_spec.rb +5 -5
  89. data/spec/unit/packagers/msi_spec.rb +43 -43
  90. data/spec/unit/packagers/pkg_spec.rb +15 -15
  91. data/spec/unit/packagers/pkgsrc_spec.rb +77 -0
  92. data/spec/unit/packagers/rpm_spec.rb +94 -17
  93. data/spec/unit/packagers/solaris_spec.rb +11 -11
  94. data/spec/unit/project_spec.rb +53 -22
  95. data/spec/unit/publisher_spec.rb +2 -2
  96. data/spec/unit/publishers/artifactory_publisher_spec.rb +7 -3
  97. data/spec/unit/publishers/s3_publisher_spec.rb +1 -1
  98. data/spec/unit/s3_helpers_spec.rb +41 -3
  99. data/spec/unit/software_spec.rb +115 -37
  100. data/spec/unit/sugarable_spec.rb +23 -3
  101. data/spec/unit/util_spec.rb +42 -11
  102. metadata +49 -29
@@ -11,8 +11,7 @@
11
11
  # Use md5
12
12
  %define _binary_filedigest_algorithm 1
13
13
 
14
- # Use gzip payload compression
15
- %define _binary_payload w9.gzdio
14
+ %define _binary_payload <%= compression %>
16
15
 
17
16
  # Metadata
18
17
  Name: <%= name %>
@@ -47,7 +47,7 @@ module Omnibus
47
47
  options
48
48
  end
49
49
 
50
- def make_gemspec()
50
+ def make_gemspec
51
51
  gemspec = File.join(project_dir, "#{project_name}.gemspec")
52
52
  File.open(gemspec, "w") do |f|
53
53
  f.write <<-EOH.gsub(/^ {12}/, "")
@@ -64,7 +64,7 @@ module Omnibus
64
64
  gemspec
65
65
  end
66
66
 
67
- def make_gemfile()
67
+ def make_gemfile
68
68
  gemfile = File.join(project_dir, "Gemfile")
69
69
  File.open(gemfile, "w") do |f|
70
70
  f.write <<-EOH.gsub(/^ {12}/, "")
@@ -74,7 +74,7 @@ module Omnibus
74
74
  gemfile
75
75
  end
76
76
 
77
- def make_gemfile_lock()
77
+ def make_gemfile_lock
78
78
  gemfile_lock = File.join(project_dir, "Gemfile.lock")
79
79
  File.open(gemfile_lock, "w") do |f|
80
80
  f.write <<-EOH.gsub(/^ {12}/, "")
@@ -100,7 +100,7 @@ module Omnibus
100
100
  let(:project_name) { "example" }
101
101
  let(:project_dir) { File.join(source_dir, project_name) }
102
102
 
103
- describe '#command' do
103
+ describe "#command" do
104
104
  it "executes the command" do
105
105
  subject.command("echo 'Hello World!'")
106
106
 
@@ -109,13 +109,13 @@ module Omnibus
109
109
  end
110
110
  end
111
111
 
112
- describe '#make' do
112
+ describe "#make" do
113
113
  it "is waiting for a good samaritan to write tests" do
114
114
  skip
115
115
  end
116
116
  end
117
117
 
118
- describe '#patch' do
118
+ describe "#patch" do
119
119
  it "applies the patch" do
120
120
  configure = File.join(project_dir, "configure")
121
121
  File.open(configure, "w") do |f|
@@ -149,7 +149,7 @@ module Omnibus
149
149
  end
150
150
  end
151
151
 
152
- describe '#ruby' do
152
+ describe "#ruby" do
153
153
  it "executes the command as the embdedded ruby" do
154
154
  ruby = File.join(scripts_dir, "setup.rb")
155
155
  File.open(ruby, "w") do |f|
@@ -169,7 +169,7 @@ module Omnibus
169
169
  end
170
170
  end
171
171
 
172
- describe '#gem' do
172
+ describe "#gem" do
173
173
  it "executes the command as the embedded gem" do
174
174
  make_gemspec
175
175
  fake_embedded_bin("gem")
@@ -186,7 +186,7 @@ module Omnibus
186
186
  end
187
187
  end
188
188
 
189
- describe '#bundler' do
189
+ describe "#bundler" do
190
190
  it "executes the command as the embedded bundler" do
191
191
  make_gemspec
192
192
  make_gemfile
@@ -200,7 +200,7 @@ module Omnibus
200
200
  end
201
201
  end
202
202
 
203
- describe '#appbundle' do
203
+ describe "#appbundle" do
204
204
  let(:project) { double("Project") }
205
205
  let(:project_softwares) { [ double("Software", name: project_name, project_dir: project_dir) ] }
206
206
  it "executes the command as the embedded appbundler" do
@@ -226,7 +226,7 @@ module Omnibus
226
226
  end
227
227
  end
228
228
 
229
- describe '#rake' do
229
+ describe "#rake" do
230
230
  it "executes the command as the embedded rake" do
231
231
  rakefile = File.join(project_dir, "Rakefile")
232
232
  File.open(rakefile, "w") do |f|
@@ -246,7 +246,7 @@ module Omnibus
246
246
  end
247
247
  end
248
248
 
249
- describe '#block' do
249
+ describe "#block" do
250
250
  it "executes the command as a block" do
251
251
  subject.block("A complex operation") do
252
252
  FileUtils.touch("#{project_dir}/bacon")
@@ -258,7 +258,7 @@ module Omnibus
258
258
  end
259
259
  end
260
260
 
261
- describe '#erb' do
261
+ describe "#erb" do
262
262
  it "renders the erb" do
263
263
  erb = File.join(templates_dir, "example.erb")
264
264
  File.open(erb, "w") do |f|
@@ -282,7 +282,7 @@ module Omnibus
282
282
  end
283
283
  end
284
284
 
285
- describe '#mkdir' do
285
+ describe "#mkdir" do
286
286
  it "creates the directory" do
287
287
  path = File.join(tmp_path, "scratch")
288
288
  remove_directory(path)
@@ -294,7 +294,7 @@ module Omnibus
294
294
  end
295
295
  end
296
296
 
297
- describe '#touch' do
297
+ describe "#touch" do
298
298
  it "creates the file" do
299
299
  path = File.join(tmp_path, "file")
300
300
  remove_file(path)
@@ -316,7 +316,7 @@ module Omnibus
316
316
  end
317
317
  end
318
318
 
319
- describe '#delete' do
319
+ describe "#delete" do
320
320
  it "deletes the directory" do
321
321
  path = File.join(tmp_path, "scratch")
322
322
  create_directory(path)
@@ -351,7 +351,7 @@ module Omnibus
351
351
  end
352
352
  end
353
353
 
354
- describe '#copy' do
354
+ describe "#copy" do
355
355
  it "copies the file" do
356
356
  path_a = File.join(tmp_path, "file1")
357
357
  path_b = File.join(tmp_path, "file2")
@@ -404,7 +404,7 @@ module Omnibus
404
404
  end
405
405
  end
406
406
 
407
- describe '#move' do
407
+ describe "#move" do
408
408
  it "moves the file" do
409
409
  path_a = File.join(tmp_path, "file1")
410
410
  path_b = File.join(tmp_path, "file2")
@@ -461,7 +461,7 @@ module Omnibus
461
461
  end
462
462
  end
463
463
 
464
- describe '#link', :not_supported_on_windows do
464
+ describe "#link", :not_supported_on_windows do
465
465
  it "links the file" do
466
466
  path_a = File.join(tmp_path, "file1")
467
467
  path_b = File.join(tmp_path, "file2")
@@ -504,7 +504,7 @@ module Omnibus
504
504
  end
505
505
  end
506
506
 
507
- describe '#sync' do
507
+ describe "#sync" do
508
508
  let(:source) do
509
509
  source = File.join(tmp_path, "source")
510
510
  FileUtils.mkdir_p(source)
@@ -607,7 +607,7 @@ module Omnibus
607
607
  end
608
608
  end
609
609
 
610
- describe '#update_config_guess', :not_supported_on_windows do
610
+ describe "#update_config_guess", :not_supported_on_windows do
611
611
  let(:config_guess_dir) { "#{install_dir}/embedded/lib/config_guess" }
612
612
 
613
613
  before do
@@ -24,7 +24,7 @@ module Omnibus
24
24
 
25
25
  let(:revision) { shellout!("git rev-parse HEAD", cwd: project_dir).stdout.strip }
26
26
 
27
- describe '#fetch_required?' do
27
+ describe "#fetch_required?" do
28
28
  context "when the repo is not cloned" do
29
29
  it "return true" do
30
30
  expect(subject.fetch_required?).to be_truthy
@@ -56,13 +56,13 @@ module Omnibus
56
56
  end
57
57
  end
58
58
 
59
- describe '#version_guid' do
59
+ describe "#version_guid" do
60
60
  it "includes the current revision" do
61
61
  expect(subject.version_guid).to match(/^git:[0-9a-f]{40}/)
62
62
  end
63
63
  end
64
64
 
65
- describe '#clean' do
65
+ describe "#clean" do
66
66
  before do
67
67
  subject.fetch
68
68
  end
@@ -105,7 +105,7 @@ module Omnibus
105
105
  end
106
106
  end
107
107
 
108
- describe '#fetch' do
108
+ describe "#fetch" do
109
109
  let(:version) { "v1.2.4" }
110
110
  let(:remote) { remote_git_repo("zlib", annotated_tags: [version]) }
111
111
  let(:manifest_entry) do
@@ -124,7 +124,7 @@ module Omnibus
124
124
  end
125
125
  end
126
126
 
127
- describe '#resolve_version' do
127
+ describe "#resolve_version" do
128
128
  context "when the version is a tag" do
129
129
  let(:version) { "v1.2.3" }
130
130
  let(:remote) { remote_git_repo("zlib", tags: [version]) }
@@ -180,7 +180,7 @@ module Omnibus
180
180
  end
181
181
  end
182
182
 
183
- describe '#version_for_cache' do
183
+ describe "#version_for_cache" do
184
184
  it "includes the resolved revision" do
185
185
  expect(subject.version_for_cache).to eq("revision:45ded6d3b1a35d66ed866b2c3eb418426e6382b0")
186
186
  end
@@ -12,7 +12,7 @@ module Omnibus
12
12
  describe NetFetcher do
13
13
  include_examples "a software", "zlib"
14
14
 
15
- let(:source_url) { "http://downloads.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz" }
15
+ let(:source_url) { "http://chef-releng.s3.amazonaws.com/omnibus/integration_test/zlib-1.2.8.tar.gz" }
16
16
  let(:source_md5) { "44d667c142d7cda120332623eab69f40" }
17
17
  let(:source_sha1) { "a4d316c404ff54ca545ea71a27af7dbc29817088" }
18
18
  let(:source_sha256) { "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d" }
@@ -37,7 +37,7 @@ module Omnibus
37
37
 
38
38
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
39
39
 
40
- describe '#fetch_required?' do
40
+ describe "#fetch_required?" do
41
41
  context "when the file is not downloaded" do
42
42
  it "return true" do
43
43
  expect(subject.fetch_required?).to be_truthy
@@ -62,7 +62,7 @@ module Omnibus
62
62
  end
63
63
  end
64
64
 
65
- describe '#version_guid' do
65
+ describe "#version_guid" do
66
66
  context "source with md5" do
67
67
  it "includes the md5 digest" do
68
68
  expect(subject.version_guid).to eq("md5:#{source_md5}")
@@ -100,7 +100,7 @@ module Omnibus
100
100
  end
101
101
  end
102
102
 
103
- describe '#clean' do
103
+ describe "#clean" do
104
104
  before { fetch! }
105
105
 
106
106
  context "when the project directory exists" do
@@ -157,7 +157,7 @@ module Omnibus
157
157
  end
158
158
  end
159
159
 
160
- describe '#fetch' do
160
+ describe "#fetch" do
161
161
  context "source with md5" do
162
162
  it "downloads the file" do
163
163
  fetch!
@@ -243,7 +243,7 @@ module Omnibus
243
243
  it "when the download times out" do
244
244
  # Mock the Timeout::Error for this particular test only
245
245
  WebMock.disable_net_connect!
246
- stub_request(:get, "http://downloads.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz").to_timeout
246
+ stub_request(:get, "http://chef-releng.s3.amazonaws.com/omnibus/integration_test/zlib-1.2.8.tar.gz").to_timeout
247
247
  output = capture_logging do
248
248
  expect { subject.send(:download) }.to raise_error(Timeout::Error)
249
249
  end
@@ -265,7 +265,7 @@ module Omnibus
265
265
  end
266
266
  end
267
267
 
268
- describe '#version_for_cache' do
268
+ describe "#version_for_cache" do
269
269
  before do
270
270
  create_file("#{project_dir}/file_a")
271
271
  create_file("#{project_dir}/file_b")
@@ -24,7 +24,7 @@ module Omnibus
24
24
 
25
25
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
26
26
 
27
- describe '#fetch_required?' do
27
+ describe "#fetch_required?" do
28
28
  context "when the directories have different files" do
29
29
  before do
30
30
  create_file("#{source_path}/directory/file") { "different" }
@@ -48,7 +48,7 @@ module Omnibus
48
48
  end
49
49
  end
50
50
 
51
- describe '#version_guid' do
51
+ describe "#version_guid" do
52
52
  it "includes the source path" do
53
53
  expect(subject.version_guid).to eq("path:#{source_path}")
54
54
  end
@@ -82,13 +82,13 @@ module Omnibus
82
82
  end
83
83
  end
84
84
 
85
- describe '#clean' do
85
+ describe "#clean" do
86
86
  it "returns true" do
87
87
  expect(subject.clean).to be_truthy
88
88
  end
89
89
  end
90
90
 
91
- describe '#version_for_cache' do
91
+ describe "#version_for_cache" do
92
92
  before do
93
93
  create_file("#{source_path}/file_a")
94
94
  create_file("#{source_path}/file_b")
@@ -102,7 +102,7 @@ module Omnibus
102
102
  end
103
103
  end
104
104
 
105
- describe '#resolve_version' do
105
+ describe "#resolve_version" do
106
106
  it "just returns the version" do
107
107
  expect(NetFetcher.resolve_version("1.2.3", source)).to eq("1.2.3")
108
108
  end
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  module Omnibus
4
4
  describe FileSyncer do
5
- describe '#glob' do
5
+ describe "#glob" do
6
6
  before do
7
7
  FileUtils.mkdir_p(File.join(tmp_path, "folder"))
8
8
  FileUtils.mkdir_p(File.join(tmp_path, ".hidden_folder"))
@@ -39,7 +39,7 @@ module Omnibus
39
39
  end
40
40
  end
41
41
 
42
- describe '#sync' do
42
+ describe "#sync" do
43
43
  let(:source) do
44
44
  source = File.join(tmp_path, "source")
45
45
  FileUtils.mkdir_p(source)
@@ -77,21 +77,21 @@ module Omnibus
77
77
 
78
78
  context "when destination file exists" do
79
79
 
80
- let(:source) {
80
+ let(:source) do
81
81
  s = File.join(tmp_path, "source")
82
82
  FileUtils.mkdir_p(s)
83
83
  p = create_file(s, "read-only-file") { "new" }
84
84
  FileUtils.chmod(0400, p)
85
85
  s
86
- }
86
+ end
87
87
 
88
- let(:destination) {
88
+ let(:destination) do
89
89
  dest = File.join(tmp_path, "destination")
90
90
  FileUtils.mkdir_p(dest)
91
91
  create_file(dest, "read-only-file") { "old" }
92
92
  FileUtils.chmod(0400, File.join(dest, "read-only-file"))
93
93
  dest
94
- }
94
+ end
95
95
 
96
96
  it "copies over a read-only file" do
97
97
  described_class.sync(source, destination)
@@ -155,6 +155,8 @@ module Omnibus
155
155
  softwares.each { |s| project.library.component_added(s) }
156
156
 
157
157
  Licensing.create_incrementally(project) do |licensing|
158
+ yield licensing if block_given?
159
+
158
160
  project.softwares.each do |software|
159
161
  licensing.execute_post_build(software)
160
162
  end
@@ -313,13 +315,8 @@ module Omnibus
313
315
 
314
316
  it "does not collect transitive licensing info for any software" do
315
317
  softwares.each { |s| project.library.component_added(s) }
316
-
317
- Licensing.create_incrementally(project) do |licensing|
318
+ create_licenses do |licensing|
318
319
  expect(licensing).not_to receive(:collect_transitive_dependency_licenses_for)
319
-
320
- project.softwares.each do |software|
321
- licensing.execute_post_build(software)
322
- end
323
320
  end
324
321
  end
325
322
  end
@@ -407,14 +404,30 @@ module Omnibus
407
404
 
408
405
  describe "when there are warnings in the licensing info" do
409
406
  before do
410
- allow_any_instance_of(LicenseScout::Collector).to receive(:run)
411
- allow_any_instance_of(LicenseScout::Collector).to receive(:issue_report).and_return(["This is a licensing warning!!!"])
407
+ allow_any_instance_of(LicenseScout::Collector).to receive(:run) do
408
+ FileUtils.cp_r(File.join(license_fixtures_path, "zlib"), File.join(install_dir, "license-cache/"))
409
+ end
410
+ allow_any_instance_of(LicenseScout::Reporter).to receive(:report).and_return(["This is a licensing warning!!!"])
412
411
  end
413
412
 
414
413
  it "logs the warnings" do
415
414
  output = capture_logging { create_licenses }
416
415
  expect(output).to include("This is a licensing warning!!!")
417
416
  end
417
+
418
+ describe "when :fatal_transitive_dependency_licensing_warnings is set" do
419
+ before do
420
+ Omnibus::Config.fatal_transitive_dependency_licensing_warnings(true)
421
+ end
422
+
423
+ it "raises an error after post_build step" do
424
+ expect do
425
+ create_licenses do |licensing|
426
+ expect(licensing).not_to receive(:process_transitive_dependency_licensing_info)
427
+ end
428
+ end.to raise_error(Omnibus::LicensingError)
429
+ end
430
+ end
418
431
  end
419
432
 
420
433
  describe "when there are no warnings in the licensing info" do
@@ -426,15 +439,15 @@ module Omnibus
426
439
  allow_any_instance_of(LicenseScout::Collector).to receive(:issue_report).and_return([])
427
440
  end
428
441
 
429
- let(:expected_license_files) {
442
+ let(:expected_license_files) do
430
443
  %w{
431
444
  ruby_bundler-inifile-3.0.0-README.md
432
445
  ruby_bundler-mime-types-3.1-Licence.rdoc
433
446
  ruby_bundler-mini_portile2-2.1.0-LICENSE.txt
434
447
  }
435
- }
448
+ end
436
449
 
437
- let(:expected_license_texts) {
450
+ let(:expected_license_texts) do
438
451
  [
439
452
  <<-EOH,
440
453
  This product includes inifile 3.0.0
@@ -458,7 +471,7 @@ For details, see:
458
471
  #{install_dir}/LICENSES/ruby_bundler-mini_portile2-2.1.0-LICENSE.txt
459
472
  EOH
460
473
  ]
461
- }
474
+ end
462
475
 
463
476
  it "includes transitive dependency license information in the project license information" do
464
477
  create_licenses
@@ -485,15 +498,15 @@ EOH
485
498
  allow_any_instance_of(LicenseScout::Collector).to receive(:issue_report).and_return([])
486
499
  end
487
500
 
488
- let(:expected_license_files) {
501
+ let(:expected_license_files) do
489
502
  %w{
490
503
  ruby_bundler-inifile-3.0.0-README.md
491
504
  ruby_bundler-mime-types-3.1-Licence.rdoc
492
505
  ruby_bundler-mini_portile2-2.1.0-LICENSE.txt
493
506
  }
494
- }
507
+ end
495
508
 
496
- let(:expected_license_texts) {
509
+ let(:expected_license_texts) do
497
510
  [
498
511
  <<-EOH,
499
512
  This product includes inifile 3.0.0
@@ -525,7 +538,7 @@ For details, see:
525
538
  EOH
526
539
 
527
540
  ]
528
- }
541
+ end
529
542
 
530
543
  it "includes merged licensing information from multiple software definitions" do
531
544
  create_licenses