rubygems-update 3.4.22 → 3.5.1
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/CHANGELOG.md +105 -2
- data/Manifest.txt +46 -221
- data/README.md +1 -3
- data/bundler/CHANGELOG.md +63 -0
- data/bundler/bundler.gemspec +4 -2
- data/bundler/exe/bundle +1 -10
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/capistrano.rb +1 -1
- data/bundler/lib/bundler/checksum.rb +254 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +3 -3
- data/bundler/lib/bundler/cli/binstubs.rb +4 -4
- data/bundler/lib/bundler/cli/cache.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +9 -1
- data/bundler/lib/bundler/cli/config.rb +8 -7
- data/bundler/lib/bundler/cli/console.rb +3 -2
- data/bundler/lib/bundler/cli/doctor.rb +2 -2
- data/bundler/lib/bundler/cli/exec.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +28 -23
- data/bundler/lib/bundler/cli/info.rb +2 -13
- data/bundler/lib/bundler/cli/install.rb +5 -4
- data/bundler/lib/bundler/cli/issue.rb +1 -1
- data/bundler/lib/bundler/cli/lock.rb +4 -4
- data/bundler/lib/bundler/cli/open.rb +1 -1
- data/bundler/lib/bundler/cli/outdated.rb +6 -6
- data/bundler/lib/bundler/cli/plugin.rb +7 -14
- data/bundler/lib/bundler/cli/pristine.rb +38 -30
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +5 -5
- data/bundler/lib/bundler/cli.rb +215 -263
- data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
- data/bundler/lib/bundler/compact_index_client.rb +14 -7
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +5 -21
- data/bundler/lib/bundler/definition.rb +42 -15
- data/bundler/lib/bundler/dependency.rb +16 -12
- data/bundler/lib/bundler/digest.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +46 -30
- data/bundler/lib/bundler/endpoint_specification.rb +5 -1
- data/bundler/lib/bundler/env.rb +1 -3
- data/bundler/lib/bundler/errors.rb +43 -0
- data/bundler/lib/bundler/fetcher/base.rb +3 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
- data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +28 -25
- data/bundler/lib/bundler/friendly_errors.rb +5 -5
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_helpers.rb +5 -2
- data/bundler/lib/bundler/graph.rb +9 -9
- data/bundler/lib/bundler/index.rb +1 -2
- data/bundler/lib/bundler/injector.rb +1 -1
- data/bundler/lib/bundler/inline.rb +3 -3
- data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
- data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
- data/bundler/lib/bundler/installer/standalone.rb +2 -3
- data/bundler/lib/bundler/installer.rb +9 -9
- data/bundler/lib/bundler/lazy_specification.rb +24 -17
- data/bundler/lib/bundler/lockfile_generator.rb +9 -0
- data/bundler/lib/bundler/lockfile_parser.rb +81 -10
- data/bundler/lib/bundler/man/bundle-add.1 +3 -26
- data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
- data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
- data/bundler/lib/bundler/man/bundle-check.1 +3 -12
- data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
- data/bundler/lib/bundler/man/bundle-config.1 +20 -211
- data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-console.1 +4 -22
- data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
- data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
- data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
- data/bundler/lib/bundler/man/bundle-help.1 +3 -7
- data/bundler/lib/bundler/man/bundle-info.1 +3 -9
- data/bundler/lib/bundler/man/bundle-init.1 +3 -12
- data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
- data/bundler/lib/bundler/man/bundle-install.1 +27 -125
- data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-list.1 +4 -19
- data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
- data/bundler/lib/bundler/man/bundle-open.1 +7 -27
- data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
- data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
- data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
- data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
- data/bundler/lib/bundler/man/bundle-show.1 +3 -10
- data/bundler/lib/bundler/man/bundle-update.1 +18 -137
- data/bundler/lib/bundler/man/bundle-version.1 +3 -16
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
- data/bundler/lib/bundler/man/bundle.1 +5 -44
- data/bundler/lib/bundler/man/gemfile.5 +24 -301
- data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
- data/bundler/lib/bundler/match_metadata.rb +4 -0
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/plugin/api/source.rb +3 -2
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin.rb +3 -3
- data/bundler/lib/bundler/resolver/base.rb +1 -1
- data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
- data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
- data/bundler/lib/bundler/resolver.rb +16 -16
- data/bundler/lib/bundler/ruby_dsl.rb +20 -12
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +24 -50
- data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
- data/bundler/lib/bundler/rubygems_integration.rb +25 -94
- data/bundler/lib/bundler/runtime.rb +2 -2
- data/bundler/lib/bundler/self_manager.rb +23 -7
- data/bundler/lib/bundler/settings.rb +27 -7
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +35 -13
- data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
- data/bundler/lib/bundler/source/git.rb +4 -3
- data/bundler/lib/bundler/source/metadata.rb +15 -15
- data/bundler/lib/bundler/source/path.rb +7 -6
- data/bundler/lib/bundler/source/rubygems.rb +21 -14
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/spec_set.rb +38 -10
- data/bundler/lib/bundler/stub_specification.rb +1 -0
- data/bundler/lib/bundler/templates/Executable.bundler +1 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
- data/bundler/lib/bundler/ui/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
- data/bundler/lib/bundler/vendor/fileutils/.document +1 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
- data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +34 -34
- data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
- data/bundler/lib/bundler/vendor/thor/.document +1 -0
- data/bundler/lib/bundler/vendor/tsort/.document +1 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
- data/bundler/lib/bundler/vendor/uri/.document +1 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendored_net_http.rb +8 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -4
- data/bundler/lib/bundler/vendored_timeout.rb +8 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/vlad.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +3 -3
- data/bundler/lib/bundler.rb +41 -32
- data/lib/rubygems/available_set.rb +4 -4
- data/lib/rubygems/basic_specification.rb +35 -37
- data/lib/rubygems/bundler_version_finder.rb +4 -4
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +13 -15
- data/lib/rubygems/command_manager.rb +5 -4
- data/lib/rubygems/commands/build_command.rb +2 -2
- data/lib/rubygems/commands/cert_command.rb +1 -2
- data/lib/rubygems/commands/check_command.rb +4 -4
- data/lib/rubygems/commands/cleanup_command.rb +12 -14
- data/lib/rubygems/commands/contents_command.rb +4 -4
- data/lib/rubygems/commands/dependency_command.rb +4 -5
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/exec_command.rb +1 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -2
- data/lib/rubygems/commands/generate_index_command.rb +39 -74
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +8 -16
- data/lib/rubygems/commands/list_command.rb +2 -2
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/open_command.rb +1 -1
- data/lib/rubygems/commands/owner_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +13 -15
- data/lib/rubygems/commands/push_command.rb +2 -2
- data/lib/rubygems/commands/query_command.rb +4 -5
- data/lib/rubygems/commands/rdoc_command.rb +2 -2
- data/lib/rubygems/commands/search_command.rb +2 -2
- data/lib/rubygems/commands/setup_command.rb +31 -34
- data/lib/rubygems/commands/sources_command.rb +12 -12
- data/lib/rubygems/commands/specification_command.rb +10 -10
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +9 -10
- data/lib/rubygems/commands/unpack_command.rb +4 -4
- data/lib/rubygems/commands/update_command.rb +10 -12
- data/lib/rubygems/commands/which_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +1 -1
- data/lib/rubygems/compatibility.rb +5 -6
- data/lib/rubygems/config_file.rb +4 -4
- data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
- data/lib/rubygems/core_ext/kernel_require.rb +19 -48
- data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +15 -3
- data/lib/rubygems/dependency.rb +12 -14
- data/lib/rubygems/dependency_installer.rb +29 -30
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/deprecate.rb +16 -15
- data/lib/rubygems/doctor.rb +5 -5
- data/lib/rubygems/errors.rb +2 -6
- data/lib/rubygems/exceptions.rb +2 -1
- data/lib/rubygems/ext/builder.rb +15 -10
- data/lib/rubygems/ext/cargo_builder.rb +5 -5
- data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
- data/lib/rubygems/gem_runner.rb +4 -4
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
- data/lib/rubygems/gemcutter_utilities.rb +18 -19
- data/lib/rubygems/install_update_options.rb +18 -19
- data/lib/rubygems/installer.rb +59 -33
- data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
- data/lib/rubygems/local_remote_options.rb +7 -10
- data/lib/rubygems/name_tuple.rb +7 -9
- data/lib/rubygems/net/http.rb +3 -0
- data/lib/rubygems/net-http/.document +1 -0
- data/lib/rubygems/net-http/LICENSE.txt +22 -0
- data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
- data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
- data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
- data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
- data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
- data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
- data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
- data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
- data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
- data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
- data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
- data/lib/rubygems/net-http/lib/net/https.rb +23 -0
- data/lib/rubygems/net-protocol/.document +1 -0
- data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
- data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
- data/lib/rubygems/optparse/lib/optparse.rb +39 -17
- data/lib/rubygems/package/old.rb +2 -2
- data/lib/rubygems/package/tar_header.rb +45 -39
- data/lib/rubygems/package/tar_reader/entry.rb +5 -4
- data/lib/rubygems/package/tar_reader.rb +5 -3
- data/lib/rubygems/package/tar_writer.rb +19 -17
- data/lib/rubygems/package.rb +27 -26
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/path_support.rb +9 -10
- data/lib/rubygems/platform.rb +60 -45
- data/lib/rubygems/query_utils.rb +7 -9
- data/lib/rubygems/remote_fetcher.rb +15 -15
- data/lib/rubygems/request/connection_pools.rb +3 -3
- data/lib/rubygems/request.rb +20 -17
- data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
- data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
- data/lib/rubygems/request_set/lockfile.rb +6 -11
- data/lib/rubygems/request_set.rb +5 -5
- data/lib/rubygems/requirement.rb +7 -7
- data/lib/rubygems/resolv/.document +1 -0
- data/lib/rubygems/resolv/LICENSE.txt +22 -0
- data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
- data/lib/rubygems/resolver/activation_request.rb +1 -3
- data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
- data/lib/rubygems/resolver/best_set.rb +1 -1
- data/lib/rubygems/resolver/composed_set.rb +1 -1
- data/lib/rubygems/resolver/conflict.rb +4 -12
- data/lib/rubygems/resolver/index_set.rb +4 -4
- data/lib/rubygems/resolver/index_specification.rb +2 -2
- data/lib/rubygems/resolver/installer_set.rb +5 -6
- data/lib/rubygems/resolver/lock_set.rb +1 -1
- data/lib/rubygems/resolver/molinillo/.document +1 -0
- data/lib/rubygems/resolver.rb +3 -10
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_marshal/elements.rb +138 -0
- data/lib/rubygems/safe_marshal/reader.rb +306 -0
- data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
- data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
- data/lib/rubygems/safe_marshal.rb +74 -0
- data/lib/rubygems/safe_yaml.rb +5 -28
- data/lib/rubygems/security/policies.rb +36 -38
- data/lib/rubygems/security/policy.rb +7 -11
- data/lib/rubygems/security/signer.rb +1 -1
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +8 -22
- data/lib/rubygems/source/git.rb +1 -3
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +5 -8
- data/lib/rubygems/source/lock.rb +1 -3
- data/lib/rubygems/source/specific_file.rb +0 -1
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +12 -12
- data/lib/rubygems/source_list.rb +4 -4
- data/lib/rubygems/spec_fetcher.rb +29 -29
- data/lib/rubygems/specification.rb +125 -138
- data/lib/rubygems/specification_policy.rb +55 -25
- data/lib/rubygems/stub_specification.rb +4 -5
- data/lib/rubygems/text.rb +1 -2
- data/lib/rubygems/timeout/.document +1 -0
- data/lib/rubygems/timeout/LICENSE.txt +22 -0
- data/lib/rubygems/timeout/lib/timeout.rb +199 -0
- data/lib/rubygems/timeout.rb +3 -0
- data/lib/rubygems/tsort/lib/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +7 -9
- data/lib/rubygems/update_suggestion.rb +5 -18
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +15 -21
- data/lib/rubygems/util/licenses.rb +65 -35
- data/lib/rubygems/util/list.rb +3 -1
- data/lib/rubygems/util.rb +2 -4
- data/lib/rubygems/validator.rb +5 -3
- data/lib/rubygems/version.rb +34 -28
- data/lib/rubygems/version_option.rb +2 -5
- data/lib/rubygems/yaml_serializer.rb +3 -3
- data/lib/rubygems.rb +37 -37
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +2 -2
- metadata +50 -225
- data/lib/rubygems/indexer.rb +0 -428
- data/lib/rubygems/mock_gem_ui.rb +0 -86
- data/test/rubygems/alternate_cert.pem +0 -19
- data/test/rubygems/alternate_cert_32.pem +0 -19
- data/test/rubygems/alternate_key.pem +0 -27
- data/test/rubygems/bad_rake.rb +0 -3
- data/test/rubygems/bundler_test_gem.rb +0 -424
- data/test/rubygems/ca_cert.pem +0 -77
- data/test/rubygems/child_cert.pem +0 -19
- data/test/rubygems/child_cert_32.pem +0 -19
- data/test/rubygems/child_key.pem +0 -27
- data/test/rubygems/client.pem +0 -107
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/gem-private_key.pem +0 -27
- data/test/rubygems/data/gem-public_cert.pem +0 -20
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +0 -30
- data/test/rubygems/expired_cert.pem +0 -19
- data/test/rubygems/fake_certlib/openssl.rb +0 -9
- data/test/rubygems/foo/discover.rb +0 -1
- data/test/rubygems/future_cert.pem +0 -19
- data/test/rubygems/future_cert_32.pem +0 -19
- data/test/rubygems/good_rake.rb +0 -3
- data/test/rubygems/grandchild_cert.pem +0 -19
- data/test/rubygems/grandchild_cert_32.pem +0 -19
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/helper.rb +0 -1649
- data/test/rubygems/installer_test_case.rb +0 -248
- data/test/rubygems/invalid_client.pem +0 -49
- data/test/rubygems/invalid_issuer_cert.pem +0 -20
- data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
- data/test/rubygems/invalid_key.pem +0 -27
- data/test/rubygems/invalid_signer_cert.pem +0 -19
- data/test/rubygems/invalid_signer_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_cert.pem +0 -19
- data/test/rubygems/invalidchild_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_key.pem +0 -27
- data/test/rubygems/multifactor_auth_utilities.rb +0 -111
- data/test/rubygems/package/tar_test_case.rb +0 -175
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
- data/test/rubygems/private3072_key.pem +0 -40
- data/test/rubygems/private_ec_key.pem +0 -9
- data/test/rubygems/private_key.pem +0 -27
- data/test/rubygems/public3072_cert.pem +0 -25
- data/test/rubygems/public_cert.pem +0 -20
- data/test/rubygems/public_cert_32.pem +0 -19
- data/test/rubygems/public_key.pem +0 -9
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
- data/test/rubygems/rubygems_plugin.rb +0 -24
- data/test/rubygems/sff/discover.rb +0 -1
- data/test/rubygems/simple_gem.rb +0 -68
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
- data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
- data/test/rubygems/ssl_cert.pem +0 -80
- data/test/rubygems/ssl_key.pem +0 -27
- data/test/rubygems/test_bundled_ca.rb +0 -61
- data/test/rubygems/test_config.rb +0 -28
- data/test/rubygems/test_deprecate.rb +0 -158
- data/test/rubygems/test_exit.rb +0 -17
- data/test/rubygems/test_gem.rb +0 -1799
- data/test/rubygems/test_gem_available_set.rb +0 -130
- data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
- data/test/rubygems/test_gem_command.rb +0 -403
- data/test/rubygems/test_gem_command_manager.rb +0 -400
- data/test/rubygems/test_gem_commands_build_command.rb +0 -739
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
- data/test/rubygems/test_gem_commands_check_command.rb +0 -68
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
- data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
- data/test/rubygems/test_gem_commands_help_command.rb +0 -94
- data/test/rubygems/test_gem_commands_info_command.rb +0 -70
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
- data/test/rubygems/test_gem_commands_list_command.rb +0 -33
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
- data/test/rubygems/test_gem_commands_mirror.rb +0 -20
- data/test/rubygems/test_gem_commands_open_command.rb +0 -101
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
- data/test/rubygems/test_gem_commands_push_command.rb +0 -603
- data/test/rubygems/test_gem_commands_query_command.rb +0 -858
- data/test/rubygems/test_gem_commands_search_command.rb +0 -16
- data/test/rubygems/test_gem_commands_server_command.rb +0 -20
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
- data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
- data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
- data/test/rubygems/test_gem_commands_update_command.rb +0 -836
- data/test/rubygems/test_gem_commands_which_command.rb +0 -85
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
- data/test/rubygems/test_gem_config_file.rb +0 -551
- data/test/rubygems/test_gem_dependency.rb +0 -398
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
- data/test/rubygems/test_gem_dependency_list.rb +0 -265
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
- data/test/rubygems/test_gem_doctor.rb +0 -195
- data/test/rubygems/test_gem_ext_builder.rb +0 -337
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
- data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
- data/test/rubygems/test_gem_gem_runner.rb +0 -119
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
- data/test/rubygems/test_gem_indexer.rb +0 -381
- data/test/rubygems/test_gem_install_update_options.rb +0 -208
- data/test/rubygems/test_gem_installer.rb +0 -2512
- data/test/rubygems/test_gem_local_remote_options.rb +0 -133
- data/test/rubygems/test_gem_name_tuple.rb +0 -43
- data/test/rubygems/test_gem_package.rb +0 -1306
- data/test/rubygems/test_gem_package_old.rb +0 -91
- data/test/rubygems/test_gem_package_tar_header.rb +0 -226
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
- data/test/rubygems/test_gem_package_task.rb +0 -118
- data/test/rubygems/test_gem_path_support.rb +0 -139
- data/test/rubygems/test_gem_platform.rb +0 -497
- data/test/rubygems/test_gem_rdoc.rb +0 -137
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
- data/test/rubygems/test_gem_request.rb +0 -547
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
- data/test/rubygems/test_gem_request_set.rb +0 -672
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
- data/test/rubygems/test_gem_requirement.rb +0 -505
- data/test/rubygems/test_gem_resolver.rb +0 -859
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
- data/test/rubygems/test_gem_resolver_specification.rb +0 -63
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
- data/test/rubygems/test_gem_security.rb +0 -341
- data/test/rubygems/test_gem_security_policy.rb +0 -535
- data/test/rubygems/test_gem_security_signer.rb +0 -218
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
- data/test/rubygems/test_gem_silent_ui.rb +0 -123
- data/test/rubygems/test_gem_source.rb +0 -254
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
- data/test/rubygems/test_gem_source_git.rb +0 -310
- data/test/rubygems/test_gem_source_installed.rb +0 -35
- data/test/rubygems/test_gem_source_list.rb +0 -119
- data/test/rubygems/test_gem_source_local.rb +0 -107
- data/test/rubygems/test_gem_source_lock.rb +0 -113
- data/test/rubygems/test_gem_source_specific_file.rb +0 -76
- data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
- data/test/rubygems/test_gem_source_vendor.rb +0 -30
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
- data/test/rubygems/test_gem_specification.rb +0 -3856
- data/test/rubygems/test_gem_stream_ui.rb +0 -255
- data/test/rubygems/test_gem_stub_specification.rb +0 -278
- data/test/rubygems/test_gem_text.rb +0 -103
- data/test/rubygems/test_gem_uninstaller.rb +0 -675
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
- data/test/rubygems/test_gem_update_suggestion.rb +0 -209
- data/test/rubygems/test_gem_uri.rb +0 -41
- data/test/rubygems/test_gem_uri_formatter.rb +0 -27
- data/test/rubygems/test_gem_util.rb +0 -91
- data/test/rubygems/test_gem_validator.rb +0 -42
- data/test/rubygems/test_gem_version.rb +0 -305
- data/test/rubygems/test_gem_version_option.rb +0 -165
- data/test/rubygems/test_kernel.rb +0 -124
- data/test/rubygems/test_project_sanity.rb +0 -49
- data/test/rubygems/test_remote_fetch_error.rb +0 -20
- data/test/rubygems/test_require.rb +0 -732
- data/test/rubygems/test_rubygems.rb +0 -76
- data/test/rubygems/test_webauthn_listener.rb +0 -143
- data/test/rubygems/test_webauthn_listener_response.rb +0 -93
- data/test/rubygems/test_webauthn_poller.rb +0 -124
- data/test/rubygems/utilities.rb +0 -436
- data/test/rubygems/wrong_key_cert.pem +0 -19
- data/test/rubygems/wrong_key_cert_32.pem +0 -19
- data/test/test_changelog_generator.rb +0 -17
@@ -22,10 +22,8 @@ class Gem::Licenses
|
|
22
22
|
AFL-2.0
|
23
23
|
AFL-2.1
|
24
24
|
AFL-3.0
|
25
|
-
AGPL-1.0
|
26
25
|
AGPL-1.0-only
|
27
26
|
AGPL-1.0-or-later
|
28
|
-
AGPL-3.0
|
29
27
|
AGPL-3.0-only
|
30
28
|
AGPL-3.0-or-later
|
31
29
|
AMDPLPA
|
@@ -59,8 +57,6 @@ class Gem::Licenses
|
|
59
57
|
Artistic-2.0
|
60
58
|
BSD-1-Clause
|
61
59
|
BSD-2-Clause
|
62
|
-
BSD-2-Clause-FreeBSD
|
63
|
-
BSD-2-Clause-NetBSD
|
64
60
|
BSD-2-Clause-Patent
|
65
61
|
BSD-2-Clause-Views
|
66
62
|
BSD-3-Clause
|
@@ -230,21 +226,18 @@ class Gem::Licenses
|
|
230
226
|
FreeImage
|
231
227
|
Furuseth
|
232
228
|
GD
|
233
|
-
GFDL-1.1
|
234
229
|
GFDL-1.1-invariants-only
|
235
230
|
GFDL-1.1-invariants-or-later
|
236
231
|
GFDL-1.1-no-invariants-only
|
237
232
|
GFDL-1.1-no-invariants-or-later
|
238
233
|
GFDL-1.1-only
|
239
234
|
GFDL-1.1-or-later
|
240
|
-
GFDL-1.2
|
241
235
|
GFDL-1.2-invariants-only
|
242
236
|
GFDL-1.2-invariants-or-later
|
243
237
|
GFDL-1.2-no-invariants-only
|
244
238
|
GFDL-1.2-no-invariants-or-later
|
245
239
|
GFDL-1.2-only
|
246
240
|
GFDL-1.2-or-later
|
247
|
-
GFDL-1.3
|
248
241
|
GFDL-1.3-invariants-only
|
249
242
|
GFDL-1.3-invariants-or-later
|
250
243
|
GFDL-1.3-no-invariants-only
|
@@ -253,25 +246,12 @@ class Gem::Licenses
|
|
253
246
|
GFDL-1.3-or-later
|
254
247
|
GL2PS
|
255
248
|
GLWTPL
|
256
|
-
GPL-1.0
|
257
|
-
GPL-1.0+
|
258
249
|
GPL-1.0-only
|
259
250
|
GPL-1.0-or-later
|
260
|
-
GPL-2.0
|
261
|
-
GPL-2.0+
|
262
251
|
GPL-2.0-only
|
263
252
|
GPL-2.0-or-later
|
264
|
-
GPL-2.0-with-GCC-exception
|
265
|
-
GPL-2.0-with-autoconf-exception
|
266
|
-
GPL-2.0-with-bison-exception
|
267
|
-
GPL-2.0-with-classpath-exception
|
268
|
-
GPL-2.0-with-font-exception
|
269
|
-
GPL-3.0
|
270
|
-
GPL-3.0+
|
271
253
|
GPL-3.0-only
|
272
254
|
GPL-3.0-or-later
|
273
|
-
GPL-3.0-with-GCC-exception
|
274
|
-
GPL-3.0-with-autoconf-exception
|
275
255
|
Giftware
|
276
256
|
Glide
|
277
257
|
Glulxe
|
@@ -318,16 +298,10 @@ class Gem::Licenses
|
|
318
298
|
Knuth-CTAN
|
319
299
|
LAL-1.2
|
320
300
|
LAL-1.3
|
321
|
-
LGPL-2.0
|
322
|
-
LGPL-2.0+
|
323
301
|
LGPL-2.0-only
|
324
302
|
LGPL-2.0-or-later
|
325
|
-
LGPL-2.1
|
326
|
-
LGPL-2.1+
|
327
303
|
LGPL-2.1-only
|
328
304
|
LGPL-2.1-or-later
|
329
|
-
LGPL-3.0
|
330
|
-
LGPL-3.0+
|
331
305
|
LGPL-3.0-only
|
332
306
|
LGPL-3.0-or-later
|
333
307
|
LGPLLR
|
@@ -412,7 +386,6 @@ class Gem::Licenses
|
|
412
386
|
Newsletr
|
413
387
|
Nokia
|
414
388
|
Noweb
|
415
|
-
Nunit
|
416
389
|
O-UDA-1.0
|
417
390
|
OCCT-PL
|
418
391
|
OCLC-2.0
|
@@ -515,7 +488,6 @@ class Gem::Licenses
|
|
515
488
|
Spencer-86
|
516
489
|
Spencer-94
|
517
490
|
Spencer-99
|
518
|
-
StandardML-NJ
|
519
491
|
SugarCRM-1.1.3
|
520
492
|
SunPro
|
521
493
|
Symlinks
|
@@ -571,7 +543,6 @@ class Gem::Licenses
|
|
571
543
|
Zimbra-1.4
|
572
544
|
Zlib
|
573
545
|
blessing
|
574
|
-
bzip2-1.0.5
|
575
546
|
bzip2-1.0.6
|
576
547
|
check-cvs
|
577
548
|
checkmk
|
@@ -581,7 +552,6 @@ class Gem::Licenses
|
|
581
552
|
diffmark
|
582
553
|
dtoa
|
583
554
|
dvipdfm
|
584
|
-
eCos-2.0
|
585
555
|
eGenix
|
586
556
|
etalab-2.0
|
587
557
|
fwlw
|
@@ -607,13 +577,46 @@ class Gem::Licenses
|
|
607
577
|
swrule
|
608
578
|
ulem
|
609
579
|
w3m
|
610
|
-
wxWindows
|
611
580
|
xinetd
|
612
581
|
xlock
|
613
582
|
xpp
|
614
583
|
zlib-acknowledgement
|
615
584
|
].freeze
|
616
585
|
|
586
|
+
DEPRECATED_LICENSE_IDENTIFIERS = %w[
|
587
|
+
AGPL-1.0
|
588
|
+
AGPL-3.0
|
589
|
+
BSD-2-Clause-FreeBSD
|
590
|
+
BSD-2-Clause-NetBSD
|
591
|
+
GFDL-1.1
|
592
|
+
GFDL-1.2
|
593
|
+
GFDL-1.3
|
594
|
+
GPL-1.0
|
595
|
+
GPL-1.0+
|
596
|
+
GPL-2.0
|
597
|
+
GPL-2.0+
|
598
|
+
GPL-2.0-with-GCC-exception
|
599
|
+
GPL-2.0-with-autoconf-exception
|
600
|
+
GPL-2.0-with-bison-exception
|
601
|
+
GPL-2.0-with-classpath-exception
|
602
|
+
GPL-2.0-with-font-exception
|
603
|
+
GPL-3.0
|
604
|
+
GPL-3.0+
|
605
|
+
GPL-3.0-with-GCC-exception
|
606
|
+
GPL-3.0-with-autoconf-exception
|
607
|
+
LGPL-2.0
|
608
|
+
LGPL-2.0+
|
609
|
+
LGPL-2.1
|
610
|
+
LGPL-2.1+
|
611
|
+
LGPL-3.0
|
612
|
+
LGPL-3.0+
|
613
|
+
Nunit
|
614
|
+
StandardML-NJ
|
615
|
+
bzip2-1.0.5
|
616
|
+
eCos-2.0
|
617
|
+
wxWindows
|
618
|
+
].freeze
|
619
|
+
|
617
620
|
# exception identifiers
|
618
621
|
EXCEPTION_IDENTIFIERS = %w[
|
619
622
|
389-exception
|
@@ -649,7 +652,6 @@ class Gem::Licenses
|
|
649
652
|
LZMA-exception
|
650
653
|
Libtool-exception
|
651
654
|
Linux-syscall-note
|
652
|
-
Nokia-Qt-exception-1.1
|
653
655
|
OCCT-exception-1.0
|
654
656
|
OCaml-LGPL-linking-exception
|
655
657
|
OpenJDK-assembly-exception-1.0
|
@@ -681,7 +683,11 @@ class Gem::Licenses
|
|
681
683
|
x11vnc-openssl-exception
|
682
684
|
].freeze
|
683
685
|
|
684
|
-
|
686
|
+
DEPRECATED_EXCEPTION_IDENTIFIERS = %w[
|
687
|
+
Nokia-Qt-exception-1.1
|
688
|
+
].freeze
|
689
|
+
|
690
|
+
VALID_REGEXP = /
|
685
691
|
\A
|
686
692
|
(?:
|
687
693
|
#{Regexp.union(LICENSE_IDENTIFIERS)}
|
@@ -691,10 +697,34 @@ class Gem::Licenses
|
|
691
697
|
| #{LICENSE_REF}
|
692
698
|
)
|
693
699
|
\Z
|
694
|
-
|
700
|
+
/ox
|
701
|
+
|
702
|
+
DEPRECATED_LICENSE_REGEXP = /
|
703
|
+
\A
|
704
|
+
#{Regexp.union(DEPRECATED_LICENSE_IDENTIFIERS)}
|
705
|
+
\+?
|
706
|
+
(?:\s WITH \s .+?)?
|
707
|
+
\Z
|
708
|
+
/ox
|
709
|
+
|
710
|
+
DEPRECATED_EXCEPTION_REGEXP = /
|
711
|
+
\A
|
712
|
+
.+?
|
713
|
+
\+?
|
714
|
+
(?:\s WITH \s #{Regexp.union(DEPRECATED_EXCEPTION_IDENTIFIERS)})
|
715
|
+
\Z
|
716
|
+
/ox
|
695
717
|
|
696
718
|
def self.match?(license)
|
697
|
-
|
719
|
+
VALID_REGEXP.match?(license)
|
720
|
+
end
|
721
|
+
|
722
|
+
def self.deprecated_license_id?(license)
|
723
|
+
DEPRECATED_LICENSE_REGEXP.match?(license)
|
724
|
+
end
|
725
|
+
|
726
|
+
def self.deprecated_exception_id?(license)
|
727
|
+
DEPRECATED_EXCEPTION_REGEXP.match?(license)
|
698
728
|
end
|
699
729
|
|
700
730
|
def self.suggestions(license)
|
data/lib/rubygems/util/list.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Gem
|
4
|
-
class
|
4
|
+
# The Gem::List class is currently unused and will be removed in the next major rubygems version
|
5
|
+
class List # :nodoc:
|
5
6
|
include Enumerable
|
6
7
|
attr_accessor :value, :tail
|
7
8
|
|
@@ -35,4 +36,5 @@ module Gem
|
|
35
36
|
List.new value, list
|
36
37
|
end
|
37
38
|
end
|
39
|
+
deprecate_constant :List
|
38
40
|
end
|
data/lib/rubygems/util.rb
CHANGED
@@ -6,7 +6,6 @@ require_relative "deprecate"
|
|
6
6
|
# This module contains various utility methods as module methods.
|
7
7
|
|
8
8
|
module Gem::Util
|
9
|
-
|
10
9
|
##
|
11
10
|
# Zlib::GzipReader wrapper that unzips +data+.
|
12
11
|
|
@@ -61,7 +60,7 @@ module Gem::Util
|
|
61
60
|
# Invokes system, but silences all output.
|
62
61
|
|
63
62
|
def self.silent_system(*command)
|
64
|
-
opt = { :
|
63
|
+
opt = { out: IO::NULL, err: [:child, :out] }
|
65
64
|
if Hash === command.last
|
66
65
|
opt.update(command.last)
|
67
66
|
cmds = command[0...-1]
|
@@ -110,11 +109,10 @@ module Gem::Util
|
|
110
109
|
# comes with a leading slash.
|
111
110
|
|
112
111
|
def self.correct_for_windows_path(path)
|
113
|
-
if path[0].chr == "/" && path[1].chr
|
112
|
+
if path[0].chr == "/" && path[1].chr.match?(/[a-z]/i) && path[2].chr == ":"
|
114
113
|
path[1..-1]
|
115
114
|
else
|
116
115
|
path
|
117
116
|
end
|
118
117
|
end
|
119
|
-
|
120
118
|
end
|
data/lib/rubygems/validator.rb
CHANGED
@@ -25,7 +25,7 @@ class Gem::Validator
|
|
25
25
|
installed_files = []
|
26
26
|
|
27
27
|
Find.find gem_directory do |file_name|
|
28
|
-
fn = file_name[gem_directory.size..file_name.size - 1].sub(
|
28
|
+
fn = file_name[gem_directory.size..file_name.size - 1].sub(%r{^/}, "")
|
29
29
|
installed_files << fn unless
|
30
30
|
fn.empty? || fn.include?("CVS") || File.directory?(file_name)
|
31
31
|
end
|
@@ -63,7 +63,9 @@ class Gem::Validator
|
|
63
63
|
errors = Hash.new {|h,k| h[k] = {} }
|
64
64
|
|
65
65
|
Gem::Specification.each do |spec|
|
66
|
-
|
66
|
+
unless gems.empty?
|
67
|
+
next unless gems.include? spec.name
|
68
|
+
end
|
67
69
|
next if spec.default_gem?
|
68
70
|
|
69
71
|
gem_name = spec.file_name
|
@@ -88,7 +90,7 @@ class Gem::Validator
|
|
88
90
|
|
89
91
|
good, gone, unreadable = nil, nil, nil, nil
|
90
92
|
|
91
|
-
File.open gem_path, Gem.binary_mode do |
|
93
|
+
File.open gem_path, Gem.binary_mode do |_file|
|
92
94
|
package = Gem::Package.new gem_path
|
93
95
|
|
94
96
|
good, gone = package.contents.partition do |file_name|
|
data/lib/rubygems/version.rb
CHANGED
@@ -156,16 +156,16 @@ class Gem::Version
|
|
156
156
|
include Comparable
|
157
157
|
|
158
158
|
VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?' # :nodoc:
|
159
|
-
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z
|
159
|
+
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:
|
160
160
|
|
161
161
|
##
|
162
162
|
# A string representation of this Version.
|
163
163
|
|
164
164
|
def version
|
165
|
-
@version
|
165
|
+
@version
|
166
166
|
end
|
167
167
|
|
168
|
-
|
168
|
+
alias_method :to_s, :version
|
169
169
|
|
170
170
|
##
|
171
171
|
# True if the +version+ string matches RubyGems' requirements.
|
@@ -173,7 +173,7 @@ class Gem::Version
|
|
173
173
|
def self.correct?(version)
|
174
174
|
nil_versions_are_discouraged! if version.nil?
|
175
175
|
|
176
|
-
|
176
|
+
ANCHORED_VERSION_PATTERN.match?(version.to_s)
|
177
177
|
end
|
178
178
|
|
179
179
|
##
|
@@ -201,7 +201,7 @@ class Gem::Version
|
|
201
201
|
@@release = {}
|
202
202
|
|
203
203
|
def self.new(version) # :nodoc:
|
204
|
-
return super unless Gem::Version
|
204
|
+
return super unless self == Gem::Version
|
205
205
|
|
206
206
|
@@all[version] ||= super
|
207
207
|
end
|
@@ -224,9 +224,17 @@ class Gem::Version
|
|
224
224
|
end
|
225
225
|
|
226
226
|
# If version is an empty string convert it to 0
|
227
|
-
version = 0 if version.is_a?(String) &&
|
227
|
+
version = 0 if version.is_a?(String) && /\A\s*\Z/.match?(version)
|
228
|
+
|
229
|
+
@version = version.to_s
|
228
230
|
|
229
|
-
|
231
|
+
# optimization to avoid allocation when given an integer, since we know
|
232
|
+
# it's to_s won't have any spaces or dashes
|
233
|
+
unless version.is_a?(Integer)
|
234
|
+
@version = @version.strip
|
235
|
+
@version.gsub!("-",".pre.")
|
236
|
+
end
|
237
|
+
@version = -@version
|
230
238
|
@segments = nil
|
231
239
|
end
|
232
240
|
|
@@ -252,7 +260,7 @@ class Gem::Version
|
|
252
260
|
# same precision. Version "1.0" is not the same as version "1".
|
253
261
|
|
254
262
|
def eql?(other)
|
255
|
-
self.class === other && @version == other.
|
263
|
+
self.class === other && @version == other.version
|
256
264
|
end
|
257
265
|
|
258
266
|
def hash # :nodoc:
|
@@ -284,7 +292,7 @@ class Gem::Version
|
|
284
292
|
end
|
285
293
|
|
286
294
|
def yaml_initialize(tag, map) # :nodoc:
|
287
|
-
@version = map["version"]
|
295
|
+
@version = -map["version"]
|
288
296
|
@segments = nil
|
289
297
|
@hash = nil
|
290
298
|
end
|
@@ -302,7 +310,7 @@ class Gem::Version
|
|
302
310
|
|
303
311
|
def prerelease?
|
304
312
|
unless instance_variable_defined? :@prerelease
|
305
|
-
@prerelease =
|
313
|
+
@prerelease = /[a-zA-Z]/.match?(version)
|
306
314
|
end
|
307
315
|
@prerelease
|
308
316
|
end
|
@@ -354,7 +362,7 @@ class Gem::Version
|
|
354
362
|
return self <=> self.class.new(other) if (String === other) && self.class.correct?(other)
|
355
363
|
|
356
364
|
return unless Gem::Version === other
|
357
|
-
return 0 if @version == other.
|
365
|
+
return 0 if @version == other.version || canonical_segments == other.canonical_segments
|
358
366
|
|
359
367
|
lhsegments = canonical_segments
|
360
368
|
rhsegments = other.canonical_segments
|
@@ -380,39 +388,37 @@ class Gem::Version
|
|
380
388
|
0
|
381
389
|
end
|
382
390
|
|
391
|
+
# remove trailing zeros segments before first letter or at the end of the version
|
383
392
|
def canonical_segments
|
384
|
-
@canonical_segments ||=
|
385
|
-
|
386
|
-
|
387
|
-
|
393
|
+
@canonical_segments ||= begin
|
394
|
+
# remove trailing 0 segments, using dot or letter as anchor
|
395
|
+
# may leave a trailing dot which will be ignored by partition_segments
|
396
|
+
canonical_version = @version.sub(/(?<=[a-zA-Z.])[.0]+\z/, "")
|
397
|
+
# remove 0 segments before the first letter in a prerelease version
|
398
|
+
canonical_version.sub!(/(?<=\.|\A)[0.]+(?=[a-zA-Z])/, "") if prerelease?
|
399
|
+
partition_segments(canonical_version)
|
400
|
+
end
|
388
401
|
end
|
389
402
|
|
390
403
|
def freeze
|
391
404
|
prerelease?
|
405
|
+
_segments
|
392
406
|
canonical_segments
|
393
407
|
super
|
394
408
|
end
|
395
409
|
|
396
410
|
protected
|
397
411
|
|
398
|
-
def _version
|
399
|
-
@version
|
400
|
-
end
|
401
|
-
|
402
412
|
def _segments
|
403
413
|
# segments is lazy so it can pick up version values that come from
|
404
414
|
# old marshaled versions, which don't go through marshal_load.
|
405
415
|
# since this version object is cached in @@all, its @segments should be frozen
|
406
|
-
|
407
|
-
@segments ||= @version.scan(/[0-9]+|[a-z]+/i).map do |s|
|
408
|
-
/^\d+$/.match?(s) ? s.to_i : s
|
409
|
-
end.freeze
|
416
|
+
@segments ||= partition_segments(@version)
|
410
417
|
end
|
411
418
|
|
412
|
-
def
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
[numeric_segments, string_segments]
|
419
|
+
def partition_segments(ver)
|
420
|
+
ver.scan(/\d+|[a-z]+/i).map! do |s|
|
421
|
+
/\A\d/.match?(s) ? s.to_i : -s
|
422
|
+
end.freeze
|
417
423
|
end
|
418
424
|
end
|
@@ -12,7 +12,6 @@ require_relative "../rubygems"
|
|
12
12
|
# Mixin methods for --version and --platform Gem::Command options.
|
13
13
|
|
14
14
|
module Gem::VersionOption
|
15
|
-
|
16
15
|
##
|
17
16
|
# Add the --platform option to the option parser.
|
18
17
|
|
@@ -26,8 +25,7 @@ module Gem::VersionOption
|
|
26
25
|
end
|
27
26
|
|
28
27
|
add_option("--platform PLATFORM", Gem::Platform,
|
29
|
-
"Specify the platform of gem to #{task}", *wrap) do
|
30
|
-
|value, options|
|
28
|
+
"Specify the platform of gem to #{task}", *wrap) do |value, options|
|
31
29
|
unless options[:added_platform]
|
32
30
|
Gem.platforms = [Gem::Platform::RUBY]
|
33
31
|
options[:added_platform] = true
|
@@ -57,8 +55,7 @@ module Gem::VersionOption
|
|
57
55
|
end
|
58
56
|
|
59
57
|
add_option("-v", "--version VERSION", Gem::Requirement,
|
60
|
-
"Specify version of gem to #{task}", *wrap) do
|
61
|
-
|value, options|
|
58
|
+
"Specify version of gem to #{task}", *wrap) do |value, options|
|
62
59
|
# Allow handling for multiple --version operators
|
63
60
|
if options[:version] && !options[:version].none?
|
64
61
|
options[:version].concat([value])
|
@@ -36,7 +36,7 @@ module Gem
|
|
36
36
|
(.*) # value
|
37
37
|
\1 # matching closing quote
|
38
38
|
$
|
39
|
-
/xo
|
39
|
+
/xo
|
40
40
|
|
41
41
|
HASH_REGEX = /
|
42
42
|
^
|
@@ -48,14 +48,14 @@ module Gem
|
|
48
48
|
(.*) # value
|
49
49
|
\3 # matching closing quote
|
50
50
|
$
|
51
|
-
/xo
|
51
|
+
/xo
|
52
52
|
|
53
53
|
def load(str)
|
54
54
|
res = {}
|
55
55
|
stack = [res]
|
56
56
|
last_hash = nil
|
57
57
|
last_empty_key = nil
|
58
|
-
str.split(/\r?\n/)
|
58
|
+
str.split(/\r?\n/) do |line|
|
59
59
|
if match = HASH_REGEX.match(line)
|
60
60
|
indent, key, quote, val = match.captures
|
61
61
|
convert_to_backward_compatible_key!(key)
|
data/lib/rubygems.rb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
require "rbconfig"
|
10
10
|
|
11
11
|
module Gem
|
12
|
-
VERSION = "3.
|
12
|
+
VERSION = "3.5.1"
|
13
13
|
end
|
14
14
|
|
15
15
|
# Must be first since it unloads the prelude from 1.9.2
|
@@ -115,11 +115,6 @@ require_relative "rubygems/errors"
|
|
115
115
|
module Gem
|
116
116
|
RUBYGEMS_DIR = __dir__
|
117
117
|
|
118
|
-
# Taint support is deprecated in Ruby 2.7.
|
119
|
-
# This allows switching ".untaint" to ".tap(&Gem::UNTAINT)",
|
120
|
-
# to avoid deprecation warnings in Ruby 2.7.
|
121
|
-
UNTAINT = RUBY_VERSION < "2.7" ? :untaint.to_sym : proc {}
|
122
|
-
|
123
118
|
##
|
124
119
|
# An Array of Regexps that match windows Ruby platforms.
|
125
120
|
|
@@ -338,16 +333,6 @@ module Gem
|
|
338
333
|
@configuration = config
|
339
334
|
end
|
340
335
|
|
341
|
-
##
|
342
|
-
# The path to the data directory specified by the gem name. If the
|
343
|
-
# package is not available as a gem, return nil.
|
344
|
-
|
345
|
-
def self.datadir(gem_name)
|
346
|
-
spec = @loaded_specs[gem_name]
|
347
|
-
return nil if spec.nil?
|
348
|
-
spec.datadir
|
349
|
-
end
|
350
|
-
|
351
336
|
##
|
352
337
|
# A Zlib::Deflate.deflate wrapper
|
353
338
|
|
@@ -439,7 +424,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
439
424
|
|
440
425
|
def self.ensure_subdirectories(dir, mode, subdirs) # :nodoc:
|
441
426
|
old_umask = File.umask
|
442
|
-
File.umask old_umask |
|
427
|
+
File.umask old_umask | 0o002
|
443
428
|
|
444
429
|
options = {}
|
445
430
|
|
@@ -465,7 +450,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
465
450
|
# distinction as extensions cannot be shared between the two.
|
466
451
|
|
467
452
|
def self.extension_api_version # :nodoc:
|
468
|
-
if
|
453
|
+
if RbConfig::CONFIG["ENABLE_SHARED"] == "no"
|
469
454
|
"#{ruby_api_version}-static"
|
470
455
|
else
|
471
456
|
ruby_api_version
|
@@ -506,7 +491,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
506
491
|
glob_with_suffixes = "#{glob}#{Gem.suffix_pattern}"
|
507
492
|
$LOAD_PATH.map do |load_path|
|
508
493
|
Gem::Util.glob_files_in_dir(glob_with_suffixes, load_path)
|
509
|
-
end.flatten.select {|file| File.file? file
|
494
|
+
end.flatten.select {|file| File.file? file }
|
510
495
|
end
|
511
496
|
|
512
497
|
##
|
@@ -614,6 +599,16 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
614
599
|
@yaml_loaded = true
|
615
600
|
end
|
616
601
|
|
602
|
+
@safe_marshal_loaded = false
|
603
|
+
|
604
|
+
def self.load_safe_marshal
|
605
|
+
return if @safe_marshal_loaded
|
606
|
+
|
607
|
+
require_relative "rubygems/safe_marshal"
|
608
|
+
|
609
|
+
@safe_marshal_loaded = true
|
610
|
+
end
|
611
|
+
|
617
612
|
##
|
618
613
|
# The file name and line number of the caller of the caller of this method.
|
619
614
|
#
|
@@ -742,7 +737,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
742
737
|
|
743
738
|
if prefix != File.expand_path(RbConfig::CONFIG["sitelibdir"]) &&
|
744
739
|
prefix != File.expand_path(RbConfig::CONFIG["libdir"]) &&
|
745
|
-
|
740
|
+
File.basename(RUBYGEMS_DIR) == "lib"
|
746
741
|
prefix
|
747
742
|
end
|
748
743
|
end
|
@@ -758,13 +753,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
758
753
|
# Safely read a file in binary mode on all platforms.
|
759
754
|
|
760
755
|
def self.read_binary(path)
|
761
|
-
open_file(path, "rb+")
|
762
|
-
io.read
|
763
|
-
end
|
756
|
+
open_file(path, "rb+", &:read)
|
764
757
|
rescue Errno::EACCES, Errno::EROFS
|
765
|
-
open_file(path, "rb")
|
766
|
-
io.read
|
767
|
-
end
|
758
|
+
open_file(path, "rb", &:read)
|
768
759
|
end
|
769
760
|
|
770
761
|
##
|
@@ -866,7 +857,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
866
857
|
return @ruby_version if defined? @ruby_version
|
867
858
|
version = RUBY_VERSION.dup
|
868
859
|
|
869
|
-
|
860
|
+
if RUBY_PATCHLEVEL == -1
|
870
861
|
if RUBY_ENGINE == "ruby"
|
871
862
|
desc = RUBY_DESCRIPTION[/\Aruby #{Regexp.quote(RUBY_VERSION)}([^ ]+) /, 1]
|
872
863
|
else
|
@@ -948,8 +939,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
948
939
|
val = RbConfig::CONFIG[key]
|
949
940
|
next unless val && !val.empty?
|
950
941
|
".#{val}"
|
951
|
-
end
|
952
|
-
].compact.uniq
|
942
|
+
end].compact.uniq
|
953
943
|
end
|
954
944
|
|
955
945
|
##
|
@@ -963,7 +953,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
963
953
|
|
964
954
|
elapsed = Time.now - now
|
965
955
|
|
966
|
-
ui.say "%2$*1$s: %3$3.3fs"
|
956
|
+
ui.say format("%2$*1$s: %3$3.3fs", -width, msg, elapsed) if display
|
967
957
|
|
968
958
|
value
|
969
959
|
end
|
@@ -995,7 +985,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
995
985
|
def self.win_platform?
|
996
986
|
if @@win_platform.nil?
|
997
987
|
ruby_platform = RbConfig::CONFIG["host_os"]
|
998
|
-
@@win_platform =
|
988
|
+
@@win_platform = !WIN_PATTERNS.find {|r| ruby_platform =~ r }.nil?
|
999
989
|
end
|
1000
990
|
|
1001
991
|
@@win_platform
|
@@ -1027,7 +1017,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1027
1017
|
|
1028
1018
|
begin
|
1029
1019
|
load plugin
|
1030
|
-
rescue
|
1020
|
+
rescue ScriptError, StandardError => e
|
1031
1021
|
details = "#{plugin.inspect}: #{e.message} (#{e.class})"
|
1032
1022
|
warn "Error loading RubyGems plugin #{details}"
|
1033
1023
|
end
|
@@ -1089,8 +1079,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1089
1079
|
end
|
1090
1080
|
end
|
1091
1081
|
|
1092
|
-
path.tap(&Gem::UNTAINT)
|
1093
|
-
|
1094
1082
|
unless File.file? path
|
1095
1083
|
return unless raise_exception
|
1096
1084
|
|
@@ -1152,7 +1140,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1152
1140
|
# This is used throughout RubyGems for enabling reproducible builds.
|
1153
1141
|
|
1154
1142
|
def self.source_date_epoch
|
1155
|
-
Time.at(
|
1143
|
+
Time.at(source_date_epoch_string.to_i).utc.freeze
|
1156
1144
|
end
|
1157
1145
|
|
1158
1146
|
# FIX: Almost everywhere else we use the `def self.` way of defining class
|
@@ -1299,9 +1287,10 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
|
|
1299
1287
|
##
|
1300
1288
|
# Location of Marshal quick gemspecs on remote repositories
|
1301
1289
|
|
1302
|
-
MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/"
|
1290
|
+
MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/".freeze
|
1303
1291
|
|
1304
1292
|
autoload :ConfigFile, File.expand_path("rubygems/config_file", __dir__)
|
1293
|
+
autoload :CIDetector, File.expand_path("rubygems/ci_detector", __dir__)
|
1305
1294
|
autoload :Dependency, File.expand_path("rubygems/dependency", __dir__)
|
1306
1295
|
autoload :DependencyList, File.expand_path("rubygems/dependency_list", __dir__)
|
1307
1296
|
autoload :Installer, File.expand_path("rubygems/installer", __dir__)
|
@@ -1348,6 +1337,17 @@ begin
|
|
1348
1337
|
rescue LoadError
|
1349
1338
|
end
|
1350
1339
|
|
1340
|
+
# TruffleRuby >= 24 defines REUSE_AS_BINARY_ON_TRUFFLERUBY in defaults/truffleruby.
|
1341
|
+
# However, TruffleRuby < 24 defines REUSE_AS_BINARY_ON_TRUFFLERUBY directly in its copy
|
1342
|
+
# of lib/rubygems/platform.rb, so it is not defined if RubyGems is updated (gem update --system).
|
1343
|
+
# Instead, we define it here in that case, similar to bundler/lib/bundler/rubygems_ext.rb.
|
1344
|
+
# We must define it here and not in platform.rb because platform.rb is loaded before defaults/truffleruby.
|
1345
|
+
class Gem::Platform
|
1346
|
+
if RUBY_ENGINE == "truffleruby" && !defined?(REUSE_AS_BINARY_ON_TRUFFLERUBY)
|
1347
|
+
REUSE_AS_BINARY_ON_TRUFFLERUBY = %w[libv8 libv8-node sorbet-static].freeze
|
1348
|
+
end
|
1349
|
+
end
|
1350
|
+
|
1351
1351
|
##
|
1352
1352
|
# Loads the default specs.
|
1353
1353
|
Gem::Specification.load_defaults
|
@@ -1357,7 +1357,7 @@ require_relative "rubygems/core_ext/kernel_gem"
|
|
1357
1357
|
path = File.join(__dir__, "rubygems/core_ext/kernel_require.rb")
|
1358
1358
|
# When https://bugs.ruby-lang.org/issues/17259 is available, there is no need to override Kernel#warn
|
1359
1359
|
if RUBY_ENGINE == "truffleruby" ||
|
1360
|
-
|
1360
|
+
RUBY_ENGINE == "ruby"
|
1361
1361
|
file = "<internal:#{path}>"
|
1362
1362
|
else
|
1363
1363
|
require_relative "rubygems/core_ext/kernel_warn"
|