omnibus 6.1.7 → 8.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -4
  3. data/README.md +54 -12
  4. data/Rakefile +1 -1
  5. data/bin/omnibus +1 -1
  6. data/lib/omnibus.rb +2 -2
  7. data/lib/omnibus/build_version.rb +1 -1
  8. data/lib/omnibus/build_version_dsl.rb +6 -7
  9. data/lib/omnibus/builder.rb +10 -9
  10. data/lib/omnibus/changelog_printer.rb +7 -4
  11. data/lib/omnibus/cleaner.rb +4 -1
  12. data/lib/omnibus/cli.rb +2 -2
  13. data/lib/omnibus/cli/changelog.rb +25 -25
  14. data/lib/omnibus/compressor.rb +2 -2
  15. data/lib/omnibus/compressors/base.rb +2 -2
  16. data/lib/omnibus/compressors/dmg.rb +8 -6
  17. data/lib/omnibus/compressors/tgz.rb +2 -2
  18. data/lib/omnibus/config.rb +13 -3
  19. data/lib/omnibus/core_extensions/open_uri.rb +1 -1
  20. data/lib/omnibus/digestable.rb +2 -2
  21. data/lib/omnibus/download_helpers.rb +6 -2
  22. data/lib/omnibus/fetchers/file_fetcher.rb +1 -1
  23. data/lib/omnibus/fetchers/git_fetcher.rb +1 -0
  24. data/lib/omnibus/fetchers/net_fetcher.rb +3 -4
  25. data/lib/omnibus/fetchers/path_fetcher.rb +1 -1
  26. data/lib/omnibus/file_syncer.rb +1 -1
  27. data/lib/omnibus/generator.rb +2 -2
  28. data/lib/omnibus/generator_files/README.md.erb +20 -16
  29. data/lib/omnibus/generator_files/config/software/preparation.rb.erb +1 -1
  30. data/lib/omnibus/generator_files/omnibus.rb.erb +5 -4
  31. data/lib/omnibus/git_cache.rb +2 -2
  32. data/lib/omnibus/health_check.rb +3 -1
  33. data/lib/omnibus/licensing.rb +5 -6
  34. data/lib/omnibus/logger.rb +3 -2
  35. data/lib/omnibus/manifest.rb +2 -2
  36. data/lib/omnibus/metadata.rb +2 -2
  37. data/lib/omnibus/ohai.rb +1 -1
  38. data/lib/omnibus/package.rb +1 -1
  39. data/lib/omnibus/packager.rb +6 -14
  40. data/lib/omnibus/packagers/appx.rb +1 -2
  41. data/lib/omnibus/packagers/base.rb +2 -1
  42. data/lib/omnibus/packagers/bff.rb +6 -8
  43. data/lib/omnibus/packagers/deb.rb +7 -10
  44. data/lib/omnibus/packagers/ips.rb +3 -6
  45. data/lib/omnibus/packagers/makeself.rb +1 -2
  46. data/lib/omnibus/packagers/msi.rb +13 -12
  47. data/lib/omnibus/packagers/pkg.rb +125 -9
  48. data/lib/omnibus/packagers/rpm.rb +11 -12
  49. data/lib/omnibus/packagers/solaris.rb +5 -5
  50. data/lib/omnibus/packagers/windows_base.rb +7 -6
  51. data/lib/omnibus/project.rb +3 -2
  52. data/lib/omnibus/publisher.rb +2 -2
  53. data/lib/omnibus/publishers/artifactory_publisher.rb +2 -2
  54. data/lib/omnibus/publishers/s3_publisher.rb +6 -4
  55. data/lib/omnibus/s3_cache.rb +4 -2
  56. data/lib/omnibus/s3_helpers.rb +7 -7
  57. data/lib/omnibus/software.rb +68 -43
  58. data/lib/omnibus/sugarable.rb +5 -14
  59. data/lib/omnibus/templating.rb +2 -2
  60. data/lib/omnibus/thread_pool.rb +0 -2
  61. data/lib/omnibus/util.rb +4 -3
  62. data/lib/omnibus/version.rb +1 -1
  63. data/lib/omnibus/whitelist.rb +24 -1
  64. data/omnibus.gemspec +8 -9
  65. data/resources/ips/doc-transform.erb +1 -0
  66. data/resources/msi/CustomActionFastMsi.CA.dll +0 -0
  67. data/resources/msi/source.wxs.erb +2 -10
  68. data/resources/rpm/signing.erb +7 -10
  69. data/spec/functional/builder_spec.rb +2 -1
  70. data/spec/functional/fetchers/file_fetcher_spec.rb +4 -4
  71. data/spec/functional/fetchers/git_fetcher_spec.rb +4 -4
  72. data/spec/functional/fetchers/net_fetcher_spec.rb +5 -6
  73. data/spec/functional/fetchers/path_fetcher_spec.rb +4 -4
  74. data/spec/functional/licensing_spec.rb +5 -5
  75. data/spec/support/examples.rb +3 -4
  76. data/spec/support/path_helpers.rb +2 -2
  77. data/spec/unit/builder_spec.rb +9 -9
  78. data/spec/unit/changelogprinter_spec.rb +8 -6
  79. data/spec/unit/compressor_spec.rb +4 -4
  80. data/spec/unit/compressors/dmg_spec.rb +5 -2
  81. data/spec/unit/fetchers/net_fetcher_spec.rb +16 -17
  82. data/spec/unit/health_check_spec.rb +2 -6
  83. data/spec/unit/library_spec.rb +2 -1
  84. data/spec/unit/manifest_diff_spec.rb +2 -2
  85. data/spec/unit/manifest_spec.rb +1 -1
  86. data/spec/unit/metadata_spec.rb +14 -17
  87. data/spec/unit/omnibus_spec.rb +1 -1
  88. data/spec/unit/packager_spec.rb +6 -13
  89. data/spec/unit/packagers/bff_spec.rb +2 -2
  90. data/spec/unit/packagers/ips_spec.rb +1 -0
  91. data/spec/unit/packagers/msi_spec.rb +2 -2
  92. data/spec/unit/packagers/pkg_spec.rb +354 -0
  93. data/spec/unit/packagers/pkgsrc_spec.rb +1 -1
  94. data/spec/unit/packagers/rpm_spec.rb +5 -5
  95. data/spec/unit/packagers/solaris_spec.rb +7 -7
  96. data/spec/unit/project_spec.rb +7 -7
  97. data/spec/unit/publisher_spec.rb +1 -2
  98. data/spec/unit/publishers/artifactory_publisher_spec.rb +2 -4
  99. data/spec/unit/publishers/s3_publisher_spec.rb +2 -4
  100. data/spec/unit/s3_cacher_spec.rb +19 -6
  101. data/spec/unit/s3_helpers_spec.rb +22 -3
  102. data/spec/unit/software_spec.rb +59 -120
  103. data/spec/unit/util_spec.rb +1 -2
  104. metadata +21 -21
