rubygems-update 2.0.0.rc.1 → 2.0.0.rc.2
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.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +3 -0
- data.tar.gz.sig +0 -0
- data/History.txt +165 -3
- data/Manifest.txt +1 -0
- data/lib/rubygems.rb +19 -37
- data/lib/rubygems/commands/push_command.rb +18 -11
- data/lib/rubygems/compatibility.rb +5 -1
- data/lib/rubygems/config_file.rb +42 -1
- data/lib/rubygems/dependency_installer.rb +7 -8
- data/lib/rubygems/errors.rb +2 -1
- data/lib/rubygems/ext/builder.rb +13 -6
- data/lib/rubygems/gemcutter_utilities.rb +12 -4
- data/lib/rubygems/package.rb +10 -2
- data/lib/rubygems/package/old.rb +37 -6
- data/lib/rubygems/security/policy.rb +44 -10
- data/lib/rubygems/specification.rb +7 -1
- data/lib/rubygems/ssl_certs/.document +1 -0
- data/lib/rubygems/test_case.rb +19 -5
- data/test/rubygems/test_gem.rb +42 -2
- data/test/rubygems/test_gem_commands_push_command.rb +2 -1
- data/test/rubygems/test_gem_config_file.rb +98 -34
- data/test/rubygems/test_gem_dependency_installer.rb +34 -2
- data/test/rubygems/test_gem_gemcutter_utilities.rb +23 -4
- data/test/rubygems/test_gem_installer.rb +27 -0
- data/test/rubygems/test_gem_package.rb +54 -3
- data/test/rubygems/test_gem_package_old.rb +42 -0
- data/test/rubygems/test_gem_security_policy.rb +144 -32
- data/test/rubygems/test_gem_specification.rb +9 -0
- metadata +136 -165
- metadata.gz.sig +0 -0
@@ -31,8 +31,10 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
31
31
|
@sha1 = OpenSSL::Digest::SHA1
|
32
32
|
@trust_dir = Gem::Security.trust_dir.dir # HACK use the object
|
33
33
|
|
34
|
+
@no = Gem::Security::NoSecurity
|
34
35
|
@almost_no = Gem::Security::AlmostNoSecurity
|
35
36
|
@low = Gem::Security::LowSecurity
|
37
|
+
@medium = Gem::Security::MediumSecurity
|
36
38
|
@high = Gem::Security::HighSecurity
|
37
39
|
|
38
40
|
@chain = Gem::Security::Policy.new(
|
@@ -84,6 +86,14 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
84
86
|
assert @chain.check_chain chain, Time.now
|
85
87
|
end
|
86
88
|
|
89
|
+
def test_check_chain_empty_chain
|
90
|
+
e = assert_raises Gem::Security::Exception do
|
91
|
+
@chain.check_chain [], Time.now
|
92
|
+
end
|
93
|
+
|
94
|
+
assert_equal 'empty signing chain', e.message
|
95
|
+
end
|
96
|
+
|
87
97
|
def test_check_chain_invalid
|
88
98
|
chain = [PUBLIC_CERT, CHILD_CERT, INVALIDCHILD_CERT]
|
89
99
|
|
@@ -96,6 +106,14 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
96
106
|
"was not issued by #{CHILD_CERT.subject}", e.message
|
97
107
|
end
|
98
108
|
|
109
|
+
def test_check_chain_no_chain
|
110
|
+
e = assert_raises Gem::Security::Exception do
|
111
|
+
@chain.check_chain nil, Time.now
|
112
|
+
end
|
113
|
+
|
114
|
+
assert_equal 'missing signing chain', e.message
|
115
|
+
end
|
116
|
+
|
99
117
|
def test_check_cert
|
100
118
|
assert @low.check_cert(PUBLIC_CERT, nil, Time.now)
|
101
119
|
end
|
@@ -134,10 +152,28 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
134
152
|
assert @low.check_cert(CHILD_CERT, PUBLIC_CERT, Time.now)
|
135
153
|
end
|
136
154
|
|
155
|
+
def test_check_cert_no_signer
|
156
|
+
e = assert_raises Gem::Security::Exception do
|
157
|
+
@high.check_cert(nil, nil, Time.now)
|
158
|
+
end
|
159
|
+
|
160
|
+
assert_equal 'missing signing certificate', e.message
|
161
|
+
end
|
162
|
+
|
137
163
|
def test_check_key
|
138
164
|
assert @almost_no.check_key(PUBLIC_CERT, PRIVATE_KEY)
|
139
165
|
end
|
140
166
|
|
167
|
+
def test_check_key_no_signer
|
168
|
+
assert @almost_no.check_key(nil, nil)
|
169
|
+
|
170
|
+
e = assert_raises Gem::Security::Exception do
|
171
|
+
@high.check_key(nil, nil)
|
172
|
+
end
|
173
|
+
|
174
|
+
assert_equal 'missing key or signature', e.message
|
175
|
+
end
|
176
|
+
|
141
177
|
def test_check_key_wrong_key
|
142
178
|
e = assert_raises Gem::Security::Exception do
|
143
179
|
@almost_no.check_key(PUBLIC_CERT, ALTERNATE_KEY)
|
@@ -153,6 +189,14 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
153
189
|
assert @chain.check_root chain, Time.now
|
154
190
|
end
|
155
191
|
|
192
|
+
def test_check_root_empty_chain
|
193
|
+
e = assert_raises Gem::Security::Exception do
|
194
|
+
@chain.check_root [], Time.now
|
195
|
+
end
|
196
|
+
|
197
|
+
assert_equal 'missing root certificate', e.message
|
198
|
+
end
|
199
|
+
|
156
200
|
def test_check_root_invalid_signer
|
157
201
|
chain = [INVALID_SIGNER_CERT]
|
158
202
|
|
@@ -177,6 +221,14 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
177
221
|
e.message
|
178
222
|
end
|
179
223
|
|
224
|
+
def test_check_root_no_chain
|
225
|
+
e = assert_raises Gem::Security::Exception do
|
226
|
+
@chain.check_root nil, Time.now
|
227
|
+
end
|
228
|
+
|
229
|
+
assert_equal 'missing signing chain', e.message
|
230
|
+
end
|
231
|
+
|
180
232
|
def test_check_trust
|
181
233
|
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
182
234
|
|
@@ -189,6 +241,14 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
189
241
|
assert @high.check_trust [PUBLIC_CERT, CHILD_CERT], @sha1, @trust_dir
|
190
242
|
end
|
191
243
|
|
244
|
+
def test_check_trust_empty_chain
|
245
|
+
e = assert_raises Gem::Security::Exception do
|
246
|
+
@chain.check_trust [], @sha1, @trust_dir
|
247
|
+
end
|
248
|
+
|
249
|
+
assert_equal 'missing root certificate', e.message
|
250
|
+
end
|
251
|
+
|
192
252
|
def test_check_trust_mismatch
|
193
253
|
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
194
254
|
|
@@ -200,6 +260,14 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
200
260
|
"does not match signing root certificate checksum", e.message
|
201
261
|
end
|
202
262
|
|
263
|
+
def test_check_trust_no_chain
|
264
|
+
e = assert_raises Gem::Security::Exception do
|
265
|
+
@chain.check_trust nil, @sha1, @trust_dir
|
266
|
+
end
|
267
|
+
|
268
|
+
assert_equal 'missing signing chain', e.message
|
269
|
+
end
|
270
|
+
|
203
271
|
def test_check_trust_no_trust
|
204
272
|
e = assert_raises Gem::Security::Exception do
|
205
273
|
@high.check_trust [PUBLIC_CERT], @sha1, @trust_dir
|
@@ -220,73 +288,108 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
220
288
|
def test_verify
|
221
289
|
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
222
290
|
|
223
|
-
assert @almost_no.verify [PUBLIC_CERT]
|
291
|
+
assert @almost_no.verify [PUBLIC_CERT], nil, *dummy_signatures
|
224
292
|
end
|
225
293
|
|
226
294
|
def test_verify_chain_signatures
|
227
295
|
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
228
296
|
|
229
|
-
|
230
|
-
digest = { 'SHA1' => { 0 => data } }
|
231
|
-
signature = { 0 => sign(data, PRIVATE_KEY) }
|
232
|
-
|
233
|
-
assert @high.verify [PUBLIC_CERT], nil, digest, signature
|
297
|
+
assert @high.verify [PUBLIC_CERT], nil, *dummy_signatures
|
234
298
|
end
|
235
299
|
|
236
300
|
def test_verify_chain_key
|
237
|
-
|
301
|
+
@almost_no.verify [PUBLIC_CERT], PRIVATE_KEY, *dummy_signatures
|
238
302
|
end
|
239
303
|
|
240
|
-
def
|
241
|
-
|
242
|
-
|
243
|
-
|
304
|
+
def test_verify_no_digests
|
305
|
+
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
306
|
+
|
307
|
+
_, signatures = dummy_signatures
|
244
308
|
|
309
|
+
e = assert_raises Gem::Security::Exception do
|
310
|
+
@almost_no.verify [PUBLIC_CERT], nil, {}, signatures
|
311
|
+
end
|
312
|
+
|
313
|
+
assert_equal 'no digests provided (probable bug)', e.message
|
314
|
+
end
|
315
|
+
|
316
|
+
def test_verify_no_digests_no_security
|
317
|
+
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
318
|
+
|
319
|
+
_, signatures = dummy_signatures
|
320
|
+
|
321
|
+
e = assert_raises Gem::Security::Exception do
|
322
|
+
@no.verify [PUBLIC_CERT], nil, {}, signatures
|
323
|
+
end
|
324
|
+
|
325
|
+
assert_equal 'missing digest for 0', e.message
|
326
|
+
end
|
327
|
+
|
328
|
+
def test_verify_not_enough_signatures
|
329
|
+
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
330
|
+
|
331
|
+
digests, signatures = dummy_signatures
|
332
|
+
|
333
|
+
data = digest 'goodbye'
|
334
|
+
|
335
|
+
signatures[1] = PRIVATE_KEY.sign @sha1.new, data.digest
|
336
|
+
|
337
|
+
e = assert_raises Gem::Security::Exception do
|
338
|
+
@almost_no.verify [PUBLIC_CERT], nil, digests, signatures
|
339
|
+
end
|
340
|
+
|
341
|
+
assert_equal 'missing digest for 1', e.message
|
342
|
+
end
|
343
|
+
|
344
|
+
def test_verify_wrong_digest_type
|
345
|
+
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
346
|
+
|
347
|
+
sha512 = OpenSSL::Digest::SHA512
|
348
|
+
|
349
|
+
data = sha512.new
|
350
|
+
data << 'hello'
|
351
|
+
|
352
|
+
digests = { 'SHA512' => { 0 => data } }
|
353
|
+
signature = PRIVATE_KEY.sign sha512.new, data.digest
|
354
|
+
signatures = { 0 => signature }
|
355
|
+
|
356
|
+
e = assert_raises Gem::Security::Exception do
|
357
|
+
@almost_no.verify [PUBLIC_CERT], nil, digests, signatures
|
358
|
+
end
|
359
|
+
|
360
|
+
assert_equal 'no digests provided (probable bug)', e.message
|
361
|
+
end
|
362
|
+
|
363
|
+
def test_verify_signatures_chain
|
245
364
|
@spec.cert_chain = [PUBLIC_CERT, CHILD_CERT]
|
246
365
|
|
247
|
-
assert @chain.verify_signatures @spec,
|
366
|
+
assert @chain.verify_signatures @spec, *dummy_signatures(CHILD_KEY)
|
248
367
|
end
|
249
368
|
|
250
369
|
def test_verify_signatures_data
|
251
|
-
data = digest 'hello'
|
252
|
-
digest = { 'SHA1' => { 0 => data } }
|
253
|
-
signature = { 0 => sign(data) }
|
254
|
-
|
255
370
|
@spec.cert_chain = [PUBLIC_CERT]
|
256
371
|
|
257
|
-
@almost_no.verify_signatures @spec,
|
372
|
+
@almost_no.verify_signatures @spec, *dummy_signatures
|
258
373
|
end
|
259
374
|
|
260
375
|
def test_verify_signatures_root
|
261
|
-
data = digest 'hello'
|
262
|
-
digest = { 'SHA1' => { 0 => data } }
|
263
|
-
signature = { 0 => sign(data, CHILD_KEY) }
|
264
|
-
|
265
376
|
@spec.cert_chain = [PUBLIC_CERT, CHILD_CERT]
|
266
377
|
|
267
|
-
assert @root.verify_signatures @spec,
|
378
|
+
assert @root.verify_signatures @spec, *dummy_signatures(CHILD_KEY)
|
268
379
|
end
|
269
380
|
|
270
381
|
def test_verify_signatures_signer
|
271
|
-
data = digest 'hello'
|
272
|
-
digest = { 'SHA1' => { 0 => data } }
|
273
|
-
signature = { 0 => sign(data) }
|
274
|
-
|
275
382
|
@spec.cert_chain = [PUBLIC_CERT]
|
276
383
|
|
277
|
-
assert @low.verify_signatures @spec,
|
384
|
+
assert @low.verify_signatures @spec, *dummy_signatures
|
278
385
|
end
|
279
386
|
|
280
387
|
def test_verify_signatures_trust
|
281
388
|
Gem::Security.trust_dir.trust_cert PUBLIC_CERT
|
282
389
|
|
283
|
-
data = digest 'hello'
|
284
|
-
digest = { 'SHA1' => { 0 => data } }
|
285
|
-
signature = { 0 => sign(data, PRIVATE_KEY) }
|
286
|
-
|
287
390
|
@spec.cert_chain = [PUBLIC_CERT]
|
288
391
|
|
289
|
-
assert @high.verify_signatures @spec,
|
392
|
+
assert @high.verify_signatures @spec, *dummy_signatures
|
290
393
|
end
|
291
394
|
|
292
395
|
def test_verify_signatures
|
@@ -372,5 +475,14 @@ class TestGemSecurityPolicy < Gem::TestCase
|
|
372
475
|
key.sign @sha1.new, data.digest
|
373
476
|
end
|
374
477
|
|
478
|
+
def dummy_signatures key = PRIVATE_KEY
|
479
|
+
data = digest 'hello'
|
480
|
+
|
481
|
+
digests = { 'SHA1' => { 0 => data } }
|
482
|
+
signatures = { 0 => sign(data, key) }
|
483
|
+
|
484
|
+
return digests, signatures
|
485
|
+
end
|
486
|
+
|
375
487
|
end
|
376
488
|
|
@@ -118,6 +118,15 @@ end
|
|
118
118
|
assert_equal @current_version, new_spec.specification_version
|
119
119
|
end
|
120
120
|
|
121
|
+
def test_self_from_yaml
|
122
|
+
@a1.instance_variable_set :@specification_version, nil
|
123
|
+
|
124
|
+
spec = Gem::Specification.from_yaml @a1.to_yaml
|
125
|
+
|
126
|
+
assert_equal Gem::Specification::NONEXISTENT_SPECIFICATION_VERSION,
|
127
|
+
spec.specification_version
|
128
|
+
end
|
129
|
+
|
121
130
|
def test_self_from_yaml_syck_date_bug
|
122
131
|
# This is equivalent to (and totally valid) psych 1.0 output and
|
123
132
|
# causes parse errors on syck.
|
metadata
CHANGED
@@ -1,23 +1,15 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: 6
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
- rc
|
11
|
-
- 1
|
12
|
-
version: 2.0.0.rc.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.0.rc.2
|
13
5
|
platform: ruby
|
14
|
-
authors:
|
6
|
+
authors:
|
15
7
|
- Jim Weirich
|
16
8
|
- Chad Fowler
|
17
9
|
- Eric Hodel
|
18
10
|
autorequire:
|
19
11
|
bindir: bin
|
20
|
-
cert_chain:
|
12
|
+
cert_chain:
|
21
13
|
- |
|
22
14
|
-----BEGIN CERTIFICATE-----
|
23
15
|
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMRAwDgYDVQQDDAdkcmJy
|
@@ -40,162 +32,151 @@ cert_chain:
|
|
40
32
|
Q8Tno9S3e4XGGP1ZWfLrTWEJbavFfhGHut2iMRwfC7s/YILAHNATopaJdH9DNpd1
|
41
33
|
U81zGHMUBOvz/VGT6wJwYJ3emS2nfA2NOHFfgA==
|
42
34
|
-----END CERTIFICATE-----
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
date: 2013-02-08 00:00:00.000000000 Z
|
36
|
+
dependencies:
|
37
|
+
- !ruby/object:Gem::Dependency
|
47
38
|
name: minitest
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
hash: 25
|
55
|
-
segments:
|
56
|
-
- 4
|
57
|
-
- 1
|
58
|
-
version: "4.1"
|
39
|
+
requirement: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - "~>"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4.3'
|
59
44
|
type: :development
|
60
|
-
version_requirements: *id001
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: rdoc
|
63
45
|
prerelease: false
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
46
|
+
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - "~>"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '4.3'
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: rdoc
|
53
|
+
requirement: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '3.10'
|
74
58
|
type: :development
|
75
|
-
version_requirements: *id002
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
name: builder
|
78
59
|
prerelease: false
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
60
|
+
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - "~>"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '3.10'
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: builder
|
67
|
+
requirement: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - "~>"
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '2.1'
|
89
72
|
type: :development
|
90
|
-
version_requirements: *id003
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: hoe-seattlerb
|
93
73
|
prerelease: false
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - "~>"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '2.1'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: hoe-seattlerb
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '1.2'
|
104
86
|
type: :development
|
105
|
-
version_requirements: *id004
|
106
|
-
- !ruby/object:Gem::Dependency
|
107
|
-
name: session
|
108
87
|
prerelease: false
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - "~>"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '1.2'
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: session
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '2.4'
|
119
100
|
type: :development
|
120
|
-
version_requirements: *id005
|
121
|
-
- !ruby/object:Gem::Dependency
|
122
|
-
name: ZenTest
|
123
101
|
prerelease: false
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
102
|
+
version_requirements: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - "~>"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '2.4'
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: ZenTest
|
109
|
+
requirement: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - "~>"
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '4.5'
|
134
114
|
type: :development
|
135
|
-
version_requirements: *id006
|
136
|
-
- !ruby/object:Gem::Dependency
|
137
|
-
name: rake
|
138
115
|
prerelease: false
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - "~>"
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '4.5'
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: rake
|
123
|
+
requirement: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - "~>"
|
126
|
+
- !ruby/object:Gem::Version
|
149
127
|
version: 0.9.3
|
150
128
|
type: :development
|
151
|
-
version_requirements: *id007
|
152
|
-
- !ruby/object:Gem::Dependency
|
153
|
-
name: hoe
|
154
129
|
prerelease: false
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
130
|
+
version_requirements: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - "~>"
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: 0.9.3
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: hoe
|
137
|
+
requirement: !ruby/object:Gem::Requirement
|
138
|
+
requirements:
|
139
|
+
- - "~>"
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '3.3'
|
165
142
|
type: :development
|
166
|
-
|
143
|
+
prerelease: false
|
144
|
+
version_requirements: !ruby/object:Gem::Requirement
|
145
|
+
requirements:
|
146
|
+
- - "~>"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '3.3'
|
167
149
|
description: |-
|
168
150
|
RubyGems is a package management framework for Ruby.
|
169
|
-
|
151
|
+
|
170
152
|
This gem is an update for the RubyGems software. You must have an
|
171
153
|
installation of RubyGems before this update can be applied.
|
172
|
-
|
154
|
+
|
173
155
|
See Gem for information on RubyGems (or `ri Gem`)
|
174
|
-
|
156
|
+
|
175
157
|
To upgrade to the latest RubyGems, run:
|
176
|
-
|
158
|
+
|
177
159
|
$ gem update --system # you might need to be an administrator or root
|
178
|
-
|
160
|
+
|
179
161
|
See UPGRADING.rdoc for more details and alternative instructions.
|
180
|
-
|
162
|
+
|
181
163
|
-----
|
182
|
-
|
164
|
+
|
183
165
|
If you don't have RubyGems installed, you can still do it manually:
|
184
|
-
|
166
|
+
|
185
167
|
* Download from: https://rubygems.org/pages/download
|
186
168
|
* Unpack into a directory and cd there
|
187
169
|
* Install with: ruby setup.rb # you may need admin/root privilege
|
188
|
-
|
170
|
+
|
189
171
|
For more details and other options, see:
|
190
|
-
|
172
|
+
|
191
173
|
ruby setup.rb --help
|
192
|
-
email:
|
174
|
+
email:
|
193
175
|
- rubygems-developers@rubyforge.org
|
194
|
-
executables:
|
176
|
+
executables:
|
195
177
|
- update_rubygems
|
196
178
|
extensions: []
|
197
|
-
|
198
|
-
extra_rdoc_files:
|
179
|
+
extra_rdoc_files:
|
199
180
|
- History.txt
|
200
181
|
- LICENSE.txt
|
201
182
|
- MIT.txt
|
@@ -203,9 +184,9 @@ extra_rdoc_files:
|
|
203
184
|
- README.rdoc
|
204
185
|
- UPGRADING.rdoc
|
205
186
|
- hide_lib_for_update/note.txt
|
206
|
-
files:
|
207
|
-
- .autotest
|
208
|
-
- .document
|
187
|
+
files:
|
188
|
+
- ".autotest"
|
189
|
+
- ".document"
|
209
190
|
- History.txt
|
210
191
|
- LICENSE.txt
|
211
192
|
- MIT.txt
|
@@ -310,6 +291,7 @@ files:
|
|
310
291
|
- lib/rubygems/source_specific_file.rb
|
311
292
|
- lib/rubygems/spec_fetcher.rb
|
312
293
|
- lib/rubygems/specification.rb
|
294
|
+
- lib/rubygems/ssl_certs/.document
|
313
295
|
- lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem
|
314
296
|
- lib/rubygems/ssl_certs/Entrust_net-Secure-Server-Certification-Authority.pem
|
315
297
|
- lib/rubygems/ssl_certs/VerisignClass3PublicPrimaryCertificationAuthority-G2.pem
|
@@ -458,45 +440,34 @@ files:
|
|
458
440
|
- test/rubygems/wrong_key_cert_32.pem
|
459
441
|
- util/CL2notes
|
460
442
|
- util/create_certs.rb
|
461
|
-
- .gemtest
|
462
|
-
homepage: http://
|
443
|
+
- ".gemtest"
|
444
|
+
homepage: http://rubygems.org
|
463
445
|
licenses: []
|
464
|
-
|
446
|
+
metadata: {}
|
465
447
|
post_install_message:
|
466
|
-
rdoc_options:
|
467
|
-
- --main
|
448
|
+
rdoc_options:
|
449
|
+
- "--main"
|
468
450
|
- README.rdoc
|
469
|
-
- --title=RubyGems 2.0.0.rc.
|
470
|
-
require_paths:
|
451
|
+
- "--title=RubyGems 2.0.0.rc.2 Documentation"
|
452
|
+
require_paths:
|
471
453
|
- hide_lib_for_update
|
472
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
473
|
-
|
474
|
-
requirements:
|
454
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
455
|
+
requirements:
|
475
456
|
- - ">="
|
476
|
-
- !ruby/object:Gem::Version
|
477
|
-
hash: 57
|
478
|
-
segments:
|
479
|
-
- 1
|
480
|
-
- 8
|
481
|
-
- 7
|
457
|
+
- !ruby/object:Gem::Version
|
482
458
|
version: 1.8.7
|
483
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
484
|
-
|
485
|
-
requirements:
|
459
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
460
|
+
requirements:
|
486
461
|
- - ">="
|
487
|
-
- !ruby/object:Gem::Version
|
488
|
-
|
489
|
-
segments:
|
490
|
-
- 0
|
491
|
-
version: "0"
|
462
|
+
- !ruby/object:Gem::Version
|
463
|
+
version: '0'
|
492
464
|
requirements: []
|
493
|
-
|
494
465
|
rubyforge_project: rubygems
|
495
|
-
rubygems_version:
|
466
|
+
rubygems_version: 2.0.0.rc.2
|
496
467
|
signing_key:
|
497
|
-
specification_version:
|
468
|
+
specification_version: 4
|
498
469
|
summary: RubyGems is a package management framework for Ruby
|
499
|
-
test_files:
|
470
|
+
test_files:
|
500
471
|
- test/rubygems/test_config.rb
|
501
472
|
- test/rubygems/test_deprecate.rb
|
502
473
|
- test/rubygems/test_gem.rb
|