berkshelf 8.0.9 → 8.0.21

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: 80b38fc167aeaac8e33a0219cc4ada1bf3e1614a5553294cabfdc7460c5f56b6
4
- data.tar.gz: 4f642360c7e11c3946c8463cd422dd2279a27f3bcf6512481183dd55e98613d8
3
+ metadata.gz: f70d01359005c084d1481b29aa447f541456420f8d5b0050efc391978dd5b646
4
+ data.tar.gz: 47a1fcb983563b5b75c7bfe44abf111284129b4463d06d3d32881210df310f12
5
5
  SHA512:
6
- metadata.gz: 452b88f63d021f69c75c196f3bd39e1e4f4595e208d75b1f88bc190964c79d05ce8fabc03726884d22396072c00c63fd8423194b495054e96c46cc9439d11bc7
7
- data.tar.gz: d05010ba4e991b5300b1bda01f1efc73f797e1f85af0666095ff633524f1e3ec54ab650a0ecb81bd59402fd100f6249af7e7fa31f36d526192d88212b32ac5fa
6
+ metadata.gz: b36dc3abfbde5d769ae5d2310e9a13738baff867e343f8fb560d649962564a9451689f2a4b3e3dff396e3de427968b78e98fad3bf466f2cc3fc6d721074e69f3
7
+ data.tar.gz: 2f788eb2b9ddbb243fef2c1f8e51ae7d9e5e57b4b1d3aec767d97822f50058dd63a792326977190a9a3d147b8847979fca2902411f1dc37d46d34ac0deb7f8c5
data/Gemfile CHANGED
@@ -8,6 +8,7 @@ end
8
8
 
9
9
  group :development do
10
10
  gem "aruba", "~> 0.10" # Stay below 1 until aruba/in_process monkeypatching stops
11
+ gem "debug"
11
12
  gem "cucumber", "< 4.0" # until we identify what is generating the ~@no_run tag in CI
12
13
  gem "cucumber-expressions", "= 5.0.13"
13
14
  gem "chef-zero", ">= 4.0"
@@ -20,6 +21,9 @@ group :development do
20
21
  gem "chefstyle"
21
22
  end
22
23
 
24
+ gem "appbundler"
25
+
26
+
23
27
  instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
24
28
 
25
29
  # If you want to load debugging tools into the bundle exec sandbox,
data/berkshelf.gemspec CHANGED
@@ -33,20 +33,36 @@ Gem::Specification.new do |s|
33
33
  "changelog_uri" => "https://github.com/chef/berkshelf/blob/main/CHANGELOG.md",
34
34
  }
35
35
 
36
+ ruby_version = Gem::Version.new(RUBY_VERSION)
37
+
36
38
  s.add_dependency "mixlib-shellout", ">= 2.0", "< 4.0"
37
- s.add_dependency "cleanroom", "~> 1.0"
38
- s.add_dependency "minitar", ">= 0.6"
39
+
40
+ s.add_dependency "chef-cleanroom", "~> 1.0"
41
+
42
+ if ruby_version >= Gem::Version.new("3.1.0")
43
+ s.add_dependency "minitar", "~> 1.0"
44
+ s.add_dependency "chef", ">= 18.0.0"
45
+ else
46
+ s.add_dependency "minitar", "~> 0.12"
47
+
48
+ if ruby_version >= Gem::Version.new("3.0.0")
49
+ s.add_dependency "chef", "~> 17.0" # needed for --skip-syntax-check
50
+ else
51
+ s.add_dependency "chef", ">= 15.7.32"
52
+ end
53
+ end
54
+
39
55
  s.add_dependency "retryable", ">= 2.0", "< 4.0"
40
56
  s.add_dependency "solve", "~> 4.0"
41
- s.add_dependency "thor", ">= 0.20"
42
- s.add_dependency "octokit", "~> 4.0"
57
+
58
+ s.add_dependency "thor", ">= 0.20", "< 1.3.0"
59
+ s.add_dependency "octokit", ">= 4.0", "< 6.0"
60
+
43
61
  s.add_dependency "mixlib-archive", ">= 1.1.4", "< 2.0" # needed for ruby 3.0 / Dir.chdir removal
44
62
  s.add_dependency "concurrent-ruby", "~> 1.0"
45
- if RUBY_VERSION.match?(/3.0/)
46
- s.add_dependency "chef", "~> 17.0" # needed for --skip-syntax-check
47
- elsif
48
- s.add_dependency "chef", ">= 15.7.32"
49
- end
63
+
64
+ s.add_dependency "ffi", "~> 1.9", "< 1.16.0" #
65
+
50
66
  s.add_dependency "chef-config"
51
67
  # this is required for Mixlib::Config#from_json
52
68
  s.add_dependency "mixlib-config", ">= 2.2.5"
@@ -39,11 +39,11 @@ module Berkshelf
39
39
  def is_gzip_file(path)
40
40
  # You cannot write "\x1F\x8B" because the default encoding of
41
41
  # ruby >= 1.9.3 is UTF-8 and 8B is an invalid in UTF-8.