@@ -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
 
@@ -13,7 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
  #
16
- require "erb"
16
+ require "erb" unless defined?(Erb)
17
17
 
18
18
  module Omnibus
19
19
  module Templating
@@ -73,7 +73,7 @@ module Omnibus
73
73
 
74
74
  unless options.empty?
75
75
  raise ArgumentError,
76
- "Unknown option(s): #{options.keys.map(&:inspect).join(', ')}"
76
+ "Unknown option(s): #{options.keys.map(&:inspect).join(", ")}"
77
77
  end
78
78
 
79
79
  # String value returned from #render_template_content
@@ -15,8 +15,6 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require "thread"
19
-
20
18
  module Omnibus
21
19
  class ThreadPool
22
20
 
@@ -14,7 +14,7 @@
14
14
  # limitations under the License.
15
15
  #
16
16
 
17
- require "mixlib/shellout"
17
+ require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
18
18
 
19
19
  module Omnibus
20
20
  module Util
@@ -80,7 +80,7 @@ module Omnibus
80
80
  # populated with results of the command.
81
81
  #
82
82
  def shellout(*args)
83
- options = args.last.kind_of?(Hash) ? args.pop : {}
83
+ options = args.last.is_a?(Hash) ? args.pop : {}
84
84
  options = SHELLOUT_OPTIONS.merge(options)
