chef 17.10.95-universal-mingw32 → 17.10.114-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +5 -4
- data/chef.gemspec +3 -3
- data/lib/chef/client.rb +4 -3
- data/lib/chef/mixin/homebrew_user.rb +15 -5
- data/lib/chef/provider/package/zypper.rb +5 -0
- data/lib/chef/provider/service/windows.rb +1 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +1 -1
- data/lib/chef/resource/homebrew_cask.rb +7 -8
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +5 -5
- data/lib/chef/version.rb +1 -1
- data/spec/functional/resource/zypper_package_spec.rb +10 -0
- data/spec/unit/client_spec.rb +2 -2
- data/spec/unit/mixin/homebrew_user_spec.rb +30 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +1 -1
- metadata +21 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c7be97bfc509a17ef34e5db14410f0ef6776e5d0f7c2b318b5f34f8807b336e
|
4
|
+
data.tar.gz: a89b9d196345735f2541f59f1c814c2029207447afb27c52b619ecdcca1b2e62
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f6857ffc3db30aefad7f17ce04f7540f38ac2bc8dbe505da89e9b9d0a8677c5dedec6876782483de8024db3fcf43ae79619f2a280333f479ee00791a38f6d6c
|
7
|
+
data.tar.gz: 6f5d26697302bf28d520f042f7dfaf044c0e8bea86d267da4180078f544d29dd48d66d0784dfc9586814c59b0a2b449eb20c1b5794ecd8dc7160a6d304da020b
|
data/Gemfile
CHANGED
@@ -17,17 +17,18 @@ end
|
|
17
17
|
|
18
18
|
gem "cheffish", "~> 17.0.0"
|
19
19
|
|
20
|
+
gem "ast", "~> 2.4.2"
|
21
|
+
gem "rubocop-ast", ">= 1.30.0"
|
22
|
+
|
20
23
|
group(:omnibus_package) do
|
21
24
|
gem "appbundler"
|
22
25
|
gem "rb-readline"
|
23
|
-
gem "inspec-core-bin", "
|
26
|
+
gem "inspec-core-bin", "~> 5.22.36" # need to provide the binaries for inspec
|
24
27
|
gem "chef-vault"
|
25
28
|
end
|
26
29
|
|
27
30
|
group(:omnibus_package, :pry) do
|
28
|
-
|
29
|
-
# some work is ongoing? https://github.com/deivid-rodriguez/pry-byebug/issues/343
|
30
|
-
gem "pry", "= 0.13.0"
|
31
|
+
gem "pry", ">= 0.14.1"
|
31
32
|
# byebug does not install on freebsd on ruby 3.0
|
32
33
|
gem "pry-byebug" unless RUBY_PLATFORM.match?(/freebsd/i)
|
33
34
|
gem "pry-stack_explorer"
|
data/chef.gemspec
CHANGED
@@ -36,10 +36,10 @@ Gem::Specification.new do |s|
|
|
36
36
|
s.add_dependency "mixlib-shellout", ">= 3.1.1", "< 4.0"
|
37
37
|
s.add_dependency "mixlib-archive", ">= 0.4", "< 2.0"
|
38
38
|
s.add_dependency "ohai", "~> 17.0"
|
39
|
-
s.add_dependency "inspec-core", "
|
39
|
+
s.add_dependency "inspec-core", "~> 5.22.36"
|
40
40
|
|
41
|
-
s.add_dependency "ffi", "~> 1.15.
|
42
|
-
s.add_dependency "ffi-yajl", "
|
41
|
+
s.add_dependency "ffi", "~> 1.15.5"
|
42
|
+
s.add_dependency "ffi-yajl", ">= 2.2", "< 4.0"
|
43
43
|
s.add_dependency "net-sftp", ">= 2.1.2", "< 5.0" # remote_file resource
|
44
44
|
s.add_dependency "erubis", "~> 2.7" # template resource / cookbook syntax check
|
45
45
|
s.add_dependency "diff-lcs", ">= 1.2.4", "!= 1.4.0", "< 1.6.0" # 1.4 breaks output. Used in lib/chef/util/diff
|
data/lib/chef/client.rb
CHANGED
@@ -330,9 +330,10 @@ class Chef
|
|
330
330
|
new_date = eol_override
|
331
331
|
|
332
332
|
# We make a release every year so take the version you're on + 2006 and you get
|
333
|
-
# the year it goes EOL
|
334
|
-
eol_year = 2006 + Gem::Version.new(Chef::VERSION).segments.first
|
335
|
-
|
333
|
+
# the year it goes EOL. 1/8/2024 - EOL for Chef-17 is now November 1, 2024
|
334
|
+
# eol_year = 2006 + Gem::Version.new(Chef::VERSION).segments.first
|
335
|
+
eol_year = "2024"
|
336
|
+
cut_off_date = !!new_date ? Time.parse(new_date) : Time.new(eol_year, 11, 30)
|
336
337
|
|
337
338
|
return if Time.now < cut_off_date
|
338
339
|
|
@@ -57,18 +57,28 @@ class Chef
|
|
57
57
|
@homebrew_owner_username
|
58
58
|
end
|
59
59
|
|
60
|
+
def homebrew_bin_path(brew_bin_path = nil)
|
61
|
+
if brew_bin_path && ::File.exist?(brew_bin_path)
|
62
|
+
brew_bin_path
|
63
|
+
else
|
64
|
+
[which("brew"), "/opt/homebrew/bin/brew", "/usr/local/bin/brew", "/home/linuxbrew/.linuxbrew/bin/brew"].uniq.select do |x|
|
65
|
+
next if x == false
|
66
|
+
|
67
|
+
::File.exist?(x) && ::File.executable?(x)
|
68
|
+
end.first || nil
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
60
72
|
private
|
61
73
|
|
62
74
|
def calculate_owner
|
63
|
-
|
64
|
-
if
|
75
|
+
brew_path = homebrew_bin_path
|
76
|
+
if brew_path
|
65
77
|
# By default, this follows symlinks which is what we want
|
66
|
-
owner = ::File.stat(default_brew_path).uid
|
67
|
-
elsif (brew_path = shell_out("which brew").stdout.strip) && !brew_path.empty?
|
68
78
|
owner = ::File.stat(brew_path).uid
|
69
79
|
else
|
70
80
|
raise Chef::Exceptions::CannotDetermineHomebrewOwner,
|
71
|
-
'Could not find the "brew" executable
|
81
|
+
'Could not find the "brew" executable anywhere on the path.'
|
72
82
|
end
|
73
83
|
|
74
84
|
Chef::Log.debug "Found Homebrew owner #{Etc.getpwuid(owner).name}; executing `brew` commands as them"
|
@@ -93,6 +93,11 @@ class Chef
|
|
93
93
|
end
|
94
94
|
current_version ||= latest_version if is_installed
|
95
95
|
current_version
|
96
|
+
rescue Mixlib::ShellOut::ShellCommandFailed => e
|
97
|
+
# zypper returns a '104' code if info is called for a non-existent package
|
98
|
+
return nil if e.message =~ /'104'/
|
99
|
+
|
100
|
+
raise
|
96
101
|
end
|
97
102
|
|
98
103
|
def resolve_available_version(package_name, new_version)
|
@@ -74,6 +74,7 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
74
74
|
current_resource.run_as_user(config_info.service_start_name) if config_info.service_start_name
|
75
75
|
current_resource.display_name(config_info.display_name) if config_info.display_name
|
76
76
|
current_resource.delayed_start(current_delayed_start) if current_delayed_start
|
77
|
+
current_resource.description(config_info.description) if new_resource.description
|
77
78
|
end
|
78
79
|
|
79
80
|
current_resource
|
@@ -177,7 +177,7 @@ class Chef
|
|
177
177
|
}
|
178
178
|
|
179
179
|
unit["Service"]["ConditionACPower"] = "true" unless new_resource.run_on_battery
|
180
|
-
unit["Service"]["CPUQuota"] = new_resource.cpu_quota if new_resource.cpu_quota
|
180
|
+
unit["Service"]["CPUQuota"] = "#{new_resource.cpu_quota}%" if new_resource.cpu_quota
|
181
181
|
unit["Service"]["Environment"] = new_resource.environment.collect { |k, v| "\"#{k}=#{v}\"" } unless new_resource.environment.empty?
|
182
182
|
unit
|
183
183
|
end
|
@@ -46,25 +46,24 @@ class Chef
|
|
46
46
|
default: true
|
47
47
|
|
48
48
|
property :homebrew_path, String,
|
49
|
-
description: "The path to the homebrew binary."
|
50
|
-
default: "/usr/local/bin/brew"
|
49
|
+
description: "The path to the homebrew binary."
|
51
50
|
|
52
51
|
property :owner, [String, Integer],
|
53
52
|
description: "The owner of the Homebrew installation.",
|
54
53
|
default: lazy { find_homebrew_username },
|
55
|
-
default_description: "Calculated default username"
|
54
|
+
default_description: "Calculated default username"
|
56
55
|
|
57
56
|
action :install, description: "Install an application that is packaged as a Homebrew cask." do
|
58
57
|
if new_resource.install_cask
|
59
58
|
homebrew_tap "homebrew/cask" do
|
60
|
-
homebrew_path new_resource.homebrew_path
|
59
|
+
homebrew_path homebrew_bin_path(new_resource.homebrew_path)
|
61
60
|
owner new_resource.owner
|
62
61
|
end
|
63
62
|
end
|
64
63
|
|
65
64
|
unless casked?
|
66
65
|
converge_by("install cask #{new_resource.cask_name} #{new_resource.options}") do
|
67
|
-
shell_out!("#{new_resource.homebrew_path} install --cask #{new_resource.cask_name} #{new_resource.options}",
|
66
|
+
shell_out!("#{homebrew_bin_path(new_resource.homebrew_path)} install --cask #{new_resource.cask_name} #{new_resource.options}",
|
68
67
|
user: new_resource.owner,
|
69
68
|
env: { "HOME" => ::Dir.home(new_resource.owner), "USER" => new_resource.owner },
|
70
69
|
cwd: ::Dir.home(new_resource.owner))
|
@@ -75,14 +74,14 @@ class Chef
|
|
75
74
|
action :remove, description: "Remove an application that is packaged as a Homebrew cask." do
|
76
75
|
if new_resource.install_cask
|
77
76
|
homebrew_tap "homebrew/cask" do
|
78
|
-
homebrew_path new_resource.homebrew_path
|
77
|
+
homebrew_path homebrew_bin_path(new_resource.homebrew_path)
|
79
78
|
owner new_resource.owner
|
80
79
|
end
|
81
80
|
end
|
82
81
|
|
83
82
|
if casked?
|
84
83
|
converge_by("uninstall cask #{new_resource.cask_name}") do
|
85
|
-
shell_out!("#{new_resource.homebrew_path} uninstall --cask #{new_resource.cask_name}",
|
84
|
+
shell_out!("#{homebrew_bin_path(new_resource.homebrew_path)} uninstall --cask #{new_resource.cask_name}",
|
86
85
|
user: new_resource.owner,
|
87
86
|
env: { "HOME" => ::Dir.home(new_resource.owner), "USER" => new_resource.owner },
|
88
87
|
cwd: ::Dir.home(new_resource.owner))
|
@@ -100,7 +99,7 @@ class Chef
|
|
100
99
|
# @return [Boolean]
|
101
100
|
def casked?
|
102
101
|
unscoped_name = new_resource.cask_name.split("/").last
|
103
|
-
shell_out!("#{new_resource.homebrew_path} list --cask 2>/dev/null",
|
102
|
+
shell_out!("#{homebrew_bin_path(new_resource.homebrew_path)} list --cask 2>/dev/null",
|
104
103
|
user: new_resource.owner,
|
105
104
|
env: { "HOME" => ::Dir.home(new_resource.owner), "USER" => new_resource.owner },
|
106
105
|
cwd: ::Dir.home(new_resource.owner)).stdout.split.include?(unscoped_name)
|
@@ -62,7 +62,7 @@ class Chef
|
|
62
62
|
DOC
|
63
63
|
|
64
64
|
property :homebrew_user, [ String, Integer ],
|
65
|
-
description: "The name or uid of the Homebrew owner to be used by #{ChefUtils::Dist::Infra::PRODUCT} when executing a command.\n\n#{ChefUtils::Dist::Infra::PRODUCT}, by default, will attempt to execute a Homebrew command as the owner of the `/usr/local/bin/brew` executable. If that executable does not exist, #{ChefUtils::Dist::Infra::PRODUCT} will attempt to find the user by executing `which brew`. If that executable cannot be found, #{ChefUtils::Dist::Infra::PRODUCT} will print an error message: `Could not find the 'brew' executable in /usr/local/bin or anywhere on the path.`.\n\nSet this property to specify the Homebrew owner for situations where Chef Infra Client cannot automatically detect the correct owner.'"
|
65
|
+
description: "The name or uid of the Homebrew owner to be used by #{ChefUtils::Dist::Infra::PRODUCT} when executing a command.\n\n#{ChefUtils::Dist::Infra::PRODUCT}, by default, will attempt to execute a Homebrew command as the owner of the `/usr/local/bin/brew` executable on x86_64 machines or `/opt/homebrew/bin/brew` executable on arm64 machines. If that executable does not exist, #{ChefUtils::Dist::Infra::PRODUCT} will attempt to find the user by executing `which brew`. If that executable cannot be found, #{ChefUtils::Dist::Infra::PRODUCT} will print an error message: `Could not find the 'brew' executable in /usr/local/bin, /opt/homebrew/bin, or anywhere on the path.`.\n\nSet this property to specify the Homebrew owner for situations where Chef Infra Client cannot automatically detect the correct owner.'"
|
66
66
|
|
67
67
|
end
|
68
68
|
end
|
@@ -42,8 +42,7 @@ class Chef
|
|
42
42
|
description: "The URL of the tap."
|
43
43
|
|
44
44
|
property :homebrew_path, String,
|
45
|
-
description: "The path to the Homebrew binary."
|
46
|
-
default: "/usr/local/bin/brew"
|
45
|
+
description: "The path to the Homebrew binary."
|
47
46
|
|
48
47
|
property :owner, String,
|
49
48
|
description: "The owner of the Homebrew installation.",
|
@@ -53,7 +52,7 @@ class Chef
|
|
53
52
|
action :tap, description: "Add a Homebrew tap." do
|
54
53
|
unless tapped?(new_resource.tap_name)
|
55
54
|
converge_by("tap #{new_resource.tap_name}") do
|
56
|
-
shell_out!("#{new_resource.homebrew_path} tap #{new_resource.tap_name} #{new_resource.url || ""}",
|
55
|
+
shell_out!("#{homebrew_bin_path(new_resource.homebrew_path)} tap #{new_resource.tap_name} #{new_resource.url || ""}",
|
57
56
|
user: new_resource.owner,
|
58
57
|
env: { "HOME" => ::Dir.home(new_resource.owner), "USER" => new_resource.owner },
|
59
58
|
cwd: ::Dir.home(new_resource.owner))
|
@@ -64,7 +63,7 @@ class Chef
|
|
64
63
|
action :untap, description: "Remove a Homebrew tap." do
|
65
64
|
if tapped?(new_resource.tap_name)
|
66
65
|
converge_by("untap #{new_resource.tap_name}") do
|
67
|
-
shell_out!("#{new_resource.homebrew_path} untap #{new_resource.tap_name}",
|
66
|
+
shell_out!("#{homebrew_bin_path(new_resource.homebrew_path)} untap #{new_resource.tap_name}",
|
68
67
|
user: new_resource.owner,
|
69
68
|
env: { "HOME" => ::Dir.home(new_resource.owner), "USER" => new_resource.owner },
|
70
69
|
cwd: ::Dir.home(new_resource.owner))
|
@@ -76,8 +75,9 @@ class Chef
|
|
76
75
|
#
|
77
76
|
# @return [Boolean]
|
78
77
|
def tapped?(name)
|
78
|
+
base_path = ["#{::File.dirname(which("brew"))}/../homebrew", "#{::File.dirname(which("brew"))}/../Homebrew", "/opt/homebrew", "/usr/local/Homebrew", "/home/linuxbrew/.linuxbrew"].uniq.select { |x| Dir.exist?(x) }.first
|
79
79
|
tap_dir = name.gsub("/", "/homebrew-")
|
80
|
-
::File.directory?("/
|
80
|
+
::File.directory?("#{base_path}/Library/Taps/#{tap_dir}")
|
81
81
|
end
|
82
82
|
end
|
83
83
|
end
|
data/lib/chef/version.rb
CHANGED
@@ -177,6 +177,15 @@ describe Chef::Resource::ZypperPackage, :requires_root, :suse_only do
|
|
177
177
|
expect(zypper_package.updated_by_last_action?).to be true
|
178
178
|
expect(shell_out("rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' chef_rpm").stdout.chomp).to match("^package chef_rpm is not installed$")
|
179
179
|
end
|
180
|
+
|
181
|
+
context "Package doesn't exist" do
|
182
|
+
let(:package_name) { "nonexistent_repo" }
|
183
|
+
it "does nothing if the package is not installed" do
|
184
|
+
zypper_package.run_action(:remove)
|
185
|
+
expect(zypper_package.updated_by_last_action?).to be false
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
180
189
|
end
|
181
190
|
|
182
191
|
context "with no available version" do
|
@@ -247,6 +256,7 @@ describe Chef::Resource::ZypperPackage, :requires_root, :suse_only do
|
|
247
256
|
expect(shell_out("zypper locks | grep chef_rpm_provides").stdout.chomp).not_to match("chef_rpm_provides")
|
248
257
|
end
|
249
258
|
end
|
259
|
+
|
250
260
|
def remove_package
|
251
261
|
pkg_to_remove = Chef::Resource::ZypperPackage.new(package_name, run_context)
|
252
262
|
pkg_to_remove.run_action(:remove)
|
data/spec/unit/client_spec.rb
CHANGED
@@ -313,9 +313,9 @@ describe Chef::Client do
|
|
313
313
|
stub_const("Chef::VERSION", 15)
|
314
314
|
# added a call to client because Time.now gets invoked multiple times during instantiation. Don't mock Time until after client initialized
|
315
315
|
client
|
316
|
-
expect(Time).to receive(:now).and_return(Time.new(
|
316
|
+
expect(Time).to receive(:now).and_return(Time.new(2024, 12, 1, 5))
|
317
317
|
allow(client).to receive(:eol_override).and_return(false)
|
318
|
-
expect(logger).to receive(:warn).with("This release of Chef Infra Client became end of life (EOL) on
|
318
|
+
expect(logger).to receive(:warn).with("This release of Chef Infra Client became end of life (EOL) on Nov 30, 2024. Please update to a supported release to receive new features, bug fixes, and security updates.")
|
319
319
|
client.warn_if_eol
|
320
320
|
end
|
321
321
|
|
@@ -47,6 +47,8 @@ describe Chef::Mixin::HomebrewUser do
|
|
47
47
|
let(:user) { nil }
|
48
48
|
let(:brew_owner) { 2001 }
|
49
49
|
let(:default_brew_path) { "/usr/local/bin/brew" }
|
50
|
+
let(:default_brew_path_arm) { "/opt/homebrew/bin/brew" }
|
51
|
+
let(:default_brew_path_linux) { "/home/linuxbrew/.linuxbrew/bin/brew" }
|
50
52
|
let(:stat_double) do
|
51
53
|
d = double
|
52
54
|
expect(d).to receive(:uid).and_return(brew_owner)
|
@@ -59,16 +61,38 @@ describe Chef::Mixin::HomebrewUser do
|
|
59
61
|
expect(Etc).to receive(:getpwuid).with(brew_owner).and_return(OpenStruct.new(name: "name"))
|
60
62
|
end
|
61
63
|
|
62
|
-
|
63
|
-
|
64
|
-
|
64
|
+
def false_unless_specific_value(object, method, value)
|
65
|
+
allow(object).to receive(method).and_return(false)
|
66
|
+
allow(object).to receive(method).with(value).and_return(true)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "returns the owner of the brew executable when it is at a default location for x86_64 machines" do
|
70
|
+
false_unless_specific_value(File, :exist?, default_brew_path)
|
71
|
+
false_unless_specific_value(File, :executable?, default_brew_path)
|
72
|
+
allow(File).to receive(:stat).with(default_brew_path).and_return(stat_double)
|
73
|
+
expect(homebrew_user.find_homebrew_uid(user)).to eq(brew_owner)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "returns the owner of the brew executable when it is at a default location for arm machines" do
|
77
|
+
false_unless_specific_value(File, :exist?, default_brew_path_arm)
|
78
|
+
false_unless_specific_value(File, :executable?, default_brew_path_arm)
|
79
|
+
allow(File).to receive(:stat).with(default_brew_path_arm).and_return(stat_double)
|
80
|
+
expect(homebrew_user.find_homebrew_uid(user)).to eq(brew_owner)
|
81
|
+
end
|
82
|
+
|
83
|
+
it "returns the owner of the brew executable when it is at a default location for linux machines" do
|
84
|
+
false_unless_specific_value(File, :exist?, default_brew_path_linux)
|
85
|
+
false_unless_specific_value(File, :executable?, default_brew_path_linux)
|
86
|
+
allow(File).to receive(:stat).with(default_brew_path_linux).and_return(stat_double)
|
65
87
|
expect(homebrew_user.find_homebrew_uid(user)).to eq(brew_owner)
|
66
88
|
end
|
67
89
|
|
68
90
|
it "returns the owner of the brew executable when it is not at a default location" do
|
69
|
-
|
91
|
+
allow_any_instance_of(ExampleHomebrewUser).to receive(:which).and_return("/foo")
|
92
|
+
false_unless_specific_value(File, :exist?, "/foo")
|
93
|
+
false_unless_specific_value(File, :executable?, "/foo")
|
70
94
|
allow(homebrew_user).to receive_message_chain(:shell_out, :stdout, :strip).and_return("/foo")
|
71
|
-
|
95
|
+
allow(File).to receive(:stat).with("/foo").and_return(stat_double)
|
72
96
|
expect(homebrew_user.find_homebrew_uid(user)).to eq(brew_owner)
|
73
97
|
end
|
74
98
|
|
@@ -78,8 +102,7 @@ describe Chef::Mixin::HomebrewUser do
|
|
78
102
|
describe "when the homebrew user is not provided" do
|
79
103
|
|
80
104
|
it "raises an error if no executable is found" do
|
81
|
-
expect(File).to receive(:exist?).
|
82
|
-
allow(homebrew_user).to receive_message_chain(:shell_out, :stdout, :strip).and_return("")
|
105
|
+
expect(File).to receive(:exist?).and_return(nil).at_least(:once)
|
83
106
|
expect { homebrew_user.find_homebrew_uid(user) }.to raise_error(Chef::Exceptions::CannotDetermineHomebrewOwner)
|
84
107
|
end
|
85
108
|
|
@@ -102,7 +102,7 @@ describe Chef::Resource::ChefClientSystemdTimer do
|
|
102
102
|
|
103
103
|
it "sets CPUQuota if cpu_quota property is set" do
|
104
104
|
resource.cpu_quota 50
|
105
|
-
expect(provider.service_content["Service"]["CPUQuota"]).to eq(50)
|
105
|
+
expect(provider.service_content["Service"]["CPUQuota"]).to eq("50%")
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 17.10.
|
4
|
+
version: 17.10.114
|
5
5
|
platform: universal-mingw32
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-config
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 17.10.
|
19
|
+
version: 17.10.114
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 17.10.
|
26
|
+
version: 17.10.114
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: chef-utils
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 17.10.
|
33
|
+
version: 17.10.114
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 17.10.
|
40
|
+
version: 17.10.114
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: train-core
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -204,44 +204,50 @@ dependencies:
|
|
204
204
|
name: inspec-core
|
205
205
|
requirement: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
|
-
- - "
|
207
|
+
- - "~>"
|
208
208
|
- !ruby/object:Gem::Version
|
209
|
-
version:
|
209
|
+
version: 5.22.36
|
210
210
|
type: :runtime
|
211
211
|
prerelease: false
|
212
212
|
version_requirements: !ruby/object:Gem::Requirement
|
213
213
|
requirements:
|
214
|
-
- - "
|
214
|
+
- - "~>"
|
215
215
|
- !ruby/object:Gem::Version
|
216
|
-
version:
|
216
|
+
version: 5.22.36
|
217
217
|
- !ruby/object:Gem::Dependency
|
218
218
|
name: ffi
|
219
219
|
requirement: !ruby/object:Gem::Requirement
|
220
220
|
requirements:
|
221
221
|
- - "~>"
|
222
222
|
- !ruby/object:Gem::Version
|
223
|
-
version: 1.15.
|
223
|
+
version: 1.15.5
|
224
224
|
type: :runtime
|
225
225
|
prerelease: false
|
226
226
|
version_requirements: !ruby/object:Gem::Requirement
|
227
227
|
requirements:
|
228
228
|
- - "~>"
|
229
229
|
- !ruby/object:Gem::Version
|
230
|
-
version: 1.15.
|
230
|
+
version: 1.15.5
|
231
231
|
- !ruby/object:Gem::Dependency
|
232
232
|
name: ffi-yajl
|
233
233
|
requirement: !ruby/object:Gem::Requirement
|
234
234
|
requirements:
|
235
|
-
- - "
|
235
|
+
- - ">="
|
236
236
|
- !ruby/object:Gem::Version
|
237
237
|
version: '2.2'
|
238
|
+
- - "<"
|
239
|
+
- !ruby/object:Gem::Version
|
240
|
+
version: '4.0'
|
238
241
|
type: :runtime
|
239
242
|
prerelease: false
|
240
243
|
version_requirements: !ruby/object:Gem::Requirement
|
241
244
|
requirements:
|
242
|
-
- - "
|
245
|
+
- - ">="
|
243
246
|
- !ruby/object:Gem::Version
|
244
247
|
version: '2.2'
|
248
|
+
- - "<"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '4.0'
|
245
251
|
- !ruby/object:Gem::Dependency
|
246
252
|
name: net-sftp
|
247
253
|
requirement: !ruby/object:Gem::Requirement
|
@@ -3181,7 +3187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
3181
3187
|
- !ruby/object:Gem::Version
|
3182
3188
|
version: '0'
|
3183
3189
|
requirements: []
|
3184
|
-
rubygems_version: 3.2.
|
3190
|
+
rubygems_version: 3.2.32
|
3185
3191
|
signing_key:
|
3186
3192
|
specification_version: 4
|
3187
3193
|
summary: A systems integration framework, built to bring the benefits of configuration
|