42
- IO.binread(path, 2) == [0x1F, 0x8B].pack("C*")
42
+ File.binread(path, 2) == [0x1F, 0x8B].pack("C*")
43
43
  end
44
44
 
45
45
  def is_tar_file(path)
46
- IO.binread(path, 8, 257).to_s == "ustar\x0000"
46
+ File.binread(path, 8, 257).to_s == "ustar\x0000"
47
47
  end
48
48
  end
49
49
 
@@ -152,7 +152,12 @@ module Berkshelf
152
152
  unpack_dir = Pathname.new(tmp_dir) + "#{name}-#{version}"
153
153
 
154
154
  url = remote_cookbook.location_path
155
- URI.open(url, "rb") do |remote_file|
155
+ begin
156
+ uri = URI.parse(url)
157
+ rescue URI::InvalidURIError
158
+ raise "Invalid URI: #{url}"
159
+ end
160
+ uri.open("rb") do |remote_file|
156
161
  archive_path.open("wb") { |local_file| local_file.write remote_file.read }
157
162
  end
158
163
 
@@ -186,7 +191,7 @@ module Berkshelf
186
191
  resp = connection.get(cookbook_uri.request_uri + "&private_token=" + options["private_token"])
187
192
  return nil unless resp.status == 200
188
193
 
189
- open(archive_path, "wb") { |file| file.write(resp.body) }
194
+ File.open(archive_path, "wb") { |file| file.write(resp.body) }
190
195
 
191
196
  Mixlib::Archive.new(archive_path).extract(unpack_dir)
192
197
 
@@ -1,4 +1,4 @@
1
- require "archive/tar/minitar"
1
+ require "minitar"
2
2
  require "find" unless defined?(Find)
3
3
  require "zlib" unless defined?(Zlib)
4
4
 
@@ -47,7 +47,7 @@ module Berkshelf
47
47
  Find.find(source) do |entry|
48
48
  next if source == entry
49
49
 
50
- Archive::Tar::Minitar.pack_file(entry, tar)
50
+ Minitar.pack_file(entry, tar)
51
51
  end
52
52
  ensure
53
53
  tar.close
@@ -79,12 +79,12 @@ module Berkshelf
79
79
  # @return [String]
80
80
  attr_reader :filename
81
81
 
82
- # A private decorator for Archive::Tar::Minitar::Writer that
82
+ # A private decorator for Minitar::Writer that
83
83
  # turns absolute paths into relative ones.
84
84
  class RelativeTarWriter < SimpleDelegator # :nodoc:
85
85
  def initialize(io, base_path)
86
86
  @base_path = Pathname.new(base_path)
87
- super(Archive::Tar::Minitar::Writer.new(io))
87
+ super(Minitar::Writer.new(io))
88
88
  end
89
89
 
90
90
  %w{add_file add_file_simple mkdir}.each do |method|
@@ -30,7 +30,7 @@ module Berkshelf
30
30
 
31
31
  def set_custom_certs
32
32
  ::Dir.glob("#{trusted_certs_dir}/{*.crt,*.pem}").each do |cert|
33
- cert = OpenSSL::X509::Certificate.new(IO.read(cert))
33
+ cert = OpenSSL::X509::Certificate.new(File.read(cert))
34
34
  add_trusted_cert(cert)
35
35
  end
36
36
  end
@@ -1,3 +1,3 @@
1
1
  module Berkshelf
2
- VERSION = "8.0.9".freeze
2
+ VERSION = "8.0.21".freeze
3
3
  end
@@ -43,7 +43,7 @@ describe Berkshelf::CachedCookbook do
43
43
  describe "::checksum" do
44
44
  it "returns a checksum of the given filepath" do
45
45
  path = fixtures_path.join("cookbooks", "example_cookbook-0.5.0", "README.md")
46
- expected_md5 = if IO.binread(path).include?("\r\n")
46
+ expected_md5 = if File.binread(path).include?("\r\n")
47
47
  # On windows, with git configured for auto crlf
48
48
  "2414583f86c9eb68bdbb0be391939341"
49
49
  else
@@ -15,7 +15,7 @@ module Berkshelf
15
15
 
16
16
  let(:graph) { double(Lockfile::Graph, locks: {}) }
17
17
  let(:self_signed_crt_path) { File.join(BERKS_SPEC_DATA, "trusted_certs") }
18
- let(:self_signed_crt) { OpenSSL::X509::Certificate.new(IO.read("#{self_signed_crt_path}/example.crt")) }
18
+ let(:self_signed_crt) { OpenSSL::X509::Certificate.new(File.read("#{self_signed_crt_path}/example.crt")) }
19
19
  let(:cert_store) { OpenSSL::X509::Store.new.add_cert(self_signed_crt) }
20
20
  let(:ssl_policy) { double(SSLPolicy, store: cert_store) }
21
21
 
@@ -15,7 +15,7 @@ module Berkshelf
15
15
 
16
16
  let(:graph) { double(Lockfile::Graph, locks: {}) }
17
17
  let(:self_signed_crt_path) { File.join(BERKS_SPEC_DATA, "trusted_certs") }
