omnibus 7.0.34 → 8.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,8 +3,8 @@ require "spec_helper"
3
3
  module Omnibus
4
4
  describe Compressor do
5
5
  describe ".for_current_system" do
6
- context "on Mac OS X" do
7
- before { stub_ohai(platform: "mac_os_x", version: "10.12") }
6
+ context "on macOS" do
7
+ before { stub_ohai(platform: "mac_os_x") }
8
8
 
9
9
  context "when :dmg is activated" do
10
10
  it "prefers dmg" do
@@ -190,7 +190,7 @@ module Omnibus
190
190
 
191
191
  expect(contents).to include('set found_disk to do shell script "ls /Volumes/ | grep \'Project One*\'"')
192
192
  expect(contents).to include(" set the bounds of Finder window 1 to {100, 100, 750, 600}")
193
- expect(contents).to include(' set position of item "project-1.2.3-2.pkg" of container window to {535, 50}')
193
+ expect(contents).to include(' set position of item "project-1.2.3-2.x86_64.pkg" of container window to {535, 50}')
194
194
  end
195
195
 
196
196
  it "runs the apple script" do
@@ -219,14 +219,17 @@ module Omnibus
219
219
  sync
220
220
  hdiutil unmount "#{device}"
221
221
  # Give some time to the system so unmount dmg
222
- sleep 5
223
- hdiutil detach "#{device}" &&\
222
+ ATTEMPTS=1
223
+ until [ $ATTEMPTS -eq 6 ] || hdiutil detach "/dev/sda1"; do
224
+ sleep 10
225
+ echo Attempt number $(( ATTEMPTS++ ))
226
+ done
224
227
  hdiutil convert \\
225
228
  "#{staging_dir}/project-writable.dmg" \\
226
229
  -format UDZO \\
227
230
  -imagekey \\
228
231
  zlib-level=9 \\
229
- -o "#{package_dir}/project-1.2.3-2.dmg" \\
232
+ -o "#{package_dir}/project-1.2.3-2.x86_64.dmg" \\
230
233
  -puppetstrings
231
234
  EOH
232
235
 
@@ -244,7 +247,7 @@ module Omnibus
244
247
  expect(subject).to receive(:shellout!)
245
248
  .with <<-EOH.gsub(/^ {12}/, "")
246
249
  hdiutil verify \\
247
- "#{package_dir}/project-1.2.3-2.dmg" \\
250
+ "#{package_dir}/project-1.2.3-2.x86_64.dmg" \\
248
251
  -puppetstrings
249
252
  EOH
250
253
 
@@ -286,10 +289,10 @@ module Omnibus
286
289
  DeRez -only icns "#{icon}" > tmp.rsrc
287
290
 
288
291
  # Append the icon reosurce to the DMG
289
- Rez -append tmp.rsrc -o "#{package_dir}/project-1.2.3-2.dmg"
292
+ Rez -append tmp.rsrc -o "#{package_dir}/project-1.2.3-2.x86_64.dmg"
290
293
 
291
294
  # Source the icon
292
- SetFile -a C "#{package_dir}/project-1.2.3-2.dmg"
295
+ SetFile -a C "#{package_dir}/project-1.2.3-2.x86_64.dmg"
293
296
  EOH
294
297
 
295
298
  subject.set_dmg_icon
@@ -298,11 +301,11 @@ module Omnibus
298
301
 
299
302
  describe "#package_name" do
300
303
  it "reflects the packager's unmodified package_name" do
301
- expect(subject.package_name).to eq("project-1.2.3-2.dmg")
304
+ expect(subject.package_name).to eq("project-1.2.3-2.x86_64.dmg")
302
305
  end
303
306
 
304
307
  it "reflects the packager's modified package_name" do
305
- package_basename = "projectsub-1.2.3-3"
308
+ package_basename = "projectsub-1.2.3-3.x86_64"
306
309
  allow(project.packagers_for_system[0]).to receive(:package_name)
307
310
  .and_return("#{package_basename}.pkg")
308
311
 
@@ -38,25 +38,25 @@ module Omnibus
38
38
 
39
39
  describe "#package_name" do
40
40
  it "returns the name of the packager" do
