chef 18.8.54 → 18.9.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b200565a19bca36e21bba522b339ae53aedc340acbe2d1f66b187d2b0c2bbed
4
- data.tar.gz: 57a4a650d762784ffa533cffbd6a49af21f296b58b9b50b23e99f125a008b449
3
+ metadata.gz: 8a1de7dd02696d84d680c3851565ec4837ca0275cc4cc153d39bde72eea4f2be
4
+ data.tar.gz: 5e8ac13c389d7e024108b626f935d11c092a120fd857ac5200fc13fafcc1a5d2
5
5
  SHA512:
6
- metadata.gz: ffd6ad0207a74bc4a3cc137d5122f07313b5786f35d79c56c7a375764aaab81c58b949694969bcdc012144557eb16d86c75f9e14b962b08acd4e00b41af5a92c
7
- data.tar.gz: 1bb9911b3f2e96b5985dad10677e741c6cb4ab6eb65a5f35a1397f2e935f74d6a777a53e88e6df7f19e95ec1ec1c3f7d9394db6b465463e62844f1176c40e191
6
+ metadata.gz: cc96321c5e4d51febea1aec696accb358d3219a31e142c00b5c7255501682f98f098de20ae2e720ac9fbb4c13991a3692614262585ed4dde34ce2b2eb7830bb7
7
+ data.tar.gz: 8d35f965f1f382983b098dce2a7302684cd2273523ea03b07a1a66c5183f70bda24bcabfd4056c8c9bc7ca5eeb7c698ed92e70826703e760b5927b4a06af1055
data/chef.gemspec CHANGED
@@ -31,7 +31,6 @@ Gem::Specification.new do |s|
31
31
  s.required_ruby_version = ">= 3.1.0"
32
32
  end
33
33
 
34
- s.add_dependency "activesupport", ">= 4.2.7.1", "<= 7.1.5.2"
35
34
  s.add_dependency "chef-config", "= #{Chef::VERSION}"
36
35
  s.add_dependency "chef-utils", "= #{Chef::VERSION}"
37
36
  s.add_dependency "train-core", "~> 3.13", ">= 3.13.4"
@@ -60,7 +59,7 @@ Gem::Specification.new do |s|
60
59
  s.add_dependency "erubis", "~> 2.7" # template resource / cookbook syntax check
61
60
  s.add_dependency "diff-lcs", ">= 1.2.4", "!= 1.4.0", "< 1.6.0" # 1.4 breaks output. Used in lib/chef/util/diff
62
61
  s.add_dependency "ffi-libarchive", "~> 1.0", ">= 1.0.3" # archive_file resource
63
- s.add_dependency "chef-zero", ">= 15.0.21"
62
+ s.add_dependency "chef-zero", ">= 15.0.21", "< 15.2"
64
63
  s.add_dependency "chef-vault" # chef-vault resources and helpers
65
64
 
66
65
  s.add_dependency "plist", "~> 3.2" # launchd, dscl/mac user, macos_userdefaults, osx_profile and plist resources
@@ -77,15 +77,15 @@ class Chef
77
77
  end
78
78
 
79
79
  def should_update_owner?
80
- if target_uid.nil?
80
+ if (target = target_uid).nil?
81
81
  # the user has not specified a permission on the new resource, so we never manage it with FAC
82
82
  Chef::Log.trace("Found target_uid == nil, so no owner was specified on resource, not managing owner")
83
83
  false
84
- elsif current_uid.nil?
84
+ elsif (current = current_uid).nil?
85
85
  # the user has specified a permission, and we are creating a file, so always enforce permissions
86
86
  Chef::Log.trace("Found current_uid == nil, so we are creating a new file, updating owner")
87
87
  true
88
- elsif target_uid != current_uid
88
+ elsif target != current
89
89
  # the user has specified a permission, and it does not match the file, so fix the permission
90
90
  Chef::Log.trace("Found target_uid != current_uid, updating owner")
91
91
  true
@@ -117,15 +117,16 @@ class Chef
117
117
  end
118
118
 
119
119
  def gid_from_resource(resource)
120
- return nil if resource.nil? || resource.group.nil?
120
+ group = resource&.group
121
+ return nil if group.nil?
121
122
 
122
- if resource.group.is_a?(String)
123
- diminished_radix_complement( Etc.getgrnam(resource.group).gid )
123
+ if group.is_a?(String)
124
+ diminished_radix_complement( Etc.getgrnam(group).gid )
124
125
  elsif resource.group.is_a?(Integer)
125
- resource.group
126
+ group
126
127
  else
127
- Chef::Log.error("The `group` parameter of the #{@resource} resource is set to an invalid value (#{resource.owner.inspect})")
128
- raise ArgumentError, "cannot resolve #{resource.group.inspect} to gid, group must be a string or integer"
128
+ Chef::Log.error("The `group` parameter of the #{@resource} resource is set to an invalid value (#{group.inspect})")
129
+ raise ArgumentError, "cannot resolve #{group.inspect} to gid, group must be a string or integer"
129
130
  end
