omnibus 8.0.9 → 8.3.2
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 +4 -4
- data/README.md +1 -2
- data/lib/omnibus/builder.rb +57 -17
- data/lib/omnibus/compressors/dmg.rb +2 -2
- data/lib/omnibus/config.rb +3 -1
- data/lib/omnibus/health_check.rb +147 -38
- data/lib/omnibus/manifest_diff.rb +7 -13
- data/lib/omnibus/metadata.rb +7 -3
- data/lib/omnibus/packagers/pkg.rb +21 -13
- data/lib/omnibus/packagers/rpm.rb +23 -9
- data/lib/omnibus/software.rb +2 -2
- data/lib/omnibus/version.rb +1 -1
- data/lib/omnibus/whitelist.rb +33 -12
- data/omnibus.gemspec +4 -3
- data/resources/msi/CustomActionFastMsi.CA.dll +0 -0
- data/resources/pkg/distribution.xml.erb +1 -1
- data/resources/rpm/spec.erb +5 -2
- data/spec/functional/fetchers/net_fetcher_spec.rb +2 -11
- data/spec/unit/builder_spec.rb +6 -0
- data/spec/unit/compressor_spec.rb +2 -2
- data/spec/unit/compressors/dmg_spec.rb +9 -9
- data/spec/unit/compressors/tgz_spec.rb +4 -4
- data/spec/unit/fetchers/net_fetcher_spec.rb +5 -1
- data/spec/unit/health_check_spec.rb +75 -6
- data/spec/unit/metadata_spec.rb +2 -0
- data/spec/unit/packager_spec.rb +2 -2
- data/spec/unit/packagers/pkg_spec.rb +29 -7
- data/spec/unit/packagers/rpm_spec.rb +10 -0
- data/spec/unit/project_spec.rb +2 -2
- data/spec/unit/software_spec.rb +25 -25
- metadata +33 -7
@@ -47,8 +47,8 @@ module Omnibus
|
|
47
47
|
end
|
48
48
|
|
49
49
|
describe "#package_name" do
|
50
|
-
it "includes the name, version,
|
51
|
-
expect(subject.package_name).to eq("project-full-name-1.2.3-2.pkg")
|
50
|
+
it "includes the name, version, build iteration, and architecture" do
|
51
|
+
expect(subject.package_name).to eq("project-full-name-1.2.3-2.x86_64.pkg")
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -290,8 +290,24 @@ module Omnibus
|
|
290
290
|
|
291
291
|
expect(contents).to include('<pkg-ref id="com.getchef.project-full-name"/>')
|
292
292
|
expect(contents).to include('<line choice="com.getchef.project-full-name"/>')
|
293
|
+
expect(contents).to include('hostArchitectures="x86_64"')
|
293
294
|
expect(contents).to include("project-full-name-core.pkg")
|
294
295
|
end
|
296
|
+
|
297
|
+
context "for arm64 builds" do
|
298
|
+
before do
|
299
|
+
stub_ohai(platform: "mac_os_x", version: "11.0") do |data|
|
300
|
+
data["kernel"]["machine"] = "arm64"
|
301
|
+
end
|
302
|
+
end
|
303
|
+
|
304
|
+
it "sets the hostArchitectures to include arm64" do
|
305
|
+
subject.write_distribution_file
|
306
|
+
contents = File.read("#{staging_dir}/Distribution")
|
307
|
+
|
308
|
+
expect(contents).to include('hostArchitectures="arm64"')
|
309
|
+
end
|
310
|
+
end
|
295
311
|
end
|
296
312
|
|
297
313
|
describe "#build_product_pkg" do
|
@@ -301,7 +317,7 @@ module Omnibus
|
|
301
317
|
productbuild \\
|
302
318
|
--distribution "#{staging_dir}/Distribution" \\
|
303
319
|
--resources "#{staging_dir}/Resources" \\
|
304
|
-
"#{package_dir}/project-full-name-1.2.3-2.pkg"
|
320
|
+
"#{package_dir}/project-full-name-1.2.3-2.x86_64.pkg"
|
305
321
|
EOH
|
306
322
|
|
307
323
|
subject.build_product_pkg
|
@@ -319,7 +335,7 @@ module Omnibus
|
|
319
335
|
--distribution "#{staging_dir}/Distribution" \\
|
320
336
|
--resources "#{staging_dir}/Resources" \\
|
321
337
|
--sign "My Special Identity" \\
|
322
|
-
"#{package_dir}/project-full-name-1.2.3-2.pkg"
|
338
|
+
"#{package_dir}/project-full-name-1.2.3-2.x86_64.pkg"
|
323
339
|
EOH
|
324
340
|
subject.build_product_pkg
|
325
341
|
end
|
@@ -541,7 +557,9 @@ module Omnibus
|
|
541
557
|
|
542
558
|
context "when is a Mach-O library" do
|
543
559
|
before do
|
544
|
-
allow(
|
560
|
+
allow(File).to receive(:file?).with("file").and_return(true)
|
561
|
+
allow(File).to receive(:executable?).with("file").and_return(true)
|
562
|
+
allow(File).to receive(:symlink?).with("file").and_return(false)
|
545
563
|
expect(subject).to receive(:shellout!).with("file file").and_return(shellout)
|
546
564
|
allow(shellout).to receive(:stdout)
|
547
565
|
.and_return("file: Mach-O 64-bit dynamically linked shared library x86_64")
|
@@ -554,7 +572,9 @@ module Omnibus
|
|
554
572
|
|
555
573
|
context "when is a Mach-O Bundle" do
|
556
574
|
before do
|
557
|
-
allow(
|
575
|
+
allow(File).to receive(:file?).with("file").and_return(true)
|
576
|
+
allow(File).to receive(:executable?).with("file").and_return(true)
|
577
|
+
allow(File).to receive(:symlink?).with("file").and_return(false)
|
558
578
|
expect(subject).to receive(:shellout!).with("file file").and_return(shellout)
|
559
579
|
allow(shellout).to receive(:stdout)
|
560
580
|
.and_return("file: Mach-O 64-bit bundle x86_64")
|
@@ -567,7 +587,9 @@ module Omnibus
|
|
567
587
|
|
568
588
|
context "when is not a Mach-O Bundle or Mach-O library" do
|
569
589
|
before do
|
570
|
-
allow(
|
590
|
+
allow(File).to receive(:file?).with("file").and_return(true)
|
591
|
+
allow(File).to receive(:executable?).with("file").and_return(true)
|
592
|
+
allow(File).to receive(:symlink?).with("file").and_return(false)
|
571
593
|
expect(subject).to receive(:shellout!).with("file file").and_return(shellout)
|
572
594
|
allow(shellout).to receive(:stdout)
|
573
595
|
.and_return("file: ASCII text")
|
@@ -404,6 +404,16 @@ module Omnibus
|
|
404
404
|
end
|
405
405
|
end
|
406
406
|
|
407
|
+
describe "#rpm_file" do
|
408
|
+
before do
|
409
|
+
allow(subject).to receive(:package_name).and_return("package_name.rpm")
|
410
|
+
end
|
411
|
+
|
412
|
+
it "includes the package_name rpm" do
|
413
|
+
expect(subject.rpm_file).to eq("#{staging_dir}/RPMS/#{architecture}/package_name.rpm")
|
414
|
+
end
|
415
|
+
end
|
416
|
+
|
407
417
|
describe "#rpm_safe" do
|
408
418
|
it "adds quotes when required" do
|
409
419
|
expect(subject.rpm_safe("file path")).to eq('"file path"')
|
data/spec/unit/project_spec.rb
CHANGED
@@ -235,8 +235,8 @@ module Omnibus
|
|
235
235
|
end
|
236
236
|
end
|
237
237
|
|
238
|
-
context "when on
|
239
|
-
let(:fauxhai_options) { { platform: "mac_os_x"
|
238
|
+
context "when on macOS" do
|
239
|
+
let(:fauxhai_options) { { platform: "mac_os_x" } }
|
240
240
|
it "returns a generic iteration" do
|
241
241
|
expect(subject.build_iteration).to eq(1)
|
242
242
|
end
|
data/spec/unit/software_spec.rb
CHANGED
@@ -73,9 +73,9 @@ module Omnibus
|
|
73
73
|
it "sets the defaults" do
|
74
74
|
expect(subject.with_standard_compiler_flags).to eq(
|
75
75
|
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
|
76
|
-
"CFLAGS" => "-I/opt/project/embedded/include -
|
77
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include -
|
78
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include -
|
76
|
+
"CFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
77
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
78
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
79
79
|
"LD_RUN_PATH" => "/opt/project/embedded/lib",
|
80
80
|
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
|
81
81
|
"OMNIBUS_INSTALL_DIR" => "/opt/project"
|
@@ -84,9 +84,9 @@ module Omnibus
|
|
84
84
|
it "overrides LDFLAGS" do
|
85
85
|
expect(subject.with_standard_compiler_flags("LDFLAGS" => "foo")).to eq(
|
86
86
|
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
|
87
|
-
"CFLAGS" => "-I/opt/project/embedded/include -
|
88
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include -
|
89
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include -
|
87
|
+
"CFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
88
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
89
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
90
90
|
"LD_RUN_PATH" => "/opt/project/embedded/lib",
|
91
91
|
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
|
92
92
|
"OMNIBUS_INSTALL_DIR" => "/opt/project"
|
@@ -95,9 +95,9 @@ module Omnibus
|
|
95
95
|
it "overrides CFLAGS" do
|
96
96
|
expect(subject.with_standard_compiler_flags("CFLAGS" => "foo")).to eq(
|
97
97
|
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
|
98
|
-
"CFLAGS" => "-I/opt/project/embedded/include -
|
99
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include -
|
100
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include -
|
98
|
+
"CFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
99
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
100
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
101
101
|
"LD_RUN_PATH" => "/opt/project/embedded/lib",
|
102
102
|
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
|
103
103
|
"OMNIBUS_INSTALL_DIR" => "/opt/project"
|
@@ -106,9 +106,9 @@ module Omnibus
|
|
106
106
|
it "overrides CXXFLAGS" do
|
107
107
|
expect(subject.with_standard_compiler_flags("CXXFLAGS" => "foo")).to eq(
|
108
108
|
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
|
109
|
-
"CFLAGS" => "-I/opt/project/embedded/include -
|
110
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include -
|
111
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include -
|
109
|
+
"CFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
110
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
111
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
112
112
|
"LD_RUN_PATH" => "/opt/project/embedded/lib",
|
113
113
|
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
|
114
114
|
"OMNIBUS_INSTALL_DIR" => "/opt/project"
|
@@ -117,9 +117,9 @@ module Omnibus
|
|
117
117
|
it "overrides CPPFLAGS" do
|
118
118
|
expect(subject.with_standard_compiler_flags("CPPFLAGS" => "foo")).to eq(
|
119
119
|
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
|
120
|
-
"CFLAGS" => "-I/opt/project/embedded/include -
|
121
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include -
|
122
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include -
|
120
|
+
"CFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
121
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
122
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
123
123
|
"LD_RUN_PATH" => "/opt/project/embedded/lib",
|
124
124
|
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
|
125
125
|
"OMNIBUS_INSTALL_DIR" => "/opt/project"
|
@@ -129,9 +129,9 @@ module Omnibus
|
|
129
129
|
expect(subject.with_standard_compiler_flags("numberwang" => 4)).to eq(
|
130
130
|
"numberwang" => 4,
|
131
131
|
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
|
132
|
-
"CFLAGS" => "-I/opt/project/embedded/include -
|
133
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include -
|
134
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include -
|
132
|
+
"CFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
133
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
134
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
135
135
|
"LD_RUN_PATH" => "/opt/project/embedded/lib",
|
136
136
|
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
|
137
137
|
"OMNIBUS_INSTALL_DIR" => "/opt/project"
|
@@ -191,14 +191,14 @@ module Omnibus
|
|
191
191
|
end
|
192
192
|
|
193
193
|
context "on mac_os_x" do
|
194
|
-
before { stub_ohai(platform: "mac_os_x", version: "10.
|
194
|
+
before { stub_ohai(platform: "mac_os_x", version: "10.15") }
|
195
195
|
|
196
196
|
it "sets the defaults" do
|
197
197
|
expect(subject.with_standard_compiler_flags).to eq(
|
198
198
|
"LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
|
199
|
-
"CFLAGS" => "-I/opt/project/embedded/include -
|
200
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include -
|
201
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include -
|
199
|
+
"CFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
200
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
201
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
202
202
|
"LD_RUN_PATH" => "/opt/project/embedded/lib",
|
203
203
|
"PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
|
204
204
|
"OMNIBUS_INSTALL_DIR" => "/opt/project"
|
@@ -235,9 +235,9 @@ module Omnibus
|
|
235
235
|
it "sets the defaults" do
|
236
236
|
expect(subject.with_standard_compiler_flags).to eq(
|
237
237
|
"CC" => "clang",
|
238
|
-
"CFLAGS" => "-I/opt/project/embedded/include -
|
239
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include -
|
240
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include -
|
238
|
+
"CFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
239
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
240
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
|
241
241
|
"CXX" => "clang++",
|
242
242
|
"LDFLAGS" => "-L/opt/project/embedded/lib",
|
243
243
|
"LD_RUN_PATH" => "/opt/project/embedded/lib",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omnibus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chef Software, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-s3
|
@@ -93,6 +93,9 @@ dependencies:
|
|
93
93
|
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: '15'
|
96
|
+
- - "<"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '18'
|
96
99
|
type: :runtime
|
97
100
|
prerelease: false
|
98
101
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -100,6 +103,9 @@ dependencies:
|
|
100
103
|
- - ">="
|
101
104
|
- !ruby/object:Gem::Version
|
102
105
|
version: '15'
|
106
|
+
- - "<"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '18'
|
103
109
|
- !ruby/object:Gem::Dependency
|
104
110
|
name: ruby-progressbar
|
105
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +154,26 @@ dependencies:
|
|
148
154
|
- - "~>"
|
149
155
|
- !ruby/object:Gem::Version
|
150
156
|
version: '1.0'
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: contracts
|
159
|
+
requirement: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: 0.16.0
|
164
|
+
- - "<"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.17.0
|
167
|
+
type: :runtime
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.16.0
|
174
|
+
- - "<"
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 0.17.0
|
151
177
|
- !ruby/object:Gem::Dependency
|
152
178
|
name: mixlib-versioning
|
153
179
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,28 +222,28 @@ dependencies:
|
|
196
222
|
requirements:
|
197
223
|
- - "~>"
|
198
224
|
- !ruby/object:Gem::Version
|
199
|
-
version: '0
|
225
|
+
version: '2.0'
|
200
226
|
type: :development
|
201
227
|
prerelease: false
|
202
228
|
version_requirements: !ruby/object:Gem::Requirement
|
203
229
|
requirements:
|
204
230
|
- - "~>"
|
205
231
|
- !ruby/object:Gem::Version
|
206
|
-
version: '0
|
232
|
+
version: '2.0'
|
207
233
|
- !ruby/object:Gem::Dependency
|
208
234
|
name: chefstyle
|
209
235
|
requirement: !ruby/object:Gem::Requirement
|
210
236
|
requirements:
|
211
237
|
- - '='
|
212
238
|
- !ruby/object:Gem::Version
|
213
|
-
version: 1.5
|
239
|
+
version: 1.7.5
|
214
240
|
type: :development
|
215
241
|
prerelease: false
|
216
242
|
version_requirements: !ruby/object:Gem::Requirement
|
217
243
|
requirements:
|
218
244
|
- - '='
|
219
245
|
- !ruby/object:Gem::Version
|
220
|
-
version: 1.5
|
246
|
+
version: 1.7.5
|
221
247
|
- !ruby/object:Gem::Dependency
|
222
248
|
name: fauxhai-ng
|
223
249
|
requirement: !ruby/object:Gem::Requirement
|
@@ -553,7 +579,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
553
579
|
- !ruby/object:Gem::Version
|
554
580
|
version: '0'
|
555
581
|
requirements: []
|
556
|
-
rubygems_version: 3.
|
582
|
+
rubygems_version: 3.1.4
|
557
583
|
signing_key:
|
558
584
|
specification_version: 4
|
559
585
|
summary: Omnibus is a framework for building self-installing, full-stack software
|