41
- expect(subject.package_name).to eq("project-1.2.3-2.pkg.tar.gz")
41
+ expect(subject.package_name).to eq("project-1.2.3-2.x86_64.pkg.tar.gz")
42
42
  end
43
43
  end
44
44
 
45
45
  describe "#write_tgz" do
46
46
  before do
47
- File.open("#{staging_dir}/project-1.2.3-2.pkg", "wb") do |f|
47
+ File.open("#{staging_dir}/project-1.2.3-2.x86_64.pkg", "wb") do |f|
48
48
  f.write " " * 1_000_000
49
49
  end
50
50
  end
51
51
 
52
52
  it "generates the file" do
53
53
  subject.write_tgz
54
- expect("#{staging_dir}/project-1.2.3-2.pkg.tar.gz").to be_a_file
54
+ expect("#{staging_dir}/project-1.2.3-2.x86_64.pkg.tar.gz").to be_a_file
55
55
  end
56
56
 
57
57
  it "has the correct content" do
58
58
  subject.write_tgz
59
- file = File.open("#{staging_dir}/project-1.2.3-2.pkg.tar.gz", "rb")
59
+ file = File.open("#{staging_dir}/project-1.2.3-2.x86_64.pkg.tar.gz", "rb")
60
60
  contents = file.read
61
61
  file.close
62
62
 
@@ -278,6 +278,10 @@ module Omnibus
278
278
 
279
279
  let(:cumulative_downloaded_length) { 100 }
280
280
 
281
+ let(:uri_open_target) do
282
+ RUBY_VERSION.to_f < 2.7 ? subject : URI
283
+ end
284
+
281
285
  def capturing_stdout
282
286
  old_stdout, $stdout = $stdout, progress_bar_output
283
287
  yield
@@ -286,7 +290,7 @@ module Omnibus
286
290
  end
287
291
 
288
292
  before do
289
- expect(subject).to receive(:open).with(source[:url], expected_open_opts) do |_url, open_uri_opts|
293
+ expect(uri_open_target).to receive(:open).with(source[:url], expected_open_opts) do |_url, open_uri_opts|
290
294
  open_uri_opts[:content_length_proc].call(reported_content_length)
291
295
  open_uri_opts[:progress_proc].call(cumulative_downloaded_length)
292
296
 
@@ -177,17 +177,17 @@ module Omnibus
177
177
 
178
178
  describe ".platform_shortname" do
179
179
  it "returns el on rhel" do
180
- stub_ohai(platform: "redhat", version: "6.9")
180
+ stub_ohai(platform: "redhat", version: "6")
181
181
  expect(described_class.platform_shortname).to eq("el")
182
182
  end
183
183
 
184
184
  it "returns sles on suse" do
185
- stub_ohai(platform: "suse", version: "12.2")
185
+ stub_ohai(platform: "suse", version: "12")
186
186
  expect(described_class.platform_shortname).to eq("sles")
187
187
  end
188
188
 
189
189
  it "returns .platform on all other systems" do
190
- stub_ohai(platform: "ubuntu", version: "16.04")
190
+ stub_ohai(platform: "ubuntu", version: "20.04")
191
191
  expect(described_class.platform_shortname).to eq("ubuntu")
192
192
  end
193
193
  end
@@ -196,7 +196,7 @@ module Omnibus
196
196
  shared_examples "a version manipulator" do |platform_shortname, version, expected|
197
197
  context "on #{platform_shortname}-#{version}" do
198
198
  it "returns the correct value" do
199
- stub_ohai(platform: "ubuntu", version: "16.04") do |data|
199
+ stub_ohai(platform: "ubuntu", version: "20.04") do |data|
200
200
  data["platform"] = platform_shortname
201
201
  data["platform_version"] = version
202
202
  end
@@ -218,6 +218,8 @@ module Omnibus
218
218
  it_behaves_like "a version manipulator", "gentoo", "4.9.95-gentoo", "rolling"
219
219
  it_behaves_like "a version manipulator", "kali", "rolling", "rolling"
220
220
  it_behaves_like "a version manipulator", "mac_os_x", "10.9.1", "10.9"
