rubygems-update 2.7.11 → 3.0.0
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/.rubocop.yml +66 -0
- data/.travis.yml +22 -18
- data/CONTRIBUTING.md +141 -0
- data/History.txt +289 -19
- data/MAINTAINERS.txt +1 -0
- data/Manifest.txt +16 -11
- data/POLICIES.md +92 -0
- data/README.md +47 -26
- data/Rakefile +47 -207
- data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
- data/appveyor.yml +20 -45
- data/bin/gem +1 -2
- data/bin/update_rubygems +2 -3
- data/bundler/CHANGELOG.md +54 -0
- data/bundler/bundler.gemspec +7 -1
- data/bundler/lib/bundler.rb +26 -8
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli.rb +63 -21
- data/bundler/lib/bundler/cli/add.rb +15 -5
- data/bundler/lib/bundler/cli/binstubs.rb +8 -2
- data/bundler/lib/bundler/cli/doctor.rb +47 -1
- data/bundler/lib/bundler/cli/install.rb +8 -5
- data/bundler/lib/bundler/cli/list.rb +41 -5
- data/bundler/lib/bundler/cli/outdated.rb +7 -1
- data/bundler/lib/bundler/cli/pristine.rb +4 -0
- data/bundler/lib/bundler/cli/remove.rb +18 -0
- data/bundler/lib/bundler/definition.rb +15 -16
- data/bundler/lib/bundler/dependency.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +19 -3
- data/bundler/lib/bundler/feature_flag.rb +7 -0
- data/bundler/lib/bundler/gem_version_promoter.rb +4 -2
- data/bundler/lib/bundler/injector.rb +168 -9
- data/bundler/lib/bundler/installer.rb +29 -6
- data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
- data/bundler/lib/bundler/plugin.rb +10 -3
- data/bundler/lib/bundler/plugin/events.rb +61 -0
- data/bundler/lib/bundler/resolver.rb +2 -2
- data/bundler/lib/bundler/runtime.rb +8 -2
- data/bundler/lib/bundler/settings.rb +24 -3
- data/bundler/lib/bundler/settings/validator.rb +23 -0
- data/bundler/lib/bundler/shared_helpers.rb +19 -3
- data/bundler/lib/bundler/source.rb +9 -9
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/man/bundle-add.ronn +13 -2
- data/bundler/man/bundle-config.ronn +21 -0
- data/bundler/man/bundle-install.ronn +1 -1
- data/bundler/man/bundle-list.ronn +19 -1
- data/bundler/man/bundle-outdated.ronn +4 -0
- data/bundler/man/bundle-remove.ronn +23 -0
- data/bundler/man/bundle-update.ronn +1 -1
- data/lib/rubygems.rb +70 -96
- data/lib/rubygems/available_set.rb +1 -1
- data/lib/rubygems/basic_specification.rb +12 -12
- data/lib/rubygems/bundler_version_finder.rb +3 -3
- data/lib/rubygems/command.rb +22 -15
- data/lib/rubygems/command_manager.rb +20 -11
- data/lib/rubygems/commands/build_command.rb +27 -8
- data/lib/rubygems/commands/cert_command.rb +45 -24
- data/lib/rubygems/commands/check_command.rb +1 -1
- data/lib/rubygems/commands/cleanup_command.rb +14 -7
- data/lib/rubygems/commands/contents_command.rb +14 -15
- data/lib/rubygems/commands/dependency_command.rb +17 -17
- data/lib/rubygems/commands/environment_command.rb +20 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -3
- data/lib/rubygems/commands/generate_index_command.rb +2 -3
- data/lib/rubygems/commands/help_command.rb +12 -13
- data/lib/rubygems/commands/info_command.rb +33 -0
- data/lib/rubygems/commands/install_command.rb +21 -17
- data/lib/rubygems/commands/list_command.rb +0 -1
- data/lib/rubygems/commands/lock_command.rb +3 -4
- data/lib/rubygems/commands/open_command.rb +16 -10
- data/lib/rubygems/commands/owner_command.rb +20 -11
- data/lib/rubygems/commands/pristine_command.rb +23 -16
- data/lib/rubygems/commands/push_command.rb +17 -8
- data/lib/rubygems/commands/query_command.rb +24 -24
- data/lib/rubygems/commands/rdoc_command.rb +3 -4
- data/lib/rubygems/commands/search_command.rb +0 -1
- data/lib/rubygems/commands/server_command.rb +1 -2
- data/lib/rubygems/commands/setup_command.rb +78 -38
- data/lib/rubygems/commands/signin_command.rb +2 -1
- data/lib/rubygems/commands/signout_command.rb +2 -2
- data/lib/rubygems/commands/sources_command.rb +11 -12
- data/lib/rubygems/commands/specification_command.rb +7 -7
- data/lib/rubygems/commands/uninstall_command.rb +41 -19
- data/lib/rubygems/commands/unpack_command.rb +16 -7
- data/lib/rubygems/commands/update_command.rb +28 -23
- data/lib/rubygems/commands/which_command.rb +4 -5
- data/lib/rubygems/commands/yank_command.rb +1 -2
- data/lib/rubygems/compatibility.rb +1 -21
- data/lib/rubygems/config_file.rb +36 -36
- data/lib/rubygems/core_ext/kernel_require.rb +6 -6
- data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
- data/lib/rubygems/defaults.rb +31 -12
- data/lib/rubygems/dependency.rb +14 -14
- data/lib/rubygems/dependency_installer.rb +29 -31
- data/lib/rubygems/dependency_list.rb +8 -9
- data/lib/rubygems/deprecate.rb +2 -3
- data/lib/rubygems/doctor.rb +5 -6
- data/lib/rubygems/errors.rb +3 -3
- data/lib/rubygems/exceptions.rb +11 -4
- data/lib/rubygems/ext.rb +0 -1
- data/lib/rubygems/ext/build_error.rb +0 -1
- data/lib/rubygems/ext/builder.rb +50 -23
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +2 -3
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
- data/lib/rubygems/ext/rake_builder.rb +16 -18
- data/lib/rubygems/gem_runner.rb +2 -2
- data/lib/rubygems/gemcutter_utilities.rb +40 -13
- data/lib/rubygems/indexer.rb +19 -12
- data/lib/rubygems/install_default_message.rb +0 -1
- data/lib/rubygems/install_message.rb +0 -1
- data/lib/rubygems/install_update_options.rb +2 -28
- data/lib/rubygems/installer.rb +95 -75
- data/lib/rubygems/installer_test_case.rb +0 -14
- data/lib/rubygems/local_remote_options.rb +5 -4
- data/lib/rubygems/mock_gem_ui.rb +3 -4
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/package.rb +90 -73
- data/lib/rubygems/package/digest_io.rb +3 -4
- data/lib/rubygems/package/file_source.rb +3 -4
- data/lib/rubygems/package/io_source.rb +1 -2
- data/lib/rubygems/package/old.rb +8 -16
- data/lib/rubygems/package/source.rb +0 -1
- data/lib/rubygems/package/tar_header.rb +2 -2
- data/lib/rubygems/package/tar_reader.rb +2 -4
- data/lib/rubygems/package/tar_reader/entry.rb +20 -4
- data/lib/rubygems/package/tar_test_case.rb +2 -8
- data/lib/rubygems/package/tar_writer.rb +13 -15
- data/lib/rubygems/package_task.rb +0 -1
- data/lib/rubygems/path_support.rb +16 -6
- data/lib/rubygems/platform.rb +4 -5
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/rdoc.rb +0 -311
- data/lib/rubygems/remote_fetcher.rb +34 -48
- data/lib/rubygems/request.rb +16 -15
- data/lib/rubygems/request/connection_pools.rb +24 -13
- data/lib/rubygems/request/http_pool.rb +3 -4
- data/lib/rubygems/request/https_pool.rb +1 -3
- data/lib/rubygems/request_set.rb +52 -25
- data/lib/rubygems/request_set/gem_dependency_api.rb +36 -40
- data/lib/rubygems/request_set/lockfile.rb +12 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
- data/lib/rubygems/requirement.rb +16 -16
- data/lib/rubygems/resolver.rb +10 -15
- data/lib/rubygems/resolver/activation_request.rb +6 -6
- data/lib/rubygems/resolver/api_set.rb +5 -6
- data/lib/rubygems/resolver/api_specification.rb +2 -3
- data/lib/rubygems/resolver/best_set.rb +5 -6
- data/lib/rubygems/resolver/composed_set.rb +5 -6
- data/lib/rubygems/resolver/conflict.rb +5 -5
- data/lib/rubygems/resolver/current_set.rb +1 -2
- data/lib/rubygems/resolver/dependency_request.rb +4 -4
- data/lib/rubygems/resolver/git_set.rb +5 -6
- data/lib/rubygems/resolver/git_specification.rb +4 -5
- data/lib/rubygems/resolver/index_set.rb +5 -6
- data/lib/rubygems/resolver/index_specification.rb +3 -4
- data/lib/rubygems/resolver/installed_specification.rb +3 -4
- data/lib/rubygems/resolver/installer_set.rb +12 -12
- data/lib/rubygems/resolver/local_specification.rb +1 -2
- data/lib/rubygems/resolver/lock_set.rb +5 -6
- data/lib/rubygems/resolver/lock_specification.rb +7 -8
- data/lib/rubygems/resolver/requirement_list.rb +1 -1
- data/lib/rubygems/resolver/set.rb +2 -2
- data/lib/rubygems/resolver/source_set.rb +4 -5
- data/lib/rubygems/resolver/spec_specification.rb +1 -2
- data/lib/rubygems/resolver/specification.rb +10 -7
- data/lib/rubygems/resolver/stats.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +4 -5
- data/lib/rubygems/resolver/vendor_specification.rb +2 -3
- data/lib/rubygems/safe_yaml.rb +18 -10
- data/lib/rubygems/security.rb +21 -22
- data/lib/rubygems/security/policies.rb +1 -2
- data/lib/rubygems/security/policy.rb +25 -25
- data/lib/rubygems/security/signer.rb +72 -24
- data/lib/rubygems/security/trust_dir.rb +10 -10
- data/lib/rubygems/server.rb +21 -21
- data/lib/rubygems/source.rb +16 -25
- data/lib/rubygems/source/git.rb +9 -10
- data/lib/rubygems/source/installed.rb +3 -4
- data/lib/rubygems/source/local.rb +7 -7
- data/lib/rubygems/source/lock.rb +4 -4
- data/lib/rubygems/source/specific_file.rb +5 -5
- data/lib/rubygems/source/vendor.rb +2 -3
- data/lib/rubygems/source_list.rb +2 -2
- data/lib/rubygems/source_local.rb +0 -1
- data/lib/rubygems/spec_fetcher.rb +5 -6
- data/lib/rubygems/specification.rb +199 -536
- data/lib/rubygems/specification_policy.rb +407 -0
- data/lib/rubygems/ssl_certs/{rubygems.org → index.rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +23 -0
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +25 -0
- data/lib/rubygems/stub_specification.rb +11 -15
- data/lib/rubygems/test_case.rb +141 -66
- data/lib/rubygems/test_utilities.rb +20 -35
- data/lib/rubygems/text.rb +6 -6
- data/lib/rubygems/uninstaller.rb +37 -26
- data/lib/rubygems/uri_formatter.rb +1 -2
- data/lib/rubygems/user_interaction.rb +38 -93
- data/lib/rubygems/util.rb +20 -14
- data/lib/rubygems/util/licenses.rb +27 -1
- data/lib/rubygems/util/list.rb +1 -1
- data/lib/rubygems/validator.rb +4 -5
- data/lib/rubygems/version.rb +15 -15
- data/lib/rubygems/version_option.rb +2 -3
- data/rubygems-update.gemspec +43 -0
- data/setup.rb +2 -8
- data/test/rubygems/rubygems_plugin.rb +0 -1
- data/test/rubygems/simple_gem.rb +1 -1
- data/test/rubygems/test_bundled_ca.rb +4 -7
- data/test/rubygems/test_config.rb +7 -2
- data/test/rubygems/test_gem.rb +161 -130
- data/test/rubygems/test_gem_command.rb +0 -1
- data/test/rubygems/test_gem_command_manager.rb +8 -3
- data/test/rubygems/test_gem_commands_build_command.rb +219 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
- data/test/rubygems/test_gem_commands_check_command.rb +1 -1
- data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
- data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
- data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
- data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
- data/test/rubygems/test_gem_commands_help_command.rb +7 -4
- data/test/rubygems/test_gem_commands_info_command.rb +44 -0
- data/test/rubygems/test_gem_commands_install_command.rb +79 -12
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
- data/test/rubygems/test_gem_commands_open_command.rb +29 -0
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
- data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
- data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
- data/test/rubygems/test_gem_commands_push_command.rb +39 -0
- data/test/rubygems/test_gem_commands_query_command.rb +102 -100
- data/test/rubygems/test_gem_commands_search_command.rb +0 -1
- data/test/rubygems/test_gem_commands_server_command.rb +0 -1
- data/test/rubygems/test_gem_commands_setup_command.rb +39 -8
- data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
- data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
- data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +81 -7
- data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
- data/test/rubygems/test_gem_commands_update_command.rb +19 -2
- data/test/rubygems/test_gem_commands_which_command.rb +0 -1
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
- data/test/rubygems/test_gem_config_file.rb +4 -2
- data/test/rubygems/test_gem_dependency.rb +0 -1
- data/test/rubygems/test_gem_dependency_installer.rb +8 -5
- data/test/rubygems/test_gem_dependency_list.rb +6 -7
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
- data/test/rubygems/test_gem_doctor.rb +1 -2
- data/test/rubygems/test_gem_ext_builder.rb +10 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
- data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
- data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
- data/test/rubygems/test_gem_gem_runner.rb +0 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
- data/test/rubygems/test_gem_indexer.rb +1 -2
- data/test/rubygems/test_gem_install_update_options.rb +1 -20
- data/test/rubygems/test_gem_installer.rb +69 -203
- data/test/rubygems/test_gem_local_remote_options.rb +3 -3
- data/test/rubygems/test_gem_name_tuple.rb +0 -1
- data/test/rubygems/test_gem_package.rb +59 -50
- data/test/rubygems/test_gem_package_old.rb +0 -1
- data/test/rubygems/test_gem_package_tar_header.rb +1 -2
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
- data/test/rubygems/test_gem_package_tar_writer.rb +40 -7
- data/test/rubygems/test_gem_package_task.rb +2 -2
- data/test/rubygems/test_gem_path_support.rb +28 -11
- data/test/rubygems/test_gem_platform.rb +4 -5
- data/test/rubygems/test_gem_rdoc.rb +1 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +111 -130
- data/test/rubygems/test_gem_request.rb +5 -5
- data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
- data/test/rubygems/test_gem_request_set.rb +5 -5
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +2 -7
- data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
- data/test/rubygems/test_gem_requirement.rb +18 -4
- data/test/rubygems/test_gem_resolver.rb +13 -17
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
- data/test/rubygems/test_gem_resolver_specification.rb +1 -2
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
- data/test/rubygems/test_gem_security.rb +1 -3
- data/test/rubygems/test_gem_security_policy.rb +4 -5
- data/test/rubygems/test_gem_security_signer.rb +4 -3
- data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
- data/test/rubygems/test_gem_server.rb +4 -4
- data/test/rubygems/test_gem_source.rb +0 -13
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
- data/test/rubygems/test_gem_source_git.rb +0 -1
- data/test/rubygems/test_gem_source_installed.rb +0 -1
- data/test/rubygems/test_gem_source_lock.rb +0 -1
- data/test/rubygems/test_gem_source_vendor.rb +0 -1
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
- data/test/rubygems/test_gem_specification.rb +334 -198
- data/test/rubygems/test_gem_stream_ui.rb +13 -30
- data/test/rubygems/test_gem_stub_specification.rb +0 -2
- data/test/rubygems/test_gem_text.rb +4 -5
- data/test/rubygems/test_gem_uninstaller.rb +21 -1
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
- data/test/rubygems/test_gem_uri_formatter.rb +0 -1
- data/test/rubygems/test_gem_util.rb +6 -11
- data/test/rubygems/test_gem_validator.rb +0 -1
- data/test/rubygems/test_gem_version.rb +11 -11
- data/test/rubygems/test_gem_version_option.rb +0 -1
- data/test/rubygems/test_remote_fetch_error.rb +0 -1
- data/test/rubygems/test_require.rb +67 -52
- data/util/CL2notes +1 -2
- data/util/ci +15 -12
- data/util/create_certs.rb +6 -7
- data/util/create_encrypted_key.rb +0 -1
- data/util/patch_with_prs.rb +1 -1
- data/util/rubocop +8 -0
- data/util/update_bundled_ca_certificates.rb +15 -14
- data/util/update_changelog.rb +1 -1
- metadata +67 -59
- data/.autotest +0 -71
- data/.document +0 -5
- data/CONTRIBUTING.rdoc +0 -130
- data/CVE-2013-4287.txt +0 -35
- data/CVE-2013-4363.txt +0 -45
- data/CVE-2015-3900.txt +0 -40
- data/POLICIES.rdoc +0 -74
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +0 -21
- data/test/rubygems/fix_openssl_warnings.rb +0 -13
data/lib/rubygems/util.rb
CHANGED
@@ -15,7 +15,7 @@ module Gem::Util
|
|
15
15
|
data = StringIO.new(data, 'r')
|
16
16
|
|
17
17
|
unzipped = Zlib::GzipReader.new(data).read
|
18
|
-
unzipped.force_encoding Encoding::BINARY
|
18
|
+
unzipped.force_encoding Encoding::BINARY
|
19
19
|
unzipped
|
20
20
|
end
|
21
21
|
|
@@ -26,7 +26,7 @@ module Gem::Util
|
|
26
26
|
require 'zlib'
|
27
27
|
require 'stringio'
|
28
28
|
zipped = StringIO.new(String.new, 'w')
|
29
|
-
zipped.set_encoding Encoding::BINARY
|
29
|
+
zipped.set_encoding Encoding::BINARY
|
30
30
|
|
31
31
|
Zlib::GzipWriter.wrap zipped do |io| io.write data end
|
32
32
|
|
@@ -46,7 +46,7 @@ module Gem::Util
|
|
46
46
|
# and implements an IO.popen-like behavior where it does not accept an array
|
47
47
|
# for a command.
|
48
48
|
|
49
|
-
def self.popen
|
49
|
+
def self.popen(*command)
|
50
50
|
IO.popen command, &:read
|
51
51
|
rescue TypeError # ruby 1.8 only supports string command
|
52
52
|
r, w = IO.pipe
|
@@ -67,13 +67,11 @@ module Gem::Util
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
NULL_DEVICE = defined?(IO::NULL) ? IO::NULL : Gem.win_platform? ? 'NUL' : '/dev/null'
|
71
|
-
|
72
70
|
##
|
73
71
|
# Invokes system, but silences all output.
|
74
72
|
|
75
|
-
def self.silent_system
|
76
|
-
opt = {:out =>
|
73
|
+
def self.silent_system(*command)
|
74
|
+
opt = {:out => IO::NULL, :err => [:child, :out]}
|
77
75
|
if Hash === command.last
|
78
76
|
opt.update(command.last)
|
79
77
|
cmds = command[0...-1]
|
@@ -82,19 +80,15 @@ module Gem::Util
|
|
82
80
|
end
|
83
81
|
return system(*(cmds << opt))
|
84
82
|
rescue TypeError
|
85
|
-
require 'thread'
|
86
|
-
|
87
83
|
@silent_mutex ||= Mutex.new
|
88
84
|
|
89
|
-
null_device = NULL_DEVICE
|
90
|
-
|
91
85
|
@silent_mutex.synchronize do
|
92
86
|
begin
|
93
87
|
stdout = STDOUT.dup
|
94
88
|
stderr = STDERR.dup
|
95
89
|
|
96
|
-
STDOUT.reopen
|
97
|
-
STDERR.reopen
|
90
|
+
STDOUT.reopen IO::NULL, 'w'
|
91
|
+
STDERR.reopen IO::NULL, 'w'
|
98
92
|
|
99
93
|
return system(*command)
|
100
94
|
ensure
|
@@ -109,7 +103,7 @@ module Gem::Util
|
|
109
103
|
##
|
110
104
|
# Enumerates the parents of +directory+.
|
111
105
|
|
112
|
-
def self.traverse_parents
|
106
|
+
def self.traverse_parents(directory, &block)
|
113
107
|
return enum_for __method__, directory unless block_given?
|
114
108
|
|
115
109
|
here = File.expand_path directory
|
@@ -122,4 +116,16 @@ module Gem::Util
|
|
122
116
|
end
|
123
117
|
end
|
124
118
|
|
119
|
+
##
|
120
|
+
# Globs for files matching +pattern+ inside of +directory+,
|
121
|
+
# returning absolute paths to the matching files.
|
122
|
+
|
123
|
+
def self.glob_files_in_dir(glob, base_path)
|
124
|
+
if RUBY_VERSION >= "2.5"
|
125
|
+
Dir.glob(glob, base: base_path).map! {|f| File.join(base_path, f) }
|
126
|
+
else
|
127
|
+
Dir.glob(File.expand_path(glob, base_path))
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
125
131
|
end
|
@@ -19,6 +19,8 @@ class Gem::Licenses
|
|
19
19
|
AFL-3.0
|
20
20
|
AGPL-1.0
|
21
21
|
AGPL-3.0
|
22
|
+
AGPL-3.0-only
|
23
|
+
AGPL-3.0-or-later
|
22
24
|
AMDPLPA
|
23
25
|
AML
|
24
26
|
AMPAS
|
@@ -41,9 +43,11 @@ class Gem::Licenses
|
|
41
43
|
Artistic-1.0-Perl
|
42
44
|
Artistic-1.0-cl8
|
43
45
|
Artistic-2.0
|
46
|
+
BSD-1-Clause
|
44
47
|
BSD-2-Clause
|
45
48
|
BSD-2-Clause-FreeBSD
|
46
49
|
BSD-2-Clause-NetBSD
|
50
|
+
BSD-2-Clause-Patent
|
47
51
|
BSD-3-Clause
|
48
52
|
BSD-3-Clause-Attribution
|
49
53
|
BSD-3-Clause-Clear
|
@@ -96,6 +100,8 @@ class Gem::Licenses
|
|
96
100
|
CC0-1.0
|
97
101
|
CDDL-1.0
|
98
102
|
CDDL-1.1
|
103
|
+
CDLA-Permissive-1.0
|
104
|
+
CDLA-Sharing-1.0
|
99
105
|
CECILL-1.0
|
100
106
|
CECILL-1.1
|
101
107
|
CECILL-2.0
|
@@ -124,9 +130,11 @@ class Gem::Licenses
|
|
124
130
|
EFL-1.0
|
125
131
|
EFL-2.0
|
126
132
|
EPL-1.0
|
133
|
+
EPL-2.0
|
127
134
|
EUDatagrid
|
128
135
|
EUPL-1.0
|
129
136
|
EUPL-1.1
|
137
|
+
EUPL-1.2
|
130
138
|
Entessa
|
131
139
|
ErlPL-1.1
|
132
140
|
Eurosym
|
@@ -138,13 +146,23 @@ class Gem::Licenses
|
|
138
146
|
Frameworx-1.0
|
139
147
|
FreeImage
|
140
148
|
GFDL-1.1
|
149
|
+
GFDL-1.1-only
|
150
|
+
GFDL-1.1-or-later
|
141
151
|
GFDL-1.2
|
152
|
+
GFDL-1.2-only
|
153
|
+
GFDL-1.2-or-later
|
142
154
|
GFDL-1.3
|
155
|
+
GFDL-1.3-only
|
156
|
+
GFDL-1.3-or-later
|
143
157
|
GL2PS
|
144
158
|
GPL-1.0
|
145
159
|
GPL-1.0+
|
160
|
+
GPL-1.0-only
|
161
|
+
GPL-1.0-or-later
|
146
162
|
GPL-2.0
|
147
163
|
GPL-2.0+
|
164
|
+
GPL-2.0-only
|
165
|
+
GPL-2.0-or-later
|
148
166
|
GPL-2.0-with-GCC-exception
|
149
167
|
GPL-2.0-with-autoconf-exception
|
150
168
|
GPL-2.0-with-bison-exception
|
@@ -152,6 +170,8 @@ class Gem::Licenses
|
|
152
170
|
GPL-2.0-with-font-exception
|
153
171
|
GPL-3.0
|
154
172
|
GPL-3.0+
|
173
|
+
GPL-3.0-only
|
174
|
+
GPL-3.0-or-later
|
155
175
|
GPL-3.0-with-GCC-exception
|
156
176
|
GPL-3.0-with-autoconf-exception
|
157
177
|
Giftware
|
@@ -177,10 +197,16 @@ class Gem::Licenses
|
|
177
197
|
LAL-1.3
|
178
198
|
LGPL-2.0
|
179
199
|
LGPL-2.0+
|
200
|
+
LGPL-2.0-only
|
201
|
+
LGPL-2.0-or-later
|
180
202
|
LGPL-2.1
|
181
203
|
LGPL-2.1+
|
204
|
+
LGPL-2.1-only
|
205
|
+
LGPL-2.1-or-later
|
182
206
|
LGPL-3.0
|
183
207
|
LGPL-3.0+
|
208
|
+
LGPL-3.0-only
|
209
|
+
LGPL-3.0-or-later
|
184
210
|
LGPLLR
|
185
211
|
LPL-1.0
|
186
212
|
LPL-1.02
|
@@ -317,7 +343,6 @@ class Gem::Licenses
|
|
317
343
|
W3C-19980720
|
318
344
|
W3C-20150513
|
319
345
|
WTFPL
|
320
|
-
WXwindows
|
321
346
|
Watcom-1.0
|
322
347
|
Wsuipa
|
323
348
|
X11
|
@@ -349,6 +374,7 @@ class Gem::Licenses
|
|
349
374
|
mpich2
|
350
375
|
psfrag
|
351
376
|
psutils
|
377
|
+
wxWindows
|
352
378
|
xinetd
|
353
379
|
xpp
|
354
380
|
zlib-acknowledgement
|
data/lib/rubygems/util/list.rb
CHANGED
data/lib/rubygems/validator.rb
CHANGED
@@ -62,7 +62,7 @@ class Gem::Validator
|
|
62
62
|
# Describes a problem with a file in a gem.
|
63
63
|
|
64
64
|
ErrorData = Struct.new :path, :problem do
|
65
|
-
def <=>
|
65
|
+
def <=>(other) # :nodoc:
|
66
66
|
return nil unless self.class === other
|
67
67
|
|
68
68
|
[path, problem] <=> [other.path, other.problem]
|
@@ -94,13 +94,13 @@ class Gem::Validator
|
|
94
94
|
spec_path = spec.spec_file
|
95
95
|
gem_directory = spec.full_gem_path
|
96
96
|
|
97
|
-
unless File.directory? gem_directory
|
97
|
+
unless File.directory? gem_directory
|
98
98
|
errors[gem_name][spec.full_name] =
|
99
99
|
"Gem registered but doesn't exist at #{gem_directory}"
|
100
100
|
next
|
101
101
|
end
|
102
102
|
|
103
|
-
unless File.exist? spec_path
|
103
|
+
unless File.exist? spec_path
|
104
104
|
errors[gem_name][spec_path] = "Spec file missing for installed gem"
|
105
105
|
end
|
106
106
|
|
@@ -135,7 +135,7 @@ class Gem::Validator
|
|
135
135
|
source = File.join gem_directory, entry['path']
|
136
136
|
|
137
137
|
File.open source, Gem.binary_mode do |f|
|
138
|
-
unless f.read == data
|
138
|
+
unless f.read == data
|
139
139
|
errors[gem_name][entry['path']] = "Modified from original"
|
140
140
|
end
|
141
141
|
end
|
@@ -163,4 +163,3 @@ class Gem::Validator
|
|
163
163
|
errors
|
164
164
|
end
|
165
165
|
end
|
166
|
-
|
data/lib/rubygems/version.rb
CHANGED
@@ -154,8 +154,8 @@ class Gem::Version
|
|
154
154
|
|
155
155
|
include Comparable
|
156
156
|
|
157
|
-
VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?' # :nodoc:
|
158
|
-
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z
|
157
|
+
VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?'.freeze # :nodoc:
|
158
|
+
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/.freeze # :nodoc:
|
159
159
|
|
160
160
|
##
|
161
161
|
# A string representation of this Version.
|
@@ -169,7 +169,7 @@ class Gem::Version
|
|
169
169
|
##
|
170
170
|
# True if the +version+ string matches RubyGems' requirements.
|
171
171
|
|
172
|
-
def self.correct?
|
172
|
+
def self.correct?(version)
|
173
173
|
unless Gem::Deprecate.skip
|
174
174
|
warn "nil versions are discouraged and will be deprecated in Rubygems 4" if version.nil?
|
175
175
|
end
|
@@ -185,10 +185,10 @@ class Gem::Version
|
|
185
185
|
# ver2 = Version.create(ver1) # -> (ver1)
|
186
186
|
# ver3 = Version.create(nil) # -> nil
|
187
187
|
|
188
|
-
def self.create
|
189
|
-
if self === input
|
188
|
+
def self.create(input)
|
189
|
+
if self === input # check yourself before you wreck yourself
|
190
190
|
input
|
191
|
-
elsif input.nil?
|
191
|
+
elsif input.nil?
|
192
192
|
nil
|
193
193
|
else
|
194
194
|
new input
|
@@ -197,7 +197,7 @@ class Gem::Version
|
|
197
197
|
|
198
198
|
@@all = {}
|
199
199
|
|
200
|
-
def self.new
|
200
|
+
def self.new(version) # :nodoc:
|
201
201
|
return super unless Gem::Version == self
|
202
202
|
|
203
203
|
@@all[version] ||= super
|
@@ -207,13 +207,13 @@ class Gem::Version
|
|
207
207
|
# Constructs a Version from the +version+ string. A version string is a
|
208
208
|
# series of digits or ASCII letters separated by dots.
|
209
209
|
|
210
|
-
def initialize
|
210
|
+
def initialize(version)
|
211
211
|
unless self.class.correct?(version)
|
212
212
|
raise ArgumentError, "Malformed version number string #{version}"
|
213
213
|
end
|
214
214
|
|
215
215
|
# If version is an empty string convert it to 0
|
216
|
-
version = 0 if version =~ /\A\s*\Z/
|
216
|
+
version = 0 if version.is_a?(String) && version =~ /\A\s*\Z/
|
217
217
|
|
218
218
|
@version = version.to_s.strip.gsub("-",".pre.")
|
219
219
|
@segments = nil
|
@@ -240,7 +240,7 @@ class Gem::Version
|
|
240
240
|
# A Version is only eql? to another version if it's specified to the
|
241
241
|
# same precision. Version "1.0" is not the same as version "1".
|
242
242
|
|
243
|
-
def eql?
|
243
|
+
def eql?(other)
|
244
244
|
self.class === other and @version == other._version
|
245
245
|
end
|
246
246
|
|
@@ -248,7 +248,7 @@ class Gem::Version
|
|
248
248
|
canonical_segments.hash
|
249
249
|
end
|
250
250
|
|
251
|
-
def init_with
|
251
|
+
def init_with(coder) # :nodoc:
|
252
252
|
yaml_initialize coder.tag, coder.map
|
253
253
|
end
|
254
254
|
|
@@ -268,7 +268,7 @@ class Gem::Version
|
|
268
268
|
# Load custom marshal format. It's a string for backwards (RubyGems
|
269
269
|
# 1.3.5 and earlier) compatibility.
|
270
270
|
|
271
|
-
def marshal_load
|
271
|
+
def marshal_load(array)
|
272
272
|
initialize array[0]
|
273
273
|
end
|
274
274
|
|
@@ -282,7 +282,7 @@ class Gem::Version
|
|
282
282
|
["@version"]
|
283
283
|
end
|
284
284
|
|
285
|
-
def encode_with
|
285
|
+
def encode_with(coder) # :nodoc:
|
286
286
|
coder.add 'version', @version
|
287
287
|
end
|
288
288
|
|
@@ -296,7 +296,7 @@ class Gem::Version
|
|
296
296
|
@prerelease
|
297
297
|
end
|
298
298
|
|
299
|
-
def pretty_print
|
299
|
+
def pretty_print(q) # :nodoc:
|
300
300
|
q.text "Gem::Version.new(#{version.inspect})"
|
301
301
|
end
|
302
302
|
|
@@ -339,7 +339,7 @@ class Gem::Version
|
|
339
339
|
# one. Attempts to compare to something that's not a
|
340
340
|
# <tt>Gem::Version</tt> return +nil+.
|
341
341
|
|
342
|
-
def <=>
|
342
|
+
def <=>(other)
|
343
343
|
return unless Gem::Version === other
|
344
344
|
return 0 if @version == other._version || canonical_segments == other.canonical_segments
|
345
345
|
|
@@ -17,7 +17,7 @@ module Gem::VersionOption
|
|
17
17
|
|
18
18
|
def add_platform_option(task = command, *wrap)
|
19
19
|
OptionParser.accept Gem::Platform do |value|
|
20
|
-
if value == Gem::Platform::RUBY
|
20
|
+
if value == Gem::Platform::RUBY
|
21
21
|
value
|
22
22
|
else
|
23
23
|
Gem::Platform.new value
|
@@ -27,7 +27,7 @@ module Gem::VersionOption
|
|
27
27
|
add_option('--platform PLATFORM', Gem::Platform,
|
28
28
|
"Specify the platform of gem to #{task}", *wrap) do
|
29
29
|
|value, options|
|
30
|
-
unless options[:added_platform]
|
30
|
+
unless options[:added_platform]
|
31
31
|
Gem.platforms = [Gem::Platform::RUBY]
|
32
32
|
options[:added_platform] = true
|
33
33
|
end
|
@@ -74,4 +74,3 @@ module Gem::VersionOption
|
|
74
74
|
end
|
75
75
|
|
76
76
|
end
|
77
|
-
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "rubygems-update"
|
5
|
+
s.version = "3.0.0"
|
6
|
+
s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
|
7
|
+
s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
|
8
|
+
|
9
|
+
s.summary = "RubyGems is a package management framework for Ruby."
|
10
|
+
s.description = "A package (also known as a library) contains a set of functionality
|
11
|
+
that can be invoked by a Ruby program, such as reading and parsing an XML file. We call
|
12
|
+
these packages 'gems' and RubyGems is a tool to install, create, manage and load these
|
13
|
+
packages in your Ruby environment. RubyGems is also a client for RubyGems.org, a public
|
14
|
+
repository of Gems that allows you to publish a Gem that can be shared and used by other
|
15
|
+
developers. See our guide on publishing a Gem at guides.rubygems.org"
|
16
|
+
s.homepage = "https://rubygems.org"
|
17
|
+
s.licenses = ["Ruby", "MIT"]
|
18
|
+
|
19
|
+
s.files = File.read('Manifest.txt').split
|
20
|
+
s.executables = ["update_rubygems"]
|
21
|
+
s.require_paths = ["hide_lib_for_update"]
|
22
|
+
s.rdoc_options = ["--main", "README.md", "--title=RubyGems Update Documentation"]
|
23
|
+
s.extra_rdoc_files = [
|
24
|
+
"History.txt", "LICENSE.txt", "MAINTAINERS.txt",
|
25
|
+
"MIT.txt", "Manifest.txt", "README.md",
|
26
|
+
"UPGRADING.md", "POLICIES.md", "CODE_OF_CONDUCT.md",
|
27
|
+
"CONTRIBUTING.md", "bundler/CHANGELOG.md", "bundler/CODE_OF_CONDUCT.md",
|
28
|
+
"bundler/CONTRIBUTING.md", "bundler/LICENSE.md", "bundler/README.md",
|
29
|
+
"hide_lib_for_update/note.txt", *Dir["bundler/man/*.1"]
|
30
|
+
]
|
31
|
+
|
32
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
33
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0")
|
34
|
+
|
35
|
+
s.specification_version = 4
|
36
|
+
|
37
|
+
s.add_development_dependency(%q<builder>, ["~> 3.0"])
|
38
|
+
s.add_development_dependency(%q<rdoc>, ["~> 6.0"])
|
39
|
+
s.add_development_dependency(%q<rake>, ["~> 12.0"])
|
40
|
+
s.add_development_dependency(%q<minitest>, ["~> 5.0"])
|
41
|
+
s.add_development_dependency(%q<simplecov>, ["~> 0"])
|
42
|
+
s.add_development_dependency(%q<rubocop>, ["~> 0.60.0"])
|
43
|
+
end
|
data/setup.rb
CHANGED
@@ -6,13 +6,8 @@
|
|
6
6
|
# See LICENSE.txt for permissions.
|
7
7
|
#++
|
8
8
|
|
9
|
-
if RUBY_VERSION < "1.8.7"
|
10
|
-
$stderr.puts "RubyGems now requires Ruby 1.8.7 or later"
|
11
|
-
exit 1
|
12
|
-
end
|
13
|
-
|
14
9
|
# Make sure rubygems isn't already loaded.
|
15
|
-
if ENV['RUBYOPT'] or defined? Gem
|
10
|
+
if ENV['RUBYOPT'] or defined? Gem
|
16
11
|
ENV.delete 'RUBYOPT'
|
17
12
|
|
18
13
|
require 'rbconfig'
|
@@ -22,7 +17,7 @@ if ENV['RUBYOPT'] or defined? Gem then
|
|
22
17
|
ruby << config::CONFIG['EXEEXT']
|
23
18
|
|
24
19
|
cmd = [ruby, 'setup.rb', *ARGV].compact
|
25
|
-
cmd[1,0] = "--disable-gems"
|
20
|
+
cmd[1,0] = "--disable-gems"
|
26
21
|
|
27
22
|
exec(*cmd)
|
28
23
|
end
|
@@ -47,4 +42,3 @@ begin
|
|
47
42
|
rescue Gem::SystemExitException => e
|
48
43
|
exit e.exit_code
|
49
44
|
end
|
50
|
-
|