85
85
 
86
86
  command_string = args.join(" ")
@@ -158,6 +158,7 @@ module Omnibus
158
158
  yield
159
159
  rescue Exception => e
160
160
  raise e unless retried_exceptions.any? { |eclass| e.is_a?(eclass) }
161
+
161
162
  if retries != 0
162
163
  log.info(log_key) { "Retrying failed #{logstr} due to #{e} (#{retries} retries left)..." }
163
164
  retries -= 1
@@ -196,7 +197,7 @@ module Omnibus
196
197
  #
197
198
  def compiler_safe_path(*pieces)
198
199
  path = File.join(*pieces)
199
- path = path.sub(/^([A-Za-z]):\//, "/\\1/") if ENV["MSYSTEM"]
200
+ path = path.sub(%r{^([A-Za-z]):/}, "/\\1/") if ENV["MSYSTEM"]
200
201
  path
201
202
  end
202
203
 
@@ -15,5 +15,5 @@
15
15
  #
16
16
 
17
17
  module Omnibus
18
- VERSION = "6.1.7".freeze
18
+ VERSION = "8.0.9".freeze
19
19
  end
@@ -1,5 +1,5 @@
1
1
 
2
- # Copyright 2012-2018 Chef Software, Inc.
2
+ # Copyright 2012-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.
@@ -16,6 +16,7 @@
16
16
 
17
17
  WHITELIST_LIBS = [
18
18
  /ld-linux/,
19
+ /libanl\.so/,
19
20
  /libc\.so/,
20
21
  /libcrypt\.so/,
21
22
  /libdl/,
@@ -33,6 +34,7 @@ WHITELIST_LIBS = [
33
34
  ].freeze
34
35
 
35
36
  ARCH_WHITELIST_LIBS = [
37
+ /libanl\.so/,
36
38
  /libc\.so/,
37
39
  /libcrypt\.so/,
38
40
  /libdb-5\.3\.so/,
@@ -56,6 +58,27 @@ AIX_WHITELIST_LIBS = [
56
58
  /unix$/,
57
59
  ].freeze
58
60
 
61
+ OMNIOS_WHITELIST_LIBS = [
62
+ /libc\.so\.1/,
63
+ /libcrypt\./,
64
+ /libcrypt\.so\.1/,
65
+ /libdl\.so\.1/,
66
+ /libgcc_s\.so\.1/,
67
+ /libgen\.so\.1/,
68
+ /libm\.so\.2/,
69
+ /libmd\.so\.1/,
70
+ /libmp\.so/,
71
+ /libmp\.so\.2/,
72
+ /libnsl\.so\.1/,
73
+ /libpthread\.so\.1/,
74
+ /librt\.so\.1/,
75
+ /libsocket\.so\.1/,
76
+ /libssp\.s/,
77
+ /libssp\.so./,
78
+ /libssp\.so\.0/,
79
+ /libgcc_s\.so\.1/,
80
+ ].freeze
81
+
59
82
  SOLARIS_WHITELIST_LIBS = [
60
83
  /libaio\.so/,
61
84
  /libavl\.so/,
@@ -1,5 +1,4 @@
1
- # -*- encoding: utf-8 -*-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "omnibus/version"
5
4
 
@@ -13,22 +12,22 @@ Gem::Specification.new do |gem|
13
12
  gem.description = gem.summary
14
13
  gem.homepage = "https://github.com/chef/omnibus"
15
14
 
16
- gem.required_ruby_version = ">= 2.4"
15
+ gem.required_ruby_version = ">= 2.6"
17
16
 
18
17
  gem.files = %w{ LICENSE README.md Rakefile Gemfile } + Dir.glob("*.gemspec") + Dir.glob("{bin,lib,resources,spec}/**/{*,.kitchen*}")
19
18
  gem.bindir = "bin"
20
19
  gem.executables = %w{omnibus}
21
- gem.test_files = gem.files.grep(/^(test|spec|features)\//)
20
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
22
21
  gem.require_paths = ["lib"]
23
22
 
24
23
  gem.add_dependency "aws-sdk-s3", "~> 1"
25
- gem.add_dependency "chef-sugar-ng", ">= 3.3"
24
+ gem.add_dependency "chef-utils", ">= 15.4"
26
25
  gem.add_dependency "chef-cleanroom", "~> 1.0"
27
26
  gem.add_dependency "ffi-yajl", "~> 2.2"
28
27
  gem.add_dependency "mixlib-shellout", ">= 2.0", "< 4.0"
29
- gem.add_dependency "ohai", ">= 13", "< 16"
28
+ gem.add_dependency "ohai", ">= 15"
30
29
  gem.add_dependency "ruby-progressbar", "~> 1.7"
31
- gem.add_dependency "thor", "~> 0.18"
30
+ gem.add_dependency "thor", ">= 0.18", "< 2.0"
32
31
  gem.add_dependency "license_scout", "~> 1.0"
33
32
 
34
33
  gem.add_dependency "mixlib-versioning"
@@ -36,8 +35,8 @@ Gem::Specification.new do |gem|
36
35
 
37
36
  gem.add_development_dependency "artifactory", "~> 3.0"
38
37
  gem.add_development_dependency "aruba", "~> 0.5"
39
- gem.add_development_dependency "chefstyle", "= 0.12"
40
- gem.add_development_dependency "fauxhai", ">= 5.2"
38
+ gem.add_development_dependency "chefstyle", "= 1.5.2"
39
+ gem.add_development_dependency "fauxhai-ng", ">= 7.5"
41
40
  gem.add_development_dependency "rspec", "~> 3.0"
42
41
  gem.add_development_dependency "rspec-json_expectations"
43
42
  gem.add_development_dependency "rspec-its"
@@ -2,3 +2,4 @@
2
2
  <transform file depend -> edit pkg.debug.depend.file ruby env>
3
3
  <transform file depend -> edit pkg.debug.depend.file make env>
4
4
  <transform file depend -> edit pkg.debug.depend.file perl env>
5
+ <transform file depend -> edit pkg.debug.depend.path usr/local/bin usr/bin>
@@ -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
 
@@ -11,25 +11,22 @@ require 'pty'
11
11
 
12
12
  puts rpm_cmd
13
13
  PTY.spawn(rpm_cmd) do |r, w, pid|
14
+ # Older versions of rpmsign will prompt right away for the passphrase
14
15
  prompt = r.read(19)
15
16
 
16
- # match the expected prompt exactly, since that's the only way we know if
17
- # something went wrong.
18
- unless prompt == 'Enter pass phrase: '
19
- STDERR.puts "unexpected output from `#{rpm_cmd}`: '#{prompt}'"
20
- Process.kill(:KILL, pid)
21
- exit 1
17
+ if prompt == 'Enter pass phrase: '
18
+ STDOUT.puts prompt
19
+ w.write("#{password}\n")
22
20
  end
23
21
 
24
- STDOUT.puts prompt
25
- w.write("#{password}\n")
26
-
27
22
  # Keep printing output unti the command exits
28
23
  loop do
29
24
  begin
30
25
  line = r.gets
31
26
  puts line
32
- if (line =~ /failed/) && !(line =~ /warning:/)
27
+ if line =~ /Please enter the passphrase to unlock the OpenPGP secret key:/
28
+ w.write("#{password}\n")
29
+ elsif (line =~ /failed/) && !(line =~ /warning:/)
33
30
  STDERR.puts 'RPM signing failure'
34
31
  exit 1
35
32
  end
@@ -22,6 +22,7 @@ module Omnibus
22
22
  ext = name == "ruby" ? ".exe" : ".bat"
23
23
  source = Bundler.which(name + ext)
24
24
  raise "Could not find #{name} in bundler environment" unless source
25
+
25
26
  File.open(File.join(embedded_bin_dir, name + ".bat"), "w") do |f|
26
27
  f.write <<-EOH.gsub(/^ {12}/, "")
27
28
  @"#{source}" %*
@@ -221,7 +222,7 @@ module Omnibus
221
222
  output = capture_logging { subject.build }
222
223
 
223
224
  appbundler_path = File.join(embedded_bin_dir, "appbundler")
224
- appbundler_path.gsub!(/\//, '\\') if windows?
225
+ appbundler_path.gsub!(%r{/}, '\\') if windows?
225
226
  expect(output).to include("#{appbundler_path} '#{project_dir}' '#{bin_dir}'")
226
227
  end
227
228
  end
@@ -13,10 +13,10 @@ module Omnibus
13
13
 
14
14
  let(:manifest_entry) do
15
15
  double(Omnibus::ManifestEntry,
16
- name: "pathelogical",
17
- locked_version: nil,
18
- described_version: nil,
19
- locked_source: source)
16
+ name: "pathelogical",
17
+ locked_version: nil,
18
+ described_version: nil,
19
+ locked_source: source)
20
20
  end
21
21
 
22
22
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -110,10 +110,10 @@ module Omnibus
110
110
  let(:remote) { remote_git_repo("zlib", annotated_tags: [version]) }
111
111
  let(:manifest_entry) do
112
112
  double(ManifestEntry,
113
- name: "software",
114
- locked_version: "efde208366abd0f91419d8a54b45e3f6e0540105",
115
- described_version: version,
116
- locked_source: source)
113
+ name: "software",
114
+ locked_version: "efde208366abd0f91419d8a54b45e3f6e0540105",
115
+ described_version: version,
116
+ locked_source: source)
117
117
  end
118
118
 
119
119
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -4,8 +4,7 @@ module Omnibus
4
4
  module RSpec
5
5
  module OhaiHelpers
6
6
  # Turn off the mandatory Ohai helper.
7
- def stub_ohai(options = {}, &block)
8
- end
7
+ def stub_ohai(options = {}, &block); end
9
8
  end
10
9
  end
11
10
 
@@ -29,10 +28,10 @@ module Omnibus
29
28
 
30
29
  let(:manifest_entry) do
31
30
  double(ManifestEntry,
32
- name: "software",
33
- locked_version: "1.2.8",
34
- described_version: "1.2.8",
35
- locked_source: source)
31
+ name: "software",
32
+ locked_version: "1.2.8",
33
+ described_version: "1.2.8",
34
+ locked_source: source)
36
35
  end
37
36
 
38
37
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -12,10 +12,10 @@ module Omnibus
12
12
 
13
13
  let(:manifest_entry) do
14
14
  double(Omnibus::ManifestEntry,
15
- name: "pathelogical",
16
- locked_version: nil,
17
- described_version: nil,
18
- locked_source: source)
15
+ name: "pathelogical",
16
+ locked_version: nil,
17
+ described_version: nil,
18
+ locked_source: source)
19
19
  end
20
20
 
21
21
  before do
@@ -37,14 +37,14 @@ module Omnibus
37
37
  expect(project_license).to match /This product bundles private_code 1.7.2,\nwhich is available under a "Unspecified"/
38
38
  expect(project_license).to match /This product bundles snoopy 1.0.0,\nwhich is available under a "GPL v2"/
39
39
  expect(project_license).not_to match /preparation/
40
- expect(project_license).to match /LICENSES\/snoopy-artistic.html/
41
- expect(project_license).to match /LICENSES\/snoopy-NOTICE/
40
+ expect(project_license).to match %r{LICENSES/snoopy-artistic.html}
41
+ expect(project_license).to match %r{LICENSES/snoopy-NOTICE}
42
42
  if zlib_version_override
43
43
  expect(project_license).to match /This product bundles zlib 1.8.0,\nwhich is available under a "Apache-2.0"/
44
- expect(project_license).to match /LICENSES\/zlib-APACHE/
44
+ expect(project_license).to match %r{LICENSES/zlib-APACHE}
45
45
  else
46
46
  expect(project_license).to match /This product bundles zlib 1.7.2,\nwhich is available under a "Zlib"/
47
- expect(project_license).to match /LICENSES\/zlib-LICENSE/
47
+ expect(project_license).to match %r{LICENSES/zlib-LICENSE}
48
48
  end
49
49
  end
50
50
 
@@ -263,7 +263,7 @@ module Omnibus
263
263
  it "should log a warning for the missing file" do
264
264
  output = capture_logging { create_licenses }
265
265
  expect(output).to match(/Retrying failed download/)
266
- expect(output).to match(/Can not download license file 'https:\/\/downloads.chef.io\/LICENSE' for software 'problematic'./)
266
+ expect(output).to match(%r{Can not download license file 'https://downloads.chef.io/LICENSE' for software 'problematic'.})
267
267
  end
268
268
  end
269
269
 
@@ -27,8 +27,7 @@ RSpec.shared_examples "a software" do |name = "chefdk"|
27
27
  install_dir: install_dir,
28
28
  project_dir: project_dir,
29
29
  source: source,
30
- overridden?: false
31
- )
30
+ overridden?: false)
32
31
  end