221
+ it_behaves_like "a version manipulator", "mac_os_x", "10.15.7", "10.15"
222
+ it_behaves_like "a version manipulator", "mac_os_x", "11.2.1", "11"
221
223
  it_behaves_like "a version manipulator", "omnios", "r151010", "r151010"
222
224
  it_behaves_like "a version manipulator", "openbsd", "5.4.4", "5.4"
223
225
  it_behaves_like "a version manipulator", "opensuseleap", "42.3", "42.3"
@@ -245,7 +247,7 @@ module Omnibus
245
247
 
246
248
  context "given an unknown platform" do
247
249
  before do
248
- stub_ohai(platform: "ubuntu", version: "16.04") do |data|
250
+ stub_ohai(platform: "ubuntu", version: "20.04") do |data|
249
251
  data["platform"] = "bacon"
250
252
  data["platform_version"] = "1.crispy"
251
253
  end
@@ -259,7 +261,7 @@ module Omnibus
259
261
 
260
262
  context "given an unknown windows platform version" do
261
263
  before do
262
- stub_ohai(platform: "ubuntu", version: "16.04") do |data|
264
+ stub_ohai(platform: "ubuntu", version: "20.04") do |data|
263
265
  data["platform"] = "windows"
264
266
  data["platform_version"] = "1.2.3"
265
267
  end
@@ -3,27 +3,20 @@ require "spec_helper"
3
3
  module Omnibus
4
4
  describe Packager do
5
5
  describe ".for_current_system" do
6
- context "on Mac OS X" do
7
- before { stub_ohai(platform: "mac_os_x", version: "10.13") }
6
+ context "on macOS" do
7
+ before { stub_ohai(platform: "mac_os_x") }
8
8
  it "prefers PKG" do
9
9
  expect(described_class.for_current_system).to eq([Packager::PKG])
10
10
  end
11
11
  end
12
12
 
13
- context "on Windows 2012 R2" do
13
+ context "on Windows" do
14
14
  before { stub_ohai(platform: "windows", version: "2012R2") }
15
15
  it "prefers MSI and APPX" do
16
16
  expect(described_class.for_current_system).to eq([Packager::MSI, Packager::APPX])
17
17
  end
18
18
  end
19
19
 
20
- context "on Windows 2008 R2" do
21
- before { stub_ohai(platform: "windows", version: "2008R2") }
22
- it "prefers MSI only" do
23
- expect(described_class.for_current_system).to eq([Packager::MSI])
24
- end
25
- end
26
-
27
20
  context "on Solaris 11" do
28
21
  before { stub_ohai(platform: "solaris2", version: "5.11") }
29
22
  it "prefers IPS" do
@@ -32,14 +25,14 @@ module Omnibus
32
25
  end
33
26
 
34
27
  context "on AIX" do
35
- before { stub_ohai(platform: "aix", version: "7.1") }
28
+ before { stub_ohai(platform: "aix", version: "7") }
36
29
  it "prefers BFF" do
37
30
  expect(described_class.for_current_system).to eq([Packager::BFF])
38
31
  end
39
32
  end
40
33
 
41
34
  context "on Fedora" do
42
- before { stub_ohai(platform: "fedora", version: "28") }
35
+ before { stub_ohai(platform: "fedora", version: "31") }
43
36
  it "prefers RPM" do
44
37
  expect(described_class.for_current_system).to eq([Packager::RPM])
45
38
  end
@@ -53,14 +46,14 @@ module Omnibus
53
46
  end
54
47
 
55
48
  context "on Debian" do
56
- before { stub_ohai(platform: "debian", version: "8.11") }
49
+ before { stub_ohai(platform: "debian", version: "10") }
57
50
  it "prefers RPM" do
58
51
  expect(described_class.for_current_system).to eq([Packager::DEB])
59
52
  end
60
53
  end
61
54
 
62
55
  context "on SLES" do
63
- before { stub_ohai(platform: "suse", version: "12.3") }
56
+ before { stub_ohai(platform: "suse", version: "15") }
64
57
  it "prefers RPM" do
65
58
  expect(described_class.for_current_system).to eq([Packager::RPM])
66
59
  end
@@ -47,8 +47,8 @@ module Omnibus
47
47
  end
48
48
 
49
49
  describe "#package_name" do
