rubygems-update 3.0.4 → 3.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -0
- data/History.txt +85 -0
- data/Manifest.txt +5 -3
- data/Rakefile +8 -6
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/lib/rubygems.rb +6 -12
- data/lib/rubygems/commands/push_command.rb +2 -0
- data/lib/rubygems/commands/setup_command.rb +9 -11
- data/lib/rubygems/commands/uninstall_command.rb +16 -6
- data/lib/rubygems/commands/which_command.rb +1 -3
- data/lib/rubygems/defaults.rb +1 -8
- data/lib/rubygems/dependency.rb +1 -1
- data/lib/rubygems/dependency_installer.rb +1 -2
- data/lib/rubygems/exceptions.rb +0 -4
- data/lib/rubygems/gemcutter_utilities.rb +9 -5
- data/lib/rubygems/installer.rb +8 -5
- data/lib/rubygems/installer_test_case.rb +2 -2
- data/lib/rubygems/package/tar_header.rb +11 -2
- data/lib/rubygems/remote_fetcher.rb +15 -54
- data/lib/rubygems/request.rb +1 -1
- data/lib/rubygems/request_set/gem_dependency_api.rb +3 -5
- data/lib/rubygems/resolver.rb +4 -1
- data/lib/rubygems/s3_uri_signer.rb +183 -0
- data/lib/rubygems/security_option.rb +0 -1
- data/lib/rubygems/specification.rb +13 -14
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +1 -2
- data/lib/rubygems/test_case.rb +8 -4
- data/lib/rubygems/util.rb +12 -0
- data/rubygems-update.gemspec +1 -1
- data/test/rubygems/test_bundled_ca.rb +7 -4
- data/test/rubygems/test_gem.rb +40 -3
- data/test/rubygems/test_gem_commands_push_command.rb +15 -0
- data/test/rubygems/test_gem_commands_setup_command.rb +11 -7
- data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -1
- data/test/rubygems/test_gem_indexer.rb +8 -8
- data/test/rubygems/test_gem_installer.rb +78 -19
- data/test/rubygems/test_gem_package_tar_header.rb +41 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +133 -14
- data/test/rubygems/test_gem_request.rb +4 -4
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +20 -30
- data/test/rubygems/test_gem_specification.rb +29 -0
- data/test/rubygems/test_gem_util.rb +8 -0
- data/util/cops/deprecations.rb +52 -0
- data/util/create_certs.sh +27 -0
- data/util/update_bundled_ca_certificates.rb +1 -3
- metadata +12 -9
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
@@ -2419,6 +2419,35 @@ end
|
|
2419
2419
|
assert_equal @a2, same_spec
|
2420
2420
|
end
|
2421
2421
|
|
2422
|
+
def test_to_ruby_with_rsa_key
|
2423
|
+
rsa_key = OpenSSL::PKey::RSA.new(2048)
|
2424
|
+
@a2.signing_key = rsa_key
|
2425
|
+
ruby_code = @a2.to_ruby
|
2426
|
+
|
2427
|
+
expected = <<-SPEC
|
2428
|
+
# -*- encoding: utf-8 -*-
|
2429
|
+
# stub: a 2 ruby lib
|
2430
|
+
|
2431
|
+
Gem::Specification.new do |s|
|
2432
|
+
s.name = "a".freeze
|
2433
|
+
s.version = "2"
|
2434
|
+
|
2435
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
2436
|
+
s.require_paths = ["lib".freeze]
|
2437
|
+
s.authors = ["A User".freeze]
|
2438
|
+
s.date = "#{Gem::Specification::TODAY.strftime "%Y-%m-%d"}"
|
2439
|
+
s.description = "This is a test description".freeze
|
2440
|
+
s.email = "example@example.com".freeze
|
2441
|
+
s.files = ["lib/code.rb".freeze]
|
2442
|
+
s.homepage = "http://example.com".freeze
|
2443
|
+
s.rubygems_version = "#{Gem::VERSION}".freeze
|
2444
|
+
s.summary = "this is a summary".freeze
|
2445
|
+
end
|
2446
|
+
SPEC
|
2447
|
+
|
2448
|
+
assert_equal expected, ruby_code
|
2449
|
+
end
|
2450
|
+
|
2422
2451
|
def test_to_ruby_for_cache
|
2423
2452
|
@a2.add_runtime_dependency 'b', '1'
|
2424
2453
|
@a2.dependencies.first.instance_variable_set :@type, nil
|
@@ -75,4 +75,12 @@ class TestGemUtil < Gem::TestCase
|
|
75
75
|
assert_equal expected_paths.to_set, files_with_relative_base.to_set
|
76
76
|
end
|
77
77
|
|
78
|
+
def test_correct_for_windows_path
|
79
|
+
path = "/C:/WINDOWS/Temp/gems"
|
80
|
+
assert_equal "C:/WINDOWS/Temp/gems", Gem::Util.correct_for_windows_path(path)
|
81
|
+
|
82
|
+
path = "/home/skillet"
|
83
|
+
assert_equal "/home/skillet", Gem::Util.correct_for_windows_path(path)
|
84
|
+
end
|
85
|
+
|
78
86
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Rubygems
|
6
|
+
# This cop enforces that no outdated deprecations are present on RubyGems
|
7
|
+
# code base.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
#
|
11
|
+
# As of March, 2019
|
12
|
+
#
|
13
|
+
# # bad
|
14
|
+
# deprecate :safdfa, nil, 2018, 12
|
15
|
+
# deprecate :safdfa, nil, 2019, 03
|
16
|
+
#
|
17
|
+
# # good
|
18
|
+
# deprecate :safdfa, nil, 2019, 04
|
19
|
+
#
|
20
|
+
class Deprecations < Cop
|
21
|
+
|
22
|
+
MSG = "Remove `deprecate` calls with dates in the past, along with " \
|
23
|
+
"the methods they deprecate, or expand the deprecation horizons to " \
|
24
|
+
"a future date"
|
25
|
+
|
26
|
+
def on_send(node)
|
27
|
+
_receiver, method_name, *args = *node
|
28
|
+
return unless method_name == :deprecate
|
29
|
+
|
30
|
+
scheduled_year = args[2].children.last
|
31
|
+
scheduled_month = args[3].children.last
|
32
|
+
|
33
|
+
current_time = Time.now
|
34
|
+
|
35
|
+
current_year = current_time.year
|
36
|
+
current_month = current_time.month
|
37
|
+
|
38
|
+
if current_year >= scheduled_year || (current_year == scheduled_year && current_month >= scheduled_month)
|
39
|
+
add_offense(node)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def message(node)
|
46
|
+
format(MSG, method: node.method_name)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
# cp /etc/ssl/openssl.cnf . # copied from OpenSSL 1.1.1b source
|
4
|
+
|
5
|
+
rm -rf demoCA/ server/ client/
|
6
|
+
|
7
|
+
mkdir demoCA demoCA/private demoCA/newcerts
|
8
|
+
touch demoCA/index.txt
|
9
|
+
echo 00 > demoCA/serial
|
10
|
+
openssl genrsa -out demoCA/private/cakey.pem 2048
|
11
|
+
openssl req -new -key demoCA/private/cakey.pem -out demoCA/careq.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=CA"
|
12
|
+
openssl ca -batch -config openssl.cnf -extensions v3_ca -out demoCA/cacert.pem -startdate 090101000000Z -enddate 491231235959Z -batch -keyfile demoCA/private/cakey.pem -selfsign -infiles demoCA/careq.pem
|
13
|
+
|
14
|
+
mkdir server
|
15
|
+
openssl genrsa -out server/server.key 2048
|
16
|
+
openssl req -new -key server/server.key -out server/csr.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=localhost"
|
17
|
+
openssl ca -batch -config openssl.cnf -startdate 090101000000Z -enddate 491231235959Z -in server/csr.pem -keyfile demoCA/private/cakey.pem -cert demoCA/cacert.pem -out server/cert.pem
|
18
|
+
|
19
|
+
mkdir client
|
20
|
+
openssl genrsa -out client/client.key 2048
|
21
|
+
openssl req -config openssl.cnf -new -key client/client.key -out client/csr.pem -subj "/C=JP/ST=Tokyo/O=RubyGemsTest/CN=client"
|
22
|
+
openssl ca -batch -config openssl.cnf -startdate 090101000000Z -enddate 491231235959Z -in client/csr.pem -keyfile demoCA/private/cakey.pem -cert demoCA/cacert.pem -out client/cert.pem
|
23
|
+
|
24
|
+
cp demoCA/cacert.pem $(git rev-parse --show-toplevel)/test/rubygems/ca_cert.pem
|
25
|
+
cp server/cert.pem $(git rev-parse --show-toplevel)/test/rubygems/ssl_cert.pem
|
26
|
+
cp server/server.key $(git rev-parse --show-toplevel)/test/rubygems/ssl_key.pem
|
27
|
+
cat client/cert.pem client/client.key > $(git rev-parse --show-toplevel)/test/rubygems/client.pem
|
@@ -5,14 +5,12 @@ require 'fileutils'
|
|
5
5
|
|
6
6
|
URIS = [
|
7
7
|
URI('https://rubygems.org'),
|
8
|
+
URI('https://www.rubygems.org'),
|
8
9
|
URI('https://index.rubygems.org'),
|
9
10
|
URI('https://staging.rubygems.org'),
|
10
|
-
URI('https://fastly.rubygems.org'),
|
11
|
-
URI('https://rubygems.global.ssl.fastly.net'),
|
12
11
|
].freeze
|
13
12
|
|
14
13
|
HOSTNAMES_TO_MAP = [
|
15
|
-
'rubygems.global.ssl.fastly.net',
|
16
14
|
'rubygems.org',
|
17
15
|
'index.rubygems.org'
|
18
16
|
].freeze
|
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: 3.0.
|
4
|
+
version: 3.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
@@ -13,10 +13,10 @@ authors:
|
|
13
13
|
- André Arko
|
14
14
|
- Evan Phoenix
|
15
15
|
- Hiroshi SHIBATA
|
16
|
-
autorequire:
|
16
|
+
autorequire:
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
|
-
date:
|
19
|
+
date: 2020-12-09 00:00:00.000000000 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: builder
|
@@ -555,6 +555,7 @@ files:
|
|
555
555
|
- lib/rubygems/resolver/stats.rb
|
556
556
|
- lib/rubygems/resolver/vendor_set.rb
|
557
557
|
- lib/rubygems/resolver/vendor_specification.rb
|
558
|
+
- lib/rubygems/s3_uri_signer.rb
|
558
559
|
- lib/rubygems/safe_yaml.rb
|
559
560
|
- lib/rubygems/security.rb
|
560
561
|
- lib/rubygems/security/policies.rb
|
@@ -577,9 +578,8 @@ files:
|
|
577
578
|
- lib/rubygems/specification.rb
|
578
579
|
- lib/rubygems/specification_policy.rb
|
579
580
|
- lib/rubygems/ssl_certs/.document
|
580
|
-
- lib/rubygems/ssl_certs/
|
581
|
-
- lib/rubygems/ssl_certs/rubygems.
|
582
|
-
- lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem
|
581
|
+
- lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem
|
582
|
+
- lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
|
583
583
|
- lib/rubygems/stub_specification.rb
|
584
584
|
- lib/rubygems/syck_hack.rb
|
585
585
|
- lib/rubygems/test_case.rb
|
@@ -781,7 +781,9 @@ files:
|
|
781
781
|
- test/rubygems/wrong_key_cert_32.pem
|
782
782
|
- util/CL2notes
|
783
783
|
- util/ci
|
784
|
+
- util/cops/deprecations.rb
|
784
785
|
- util/create_certs.rb
|
786
|
+
- util/create_certs.sh
|
785
787
|
- util/create_encrypted_key.rb
|
786
788
|
- util/generate_spdx_license_list.rb
|
787
789
|
- util/patch_with_prs.rb
|
@@ -793,7 +795,7 @@ licenses:
|
|
793
795
|
- Ruby
|
794
796
|
- MIT
|
795
797
|
metadata: {}
|
796
|
-
post_install_message:
|
798
|
+
post_install_message:
|
797
799
|
rdoc_options:
|
798
800
|
- "--main"
|
799
801
|
- README.md
|
@@ -811,8 +813,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
811
813
|
- !ruby/object:Gem::Version
|
812
814
|
version: '0'
|
813
815
|
requirements: []
|
814
|
-
|
815
|
-
|
816
|
+
rubyforge_project:
|
817
|
+
rubygems_version: 2.7.6.2
|
818
|
+
signing_key:
|
816
819
|
specification_version: 4
|
817
820
|
summary: RubyGems is a package management framework for Ruby.
|
818
821
|
test_files: []
|
data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
|
3
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
4
|
-
d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
|
5
|
-
ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
|
6
|
-
MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
|
7
|
-
LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
|
8
|
-
RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
|
9
|
-
+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
|
10
|
-
PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
|
11
|
-
xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
|
12
|
-
Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
|
13
|
-
hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
|
14
|
-
EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
|
15
|
-
MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
|
16
|
-
FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
|
17
|
-
nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
|
18
|
-
eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
|
19
|
-
hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
|
20
|
-
Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
21
|
-
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
|
22
|
-
+OkuE6N36B9K
|
23
|
-
-----END CERTIFICATE-----
|
@@ -1,25 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
|
3
|
-
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
|
4
|
-
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
|
5
|
-
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
|
6
|
-
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
|
7
|
-
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
|
8
|
-
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
|
9
|
-
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
|
10
|
-
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
|
11
|
-
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
|
12
|
-
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
|
13
|
-
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
|
14
|
-
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
|
15
|
-
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
|
16
|
-
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
|
17
|
-
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
|
18
|
-
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
|
19
|
-
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
|
20
|
-
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
21
|
-
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
|
22
|
-
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
|
23
|
-
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
24
|
-
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
25
|
-
-----END CERTIFICATE-----
|