rubygems-update 3.0.4 → 3.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.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-----
|