33
32
 
34
33
  before do
@@ -56,12 +55,12 @@ RSpec.shared_examples "a software" do |name = "chefdk"|
56
55
  FileUtils.mkdir_p(embedded_bin_dir)
57
56
 
58
57
  allow(software).to receive(:with_embedded_path).and_return(
59
- "PATH" => "#{bin_dir}:#{embedded_bin_dir}:#{ENV['PATH']}"
58
+ "PATH" => "#{bin_dir}:#{embedded_bin_dir}:#{ENV["PATH"]}"
60
59
  )
61
60
 
62
61
  allow(software).to receive(:embedded_bin) do |binary|
63
62
  p = File.join(embedded_bin_dir, binary)
64
- p.gsub!(/\//, '\\') if windows?
63
+ p.gsub!(%r{/}, '\\') if windows?
65
64
  p
66
65
  end
67
66
  end
@@ -6,13 +6,13 @@ module Omnibus
6
6
  end
7
7
 
8
8
  def tmp_path
9
- File.expand_path("../../tmp", __FILE__)
9
+ File.expand_path("../tmp", __dir__)
10
10
  end
11
11
 
12
12
  private
13
13
 
14
14
  def fixtures_path
15
- File.expand_path("../../fixtures", __FILE__)
15
+ File.expand_path("../fixtures", __dir__)
16
16
  end
17
17
  end
18
18
  end
@@ -6,8 +6,7 @@ module Omnibus
6
6
  double(Software,
7
7
  name: "chefdk",
8
8
  install_dir: project_dir,
9
- project_dir: project_dir
10
- )
9
+ project_dir: project_dir)
11
10
  end
