omnibus 6.1.7 → 8.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -4
- data/README.md +54 -12
- data/Rakefile +1 -1
- data/bin/omnibus +1 -1
- data/lib/omnibus.rb +2 -2
- data/lib/omnibus/build_version.rb +1 -1
- data/lib/omnibus/build_version_dsl.rb +6 -7
- data/lib/omnibus/builder.rb +10 -9
- data/lib/omnibus/changelog_printer.rb +7 -4
- data/lib/omnibus/cleaner.rb +4 -1
- data/lib/omnibus/cli.rb +2 -2
- data/lib/omnibus/cli/changelog.rb +25 -25
- data/lib/omnibus/compressor.rb +2 -2
- data/lib/omnibus/compressors/base.rb +2 -2
- data/lib/omnibus/compressors/dmg.rb +8 -6
- data/lib/omnibus/compressors/tgz.rb +2 -2
- data/lib/omnibus/config.rb +13 -3
- data/lib/omnibus/core_extensions/open_uri.rb +1 -1
- data/lib/omnibus/digestable.rb +2 -2
- data/lib/omnibus/download_helpers.rb +6 -2
- data/lib/omnibus/fetchers/file_fetcher.rb +1 -1
- data/lib/omnibus/fetchers/git_fetcher.rb +1 -0
- data/lib/omnibus/fetchers/net_fetcher.rb +3 -4
- data/lib/omnibus/fetchers/path_fetcher.rb +1 -1
- data/lib/omnibus/file_syncer.rb +1 -1
- data/lib/omnibus/generator.rb +2 -2
- data/lib/omnibus/generator_files/README.md.erb +20 -16
- data/lib/omnibus/generator_files/config/software/preparation.rb.erb +1 -1
- data/lib/omnibus/generator_files/omnibus.rb.erb +5 -4
- data/lib/omnibus/git_cache.rb +2 -2
- data/lib/omnibus/health_check.rb +3 -1
- data/lib/omnibus/licensing.rb +5 -6
- data/lib/omnibus/logger.rb +3 -2
- data/lib/omnibus/manifest.rb +2 -2
- data/lib/omnibus/metadata.rb +2 -2
- data/lib/omnibus/ohai.rb +1 -1
- data/lib/omnibus/package.rb +1 -1
- data/lib/omnibus/packager.rb +6 -14
- data/lib/omnibus/packagers/appx.rb +1 -2
- data/lib/omnibus/packagers/base.rb +2 -1
- data/lib/omnibus/packagers/bff.rb +6 -8
- data/lib/omnibus/packagers/deb.rb +7 -10
- data/lib/omnibus/packagers/ips.rb +3 -6
- data/lib/omnibus/packagers/makeself.rb +1 -2
- data/lib/omnibus/packagers/msi.rb +13 -12
- data/lib/omnibus/packagers/pkg.rb +125 -9
- data/lib/omnibus/packagers/rpm.rb +11 -12
- data/lib/omnibus/packagers/solaris.rb +5 -5
- data/lib/omnibus/packagers/windows_base.rb +7 -6
- data/lib/omnibus/project.rb +3 -2
- data/lib/omnibus/publisher.rb +2 -2
- data/lib/omnibus/publishers/artifactory_publisher.rb +2 -2
- data/lib/omnibus/publishers/s3_publisher.rb +6 -4
- data/lib/omnibus/s3_cache.rb +4 -2
- data/lib/omnibus/s3_helpers.rb +7 -7
- data/lib/omnibus/software.rb +68 -43
- data/lib/omnibus/sugarable.rb +5 -14
- data/lib/omnibus/templating.rb +2 -2
- data/lib/omnibus/thread_pool.rb +0 -2
- data/lib/omnibus/util.rb +4 -3
- data/lib/omnibus/version.rb +1 -1
- data/lib/omnibus/whitelist.rb +24 -1
- data/omnibus.gemspec +8 -9
- data/resources/ips/doc-transform.erb +1 -0
- data/resources/msi/CustomActionFastMsi.CA.dll +0 -0
- data/resources/msi/source.wxs.erb +2 -10
- data/resources/rpm/signing.erb +7 -10
- data/spec/functional/builder_spec.rb +2 -1
- data/spec/functional/fetchers/file_fetcher_spec.rb +4 -4
- data/spec/functional/fetchers/git_fetcher_spec.rb +4 -4
- data/spec/functional/fetchers/net_fetcher_spec.rb +5 -6
- data/spec/functional/fetchers/path_fetcher_spec.rb +4 -4
- data/spec/functional/licensing_spec.rb +5 -5
- data/spec/support/examples.rb +3 -4
- data/spec/support/path_helpers.rb +2 -2
- data/spec/unit/builder_spec.rb +9 -9
- data/spec/unit/changelogprinter_spec.rb +8 -6
- data/spec/unit/compressor_spec.rb +4 -4
- data/spec/unit/compressors/dmg_spec.rb +5 -2
- data/spec/unit/fetchers/net_fetcher_spec.rb +16 -17
- data/spec/unit/health_check_spec.rb +2 -6
- data/spec/unit/library_spec.rb +2 -1
- data/spec/unit/manifest_diff_spec.rb +2 -2
- data/spec/unit/manifest_spec.rb +1 -1
- data/spec/unit/metadata_spec.rb +14 -17
- data/spec/unit/omnibus_spec.rb +1 -1
- data/spec/unit/packager_spec.rb +6 -13
- data/spec/unit/packagers/bff_spec.rb +2 -2
- data/spec/unit/packagers/ips_spec.rb +1 -0
- data/spec/unit/packagers/msi_spec.rb +2 -2
- data/spec/unit/packagers/pkg_spec.rb +354 -0
- data/spec/unit/packagers/pkgsrc_spec.rb +1 -1
- data/spec/unit/packagers/rpm_spec.rb +5 -5
- data/spec/unit/packagers/solaris_spec.rb +7 -7
- data/spec/unit/project_spec.rb +7 -7
- data/spec/unit/publisher_spec.rb +1 -2
- data/spec/unit/publishers/artifactory_publisher_spec.rb +2 -4
- data/spec/unit/publishers/s3_publisher_spec.rb +2 -4
- data/spec/unit/s3_cacher_spec.rb +19 -6
- data/spec/unit/s3_helpers_spec.rb +22 -3
- data/spec/unit/software_spec.rb +59 -120
- data/spec/unit/util_spec.rb +1 -2
- metadata +21 -21
data/lib/omnibus/sugarable.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright 2014-
|
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
|
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,
|
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,
|
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
|
-
|
32
|
+
ChefUtils.instance_methods.each do |instance_method|
|
42
33
|
base.send(:expose, instance_method)
|
43
34
|
end
|
44
35
|
|
data/lib/omnibus/templating.rb
CHANGED
@@ -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
|
data/lib/omnibus/thread_pool.rb
CHANGED
data/lib/omnibus/util.rb
CHANGED
@@ -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.
|
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(
|
200
|
+
path = path.sub(%r{^([A-Za-z]):/}, "/\\1/") if ENV["MSYSTEM"]
|
200
201
|
path
|
201
202
|
end
|
202
203
|
|
data/lib/omnibus/version.rb
CHANGED
data/lib/omnibus/whitelist.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
# Copyright 2012-
|
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/,
|
data/omnibus.gemspec
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
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.
|
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(
|
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-
|
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", ">=
|
28
|
+
gem.add_dependency "ohai", ">= 15"
|
30
29
|
gem.add_dependency "ruby-progressbar", "~> 1.7"
|
31
|
-
gem.add_dependency "thor", "
|
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", "=
|
40
|
-
gem.add_development_dependency "fauxhai",
|
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"
|
Binary file
|
@@ -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
|
|
data/resources/rpm/signing.erb
CHANGED
@@ -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
|
-
|
17
|
-
|
18
|
-
|
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
|
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!(
|
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
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
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
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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 /
|
41
|
-
expect(project_license).to match /
|
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 /
|
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 /
|
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(
|
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
|
|
data/spec/support/examples.rb
CHANGED
@@ -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[
|
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!(
|
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("
|
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("
|
15
|
+
File.expand_path("../fixtures", __dir__)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
data/spec/unit/builder_spec.rb
CHANGED
@@ -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
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
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
|