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 +4 -4
- data/Gemfile +4 -0
- data/berkshelf.gemspec +25 -9
- data/lib/berkshelf/community_rest.rb +2 -2
- data/lib/berkshelf/downloader.rb +7 -2
- data/lib/berkshelf/packager.rb +4 -4
- data/lib/berkshelf/ssl_policies.rb +1 -1
- data/lib/berkshelf/version.rb +1 -1
- data/spec/unit/berkshelf/cached_cookbook_spec.rb +1 -1
- data/spec/unit/berkshelf/downloader_spec.rb +1 -1
- data/spec/unit/berkshelf/uploader_spec.rb +1 -1
- metadata +45 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f70d01359005c084d1481b29aa447f541456420f8d5b0050efc391978dd5b646
|
4
|
+
data.tar.gz: 47a1fcb983563b5b75c7bfe44abf111284129b4463d06d3d32881210df310f12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
38
|
-
s.add_dependency "
|
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
|
-
|
42
|
-
s.add_dependency "
|
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
|
-
|
46
|
-
|
47
|
-
|
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
|
-
|
42
|
+
File.binread(path, 2) == [0x1F, 0x8B].pack("C*")
|
43
43
|
end
|
44
44
|
|
45
45
|
def is_tar_file(path)
|
46
|
-
|
46
|
+
File.binread(path, 8, 257).to_s == "ustar\x0000"
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
data/lib/berkshelf/downloader.rb
CHANGED
@@ -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
|
-
|
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
|
|
data/lib/berkshelf/packager.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require "
|
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
|
-
|
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
|
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(
|
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(
|
33
|
+
cert = OpenSSL::X509::Certificate.new(File.read(cert))
|
34
34
|
add_trusted_cert(cert)
|
35
35
|
end
|
36
36
|
end
|
data/lib/berkshelf/version.rb
CHANGED
@@ -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
|
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(
|
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(
|
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
413
|
+
rubygems_version: 3.3.27
|
382
414
|
signing_key:
|
383
415
|
specification_version: 4
|
384
416
|
summary: Manages a Chef cookbook's dependencies
|