rubygems-update 2.6.2 → 2.6.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/History.txt +29 -0
- data/MAINTAINERS.txt +12 -0
- data/Manifest.txt +4 -7
- data/POLICIES.rdoc +13 -0
- data/Rakefile +4 -4
- data/lib/rubygems.rb +5 -4
- data/lib/rubygems/basic_specification.rb +2 -1
- data/lib/rubygems/commands/install_command.rb +0 -46
- data/lib/rubygems/commands/owner_command.rb +1 -2
- data/lib/rubygems/commands/pristine_command.rb +2 -2
- data/lib/rubygems/commands/query_command.rb +12 -3
- data/lib/rubygems/core_ext/kernel_require.rb +1 -1
- data/lib/rubygems/dependency.rb +3 -13
- data/lib/rubygems/errors.rb +43 -0
- data/lib/rubygems/install_update_options.rb +46 -0
- data/lib/rubygems/installer.rb +1 -1
- data/lib/rubygems/request.rb +1 -1
- data/lib/rubygems/specification.rb +3 -3
- data/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRoot.pem +18 -0
- data/lib/rubygems/ssl_certs/{DigiCertHighAssuranceEVRootCA.pem → rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem} +0 -0
- data/lib/rubygems/ssl_certs/{AddTrustExternalCARoot-2048.pem → rubygems.org/AddTrustExternalCARoot-2048.pem} +0 -0
- data/lib/rubygems/stub_specification.rb +0 -3
- data/lib/rubygems/test_case.rb +11 -0
- data/test/rubygems/test_bundled_ca.rb +5 -1
- data/test/rubygems/test_gem.rb +30 -3
- data/test/rubygems/test_gem_commands_environment_command.rb +1 -1
- data/test/rubygems/test_gem_commands_owner_command.rb +7 -0
- data/test/rubygems/test_gem_commands_query_command.rb +20 -0
- data/test/rubygems/test_gem_commands_setup_command.rb +4 -4
- data/test/rubygems/test_gem_dependency.rb +2 -2
- data/test/rubygems/test_gem_specification.rb +13 -2
- data/test/rubygems/test_kernel.rb +1 -1
- data/util/update_bundled_ca_certificates.rb +2 -1
- metadata +9 -12
- data/MAINTAINERS.md +0 -5
- data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +0 -32
- data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
- data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
- data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bed7c7899639f9d4eb539d69521ede2590f48bf7
|
4
|
+
data.tar.gz: 8a477e9b22457409b503bfd6c2d4db1b210d4bd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab3c776e4e1f56437bcab1717d93b228519eb7a9b945868e91e8ec22e85f06b0201df7579c0450f8b45d3a0692e3abed75561d55dce83ec09e405d66a8ebcc03
|
7
|
+
data.tar.gz: ac178d28e4a95baf5ae57d1e8f90d0195b83b2b7591595a4a7415839dfc7d661cba75448916f036e300f1eb8b30b9cb53f2f3152cd2bc98dbda6de8db74a4419
|
data/History.txt
CHANGED
@@ -1,5 +1,34 @@
|
|
1
1
|
# coding: UTF-8
|
2
2
|
|
3
|
+
=== 2.6.3 / 2016-04-05
|
4
|
+
|
5
|
+
Minor enhancements:
|
6
|
+
|
7
|
+
* Lazily calculate Gem::LoadError exception messages. Pull request #1550
|
8
|
+
by Aaron Patterson.
|
9
|
+
* New fastly cert. Pull request #1548 by David Radcliffe.
|
10
|
+
* Organize and cleanup SSL certs. Pull request #1555 by James Wen.
|
11
|
+
* [RubyGems] Make deprecation message for paths= more helpful. Pull
|
12
|
+
request #1562 by Samuel Giddins.
|
13
|
+
* Show default gems when using "gem list". Pull request #1570 by Luis
|
14
|
+
Sagastume.
|
15
|
+
|
16
|
+
Bug fixes:
|
17
|
+
|
18
|
+
* Stub ordering should be consistent regardless of how cache is populated.
|
19
|
+
Pull request #1552 by Aaron Patterson.
|
20
|
+
* Handle cases when the @@stubs variable contains non-stubs. Pull request
|
21
|
+
#1558 by Per Lundberg.
|
22
|
+
* Fix test on Windows for inconsistent temp path. Pull request #1554 by
|
23
|
+
Hiroshi Shirosaki.
|
24
|
+
* Fix `Gem.find_spec_for_exe` picks oldest gem. Pull request #1566 by
|
25
|
+
Shinichi Maeshima.
|
26
|
+
* [Owner] Fallback to email and userid when owner email is missing. Pull
|
27
|
+
request #1569 by Samuel Giddins.
|
28
|
+
* [Installer] Handle nil existing executable. Pull request #1561 by Samuel
|
29
|
+
Giddins.
|
30
|
+
* Allow two digit version numbers in the tests. Pull request #1575 by unak.
|
31
|
+
|
3
32
|
=== 2.6.2 / 2016-03-12
|
4
33
|
|
5
34
|
Bug fixes:
|
data/MAINTAINERS.txt
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
Luis Sagastume <lsagastume1990@gmail.com> (@bronzdoc)
|
2
|
+
Jeremy Hinegardner <jeremy@copiousfreetime.org> (@copiousfreetime)
|
3
|
+
Daniel Berger <djberg96@gmail.com> (@djberg96)
|
4
|
+
Ellen Marie Dash <me@duckie.co> (@duckinator)
|
5
|
+
Evan Phoenix <evan@phx.io> (@evanphx)
|
6
|
+
SHIBATA Hiroshi <hsbt@ruby-lang.org> (@hsbt)
|
7
|
+
André Arko <andre@arko.net> (@indirect)
|
8
|
+
Kurtis Rainbolt-Greene <me@kurtisrainboltgreene.name> (@krainboltgreene)
|
9
|
+
Luis Lavena <luislavena@gmail.com> (@luislavena)
|
10
|
+
Samuel Giddins <segiddins@segiddins.me> (@segiddins)
|
11
|
+
Aaron Patterson <aaron.patterson@gmail.com> (@tenderlove)
|
12
|
+
Zachary Scott <mail@zzak.io> (@zzak)
|
data/Manifest.txt
CHANGED
@@ -8,7 +8,7 @@ CVE-2013-4363.txt
|
|
8
8
|
CVE-2015-3900.txt
|
9
9
|
History.txt
|
10
10
|
LICENSE.txt
|
11
|
-
MAINTAINERS.
|
11
|
+
MAINTAINERS.txt
|
12
12
|
MIT.txt
|
13
13
|
Manifest.txt
|
14
14
|
POLICIES.rdoc
|
@@ -170,12 +170,9 @@ lib/rubygems/source_specific_file.rb
|
|
170
170
|
lib/rubygems/spec_fetcher.rb
|
171
171
|
lib/rubygems/specification.rb
|
172
172
|
lib/rubygems/ssl_certs/.document
|
173
|
-
lib/rubygems/ssl_certs/
|
174
|
-
lib/rubygems/ssl_certs/
|
175
|
-
lib/rubygems/ssl_certs/
|
176
|
-
lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem
|
177
|
-
lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem
|
178
|
-
lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem
|
173
|
+
lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRoot.pem
|
174
|
+
lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
|
175
|
+
lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
|
179
176
|
lib/rubygems/stub_specification.rb
|
180
177
|
lib/rubygems/syck_hack.rb
|
181
178
|
lib/rubygems/test_case.rb
|
data/POLICIES.rdoc
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
== Pull Requests
|
2
|
+
|
3
|
+
Contributions to RubyGems are made via GitHub pull requests, which must be
|
4
|
+
approved by a project committer other than the author. To approve a PR, a
|
5
|
+
maintainer can leave a comment including the text "@homu r+", indicating that
|
6
|
+
they have reviewed the PR and approve it. [Homu](http://homu.io) will then
|
7
|
+
automatically create a merge commit, test the merge, and land the PR if the
|
8
|
+
merge commit passes the tests.
|
9
|
+
|
10
|
+
This process guarantees that our release branches always have passing tests,
|
11
|
+
and reduces siloing of information to a single contributor. For a full list of
|
12
|
+
possible commands, see [the Homu documentation](http://homu.io).
|
13
|
+
|
1
14
|
== Long-Term Support
|
2
15
|
|
3
16
|
RubyGems long-term support policy will be similar to and follow the Ruby
|
data/Rakefile
CHANGED
@@ -171,13 +171,13 @@ task :package => %W[
|
|
171
171
|
pkg/rubygems-#{v}.zip
|
172
172
|
]
|
173
173
|
|
174
|
-
desc "Upload release to
|
175
|
-
task :
|
176
|
-
sh "s3cmd put -P pkg/rubygems
|
174
|
+
desc "Upload release to S3"
|
175
|
+
task :upload_to_s3 do
|
176
|
+
sh "s3cmd put -P pkg/rubygems-#{v}.zip pkg/rubygems-#{v}.tgz s3://oregon.production.s3.rubygems.org/rubygems/"
|
177
177
|
end
|
178
178
|
|
179
179
|
desc "Upload release to rubygems.org"
|
180
|
-
task :upload => %w[
|
180
|
+
task :upload => %w[upload_to_s3]
|
181
181
|
|
182
182
|
on_master = `git branch --list master`.strip == '* master'
|
183
183
|
on_master = true if ENV['FORCE']
|
data/lib/rubygems.rb
CHANGED
@@ -10,7 +10,7 @@ require 'rbconfig'
|
|
10
10
|
require 'thread'
|
11
11
|
|
12
12
|
module Gem
|
13
|
-
VERSION = '2.6.
|
13
|
+
VERSION = '2.6.3'
|
14
14
|
end
|
15
15
|
|
16
16
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -254,7 +254,7 @@ module Gem
|
|
254
254
|
spec.executables.include? exec_name
|
255
255
|
} if exec_name
|
256
256
|
|
257
|
-
unless spec = specs.
|
257
|
+
unless spec = specs.first
|
258
258
|
msg = "can't find gem #{name} (#{requirements}) with executable #{exec_name}"
|
259
259
|
raise Gem::GemNotFoundException, msg
|
260
260
|
end
|
@@ -374,8 +374,9 @@ module Gem
|
|
374
374
|
when Array
|
375
375
|
unless Gem::Deprecate.skip
|
376
376
|
warn <<-eowarn
|
377
|
-
Array values in the parameter
|
378
|
-
|
377
|
+
Array values in the parameter to `Gem.paths=` are deprecated.
|
378
|
+
Please use a String or nil.
|
379
|
+
An Array (#{env.inspect}) was passed in from #{caller[3]}
|
379
380
|
eowarn
|
380
381
|
end
|
381
382
|
target[k] = v.join File::PATH_SEPARATOR
|
@@ -306,6 +306,8 @@ class Gem::BasicSpecification
|
|
306
306
|
raise NotImplementedError
|
307
307
|
end
|
308
308
|
|
309
|
+
def this; self; end
|
310
|
+
|
309
311
|
private
|
310
312
|
|
311
313
|
def have_extensions?; !extensions.empty?; end
|
@@ -323,5 +325,4 @@ class Gem::BasicSpecification
|
|
323
325
|
false
|
324
326
|
end
|
325
327
|
end
|
326
|
-
|
327
328
|
end
|
@@ -36,52 +36,6 @@ class Gem::Commands::InstallCommand < Gem::Command
|
|
36
36
|
add_version_option
|
37
37
|
add_prerelease_option "to be installed. (Only for listed gems)"
|
38
38
|
|
39
|
-
add_option(:"Install/Update", '-g', '--file [FILE]',
|
40
|
-
'Read from a gem dependencies API file and',
|
41
|
-
'install the listed gems') do |v,o|
|
42
|
-
v = Gem::GEM_DEP_FILES.find do |file|
|
43
|
-
File.exist? file
|
44
|
-
end unless v
|
45
|
-
|
46
|
-
unless v then
|
47
|
-
message = v ? v : "(tried #{Gem::GEM_DEP_FILES.join ', '})"
|
48
|
-
|
49
|
-
raise OptionParser::InvalidArgument,
|
50
|
-
"cannot find gem dependencies file #{message}"
|
51
|
-
end
|
52
|
-
|
53
|
-
o[:gemdeps] = v
|
54
|
-
end
|
55
|
-
|
56
|
-
add_option(:"Install/Update", '--without GROUPS', Array,
|
57
|
-
'Omit the named groups (comma separated)',
|
58
|
-
'when installing from a gem dependencies',
|
59
|
-
'file') do |v,o|
|
60
|
-
o[:without_groups].concat v.map { |without| without.intern }
|
61
|
-
end
|
62
|
-
|
63
|
-
add_option(:"Install/Update", '--default',
|
64
|
-
'Add the gem\'s full specification to',
|
65
|
-
'specifications/default and extract only its bin') do |v,o|
|
66
|
-
o[:install_as_default] = v
|
67
|
-
end
|
68
|
-
|
69
|
-
add_option(:"Install/Update", '--explain',
|
70
|
-
'Rather than install the gems, indicate which would',
|
71
|
-
'be installed') do |v,o|
|
72
|
-
o[:explain] = v
|
73
|
-
end
|
74
|
-
|
75
|
-
add_option(:"Install/Update", '--[no-]lock',
|
76
|
-
'Create a lock file (when used with -g/--file)') do |v,o|
|
77
|
-
o[:lock] = v
|
78
|
-
end
|
79
|
-
|
80
|
-
add_option(:"Install/Update", '--[no-]suggestions',
|
81
|
-
'Suggest alternates when gems are not found') do |v,o|
|
82
|
-
o[:suggest_alternate] = v
|
83
|
-
end
|
84
|
-
|
85
39
|
@installed_specs = []
|
86
40
|
end
|
87
41
|
|
@@ -92,8 +92,8 @@ extensions will be restored.
|
|
92
92
|
spec.extensions and not spec.extensions.empty?
|
93
93
|
end
|
94
94
|
else
|
95
|
-
get_all_gem_names.map do |gem_name|
|
96
|
-
Gem::Specification.find_all_by_name
|
95
|
+
get_all_gem_names.sort.map do |gem_name|
|
96
|
+
Gem::Specification.find_all_by_name(gem_name, options[:version]).reverse
|
97
97
|
end.flatten
|
98
98
|
end
|
99
99
|
|
@@ -247,7 +247,7 @@ is too hard to use.
|
|
247
247
|
spec_summary entry, spec
|
248
248
|
end
|
249
249
|
|
250
|
-
def entry_versions entry, name_tuples, platforms
|
250
|
+
def entry_versions entry, name_tuples, platforms, specs
|
251
251
|
return unless options[:versions]
|
252
252
|
|
253
253
|
list =
|
@@ -256,7 +256,16 @@ is too hard to use.
|
|
256
256
|
else
|
257
257
|
platforms.sort.reverse.map do |version, pls|
|
258
258
|
if pls == [Gem::Platform::RUBY] then
|
259
|
-
|
259
|
+
if options[:domain] == :remote || specs.all? { |spec| spec.is_a? Gem::Source }
|
260
|
+
version
|
261
|
+
else
|
262
|
+
spec = specs.select { |spec| spec.version == version }
|
263
|
+
if spec.first.default_gem?
|
264
|
+
"default: #{version}"
|
265
|
+
else
|
266
|
+
version
|
267
|
+
end
|
268
|
+
end
|
260
269
|
else
|
261
270
|
ruby = pls.delete Gem::Platform::RUBY
|
262
271
|
platform_list = [ruby, *pls.sort].compact
|
@@ -277,7 +286,7 @@ is too hard to use.
|
|
277
286
|
|
278
287
|
entry = [name_tuples.first.name]
|
279
288
|
|
280
|
-
entry_versions entry, name_tuples, platforms
|
289
|
+
entry_versions entry, name_tuples, platforms, specs
|
281
290
|
entry_details entry, detail_tuple, specs, platforms
|
282
291
|
|
283
292
|
entry.join
|
@@ -104,7 +104,7 @@ module Kernel
|
|
104
104
|
|
105
105
|
# Ok, now find a gem that has no conflicts, starting
|
106
106
|
# at the highest version.
|
107
|
-
valid = found_specs.reject { |s| s.has_conflicts? }.
|
107
|
+
valid = found_specs.reject { |s| s.has_conflicts? }.first
|
108
108
|
|
109
109
|
unless valid then
|
110
110
|
le = Gem::LoadError.new "unable to find a version of '#{names.first}' to activate"
|
data/lib/rubygems/dependency.rb
CHANGED
@@ -286,9 +286,7 @@ class Gem::Dependency
|
|
286
286
|
}
|
287
287
|
end
|
288
288
|
|
289
|
-
|
290
|
-
# return newest first, so just reverse the list
|
291
|
-
matches.reverse
|
289
|
+
matches
|
292
290
|
end
|
293
291
|
|
294
292
|
##
|
@@ -307,18 +305,10 @@ class Gem::Dependency
|
|
307
305
|
specs = Gem::Specification.stubs_for name
|
308
306
|
|
309
307
|
if specs.empty?
|
310
|
-
|
311
|
-
msg = "Could not find '#{name}' (#{requirement}) among #{total} total gem(s)\n".dup
|
308
|
+
raise Gem::MissingSpecError.new name, requirement
|
312
309
|
else
|
313
|
-
|
314
|
-
msg = "Could not find '#{name}' (#{requirement}) - did find: [#{specs.join ','}]\n".dup
|
310
|
+
raise Gem::MissingSpecVersionError.new name, requirement, specs
|
315
311
|
end
|
316
|
-
msg << "Checked in 'GEM_PATH=#{Gem.path.join(File::PATH_SEPARATOR)}', execute `gem env` for more information"
|
317
|
-
|
318
|
-
error = Gem::LoadError.new(msg)
|
319
|
-
error.name = self.name
|
320
|
-
error.requirement = self.requirement
|
321
|
-
raise error
|
322
312
|
end
|
323
313
|
|
324
314
|
# TODO: any other resolver validations should go here
|
data/lib/rubygems/errors.rb
CHANGED
@@ -20,6 +20,49 @@ module Gem
|
|
20
20
|
attr_accessor :requirement
|
21
21
|
end
|
22
22
|
|
23
|
+
##
|
24
|
+
# Raised when trying to activate a gem, and that gem does not exist on the
|
25
|
+
# system. Instead of rescuing from this class, make sure to rescue from the
|
26
|
+
# superclass Gem::LoadError to catch all types of load errors.
|
27
|
+
class MissingSpecError < Gem::LoadError
|
28
|
+
def initialize name, requirement
|
29
|
+
@name = name
|
30
|
+
@requirement = requirement
|
31
|
+
end
|
32
|
+
|
33
|
+
def message # :nodoc:
|
34
|
+
build_message +
|
35
|
+
"Checked in 'GEM_PATH=#{Gem.path.join(File::PATH_SEPARATOR)}', execute `gem env` for more information"
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def build_message
|
41
|
+
total = Gem::Specification.stubs.size
|
42
|
+
"Could not find '#{name}' (#{requirement}) among #{total} total gem(s)\n"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
##
|
47
|
+
# Raised when trying to activate a gem, and the gem exists on the system, but
|
48
|
+
# not the requested version. Instead of rescuing from this class, make sure to
|
49
|
+
# rescue from the superclass Gem::LoadError to catch all types of load errors.
|
50
|
+
class MissingSpecVersionError < MissingSpecError
|
51
|
+
attr_reader :specs
|
52
|
+
|
53
|
+
def initialize name, requirement, specs
|
54
|
+
super(name, requirement)
|
55
|
+
@specs = specs
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def build_message
|
61
|
+
names = specs.map(&:full_name)
|
62
|
+
"Could not find '#{name}' (#{requirement}) - did find: [#{names.join ','}]\n"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
23
66
|
# Raised when there are conflicting gem specs loaded
|
24
67
|
|
25
68
|
class ConflictError < LoadError
|
@@ -180,6 +180,52 @@ module Gem::InstallUpdateOptions
|
|
180
180
|
options[:post_install_message] = value
|
181
181
|
end
|
182
182
|
|
183
|
+
add_option(:"Install/Update", '-g', '--file [FILE]',
|
184
|
+
'Read from a gem dependencies API file and',
|
185
|
+
'install the listed gems') do |v,o|
|
186
|
+
v = Gem::GEM_DEP_FILES.find do |file|
|
187
|
+
File.exist? file
|
188
|
+
end unless v
|
189
|
+
|
190
|
+
unless v then
|
191
|
+
message = v ? v : "(tried #{Gem::GEM_DEP_FILES.join ', '})"
|
192
|
+
|
193
|
+
raise OptionParser::InvalidArgument,
|
194
|
+
"cannot find gem dependencies file #{message}"
|
195
|
+
end
|
196
|
+
|
197
|
+
options[:gemdeps] = v
|
198
|
+
end
|
199
|
+
|
200
|
+
add_option(:"Install/Update", '--without GROUPS', Array,
|
201
|
+
'Omit the named groups (comma separated)',
|
202
|
+
'when installing from a gem dependencies',
|
203
|
+
'file') do |v,o|
|
204
|
+
options[:without_groups].concat v.map { |without| without.intern }
|
205
|
+
end
|
206
|
+
|
207
|
+
add_option(:"Install/Update", '--default',
|
208
|
+
'Add the gem\'s full specification to',
|
209
|
+
'specifications/default and extract only its bin') do |v,o|
|
210
|
+
options[:install_as_default] = v
|
211
|
+
end
|
212
|
+
|
213
|
+
add_option(:"Install/Update", '--explain',
|
214
|
+
'Rather than install the gems, indicate which would',
|
215
|
+
'be installed') do |v,o|
|
216
|
+
options[:explain] = v
|
217
|
+
end
|
218
|
+
|
219
|
+
add_option(:"Install/Update", '--[no-]lock',
|
220
|
+
'Create a lock file (when used with -g/--file)') do |v,o|
|
221
|
+
options[:lock] = v
|
222
|
+
end
|
223
|
+
|
224
|
+
add_option(:"Install/Update", '--[no-]suggestions',
|
225
|
+
'Suggest alternates when gems are not found') do |v,o|
|
226
|
+
options[:suggest_alternate] = v
|
227
|
+
end
|
228
|
+
|
183
229
|
end
|
184
230
|
|
185
231
|
##
|
data/lib/rubygems/installer.rb
CHANGED
@@ -231,7 +231,7 @@ class Gem::Installer
|
|
231
231
|
question = "#{spec.name}'s executable \"#{filename}\" conflicts with ".dup
|
232
232
|
|
233
233
|
if ruby_executable then
|
234
|
-
question << existing
|
234
|
+
question << (existing || 'an unknown executable')
|
235
235
|
|
236
236
|
return if ask_yes_no "#{question}\nOverwrite the executable?", false
|
237
237
|
|
data/lib/rubygems/request.rb
CHANGED
@@ -40,7 +40,7 @@ class Gem::Request
|
|
40
40
|
def cert_files; @connection_pool.cert_files; end
|
41
41
|
|
42
42
|
def self.get_cert_files
|
43
|
-
pattern = File.expand_path("./ssl_certs
|
43
|
+
pattern = File.expand_path("./ssl_certs/*/*.pem", File.dirname(__FILE__))
|
44
44
|
Dir.glob(pattern)
|
45
45
|
end
|
46
46
|
|
@@ -849,7 +849,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
849
849
|
pattern = "#{name}-*.gemspec"
|
850
850
|
stubs = default_stubs(pattern) + installed_stubs(dirs, pattern)
|
851
851
|
stubs = uniq_by(stubs) { |stub| stub.full_name }.group_by(&:name)
|
852
|
-
stubs.each_value { |v|
|
852
|
+
stubs.each_value { |v| _resort!(v) }
|
853
853
|
|
854
854
|
@@stubs_by_name.merge! stubs
|
855
855
|
@@stubs_by_name[name] ||= EMPTY
|
@@ -1074,7 +1074,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1074
1074
|
def self.find_in_unresolved_tree path
|
1075
1075
|
specs = unresolved_deps.values.map { |dep| dep.to_specs }.flatten
|
1076
1076
|
|
1077
|
-
specs.
|
1077
|
+
specs.each do |spec|
|
1078
1078
|
spec.traverse do |from_spec, dep, to_spec, trail|
|
1079
1079
|
if to_spec.has_conflicts? || to_spec.conficts_when_loaded_with?(trail)
|
1080
1080
|
:next
|
@@ -2613,7 +2613,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2613
2613
|
begin
|
2614
2614
|
dependencies.each do |dep|
|
2615
2615
|
next unless dep.runtime?
|
2616
|
-
dep.to_specs.
|
2616
|
+
dep.to_specs.each do |dep_spec|
|
2617
2617
|
next if visited.has_key?(dep_spec)
|
2618
2618
|
visited[dep_spec] = true
|
2619
2619
|
trail.push(dep_spec)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
|
3
|
+
GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
|
4
|
+
b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
|
5
|
+
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
|
6
|
+
VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
|
7
|
+
DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
|
8
|
+
THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
|
9
|
+
Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
|
10
|
+
c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
|
11
|
+
gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
|
12
|
+
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
|
13
|
+
AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
|
14
|
+
Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
|
15
|
+
j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
|
16
|
+
hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
|
17
|
+
X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
18
|
+
-----END CERTIFICATE-----
|
File without changes
|
File without changes
|
data/lib/rubygems/test_case.rb
CHANGED
@@ -256,6 +256,17 @@ class Gem::TestCase < MiniTest::Unit::TestCase
|
|
256
256
|
@tempdir.untaint
|
257
257
|
end
|
258
258
|
|
259
|
+
# This makes the tempdir consistent on Windows.
|
260
|
+
# Dir.tmpdir may return short path name, but Dir[Dir.tmpdir] returns long
|
261
|
+
# path name. https://bugs.ruby-lang.org/issues/10819
|
262
|
+
# File.expand_path or File.realpath doesn't convert path name to long path
|
263
|
+
# name. Only Dir[] (= Dir.glob) works.
|
264
|
+
# Short and long path name is specific to Windows filesystem.
|
265
|
+
if win_platform?
|
266
|
+
@tempdir = Dir[@tempdir][0]
|
267
|
+
@tempdir.untaint
|
268
|
+
end
|
269
|
+
|
259
270
|
@gemhome = File.join @tempdir, 'gemhome'
|
260
271
|
@userhome = File.join @tempdir, 'userhome'
|
261
272
|
ENV["GEM_SPEC_CACHE"] = File.join @tempdir, 'spec_cache'
|
@@ -17,7 +17,7 @@ if ENV["TRAVIS"] || ENV["TEST_SSL"]
|
|
17
17
|
store = OpenSSL::X509::Store.new
|
18
18
|
|
19
19
|
ssl_cert_glob =
|
20
|
-
File.expand_path '../../../lib/rubygems/ssl_certs
|
20
|
+
File.expand_path '../../../lib/rubygems/ssl_certs/*/*.pem', THIS_FILE
|
21
21
|
|
22
22
|
Dir[ssl_cert_glob].each do |ssl_cert|
|
23
23
|
store.add_file ssl_cert
|
@@ -55,5 +55,9 @@ if ENV["TRAVIS"] || ENV["TEST_SSL"]
|
|
55
55
|
assert_https('rubygems.global.ssl.fastly.net')
|
56
56
|
end
|
57
57
|
|
58
|
+
def test_accessing_new_index
|
59
|
+
assert_https('fastly.rubygems.org')
|
60
|
+
end
|
61
|
+
|
58
62
|
end
|
59
63
|
end
|
data/test/rubygems/test_gem.rb
CHANGED
@@ -143,6 +143,20 @@ class TestGem < Gem::TestCase
|
|
143
143
|
assert_match 'a-1/bin/exec', Gem.bin_path('a', 'exec', '>= 0')
|
144
144
|
end
|
145
145
|
|
146
|
+
def test_self_bin_path_picking_newest
|
147
|
+
a1 = util_spec 'a', '1' do |s|
|
148
|
+
s.executables = ['exec']
|
149
|
+
end
|
150
|
+
|
151
|
+
a2 = util_spec 'a', '2' do |s|
|
152
|
+
s.executables = ['exec']
|
153
|
+
end
|
154
|
+
|
155
|
+
install_specs a1, a2
|
156
|
+
|
157
|
+
assert_match 'a-2/bin/exec', Gem.bin_path('a', 'exec', '>= 0')
|
158
|
+
end
|
159
|
+
|
146
160
|
def test_self_bin_path_no_exec_name
|
147
161
|
e = assert_raises ArgumentError do
|
148
162
|
Gem.bin_path 'a'
|
@@ -959,6 +973,19 @@ class TestGem < Gem::TestCase
|
|
959
973
|
assert Gem.try_activate('b'), 'try_activate should still return true'
|
960
974
|
end
|
961
975
|
|
976
|
+
def test_spec_order_is_consistent
|
977
|
+
b1 = util_spec 'b', '1.0'
|
978
|
+
b2 = util_spec 'b', '2.0'
|
979
|
+
b3 = util_spec 'b', '3.0'
|
980
|
+
|
981
|
+
install_specs b1, b2, b3
|
982
|
+
|
983
|
+
specs1 = Gem::Specification.stubs.find_all { |s| s.name == 'b' }
|
984
|
+
Gem::Specification.reset
|
985
|
+
specs2 = Gem::Specification.stubs_for('b')
|
986
|
+
assert_equal specs1.map(&:version), specs2.map(&:version)
|
987
|
+
end
|
988
|
+
|
962
989
|
def test_self_try_activate_missing_dep
|
963
990
|
b = util_spec 'b', '1.0'
|
964
991
|
a = util_spec 'a', '1.0', 'b' => '>= 1.0'
|
@@ -972,7 +999,7 @@ class TestGem < Gem::TestCase
|
|
972
999
|
io.puts '# a_file.rb'
|
973
1000
|
end
|
974
1001
|
|
975
|
-
e = assert_raises Gem::
|
1002
|
+
e = assert_raises Gem::MissingSpecError do
|
976
1003
|
Gem.try_activate 'a_file'
|
977
1004
|
end
|
978
1005
|
|
@@ -992,7 +1019,7 @@ class TestGem < Gem::TestCase
|
|
992
1019
|
io.puts '# a_file.rb'
|
993
1020
|
end
|
994
1021
|
|
995
|
-
e = assert_raises Gem::
|
1022
|
+
e = assert_raises Gem::MissingSpecError do
|
996
1023
|
Gem.try_activate 'a_file'
|
997
1024
|
end
|
998
1025
|
|
@@ -1056,7 +1083,7 @@ class TestGem < Gem::TestCase
|
|
1056
1083
|
'GEM_PATH' => [Gem.paths.home, 'foo'] }
|
1057
1084
|
end
|
1058
1085
|
assert_equal [Gem.paths.home, 'foo'], Gem.paths.path
|
1059
|
-
assert_match(/Array values in the parameter are deprecated
|
1086
|
+
assert_match(/Array values in the parameter to `Gem.paths=` are deprecated.\nPlease use a String or nil/m, stderr)
|
1060
1087
|
assert_equal '', stdout
|
1061
1088
|
end
|
1062
1089
|
|
@@ -23,7 +23,7 @@ class TestGemCommandsEnvironmentCommand < Gem::TestCase
|
|
23
23
|
end
|
24
24
|
|
25
25
|
assert_match %r|RUBYGEMS VERSION: (\d\.)+\d|, @ui.output
|
26
|
-
assert_match %r|RUBY VERSION: \d
|
26
|
+
assert_match %r|RUBY VERSION: \d+\.\d+\.\d+ \(.*\) \[.*\]|, @ui.output
|
27
27
|
assert_match %r|INSTALLATION DIRECTORY: #{Regexp.escape @gemhome}|,
|
28
28
|
@ui.output
|
29
29
|
assert_match %r|RUBYGEMS PREFIX: |, @ui.output
|
@@ -19,7 +19,12 @@ class TestGemCommandsOwnerCommand < Gem::TestCase
|
|
19
19
|
response = <<EOF
|
20
20
|
---
|
21
21
|
- email: user1@example.com
|
22
|
+
id: 1
|
23
|
+
handle: user1
|
22
24
|
- email: user2@example.com
|
25
|
+
- id: 3
|
26
|
+
handle: user3
|
27
|
+
- id: 4
|
23
28
|
EOF
|
24
29
|
|
25
30
|
@fetcher.data["#{Gem.host}/api/v1/gems/freewill/owners.yaml"] = [response, 200, 'OK']
|
@@ -34,6 +39,8 @@ EOF
|
|
34
39
|
assert_match %r{Owners for gem: freewill}, @ui.output
|
35
40
|
assert_match %r{- user1@example.com}, @ui.output
|
36
41
|
assert_match %r{- user2@example.com}, @ui.output
|
42
|
+
assert_match %r{- user3}, @ui.output
|
43
|
+
assert_match %r{- 4}, @ui.output
|
37
44
|
end
|
38
45
|
|
39
46
|
def test_show_owners_setting_up_host_through_env_var
|
@@ -537,6 +537,26 @@ a (2 universal-darwin, 1 ruby x86-linux)
|
|
537
537
|
assert_equal '', @ui.error
|
538
538
|
end
|
539
539
|
|
540
|
+
def test_execute_show_default_gems
|
541
|
+
spec_fetcher { |fetcher| fetcher.spec 'a', 2 }
|
542
|
+
|
543
|
+
a1 = new_default_spec 'a', 1
|
544
|
+
install_default_specs a1
|
545
|
+
|
546
|
+
use_ui @ui do
|
547
|
+
@cmd.execute
|
548
|
+
end
|
549
|
+
|
550
|
+
expected = <<-EOF
|
551
|
+
|
552
|
+
*** LOCAL GEMS ***
|
553
|
+
|
554
|
+
a (2, default: 1)
|
555
|
+
EOF
|
556
|
+
|
557
|
+
assert_equal expected, @ui.output
|
558
|
+
end
|
559
|
+
|
540
560
|
def test_execute_default_details
|
541
561
|
spec_fetcher do |fetcher|
|
542
562
|
fetcher.spec 'a', 2
|
@@ -14,16 +14,16 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
14
14
|
@cmd.options[:prefix] = @install_dir
|
15
15
|
|
16
16
|
FileUtils.mkdir_p 'bin'
|
17
|
-
FileUtils.mkdir_p 'lib/rubygems/ssl_certs'
|
17
|
+
FileUtils.mkdir_p 'lib/rubygems/ssl_certs/rubygems.org'
|
18
18
|
|
19
19
|
open 'bin/gem', 'w' do |io| io.puts '# gem' end
|
20
20
|
open 'lib/rubygems.rb', 'w' do |io| io.puts '# rubygems.rb' end
|
21
21
|
open 'lib/rubygems/test_case.rb', 'w' do |io| io.puts '# test_case.rb' end
|
22
|
-
open 'lib/rubygems/ssl_certs/foo.pem', 'w' do |io| io.puts 'PEM' end
|
22
|
+
open 'lib/rubygems/ssl_certs/rubygems.org/foo.pem', 'w' do |io| io.puts 'PEM' end
|
23
23
|
end
|
24
24
|
|
25
25
|
def test_pem_files_in
|
26
|
-
assert_equal %w[rubygems/ssl_certs/foo.pem],
|
26
|
+
assert_equal %w[rubygems/ssl_certs/rubygems.org/foo.pem],
|
27
27
|
@cmd.pem_files_in('lib').sort
|
28
28
|
end
|
29
29
|
|
@@ -39,7 +39,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
39
39
|
@cmd.install_lib dir
|
40
40
|
|
41
41
|
assert_path_exists File.join(dir, 'rubygems.rb')
|
42
|
-
assert_path_exists File.join(dir, 'rubygems/ssl_certs/foo.pem')
|
42
|
+
assert_path_exists File.join(dir, 'rubygems/ssl_certs/rubygems.org/foo.pem')
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -331,7 +331,7 @@ class TestGemDependency < Gem::TestCase
|
|
331
331
|
|
332
332
|
dep = Gem::Dependency.new "a", "= 2.0"
|
333
333
|
|
334
|
-
e = assert_raises Gem::
|
334
|
+
e = assert_raises Gem::MissingSpecVersionError do
|
335
335
|
dep.to_specs
|
336
336
|
end
|
337
337
|
|
@@ -350,7 +350,7 @@ class TestGemDependency < Gem::TestCase
|
|
350
350
|
|
351
351
|
dep = Gem::Dependency.new "b", "= 2.0"
|
352
352
|
|
353
|
-
e = assert_raises Gem::
|
353
|
+
e = assert_raises Gem::MissingSpecError do
|
354
354
|
dep.to_specs
|
355
355
|
end
|
356
356
|
|
@@ -100,6 +100,17 @@ end
|
|
100
100
|
load 'rubygems/syck_hack.rb'
|
101
101
|
end
|
102
102
|
|
103
|
+
def test_self_find_active_stub_by_path
|
104
|
+
spec = new_spec('a', '1', nil, 'lib/foo.rb')
|
105
|
+
spec.activated = true
|
106
|
+
|
107
|
+
# There used to be a bug (introduced in a9c1aaf) when Gem::Specification
|
108
|
+
# objects are present in the @stubs collection. This test verifies that
|
109
|
+
# this scenario works correctly.
|
110
|
+
Gem::Specification.all = [spec]
|
111
|
+
Gem::Specification.find_active_stub_by_path('foo')
|
112
|
+
end
|
113
|
+
|
103
114
|
def test_self_activate
|
104
115
|
foo = util_spec 'foo', '1'
|
105
116
|
|
@@ -3373,7 +3384,7 @@ end
|
|
3373
3384
|
assert Gem::Specification.find_by_name "a", "1"
|
3374
3385
|
assert Gem::Specification.find_by_name "a", ">1"
|
3375
3386
|
|
3376
|
-
assert_raises Gem::
|
3387
|
+
assert_raises Gem::MissingSpecError do
|
3377
3388
|
Gem::Specification.find_by_name "monkeys"
|
3378
3389
|
end
|
3379
3390
|
end
|
@@ -3387,7 +3398,7 @@ end
|
|
3387
3398
|
|
3388
3399
|
assert Gem::Specification.find_by_name "b"
|
3389
3400
|
|
3390
|
-
assert_raises Gem::
|
3401
|
+
assert_raises Gem::MissingSpecVersionError do
|
3391
3402
|
Gem::Specification.find_by_name "b", "1"
|
3392
3403
|
end
|
3393
3404
|
|
@@ -66,7 +66,7 @@ class TestKernel < Gem::TestCase
|
|
66
66
|
|
67
67
|
def test_gem_env_req
|
68
68
|
ENV["GEM_REQUIREMENT_A"] = '~> 2.0'
|
69
|
-
assert_raises(Gem::
|
69
|
+
assert_raises(Gem::MissingSpecVersionError) { gem('a', '= 1') }
|
70
70
|
assert gem('a', '> 1')
|
71
71
|
assert_equal @a2, Gem.loaded_specs['a']
|
72
72
|
end
|
@@ -4,8 +4,9 @@ require 'openssl'
|
|
4
4
|
|
5
5
|
URIS = [
|
6
6
|
URI('https://rubygems.org'),
|
7
|
+
URI('https://index.rubygems.org'),
|
7
8
|
URI('https://staging.rubygems.org'),
|
8
|
-
URI('https://
|
9
|
+
URI('https://fastly.rubygems.org'),
|
9
10
|
URI('https://rubygems.global.ssl.fastly.net'),
|
10
11
|
]
|
11
12
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-04-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdoc
|
@@ -102,14 +102,14 @@ dependencies:
|
|
102
102
|
requirements:
|
103
103
|
- - "~>"
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version: '3.
|
105
|
+
version: '3.15'
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
110
|
- - "~>"
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: '3.
|
112
|
+
version: '3.15'
|
113
113
|
description: |-
|
114
114
|
RubyGems is a package management framework for Ruby.
|
115
115
|
|
@@ -148,7 +148,7 @@ extra_rdoc_files:
|
|
148
148
|
- CVE-2015-3900.txt
|
149
149
|
- History.txt
|
150
150
|
- LICENSE.txt
|
151
|
-
- MAINTAINERS.
|
151
|
+
- MAINTAINERS.txt
|
152
152
|
- MIT.txt
|
153
153
|
- Manifest.txt
|
154
154
|
- POLICIES.rdoc
|
@@ -166,7 +166,7 @@ files:
|
|
166
166
|
- CVE-2015-3900.txt
|
167
167
|
- History.txt
|
168
168
|
- LICENSE.txt
|
169
|
-
- MAINTAINERS.
|
169
|
+
- MAINTAINERS.txt
|
170
170
|
- MIT.txt
|
171
171
|
- Manifest.txt
|
172
172
|
- POLICIES.rdoc
|
@@ -328,12 +328,9 @@ files:
|
|
328
328
|
- lib/rubygems/spec_fetcher.rb
|
329
329
|
- lib/rubygems/specification.rb
|
330
330
|
- lib/rubygems/ssl_certs/.document
|
331
|
-
- lib/rubygems/ssl_certs/
|
332
|
-
- lib/rubygems/ssl_certs/
|
333
|
-
- lib/rubygems/ssl_certs/
|
334
|
-
- lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem
|
335
|
-
- lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem
|
336
|
-
- lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem
|
331
|
+
- lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRoot.pem
|
332
|
+
- lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
|
333
|
+
- lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem
|
337
334
|
- lib/rubygems/stub_specification.rb
|
338
335
|
- lib/rubygems/syck_hack.rb
|
339
336
|
- lib/rubygems/test_case.rb
|
data/MAINTAINERS.md
DELETED
@@ -1,5 +0,0 @@
|
|
1
|
-
André Arko <andre@arko.net> (@indirect)
|
2
|
-
Jeremy Hinegardner <jeremy@copiousfreetime.org> (@copiousfreetime)
|
3
|
-
Kurtis Rainbolt-Greene <me@kurtisrainboltgreene.name> (@krainboltgreene)
|
4
|
-
Samuel Giddins <segiddins@segiddins.me> (@segiddins)
|
5
|
-
Ellen Marie Dash <me@duckie.co> (@duckinator)
|
@@ -1,32 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
|
3
|
-
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
|
4
|
-
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
|
5
|
-
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
|
6
|
-
gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
|
7
|
-
BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD
|
8
|
-
VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq
|
9
|
-
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw
|
10
|
-
AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6
|
11
|
-
2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr
|
12
|
-
ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt
|
13
|
-
4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq
|
14
|
-
m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/
|
15
|
-
vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT
|
16
|
-
8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE
|
17
|
-
IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO
|
18
|
-
KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO
|
19
|
-
GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/
|
20
|
-
s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g
|
21
|
-
JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD
|
22
|
-
AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9
|
23
|
-
MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy
|
24
|
-
bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6
|
25
|
-
Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ
|
26
|
-
zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj
|
27
|
-
Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY
|
28
|
-
Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5
|
29
|
-
B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx
|
30
|
-
PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
|
31
|
-
pu/xO28QOG8=
|
32
|
-
-----END CERTIFICATE-----
|
@@ -1,14 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
|
3
|
-
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
|
4
|
-
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
|
5
|
-
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
|
6
|
-
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
|
7
|
-
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
|
8
|
-
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
|
9
|
-
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
|
10
|
-
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
|
11
|
-
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
|
12
|
-
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
|
13
|
-
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
|
14
|
-
-----END CERTIFICATE-----
|
@@ -1,28 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
|
3
|
-
VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
|
4
|
-
ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
|
5
|
-
KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
|
6
|
-
ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
|
7
|
-
MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
|
8
|
-
ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
|
9
|
-
b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
|
10
|
-
bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
|
11
|
-
U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
|
12
|
-
A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
|
13
|
-
I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
|
14
|
-
wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
|
15
|
-
AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
|
16
|
-
oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
|
17
|
-
BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
|
18
|
-
dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
|
19
|
-
MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
|
20
|
-
b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
|
21
|
-
dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
|
22
|
-
MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
|
23
|
-
E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
|
24
|
-
MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
|
25
|
-
hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
|
26
|
-
95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
|
27
|
-
2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
|
28
|
-
-----END CERTIFICATE-----
|
@@ -1,20 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
|
3
|
-
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
|
4
|
-
YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
|
5
|
-
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
|
6
|
-
R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
|
7
|
-
9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
|
8
|
-
fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
|
9
|
-
iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
|
10
|
-
1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
|
11
|
-
bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
|
12
|
-
MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
|
13
|
-
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
|
14
|
-
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
|
15
|
-
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
|
16
|
-
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
|
17
|
-
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
|
18
|
-
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
|
19
|
-
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
|
20
|
-
-----END CERTIFICATE-----
|