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.

Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +29 -0
  3. data/MAINTAINERS.txt +12 -0
  4. data/Manifest.txt +4 -7
  5. data/POLICIES.rdoc +13 -0
  6. data/Rakefile +4 -4
  7. data/lib/rubygems.rb +5 -4
  8. data/lib/rubygems/basic_specification.rb +2 -1
  9. data/lib/rubygems/commands/install_command.rb +0 -46
  10. data/lib/rubygems/commands/owner_command.rb +1 -2
  11. data/lib/rubygems/commands/pristine_command.rb +2 -2
  12. data/lib/rubygems/commands/query_command.rb +12 -3
  13. data/lib/rubygems/core_ext/kernel_require.rb +1 -1
  14. data/lib/rubygems/dependency.rb +3 -13
  15. data/lib/rubygems/errors.rb +43 -0
  16. data/lib/rubygems/install_update_options.rb +46 -0
  17. data/lib/rubygems/installer.rb +1 -1
  18. data/lib/rubygems/request.rb +1 -1
  19. data/lib/rubygems/specification.rb +3 -3
  20. data/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRoot.pem +18 -0
  21. data/lib/rubygems/ssl_certs/{DigiCertHighAssuranceEVRootCA.pem → rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem} +0 -0
  22. data/lib/rubygems/ssl_certs/{AddTrustExternalCARoot-2048.pem → rubygems.org/AddTrustExternalCARoot-2048.pem} +0 -0
  23. data/lib/rubygems/stub_specification.rb +0 -3
  24. data/lib/rubygems/test_case.rb +11 -0
  25. data/test/rubygems/test_bundled_ca.rb +5 -1
  26. data/test/rubygems/test_gem.rb +30 -3
  27. data/test/rubygems/test_gem_commands_environment_command.rb +1 -1
  28. data/test/rubygems/test_gem_commands_owner_command.rb +7 -0
  29. data/test/rubygems/test_gem_commands_query_command.rb +20 -0
  30. data/test/rubygems/test_gem_commands_setup_command.rb +4 -4
  31. data/test/rubygems/test_gem_dependency.rb +2 -2
  32. data/test/rubygems/test_gem_specification.rb +13 -2
  33. data/test/rubygems/test_kernel.rb +1 -1
  34. data/util/update_bundled_ca_certificates.rb +2 -1
  35. metadata +9 -12
  36. data/MAINTAINERS.md +0 -5
  37. data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +0 -32
  38. data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
  39. data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
  40. data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e637cea941cba1038aa966e4b493ee19b015f16
4
- data.tar.gz: 2f3a0e95c40344b31b87a509b76ba85b01884304
3
+ metadata.gz: bed7c7899639f9d4eb539d69521ede2590f48bf7
4
+ data.tar.gz: 8a477e9b22457409b503bfd6c2d4db1b210d4bd8
5
5
  SHA512:
6
- metadata.gz: 8e2600876b6e09cee7b0cc41b72ae5d5deefa904b38b886f594737f30e12facc67a9584d5fc2188eadb41b124211fdc91a70f1a17f531013be5d436511640071
7
- data.tar.gz: d01dd0b8aea7c52cd8095f61b0bf637621798af6bf47821601b5e1df0ef2542261b32e21871702cdb4f35ee707b4bcf338bdcce16cf135507c889312f15eaa5b
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.md
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/AddTrustExternalCARoot-2048.pem
174
- lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem
175
- lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem
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 gemcutter S3"
175
- task :upload_to_gemcutter do
176
- sh "s3cmd put -P pkg/rubygems-update-#{v}.gem pkg/rubygems-#{v}.zip pkg/rubygems-#{v}.tgz s3://oregon.production.s3.rubygems.org/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[upload_to_gemcutter]
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.2'
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.last
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 are deprecated. Please use a String or nil.
378
- An Array was passed in from #{caller[3]}
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
 
@@ -66,7 +66,7 @@ permission to.
66
66
 
67
67
  say "Owners for gem: #{name}"
68
68
  owners.each do |owner|
69
- say "- #{owner['email']}"
69
+ say "- #{owner['email'] || owner['handle'] || owner['id']}"
70
70
  end
71
71
  end
72
72
  end
@@ -97,4 +97,3 @@ permission to.
97
97
  end
98
98
 
99
99
  end
100
-
@@ -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 gem_name, options[:version]
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
- version
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? }.last
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"
@@ -286,9 +286,7 @@ class Gem::Dependency
286
286
  }
287
287
  end
288
288
 
289
- # `stubs_for` returns oldest first, but `matching_specs` is supposed to
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
- total = Gem::Specification.stubs.size
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
- specs = specs.map(&:full_name)
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
@@ -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
  ##
@@ -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
 
@@ -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/*.pem", File.dirname(__FILE__))
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| sort_by!(v) { |i| i.version } }
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.reverse_each do |spec|
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.reverse_each do |dep_spec|
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-----
@@ -89,8 +89,6 @@ class Gem::StubSpecification < Gem::BasicSpecification
89
89
  end
90
90
  end
91
91
 
92
- def this; self; end
93
-
94
92
  def default_gem?
95
93
  @default_gem
96
94
  end
@@ -212,4 +210,3 @@ class Gem::StubSpecification < Gem::BasicSpecification
212
210
  end
213
211
 
214
212
  end
215
-
@@ -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/*.pem', THIS_FILE
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
@@ -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::LoadError do
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::LoadError do
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. Please use a String or nil/, stderr)
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\.\d\.\d \(.*\) \[.*\]|, @ui.output
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::LoadError do
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::LoadError do
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::LoadError do
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::LoadError do
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::LoadError) { gem('a', '= 1') }
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://s3.amazonaws.com'),
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.2
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-03-12 00:00:00.000000000 Z
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.14'
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.14'
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.md
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.md
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/AddTrustExternalCARoot-2048.pem
332
- - lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem
333
- - lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem
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-----