omnibus 7.0.34 → 8.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c40c81af2fa93ca8c9e87d9e49a37cef3ea8145355700490d0ad5ce1a71cd169
4
- data.tar.gz: c31ffa9da067d89db43aaff9963408ed4f56150abeb295f4e0733787f001df13
3
+ metadata.gz: af0b9ab4b9d9903d007df7fe7ef6400f29c440f6de01c3c76f2fb18690f04001
4
+ data.tar.gz: aa35f665517e110e781329b7e97ea9ff154633fb25c80d274bae96d4f46a6bde
5
5
  SHA512:
6
- metadata.gz: 8d309f0c4d0cb1e0ecc57dcd5aac4c21e5be7b4b71781e5a0c134a723721963e248c673b969398c5b6dd733cc0eabf18bcbb965d122f3b4f5b788634f98d522a
7
- data.tar.gz: 5db4091ae7e877d04705089c14e8401816ca1ac8828c99e160b8161109892956c2f348dbf9cbca95f03414cd051e3240d58402867592892b2b20fcef464f20ab
6
+ metadata.gz: f8a052707df85029b1a29c3b55a24abd7f81d9b288707bc98512c1bc185c1f309c753d72e792dc68e814c67ccc06f059cddf1b16c593f913de68cfb356d8a903
7
+ data.tar.gz: 46626cb42cca8480b546bd4281b853bc2c5a51063350109cff57a2f51c766963be06737af5ff26f0610c9ac9b9d2cf53ba5ae6da5df5077901569baf2bd00bfb
data/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![Gem Version](http://img.shields.io/gem/v/omnibus.svg)][gem]
4
4
  [![Build Status](https://badge.buildkite.com/446fd6049a9a5eeab50112aba117d3b7670ec085acb91f78dd.svg?branch=master)](https://buildkite.com/chef-oss/chef-omnibus-master-verify)
5
- [![AppVeyor Build Status](http://img.shields.io/appveyor/ci/chef/omnibus.svg?label=AppVeyor)][appveyor]
6
5
 
7
6
  **Umbrella Project**: [Chef Foundation](https://github.com/chef/chef-oss-practices/blob/master/projects/chef-foundation.md)
8
7
 
@@ -16,7 +15,6 @@ Easily create full-stack installers for your project across a variety of platfor
16
15
 
17
16
  Seth Chisamore and Christopher Maier of CHEF gave an introductory talk on Omnibus at ChefConf 2013, entitled **Eat the Whole Bowl: Building a Full-Stack Installer with Omnibus**:
18
17
 
19
- - [Video](http://www.youtube.com/watch?v=q8iJAntXCNY)
20
18
  - [Slides](https://speakerdeck.com/schisamo/eat-the-whole-bowl-building-a-full-stack-installer-with-omnibus)
21
19
 
22
20
  This project is managed by the CHEF Release Engineering team. For more information on the Release Engineering team's contribution, triage, and release process, please consult the [CHEF Release Engineering OSS Management Guide](https://docs.google.com/a/opscode.com/document/d/1oJB0vZb_3bl7_ZU2YMDBkMFdL-EWplW1BJv_FXTUOzg/edit).
@@ -196,6 +194,7 @@ DSL Method | Description
196
194
  `patch` | Apply a patch from disk
197
195
  `workers` | The maximum number of builders
198
196
  `windows_safe_path` | Format the path to be safe for shelling out on Windows
197
+ `go` | Execute the code as the embedded Go
199
198
  `ruby` | Execute the code as the embedded Ruby
200
199
  `gem` | Execute the code as the embedded Rubygems
201
200
  `bundle` | Execute the code as the embedded Bundler
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2012-2019, Chef Software Inc.
2
+ # Copyright:: Copyright (c) Chef Software Inc.
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -82,7 +82,7 @@ module Omnibus
82
82
  warn_for_shell_commands(command)
83
83
 
84
84
  build_commands << BuildCommand.new("Execute: `#{command}'") do
85
- shellout!(command, options)
85
+ shellout!(command, **options)
86
86
  end
87
87
  end
88
88
  expose :command
@@ -248,7 +248,7 @@ module Omnibus
248
248
  patches << patch_path
249
249
  options[:in_msys_bash] = true
250
250
  build_commands << BuildCommand.new("Apply patch `#{source}'") do
251
- shellout!(patch_cmd, options)
251
+ shellout!(patch_cmd, **options)
252
252
  end
253
253
  end
254
254
  expose :patch
@@ -296,6 +296,41 @@ module Omnibus
296
296
  # @!endgroup
297
297
  # --------------------------------------------------
298
298
 
299
+ #
300
+ # @!group Go DSL methods
301
+ #
302
+ # The following DSL methods are available from within build blocks and
303
+ # expose Go DSL methods.
304
+ # --------------------------------------------------
305
+
306
+ #
307
+ # Execute the given Go command or script against the embedded Go.
308
+ #
309
+ # @example
310
+ # go 'build -o hello'
311
+ #
312
+ # @param (see #command)
313
+ # @return (see #command)
314
+ #
315
+ def go(command, options = {})
316
+ build_commands << BuildCommand.new("go `#{command}'") do
317
+ bin = windows? ? windows_safe_path("#{install_dir}/embedded/go/bin/go") : embedded_bin("go")
318
+
319
+ # Check if we are building a go binary and then check if we are on
320
+ # Red Hat or CentOS so we build the binary properly with a build-id
321
+ if command.start_with?("build", " build") && rhel?
322
+ command << " -ldflags=-linkmode=external"
323
+ end
324
+
325
+ shellout!("#{bin} #{command}", options)
326
+ end
327
+ end
328
+ expose :go
329
+
330
+ #
331
+ # @!endgroup
332
+ # --------------------------------------------------
333
+
299
334
  #
300
335
  # @!group Ruby DSL methods
301
336
  #
@@ -315,7 +350,7 @@ module Omnibus
315
350
  def ruby(command, options = {})
316
351
  build_commands << BuildCommand.new("ruby `#{command}'") do
317
352
  bin = embedded_bin("ruby")
318
- shellout!("#{bin} #{command}", options)
353
+ shellout!("#{bin} #{command}", **options)
319
354
  end
320
355
  end
321
356
  expose :ruby
@@ -332,7 +367,7 @@ module Omnibus
332
367
  def gem(command, options = {})
333
368
  build_commands << BuildCommand.new("gem `#{command}'") do
334
369
  bin = embedded_bin("gem")
335
- shellout!("#{bin} #{command}", options)
370
+ shellout!("#{bin} #{command}", **options)
336
371
  end
337
372
  end
338
373
  expose :gem
@@ -352,7 +387,7 @@ module Omnibus
352
387
  def bundle(command, options = {})
353
388
  build_commands << BuildCommand.new("bundle `#{command}'") do
354
389
  bin = embedded_bin("bundle")
355
- shellout!("#{bin} #{command}", options)
390
+ shellout!("#{bin} #{command}", **options)
356
391
  end
357
392
  end
358
393
  expose :bundle
@@ -373,11 +408,16 @@ module Omnibus
373
408
  # @param (see #command)
374
409
  # @return (see #command)
375
410
  #
376
- def appbundle(software_name, lockdir: nil, gem: nil, without: nil, extra_bin_files: nil , **options)
411
+ def appbundle(software_name, options = {})
377
412
  build_commands << BuildCommand.new("appbundle `#{software_name}'") do
378
413
  bin_dir = "#{install_dir}/bin"
379
414
  appbundler_bin = embedded_bin("appbundler")
380
415
 
416
+ lockdir = options.delete(:lockdir)
417
+ gem = options.delete(:gem)
418
+ without = options.delete(:without)
419
+ extra_bin_files = options.delete(:extra_bin_files)
420
+
381
421
  lockdir ||=
382
422
  begin
383
423
  app_software = project.softwares.find do |p|
@@ -425,7 +465,7 @@ module Omnibus
425
465
  def rake(command, options = {})
426
466
  build_commands << BuildCommand.new("rake `#{command}'") do
427
467
  bin = embedded_bin("rake")
428
- shellout!("#{bin} #{command}", options)
468
+ shellout!("#{bin} #{command}", **options)
429
469
  end
430
470
  end
431
471
  expose :rake
@@ -535,7 +575,7 @@ module Omnibus
535
575
  def mkdir(directory, options = {})
536
576
  build_commands << BuildCommand.new("mkdir `#{directory}'") do
537
577
  Dir.chdir(software.project_dir) do
538
- FileUtils.mkdir_p(directory, options)
578
+ FileUtils.mkdir_p(directory, **options)
539
579
  end
540
580
  end
541
581
  end
@@ -557,7 +597,7 @@ module Omnibus
557
597
  parent = File.dirname(file)
558
598
  FileUtils.mkdir_p(parent) unless File.directory?(parent)
559
599
 
560
- FileUtils.touch(file, options)
600
+ FileUtils.touch(file, **options)
561
601
  end
562
602
  end
563
603
  end
@@ -578,7 +618,7 @@ module Omnibus
578
618
  build_commands << BuildCommand.new("delete `#{path}'") do
579
619
  Dir.chdir(software.project_dir) do
580
620
  FileSyncer.glob(path).each do |file|
581
- FileUtils.rm_rf(file, options)
621
+ FileUtils.rm_rf(file, **options)
582
622
  end
583
623
  end
584
624
  end
@@ -629,7 +669,7 @@ module Omnibus
629
669
  log.warn(log_key) { "no matched files for glob #{command}" }
630
670
  else
631
671
  files.each do |file|
632
- FileUtils.cp_r(file, destination, options)
672
+ FileUtils.cp_r(file, destination, **options)
633
673
  end
634
674
  end
635
675
  end
@@ -658,7 +698,7 @@ module Omnibus
658
698
  log.warn(log_key) { "no matched files for glob #{command}" }
659
699
  else
660
700
  files.each do |file|
661
- FileUtils.mv(file, destination, options)
701
+ FileUtils.mv(file, destination, **options)
662
702
  end
663
703
  end
664
704
  end
@@ -683,14 +723,14 @@ module Omnibus
683
723
  build_commands << BuildCommand.new(command) do
684
724
  Dir.chdir(software.project_dir) do
685
725
  if options.delete(:unchecked)
686
- FileUtils.ln_s(source, destination, options)
726
+ FileUtils.ln_s(source, destination, **options)
687
727
  else
688
728
  files = FileSyncer.glob(source)
689
729
  if files.empty?
690
730
  log.warn(log_key) { "no matched files for glob #{command}" }
691
731
  else
692
732
  files.each do |file|
693
- FileUtils.ln_s(file, destination, options)
733
+ FileUtils.ln_s(file, destination, **options)
694
734
  end
695
735
  end
696
736
  end
@@ -711,7 +751,7 @@ module Omnibus
711
751
  def sync(source, destination, options = {})
712
752
  build_commands << BuildCommand.new("sync `#{source}' to `#{destination}'") do
713
753
  Dir.chdir(software.project_dir) do
714
- FileSyncer.sync(source, destination, options)
754
+ FileSyncer.sync(source, destination, **options)
715
755
  end
716
756
  end
717
757
  end
@@ -868,7 +908,7 @@ module Omnibus
868
908
  options[:live_stream] ||= log.live_stream(:debug)
869
909
 
870
910
  # Use Util's shellout
871
- super(command_string, options)
911
+ super(command_string, **options)
872
912
  end
873
913
 
874
914
  #
@@ -259,8 +259,11 @@ module Omnibus
259
259
  sync
260
260
  hdiutil unmount "#{@device}"
261
261
  # Give some time to the system so unmount dmg
262
- sleep 5
263
- hdiutil detach "#{@device}" && \
262
+ ATTEMPTS=1
263
+ until [ $ATTEMPTS -eq 6 ] || hdiutil detach "#{@device}"; do
264
+ sleep 10
265
+ echo Attempt number $(( ATTEMPTS++ ))
266
+ done
264
267
  hdiutil convert \\
265
268
  "#{writable_dmg}" \\
266
269
  -format UDZO \\
@@ -25,28 +25,22 @@ module Omnibus
25
25
 
26
26
  def updated
27
27
  @updated ||=
28
- begin
29
- (first.entry_names & second.entry_names).collect do |name|
30
- diff(first.entry_for(name), second.entry_for(name))
31
- end.compact
32
- end
28
+ (first.entry_names & second.entry_names).collect do |name|
29
+ diff(first.entry_for(name), second.entry_for(name))
30
+ end.compact
33
31
  end
34
32
 
35
33
  def removed
36
34
  @removed ||=
37
- begin
38
- (first.entry_names - second.entry_names).collect do |name|
39
- removed_entry(first.entry_for(name))
40
- end
35
+ (first.entry_names - second.entry_names).collect do |name|
36
+ removed_entry(first.entry_for(name))
41
37
  end
42
38
  end
43
39
 
44
40
  def added
45
41
  @added ||=
46
- begin
47
- (second.entry_names - first.entry_names).collect do |name|
48
- new_entry(second.entry_for(name))
49
- end
42
+ (second.entry_names - first.entry_names).collect do |name|
43
+ new_entry(second.entry_for(name))
50
44
  end
51
45
  end
52
46
 
@@ -170,12 +170,16 @@ module Omnibus
170
170
  # rubocop:disable Lint/DuplicateCaseCondition
171
171
  def truncate_platform_version(platform_version, platform)
172
172
  case platform
173
- when "centos", "debian", "el", "fedora", "freebsd", "omnios", "pidora", "raspbian", "rhel", "sles", "suse", "smartos"
173
+ when "centos", "cumulus", "debian", "el", "fedora", "freebsd", "omnios", "pidora", "raspbian", "rhel", "sles", "suse", "smartos"
174
174
  # Only want MAJOR (e.g. Debian 7, OmniOS r151006, SmartOS 20120809T221258Z)
175
175
  platform_version.split(".").first
176
- when "aix", "alpine", "mac_os_x", "openbsd", "slackware", "solaris2", "opensuse", "opensuseleap", "ubuntu", "amazon"
177
- # Only want MAJOR.MINOR (e.g. Mac OS X 10.9, Ubuntu 12.04)
176
+ when "aix", "alpine", "openbsd", "slackware", "solaris2", "opensuse", "opensuseleap", "ubuntu", "amazon"
177
+ # Only want MAJOR.MINOR (e.g. Ubuntu 12.04)
178
178
  platform_version.split(".")[0..1].join(".")
179
+ when "mac_os_x", "darwin", "macos"
180
+ # If running macOS >= 11, use only MAJOR version. Otherwise, use MAJOR.MINOR
181
+ pv_bits = platform_version.split(".")
182
+ pv_bits[0].to_i >= 11 ? pv_bits[0] : pv_bits[0..1].join(".")
179
183
  when "arch", "gentoo", "kali"
180
184
  # Arch Linux / Gentoo do not have a platform_version ohai attribute, they are rolling release (lsb_release -r)
181
185
  "rolling"
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2014-2018 Chef Software, Inc.
2
+ # Copyright 2014-2020, Chef Software Inc.
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -66,25 +66,16 @@ module Omnibus
66
66
  family = Ohai["platform_family"]
67
67
  version = Ohai["platform_version"]
68
68
 
69
- if family == "solaris2" && Chef::Sugar::Constraints::Version.new(version).satisfies?(">= 5.11")
69
+ if family == "solaris2" && ChefUtils::VersionString.new(version).satisfies?(">= 5.11")
70
70
  family = "ips"
71
- elsif family == "solaris2" && Chef::Sugar::Constraints::Version.new(version).satisfies?(">= 5.10")
71
+ elsif family == "solaris2" && ChefUtils::VersionString.new(version).satisfies?(">= 5.10")
72
72
  family = "solaris"
73
73
  end
74
74
  if klass = PLATFORM_PACKAGER_MAP[family]
75
- package_types = klass.is_a?(Array) ? klass : [ klass ]
76
-
77
- if package_types.include?(APPX) &&
78
- !Chef::Sugar::Constraints::Version.new(version).satisfies?(">= 6.2")
79
- log.warn(log_key) { "APPX generation is only supported on Windows versions 2012 and above" }
80
- package_types -= [APPX]
81
- end
82
-
83
- package_types
75
+ klass.is_a?(Array) ? klass : [ klass ]
84
76
  else
85
77
  log.warn(log_key) do
86
- "Could not determine packager for `#{family}', defaulting " \
87
- "to `makeself'!"
78
+ "Could not determine packager for `#{family}`, defaulting to `makeself`!"
88
79
  end
89
80
  [Makeself]
90
81
  end
@@ -125,7 +125,7 @@ module Omnibus
125
125
 
126
126
  # @see Base#package_name
127
127
  def package_name
128
- "#{safe_base_package_name}-#{safe_version}-#{safe_build_iteration}.pkg"
128
+ "#{safe_base_package_name}-#{safe_version}-#{safe_build_iteration}.#{safe_architecture}.pkg"
129
129
  end
130
130
 
131
131
  #
@@ -286,6 +286,7 @@ module Omnibus
286
286
  identifier: safe_identifier,
287
287
  version: safe_version,
288
288
  component_pkg: component_pkg,
289
+ host_architecture: safe_architecture,
289
290
  })
290
291
  end
291
292
 
@@ -320,6 +321,15 @@ module Omnibus
320
321
  "#{safe_base_package_name}-core.pkg"
321
322
  end
322
323
 
324
+ #
325
+ # Return the architecture
326
+ #
327
+ # @return [String]
328
+ #
329
+ def safe_architecture
330
+ @safe_architecture ||= Ohai["kernel"]["machine"]
331
+ end
332
+
323
333
  #
324
334
  # Return the PKG-ready base package name, removing any invalid characters.
325
335
  #
@@ -424,7 +434,7 @@ module Omnibus
424
434
  is_binary = File.file?(bin) &&
425
435
  File.executable?(bin) &&
426
436
  !File.symlink?(bin)
427
- log.debug(log_key) { " removing from signing: #{bin}" } unless is_binary
437
+ log.debug(log_key) { " removing non-binary file from signing: #{bin}" } unless is_binary
428
438
  is_binary
429
439
  end
430
440
 
@@ -434,9 +444,9 @@ module Omnibus
434
444
  command = "file #{lib}"
435
445
 
436
446
  stdout = shellout!(command).stdout
437
- is_macho = stdout.match?(/Mach-O.*library/) || stdout.match?(/Mach-O.*bundle/)
447
+ is_macho = stdout.match?(/Mach-O.*(library|bundle)/)
438
448
  end
439
- log.debug(log_key) { " removing from signing: #{lib}" } unless is_macho
449
+ log.debug(log_key) { " removing non-Mach-O library file from signing: #{lib}" } unless is_macho
440
450
  is_macho
441
451
  end
442
452
  end
@@ -417,6 +417,10 @@ module Omnibus
417
417
  command << %{ -bb}
418
418
  command << %{ --buildroot #{staging_dir}/BUILD}
419
419
  command << %{ --define '_topdir #{staging_dir}'}
420
+ command << " #{spec_file}"
421
+
422
+ log.info(log_key) { "Creating .rpm file" }
423
+ shellout!("#{command}")
420
424
 
421
425
  if signing_passphrase
422
426
  log.info(log_key) { "Signing enabled for .rpm file" }
@@ -438,17 +442,18 @@ module Omnibus
438
442
  })
439
443
  end
440
444
 
441
- command << " --sign"
442
- command << " #{spec_file}"
443
-
445
+ sign_cmd = "rpmsign --addsign #{rpm_file}"
444
446
  with_rpm_signing do |signing_script|
445
- log.info(log_key) { "Creating .rpm file" }
446
- shellout!("#{signing_script} \"#{command}\"", environment: { "HOME" => home })
447
+ log.info(log_key) { "Signing the built rpm file" }
448
+
449
+ # RHEL 8 has gpg-agent running so we can skip the expect script since the agent
450
+ # takes care of the passphrase entering on the signing
451
+ if dist_tag != ".el8"
452
+ sign_cmd.prepend("#{signing_script} \"").concat("\"")
453
+ end
454
+
455
+ shellout!("#{sign_cmd}", environment: { "HOME" => home })
447
456
  end
448
- else
449
- log.info(log_key) { "Creating .rpm file" }
450
- command << " #{spec_file}"
451
- shellout!("#{command}")
452
457
  end
453
458
 
454
459
  FileSyncer.glob("#{staging_dir}/RPMS/**/*.rpm").each do |rpm|
@@ -483,6 +488,15 @@ module Omnibus
483
488
  "#{staging_dir}/SPECS/#{package_name}.spec"
484
489
  end
485
490
 
491
+ #
492
+ # The full path to the rpm file.
493
+ #
494
+ # @return [String]
495
+ #
496
+ def rpm_file
497
+ "#{staging_dir}/RPMS/#{safe_architecture}/#{package_name}"
498
+ end
499
+
486
500
  #
487
501
  # Render the rpm signing script with secure permissions, call the given
488
502
  # block with the path to the script, and ensure deletion of the script from
@@ -525,7 +525,7 @@ module Omnibus
525
525
  return if final_version.nil?
526
526
 
527
527
  begin
528
- Chef::Sugar::Constraints::Version.new(final_version)
528
+ ChefUtils::VersionString.new(final_version)
529
529
  rescue ArgumentError
530
530
  log.warn(log_key) do
531
531
  "Version #{final_version} for software #{name} was not parseable. " \
@@ -718,19 +718,8 @@ module Omnibus
718
718
  "CC" => "clang",
719
719
  "CXX" => "clang++",
720
720
  "LDFLAGS" => "-L#{install_dir}/embedded/lib",
721
- "CFLAGS" => "-I#{install_dir}/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
721
+ "CFLAGS" => "-I#{install_dir}/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
722
722
  }
723
- when "suse"
724
- suse_flags = {
725
- "LDFLAGS" => "-Wl,-rpath,#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib",
726
- "CFLAGS" => "-I#{install_dir}/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
727
- }
728
- # Enable gcc version 4.8 if it is available
729
- if which("gcc-4.8") && platform_version.satisfies?("< 12")
730
- suse_flags["CC"] = "gcc-4.8"
731
- suse_flags["CXX"] = "g++-4.8"
732
- end
733
- suse_flags
734
723
  when "windows"
735
724
  arch_flag = windows_arch_i386? ? "-m32" : "-m64"
736
725
  opt_flag = windows_arch_i386? ? "-march=i686" : "-march=x86-64"
@@ -750,7 +739,7 @@ module Omnibus
750
739
  else
751
740
  {
752
741
  "LDFLAGS" => "-Wl,-rpath,#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib",
753
- "CFLAGS" => "-I#{install_dir}/embedded/include -O2 -D_FORTIFY_SOURCE=2 -fstack-protector",
742
+ "CFLAGS" => "-I#{install_dir}/embedded/include -O3 -D_FORTIFY_SOURCE=2 -fstack-protector",
754
743
  }
755
744
  end
756
745
 
@@ -1,5 +1,5 @@
1
1
  #
2
- # Copyright 2014-2018 Chef Software, Inc.
2
+ # Copyright 2014-2020, Chef Software Inc.
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -14,31 +14,22 @@
14
14
  # limitations under the License.
15
15
  #
16
16
 
17
- require "chef/sugar/architecture"
18
- require "chef/sugar/cloud"
19
- require "chef/sugar/constraints"
20
- require "chef/sugar/ip"
21
- require "chef/sugar/init"
22
- require "chef/sugar/platform"
23
- require "chef/sugar/platform_family"
24
- require "chef/sugar/ruby"
25
- require "chef/sugar/shell"
26
- require "chef/sugar/vagrant"
17
+ require "chef-utils" unless defined?(ChefUtils::CANARY)
27
18
 
28
19
  module Omnibus
29
20
  module Sugarable
30
21
  def self.extended(base)
31
- base.send(:extend, Chef::Sugar::DSL)
22
+ base.send(:extend, ChefUtils)
32
23
  base.send(:extend, Omnibus::Sugar)
33
24
  end
34
25
 
35
26
  def self.included(base)
36
- base.send(:include, Chef::Sugar::DSL)
27
+ base.send(:include, ChefUtils)
37
28
  base.send(:include, Omnibus::Sugar)
38
29
 
39
30
  if base < Cleanroom
40
31
  # Make all the "sugars" available in the cleanroom (DSL)
41
- Chef::Sugar::DSL.instance_methods.each do |instance_method|
32
+ ChefUtils.instance_methods.each do |instance_method|
42
33
  base.send(:expose, instance_method)
43
34
  end
44
35
 
@@ -15,5 +15,5 @@
15
15
  #
16
16
 
17
17
  module Omnibus
18
- VERSION = "7.0.34".freeze
18
+ VERSION = "8.2.2".freeze
19
19
  end
@@ -162,6 +162,7 @@ MAC_WHITELIST_LIBS = [
162
162
  /libc\+\+\.1\.dylib/,
163
163
  /libzstd\.1\.dylib/,
164
164
  /Security/,
165
+ /SystemConfiguration/,
165
166
  ].freeze
166
167
 
167
168
  FREEBSD_WHITELIST_LIBS = [
data/omnibus.gemspec CHANGED
@@ -21,22 +21,23 @@ Gem::Specification.new do |gem|
21
21
  gem.require_paths = ["lib"]
22
22
 
23
23
  gem.add_dependency "aws-sdk-s3", "~> 1"
24
- gem.add_dependency "chef-sugar", ">= 3.3"
24
+ gem.add_dependency "chef-utils", ">= 15.4"
25
25
  gem.add_dependency "chef-cleanroom", "~> 1.0"
26
26
  gem.add_dependency "ffi-yajl", "~> 2.2"
27
27
  gem.add_dependency "mixlib-shellout", ">= 2.0", "< 4.0"
28
- gem.add_dependency "ohai", ">= 15"
28
+ gem.add_dependency "ohai", ">= 15", "< 17"
29
29
  gem.add_dependency "ruby-progressbar", "~> 1.7"
30
30
  gem.add_dependency "thor", ">= 0.18", "< 2.0"
31
31
  gem.add_dependency "license_scout", "~> 1.0"
32
+ gem.add_dependency "contracts", ">= 0.16.0", "< 0.17.0"
32
33
 
33
34
  gem.add_dependency "mixlib-versioning"
34
35
  gem.add_dependency "pedump"
35
36
 
36
37
  gem.add_development_dependency "artifactory", "~> 3.0"
37
- gem.add_development_dependency "aruba", "~> 0.5"
38
- gem.add_development_dependency "chefstyle", "= 1.5.0"
39
- gem.add_development_dependency "fauxhai", ">= 5.2"
38
+ gem.add_development_dependency "aruba", "~> 2.0"
39
+ gem.add_development_dependency "chefstyle", "= 1.7.5"
40
+ gem.add_development_dependency "fauxhai-ng", ">= 7.5"
40
41
  gem.add_development_dependency "rspec", "~> 3.0"
41
42
  gem.add_development_dependency "rspec-json_expectations"
42
43
  gem.add_development_dependency "rspec-its"
@@ -21,20 +21,12 @@
21
21
  <Media Id="1" Cabinet="Project.cab" EmbedCab="yes" CompressionLevel="high" />
22
22
 
23
23
  <!--
24
- Take advantage of Windows Installer 5.0 feature (if available) to disable
25
- checkpointing and other costings that take significant amounts of time
24
+ Take advantage of Windows Installer 5.0 feature (if available) to disable
25
+ checkpointing and other costings that take significant amounts of time
26
26
  ref: https://msdn.microsoft.com/en-us/library/windows/desktop/dd408005(v=vs.85).aspx
27
27
  -->
28
28
  <Property Id="MSIFASTINSTALL" Value="7" />
29
29
 
30
- <!--
31
- Uncomment launch condition below to check for minimum OS
32
- 601 = Windows 7/Server 2008R2.
33
- -->
34
- <!-- Condition Message="!(loc.MinimumOSVersionMessage)">
35
- <![CDATA[Installed OR VersionNT >= 601]]>
36
- </Condition -->
37
-
38
30
  <!-- We always do Major upgrades -->
39
31
  <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeErrorMessage)" />
40
32
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  <!-- Generated by productbuild - - synthesize -->
9
9
  <pkg-ref id="<%= identifier %>"/>
10
- <options customize="never" require-scripts="false"/>
10
+ <options customize="never" require-scripts="false" hostArchitectures="<%= host_architecture %>" />
11
11
  <choices-outline>
12
12
  <line choice="default">
13
13
  <line choice="<%= identifier %>"/>
@@ -8,8 +8,8 @@
8
8
  %define __spec_clean_post true
9
9
  %define __spec_clean_pre true
10
10
 
11
- # Use md5
12
- %define _binary_filedigest_algorithm 1
11
+ # Use SHA256 checksums for all files
12
+ %define _binary_filedigest_algorithm 8
13
13
 
14
14
  %define _binary_payload <%= compression %>
15
15
 
@@ -127,17 +127,8 @@ module Omnibus
127
127
  end
128
128
  end
129
129
 
130
- context "when the source has read-only files" do
131
- let(:source_url) { "http://dl.bintray.com/oneclick/OpenKnapsack/x86/openssl-1.0.0q-x86-windows.tar.lzma" }
132
- let(:source_md5) { "577dbe528415c6f178a9431fd0554df4" }
133
-
134
- it "extracts the asset without crashing" do
135
- subject.clean
136
- expect(extracted).to_not be_a_file
137
- subject.clean
138
- expect(extracted).to_not be_a_file
139
- end
140
- end
130
+ # we need to find a new test fixture because this one no longer exists
131
+ # context "when the source has read-only files"
141
132
 
142
133
  context "when the source has broken symlinks" do
143
134
  let(:source_url) { "http://www.openssl.org/source/openssl-1.0.1q.tar.gz" }
@@ -39,6 +39,12 @@ module Omnibus
39
39
  end
40
40
  end
41
41
 
42
+ describe "#go" do
43
+ it "is a DSL method" do
44
+ expect(subject).to have_exposed_method(:go)
45
+ end
46
+ end
47
+
42
48
  describe "#ruby" do
43
49
  it "is a DSL method" do
44
50
  expect(subject).to have_exposed_method(:ruby)