130
131
  rescue ArgumentError
131
132
  provider.requirements.assert(:create, :create_if_missing, :touch) do |a|
@@ -137,15 +138,15 @@ class Chef
137
138
  end
138
139
 
139
140
  def should_update_group?
140
- if target_gid.nil?
141
+ if (target = target_gid).nil?
141
142
  # the user has not specified a permission on the new resource, so we never manage it with FAC
142
143
  Chef::Log.trace("Found target_gid == nil, so no group was specified on resource, not managing group")
143
144
  false
144
- elsif current_gid.nil?
145
+ elsif (current = current_gid).nil?
145
146
  # the user has specified a permission, and we are creating a file, so always enforce permissions
146
147
  Chef::Log.trace("Found current_gid == nil, so we are creating a new file, updating group")
147
148
  true
148
- elsif target_gid != current_gid
149
+ elsif target != current
149
150
  # the user has specified a permission, and it does not match the file, so fix the permission
150
151
  Chef::Log.trace("Found target_gid != current_gid, updating group")
151
152
  true
@@ -169,9 +170,10 @@ class Chef
169
170
  end
170
171
 
171
172
  def mode_from_resource(res)
172
- return nil if res.nil? || res.mode.nil?
173
+ mode = res&.mode
174
+ return nil if mode.nil?
173
175
 
174
- (res.mode.respond_to?(:oct) ? res.mode.oct : res.mode.to_i) & 007777
176
+ (mode.respond_to?(:oct) ? mode.oct : mode.to_i) & 007777
175
177
  end
176
178
 
177
179
  def target_mode
@@ -187,15 +189,15 @@ class Chef
187
189
  end
188
190
 
189
191
  def should_update_mode?
190
- if target_mode.nil?
192
+ if (target = target_mode).nil?
191
193
  # the user has not specified a permission on the new resource, so we never manage it with FAC
192
194
  Chef::Log.trace("Found target_mode == nil, so no mode was specified on resource, not managing mode")
193
195
  false
194
- elsif current_mode.nil?
196
+ elsif (current = current_mode).nil?
195
197
  # the user has specified a permission, and we are creating a file, so always enforce permissions
196
198
  Chef::Log.trace("Found current_mode == nil, so we are creating a new file, updating mode")
197
199
  true
198
- elsif target_mode != current_mode
200
+ elsif target != current
199
201
  # the user has specified a permission, and it does not match the file, so fix the permission
200
202
  Chef::Log.trace("Found target_mode != current_mode, updating mode")
201
203
  true
@@ -266,15 +268,16 @@ class Chef
266
268
  end
267
269
 
268
270
  def uid_from_resource(resource)
269
- return nil if resource.nil? || resource.owner.nil?
271
+ owner = resource&.owner
272
+ return nil if owner.nil?
270
273
 
271
- if resource.owner.is_a?(String)
272
- diminished_radix_complement( Etc.getpwnam(resource.owner).uid )
273
- elsif resource.owner.is_a?(Integer)
274
- resource.owner
274
+ if owner.is_a?(String)
275
+ diminished_radix_complement( Etc.getpwnam(owner).uid )
276
+ elsif owner.is_a?(Integer)
277
+ owner
275
278
  else
276
- Chef::Log.error("The `owner` parameter of the #{@resource} resource is set to an invalid value (#{resource.owner.inspect})")
277
- raise ArgumentError, "cannot resolve #{resource.owner.inspect} to uid, owner must be a string or integer"
279
+ Chef::Log.error("The `owner` parameter of the #{@resource} resource is set to an invalid value (#{owner.inspect})")
280
+ raise ArgumentError, "cannot resolve #{owner.inspect} to uid, owner must be a string or integer"
278
281
  end
279
282
  rescue ArgumentError
280
283
  provider.requirements.assert(:create, :create_if_missing, :touch) do |a|
@@ -70,32 +70,33 @@ class Chef
70
70
  end
71
71
 
72
72
  def load_current_resource
73
+ new_resource_path = new_resource.path
73
74
  # true if there is a symlink and we need to manage what it points at
74
- @managing_symlink = file_class.symlink?(new_resource.path) && ( new_resource.manage_symlink_source || new_resource.manage_symlink_source.nil? )
75
+ @managing_symlink = file_class.symlink?(new_resource_path) && ( new_resource.manage_symlink_source || new_resource.manage_symlink_source.nil? )
75
76
 
76
77
  # true if there is a non-file thing in the way that we need to unlink first
77
78
  @needs_unlinking =
78
- if ::File.exist?(new_resource.path)
79
+ if ::File.exist?(new_resource_path)
79
80
  if managing_symlink?