50
- it "includes the name, version, and build iteration" do
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
@@ -35,7 +35,7 @@ module Omnibus
35
35
  create_directory("#{staging_dir}/SOURCES")
36
36
  create_directory("#{staging_dir}/SPECS")
37
37
 
38
- stub_ohai(platform: "redhat", version: "6.9") do |data|
38
+ stub_ohai(platform: "redhat", version: "6") do |data|
39
39
  data["kernel"]["machine"] = architecture
40
40
  end
41
41
  end
@@ -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"')
@@ -488,7 +498,7 @@ module Omnibus
488
498
 
489
499
  describe "#safe_architecture" do
490
500
  before do
491
- stub_ohai(platform: "redhat", version: "6.9") do |data|
501
+ stub_ohai(platform: "redhat", version: "6") do |data|
492
502
  data["kernel"]["machine"] = "i386"
493
503
  end
494
504
  end
@@ -499,7 +509,7 @@ module Omnibus
499
509
 
500
510
  context "when i686" do
501
511
  before do
502
- stub_ohai(platform: "redhat", version: "6.9") do |data|
512
+ stub_ohai(platform: "redhat", version: "6") do |data|
503
513
  data["kernel"]["machine"] = "i686"
504
514
  end
505
515
  end
@@ -512,9 +522,9 @@ module Omnibus
512
522
  context "on Pidora" do
513
523
  before do
514
524
  # There's no Pidora in Fauxhai :(
515
- stub_ohai(platform: "fedora", version: "27") do |data|
525
+ stub_ohai(platform: "fedora", version: "32") do |data|
516
526
  data["platform"] = "pidora"
517
- data["platform_version"] = "27"
527
+ data["platform_version"] = "32"
518
528
  data["kernel"]["machine"] = "armv6l"
519
529
  end
520
530
  end
@@ -207,36 +207,36 @@ module Omnibus
207
207
  before { stub_ohai(fauxhai_options) }
208
208
 
209
209
  context "when on RHEL" do
210
- let(:fauxhai_options) { { platform: "redhat", version: "6.9" } }
210
+ let(:fauxhai_options) { { platform: "redhat", version: "8" } }
211
211
  it "returns a RHEL iteration" do
212
212
  expect(subject.build_iteration).to eq(1)
213
213
  end
214
214
  end
215
215
 
216
216
  context "when on Debian" do
217
- let(:fauxhai_options) { { platform: "debian", version: "8.11" } }
217
+ let(:fauxhai_options) { { platform: "debian", version: "10" } }
218
218
  it "returns a Debian iteration" do
219
219
  expect(subject.build_iteration).to eq(1)
220
220
  end
221
221
  end
222
222
 
223
223
  context "when on FreeBSD" do
224
- let(:fauxhai_options) { { platform: "freebsd", version: "10.4" } }
224
+ let(:fauxhai_options) { { platform: "freebsd", version: "12" } }
225
225
  it "returns a FreeBSD iteration" do
226
226
  expect(subject.build_iteration).to eq(1)
227
227
  end
228
228
  end
229
229
 
230
230
  context "when on Windows" do
231
- before { stub_ohai(platform: "windows", version: "2008R2") }
231
+ before { stub_ohai(platform: "windows", version: "2019") }
232
232
  before { stub_const("File::ALT_SEPARATOR", '\\') }
233
233
  it "returns a Windows iteration" do
234
234
  expect(subject.build_iteration).to eq(1)
235
235
  end
236
236
  end
237
237
 
238
- context "when on OS X" do
239
- let(:fauxhai_options) { { platform: "mac_os_x", version: "10.13" } }
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
@@ -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 -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
77
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
78
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
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 -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
88
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
89
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
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 -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
99
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
100
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
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 -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
110
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
111
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
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 -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
121
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
122
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
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 -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
133
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
134
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
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.13") }
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 -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
200
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
201
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
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"
@@ -207,12 +207,7 @@ module Omnibus
207
207
  end
208
208
 
209
209
  context "on aix" do
210
- before do
211
- # There's no AIX in Fauxhai :(
212
- stub_ohai(platform: "solaris2", version: "5.11") do |data|
213
- data["platform"] = "aix"
214
- end
215
- end
210
+ before { stub_ohai(platform: "aix") }
216
211
 