18
- let(:self_signed_crt) { OpenSSL::X509::Certificate.new(IO.read("#{self_signed_crt_path}/example.crt")) }
18
+ let(:self_signed_crt) { OpenSSL::X509::Certificate.new(File.read("#{self_signed_crt_path}/example.crt")) }
19
19
  let(:cert_store) { OpenSSL::X509::Store.new.add_cert(self_signed_crt) }
20
20
  let(:ssl_policy) { double(SSLPolicy, store: cert_store) }
21
21
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berkshelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.9
4
+ version: 8.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Winsor
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2023-09-27 00:00:00.000000000 Z
15
+ date: 2025-05-14 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: mixlib-shellout
@@ -35,7 +35,7 @@ dependencies:
35
35
  - !ruby/object:Gem::Version
36
36
  version: '4.0'
37
37
  - !ruby/object:Gem::Dependency
38
- name: cleanroom
38
+ name: chef-cleanroom
39
39
  requirement: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
@@ -50,18 +50,32 @@ dependencies:
50
50
  version: '1.0'
51
51
  - !ruby/object:Gem::Dependency
52
52
  name: minitar
53
+ requirement: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.0'
58
+ type: :runtime
59
+ prerelease: false
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '1.0'
65
+ - !ruby/object:Gem::Dependency
66
+ name: chef
53
67
  requirement: !ruby/object:Gem::Requirement
54
68
  requirements:
55
69
  - - ">="
56
70
  - !ruby/object:Gem::Version
57
- version: '0.6'
71
+ version: 18.0.0
58
72
  type: :runtime
59
73
  prerelease: false
60
74
  version_requirements: !ruby/object:Gem::Requirement
61
75
  requirements:
62
76
  - - ">="
63
77
  - !ruby/object:Gem::Version
64
- version: '0.6'
78
+ version: 18.0.0
65
79
  - !ruby/object:Gem::Dependency
66
80
  name: retryable
67
81
  requirement: !ruby/object:Gem::Requirement
@@ -103,6 +117,9 @@ dependencies:
103
117
  - - ">="
104
118
  - !ruby/object:Gem::Version
105
119
  version: '0.20'
120
+ - - "<"
121
+ - !ruby/object:Gem::Version
122
+ version: 1.3.0
106
123
  type: :runtime
107
124
  prerelease: false
108
125
  version_requirements: !ruby/object:Gem::Requirement
@@ -110,20 +127,29 @@ dependencies:
110
127
  - - ">="
111
128
  - !ruby/object:Gem::Version
112
129
  version: '0.20'
130
+ - - "<"
131
+ - !ruby/object:Gem::Version
132
+ version: 1.3.0
113
133
  - !ruby/object:Gem::Dependency
114
134
  name: octokit
115
135
  requirement: !ruby/object:Gem::Requirement
116
136
  requirements:
117
- - - "~>"
137
+ - - ">="
118
138
  - !ruby/object:Gem::Version
119
139
  version: '4.0'
140
+ - - "<"
141
+ - !ruby/object:Gem::Version
142
+ version: '6.0'
120
143
  type: :runtime
121
144
  prerelease: false
122
145
  version_requirements: !ruby/object:Gem::Requirement
123
146
  requirements:
124
- - - "~>"
147
+ - - ">="
125
148
  - !ruby/object:Gem::Version
126
149
  version: '4.0'
150
+ - - "<"
151
+ - !ruby/object:Gem::Version
152
+ version: '6.0'
127
153
  - !ruby/object:Gem::Dependency
128
154
  name: mixlib-archive
129
155
  requirement: !ruby/object:Gem::Requirement
@@ -159,19 +185,25 @@ dependencies:
159
185
  - !ruby/object:Gem::Version
160
186
  version: '1.0'
161
187
  - !ruby/object:Gem::Dependency
162
- name: chef
188
+ name: ffi
163
189
  requirement: !ruby/object:Gem::Requirement
164
190
  requirements:
165
- - - ">="
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '1.9'
194
+ - - "<"
166
195
  - !ruby/object:Gem::Version
167
- version: 15.7.32
196
+ version: 1.16.0
168
197
  type: :runtime
169
198
  prerelease: false
170
199
  version_requirements: !ruby/object:Gem::Requirement
171
200
  requirements:
172
- - - ">="
201
+ - - "~>"
202
+ - !ruby/object:Gem::Version
203
+ version: '1.9'
204
+ - - "<"
173
205
  - !ruby/object:Gem::Version
174
- version: 15.7.32
206
+ version: 1.16.0
175
207
  - !ruby/object:Gem::Dependency
176
208
  name: chef-config
177
209
  requirement: !ruby/object:Gem::Requirement
@@ -378,7 +410,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
378
410
  - !ruby/object:Gem::Version
379
411
  version: 2.0.0
380
412
  requirements: []
381
- rubygems_version: 3.1.4
413
+ rubygems_version: 3.3.27
382
414
  signing_key:
383
415
  specification_version: 4
384
416
  summary: Manages a Chef cookbook's dependencies