80
- !symlink_to_real_file?(new_resource.path)
81
+ !symlink_to_real_file?(new_resource_path)
81
82
  else
82
- !real_file?(new_resource.path)
83
+ !real_file?(new_resource_path)
83
84
  end
84
85
  else
85
86
  false
86
87
  end
87
88
 
88
89
  # true if we are going to be creating a new file
89
- @needs_creating = !::File.exist?(new_resource.path) || needs_unlinking?
90
+ @needs_creating = !::File.exist?(new_resource_path) || needs_unlinking?
90
91
 
91
92
  # Let children resources override constructing the current_resource
92
93
  @current_resource ||= Chef::Resource::File.new(new_resource.name)
93
- current_resource.path(new_resource.path)
94
+ current_resource.path(new_resource_path)
94
95
 
95
96
  unless needs_creating?
96
97
  # we are updating an existing file
97
98
  if managing_content?
98
- logger.trace("#{new_resource} checksumming file at #{new_resource.path}.")
99
+ logger.trace("#{new_resource} checksumming file at #{new_resource_path}.")
99
100
  current_resource.checksum(checksum(current_resource.path))
100
101
  else
101
102
  # if the file does not exist or is not a file, then the checksum is invalid/pointless
data/lib/chef/recipe.rb CHANGED
@@ -83,7 +83,9 @@ class Chef
83
83
  self.source_file = filename
84
84
  if File.file?(filename) && File.readable?(filename)
85
85
  yaml_contents = IO.read(filename)
86
- if ::YAML.load_stream(yaml_contents).length > 1
86
+ # Count document separators instead of using unsafe load_stream
87
+ doc_count = yaml_contents.scan(/^---\s*$/).length
88
+ if doc_count > 1
87
89
  raise ArgumentError, "YAML recipe '#{filename}' contains multiple documents, only one is supported"
88
90
  end
89
91
 
data/lib/chef/version.rb CHANGED
@@ -23,7 +23,7 @@ require_relative "version_string"
23
23
 
24
24
  class Chef
25
25
  CHEF_ROOT = File.expand_path("..", __dir__)
26
- VERSION = Chef::VersionString.new("18.8.54")
26
+ VERSION = Chef::VersionString.new("18.9.4")
27
27
  end
28
28
 
29
29
  #
metadata CHANGED
@@ -1,63 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.8.54
4
+ version: 18.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-11-03 00:00:00.000000000 Z
11
+ date: 2026-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: activesupport
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 4.2.7.1
20
- - - "<="
21
- - !ruby/object:Gem::Version
22
- version: 7.1.5.2
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 4.2.7.1
30
- - - "<="
31
- - !ruby/object:Gem::Version
32
- version: 7.1.5.2
33
13
  - !ruby/object:Gem::Dependency
34
14
  name: chef-config
35
15
  requirement: !ruby/object:Gem::Requirement
36
16
  requirements:
37
17
  - - '='
38
18
  - !ruby/object:Gem::Version
39
- version: 18.8.54
19
+ version: 18.9.4
40
20
  type: :runtime
41
21
  prerelease: false
42
22
  version_requirements: !ruby/object:Gem::Requirement
43
23
  requirements:
44
24
  - - '='
45
25
  - !ruby/object:Gem::Version
46
- version: 18.8.54
26
+ version: 18.9.4
47
27
  - !ruby/object:Gem::Dependency
48
28
  name: chef-utils
49
29
  requirement: !ruby/object:Gem::Requirement
50
30
  requirements:
51
31
  - - '='
52
32
  - !ruby/object:Gem::Version
53
- version: 18.8.54
33
+ version: 18.9.4
54
34
  type: :runtime
55
35
  prerelease: false
56
36
  version_requirements: !ruby/object:Gem::Requirement
57
37
  requirements:
58
38
  - - '='
59
39
  - !ruby/object:Gem::Version
60
- version: 18.8.54
40
+ version: 18.9.4
61
41
  - !ruby/object:Gem::Dependency
62
42
  name: train-core
63
43
  requirement: !ruby/object:Gem::Requirement
@@ -395,6 +375,9 @@ dependencies:
395
375
  - - ">="
396
376
  - !ruby/object:Gem::Version
397
377
  version: 15.0.21
378
+ - - "<"
379
+ - !ruby/object:Gem::Version
380
+ version: '15.2'
398
381
  type: :runtime
399
382
  prerelease: false
400
383
  version_requirements: !ruby/object:Gem::Requirement
@@ -402,6 +385,9 @@ dependencies:
402
385
  - - ">="
403
386
  - !ruby/object:Gem::Version
404
387
  version: 15.0.21
388
+ - - "<"
389
+ - !ruby/object:Gem::Version
390
+ version: '15.2'
405
391
  - !ruby/object:Gem::Dependency
406
392
  name: chef-vault
407
393
  requirement: !ruby/object:Gem::Requirement