omnibus 5.5.0 → 5.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/PULL_REQUEST_TEMPLATE.md +11 -0
- data/.travis.yml +2 -1
- data/CHANGELOG.md +37 -0
- data/Gemfile +5 -4
- data/MAINTAINERS.md +12 -17
- data/README.md +98 -107
- data/appveyor.yml +1 -1
- data/lib/omnibus.rb +4 -4
- data/lib/omnibus/builder.rb +42 -9
- data/lib/omnibus/cli.rb +5 -0
- data/lib/omnibus/cli/base.rb +1 -1
- data/lib/omnibus/cli/publish.rb +5 -3
- data/lib/omnibus/compressors/dmg.rb +2 -2
- data/lib/omnibus/config.rb +42 -5
- data/lib/omnibus/core_extensions/open_uri.rb +1 -0
- data/lib/omnibus/download_helpers.rb +4 -4
- data/lib/omnibus/fetchers/git_fetcher.rb +15 -5
- data/lib/omnibus/fetchers/net_fetcher.rb +1 -1
- data/lib/omnibus/fetchers/path_fetcher.rb +1 -1
- data/lib/omnibus/file_syncer.rb +2 -2
- data/lib/omnibus/generator_files/omnibus.rb.erb +1 -0
- data/lib/omnibus/git_cache.rb +31 -13
- data/lib/omnibus/health_check.rb +1 -173
- data/lib/omnibus/licensing.rb +48 -7
- data/lib/omnibus/manifest.rb +3 -5
- data/lib/omnibus/manifest_entry.rb +1 -1
- data/lib/omnibus/metadata.rb +2 -1
- data/lib/omnibus/packager.rb +3 -1
- data/lib/omnibus/packagers/appx.rb +3 -3
- data/lib/omnibus/packagers/base.rb +9 -0
- data/lib/omnibus/packagers/bff.rb +4 -6
- data/lib/omnibus/packagers/deb.rb +95 -1
- data/lib/omnibus/packagers/ips.rb +50 -4
- data/lib/omnibus/packagers/pkgsrc.rb +112 -0
- data/lib/omnibus/packagers/rpm.rb +72 -3
- data/lib/omnibus/packagers/solaris.rb +0 -4
- data/lib/omnibus/packagers/windows_base.rb +1 -1
- data/lib/omnibus/project.rb +13 -3
- data/lib/omnibus/publishers/artifactory_publisher.rb +4 -6
- data/lib/omnibus/publishers/s3_publisher.rb +8 -3
- data/lib/omnibus/reports.rb +1 -1
- data/lib/omnibus/s3_cache.rb +18 -5
- data/lib/omnibus/s3_helpers.rb +45 -8
- data/lib/omnibus/software.rb +55 -37
- data/lib/omnibus/sugarable.rb +4 -0
- data/lib/omnibus/templating.rb +29 -13
- data/lib/omnibus/util.rb +81 -2
- data/lib/omnibus/version.rb +1 -1
- data/lib/omnibus/whitelist.rb +228 -0
- data/omnibus.gemspec +9 -8
- data/resources/dmg/create_dmg.osascript.erb +33 -13
- data/resources/ips/doc-transform.erb +2 -0
- data/resources/rpm/spec.erb +1 -2
- data/spec/functional/builder_spec.rb +21 -21
- data/spec/functional/fetchers/git_fetcher_spec.rb +6 -6
- data/spec/functional/fetchers/net_fetcher_spec.rb +7 -7
- data/spec/functional/fetchers/path_fetcher_spec.rb +5 -5
- data/spec/functional/file_syncer_spec.rb +6 -6
- data/spec/functional/licensing_spec.rb +29 -16
- data/spec/functional/templating_spec.rb +23 -22
- data/spec/support/git_helpers.rb +30 -24
- data/spec/unit/build_version_spec.rb +1 -1
- data/spec/unit/builder_spec.rb +36 -24
- data/spec/unit/changelogprinter_spec.rb +10 -8
- data/spec/unit/cleanroom_spec.rb +6 -6
- data/spec/unit/compressors/dmg_spec.rb +23 -37
- data/spec/unit/compressors/null_spec.rb +2 -2
- data/spec/unit/compressors/tgz_spec.rb +2 -2
- data/spec/unit/config_spec.rb +2 -1
- data/spec/unit/digestable_spec.rb +2 -2
- data/spec/unit/fetchers/git_fetcher_spec.rb +5 -5
- data/spec/unit/fetchers/net_fetcher_spec.rb +46 -6
- data/spec/unit/fetchers/path_fetcher_spec.rb +5 -5
- data/spec/unit/file_syncer_spec.rb +19 -0
- data/spec/unit/git_cache_spec.rb +76 -22
- data/spec/unit/health_check_spec.rb +1 -1
- data/spec/unit/library_spec.rb +2 -2
- data/spec/unit/manifest_spec.rb +6 -6
- data/spec/unit/metadata_spec.rb +4 -4
- data/spec/unit/omnibus_spec.rb +4 -4
- data/spec/unit/package_spec.rb +6 -6
- data/spec/unit/packagers/appx_spec.rb +16 -12
- data/spec/unit/packagers/base_spec.rb +5 -5
- data/spec/unit/packagers/bff_spec.rb +45 -15
- data/spec/unit/packagers/deb_spec.rb +95 -17
- data/spec/unit/packagers/ips_spec.rb +61 -17
- data/spec/unit/packagers/makeself_spec.rb +5 -5
- data/spec/unit/packagers/msi_spec.rb +43 -43
- data/spec/unit/packagers/pkg_spec.rb +15 -15
- data/spec/unit/packagers/pkgsrc_spec.rb +77 -0
- data/spec/unit/packagers/rpm_spec.rb +94 -17
- data/spec/unit/packagers/solaris_spec.rb +11 -11
- data/spec/unit/project_spec.rb +53 -22
- data/spec/unit/publisher_spec.rb +2 -2
- data/spec/unit/publishers/artifactory_publisher_spec.rb +7 -3
- data/spec/unit/publishers/s3_publisher_spec.rb +1 -1
- data/spec/unit/s3_helpers_spec.rb +41 -3
- data/spec/unit/software_spec.rb +115 -37
- data/spec/unit/sugarable_spec.rb +23 -3
- data/spec/unit/util_spec.rb +42 -11
- metadata +49 -29
data/resources/rpm/spec.erb
CHANGED
@@ -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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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://
|
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
|
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
|
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
|
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
|
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://
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
-
|
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
|