217
212
  it "sets the defaults" do
218
213
  expect(subject.with_standard_compiler_flags).to eq(
@@ -232,17 +227,17 @@ module Omnibus
232
227
  end
233
228
  end
234
229
 
235
- context "on freebsd 10" do
230
+ context "on freebsd" do
236
231
  before do
237
- stub_ohai(platform: "freebsd", version: "10.4")
232
+ stub_ohai(platform: "freebsd", version: "12.1")
238
233
  end
239
234
 
240
235
  it "sets the defaults" do
241
236
  expect(subject.with_standard_compiler_flags).to eq(
242
237
  "CC" => "clang",
243
- "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
244
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
245
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
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",
246
241
  "CXX" => "clang++",
247
242
  "LDFLAGS" => "-L/opt/project/embedded/lib",
248
243
  "LD_RUN_PATH" => "/opt/project/embedded/lib",
@@ -250,95 +245,9 @@ module Omnibus
250
245
  "OMNIBUS_INSTALL_DIR" => "/opt/project"
251
246
  )
252
247
  end
253
-
254
- context "with gcc 4.9 installed" do
255
- before do
256
- allow(subject).to receive(:which).and_return("/usr/local/bin/gcc49")
257
- end
258
- end
259
248
  end
260
249
 
261
- context "on freebsd 10" do
262
- before do
263
- stub_ohai(platform: "freebsd", version: "10.4")
264
- end
265
-
266
- it "Clang as the default compiler" do
267
- expect(subject.with_standard_compiler_flags).to eq(
268
- "CC" => "clang",
269
- "CXX" => "clang++",
270
- "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
271
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
272
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
273
- "LDFLAGS" => "-L/opt/project/embedded/lib",
274
- "LD_RUN_PATH" => "/opt/project/embedded/lib",
275
- "PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
276
- "OMNIBUS_INSTALL_DIR" => "/opt/project"
277
- )
278
- end
279
- end
280
-
281
- context "on sles 11" do
282
- before do
283
- # sles identifies as suse
284
- stub_ohai(platform: "suse", version: "11.4")
285
- allow(subject).to receive(:which).with("gcc-4.8").and_return(false)
286
- end
287
- it "sets the defaults" do
288
- expect(subject.with_standard_compiler_flags).to eq(
289
- "LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
290
- "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
291
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
292
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
293
- "LD_RUN_PATH" => "/opt/project/embedded/lib",
294
- "PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
295
- "OMNIBUS_INSTALL_DIR" => "/opt/project"
296
- )
297
- end
298
-
299
- context "with gcc 4.8 installed" do
300
-
301
- before do
302
- allow(subject).to receive(:which).and_return("/usr/bin/gcc-4.8")
303
- end
304
-
305
- it "sets the compiler args" do
306
- expect(subject.with_standard_compiler_flags).to eq(
307
- "CC" => "gcc-4.8",
308
- "CXX" => "g++-4.8",
309
- "LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
310
- "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
311
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
312
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
313
- "LD_RUN_PATH" => "/opt/project/embedded/lib",
314
- "PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
315
- "OMNIBUS_INSTALL_DIR" => "/opt/project"
316
- )
317
- end
318
- end
319
- end
320
-
321
- context "on sles 12" do
322
- before do
323
- # sles identifies as suse
324
- stub_ohai(platform: "suse", version: "12.2")
325
- allow(subject).to receive(:which).with("gcc-4.8").and_return(true)
326
- end
327
-
328
- it "sets the defaults" do
329
- expect(subject.with_standard_compiler_flags).to eq(
330
- "LDFLAGS" => "-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib",
331
- "CFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
332
- "CXXFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
333
- "CPPFLAGS" => "-I/opt/project/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
334
- "LD_RUN_PATH" => "/opt/project/embedded/lib",
335
- "PKG_CONFIG_PATH" => "/opt/project/embedded/lib/pkgconfig",
336
- "OMNIBUS_INSTALL_DIR" => "/opt/project"
337
- )
338
- end
339
- end
340
-
341
- context "on Windows" do
250
+ context "on windows" do
342
251
  let(:win_arch_i386) { true }
343
252
 
344
253
  before do