12
11
 
13
12
  let(:project_dir) { on_windows ? "C:/opscode/chefdk" : "/opt/chefdk" }
@@ -238,7 +237,7 @@ module Omnibus
238
237
  it "appends platform host to the options" do
239
238
  expect(subject).to receive(:command)
240
239
  .with("./configure --build=x86_64-w64-mingw32 --prefix=#{project_dir}/embedded", in_msys_bash: true)
241
- subject.configure()
240
+ subject.configure
242
241
  end
243
242
  end
244
243
 
@@ -254,7 +253,7 @@ module Omnibus
254
253
  it "appends platform host to the options" do
255
254
  expect(subject).to receive(:command)
256
255
  .with("./configure --build=i686-w64-mingw32 --prefix=#{project_dir}/embedded", in_msys_bash: true)
257
- subject.configure()
256
+ subject.configure
258
257
  end
259
258
  end
260
259
 
@@ -305,7 +304,8 @@ module Omnibus
305
304
  .with("config/patches", "good_patch")
306
305
  .and_return(
307
306
  [ ["#{project_dir}/patch_location1/good_patch", "#{project_dir}/patch_location2/good_patch"],
308
- "#{project_dir}/patch_location2/good_patch" ])
307
+ "#{project_dir}/patch_location2/good_patch" ]
308
+ )
309
309
  end
310
310
 
311
311
  it "is a DSL method" do
@@ -355,10 +355,10 @@ module Omnibus
355
355
 
356
356
  let(:software) do
357
357
  double(Software,
358
- name: "chefdk",
359
- install_dir: tmp_dir,
360
- project_dir: tmp_dir,
361
- overridden?: false)
358
+ name: "chefdk",
359
+ install_dir: tmp_dir,
360
+ project_dir: tmp_dir,
361
+ overridden?: false)
362
362
  end
363
363
 
364
364
  let(:before_build_shasum) do