rubygems-update 3.4.22 → 3.5.0
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 +99 -2
- data/Manifest.txt +34 -221
- data/README.md +1 -3
- data/bundler/CHANGELOG.md +53 -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 +245 -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 +43 -25
- 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/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/lib/fileutils.rb +8 -20
- 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 +35 -35
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -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 +38 -27
- 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/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/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/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.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/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 +38 -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
@@ -9,13 +9,12 @@
|
|
9
9
|
require "monitor"
|
10
10
|
|
11
11
|
module Kernel
|
12
|
-
|
13
12
|
RUBYGEMS_ACTIVATION_MONITOR = Monitor.new # :nodoc:
|
14
13
|
|
15
14
|
# Make sure we have a reference to Ruby's original Kernel#require
|
16
15
|
unless defined?(gem_original_require)
|
17
16
|
# :stopdoc:
|
18
|
-
|
17
|
+
alias_method :gem_original_require, :require
|
19
18
|
private :gem_original_require
|
20
19
|
# :startdoc:
|
21
20
|
end
|
@@ -37,53 +36,36 @@ module Kernel
|
|
37
36
|
def require(path) # :doc:
|
38
37
|
return gem_original_require(path) unless Gem.discover_gems_on_require
|
39
38
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
path = path.to_path if path.respond_to? :to_path
|
39
|
+
RUBYGEMS_ACTIVATION_MONITOR.synchronize do
|
40
|
+
path = File.path(path)
|
44
41
|
|
45
42
|
if spec = Gem.find_unresolved_default_spec(path)
|
46
43
|
# Ensure -I beats a default gem
|
47
44
|
resolved_path = begin
|
48
45
|
rp = nil
|
49
46
|
load_path_check_index = Gem.load_path_insert_index - Gem.activated_gem_paths
|
50
|
-
Gem.suffixes.
|
51
|
-
$LOAD_PATH[0...load_path_check_index].
|
52
|
-
|
53
|
-
|
54
|
-
if File.symlink? safe_lp # for backward compatibility
|
55
|
-
next
|
56
|
-
end
|
57
|
-
rescue SecurityError
|
58
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
59
|
-
raise
|
47
|
+
Gem.suffixes.find do |s|
|
48
|
+
$LOAD_PATH[0...load_path_check_index].find do |lp|
|
49
|
+
if File.symlink? lp # for backward compatibility
|
50
|
+
next
|
60
51
|
end
|
61
52
|
|
62
|
-
full_path = File.expand_path(File.join(
|
63
|
-
if File.file?(full_path)
|
64
|
-
rp = full_path
|
65
|
-
break
|
66
|
-
end
|
53
|
+
full_path = File.expand_path(File.join(lp, "#{path}#{s}"))
|
54
|
+
rp = full_path if File.file?(full_path)
|
67
55
|
end
|
68
|
-
break if rp
|
69
56
|
end
|
70
57
|
rp
|
71
58
|
end
|
72
59
|
|
73
|
-
|
74
|
-
|
75
|
-
rescue Exception
|
76
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
77
|
-
raise
|
78
|
-
end unless resolved_path
|
60
|
+
Kernel.send(:gem, spec.name, Gem::Requirement.default_prerelease) unless
|
61
|
+
resolved_path
|
79
62
|
end
|
80
63
|
|
81
64
|
# If there are no unresolved deps, then we can use just try
|
82
65
|
# normal require handle loading a gem from the rescue below.
|
83
66
|
|
84
67
|
if Gem::Specification.unresolved_deps.empty?
|
85
|
-
|
86
|
-
return gem_original_require(path)
|
68
|
+
next
|
87
69
|
end
|
88
70
|
|
89
71
|
# If +path+ is for a gem that has already been loaded, don't
|
@@ -93,8 +75,7 @@ module Kernel
|
|
93
75
|
# TODO request access to the C implementation of this to speed up RubyGems
|
94
76
|
|
95
77
|
if Gem::Specification.find_active_stub_by_path(path)
|
96
|
-
|
97
|
-
return gem_original_require(path)
|
78
|
+
next
|
98
79
|
end
|
99
80
|
|
100
81
|
# Attempt to find +path+ in any unresolved gems...
|
@@ -114,9 +95,7 @@ module Kernel
|
|
114
95
|
if found_specs.empty?
|
115
96
|
found_specs = Gem::Specification.find_in_unresolved_tree path
|
116
97
|
|
117
|
-
found_specs.each
|
118
|
-
found_spec.activate
|
119
|
-
end
|
98
|
+
found_specs.each(&:activate)
|
120
99
|
|
121
100
|
# We found +path+ directly in an unresolved gem. Now we figure out, of
|
122
101
|
# the possible found specs, which one we should activate.
|
@@ -127,7 +106,6 @@ module Kernel
|
|
127
106
|
names = found_specs.map(&:name).uniq
|
128
107
|
|
129
108
|
if names.size > 1
|
130
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
131
109
|
raise Gem::LoadError, "#{path} found in multiple gems: #{names.join ", "}"
|
132
110
|
end
|
133
111
|
|
@@ -138,26 +116,20 @@ module Kernel
|
|
138
116
|
unless valid
|
139
117
|
le = Gem::LoadError.new "unable to find a version of '#{names.first}' to activate"
|
140
118
|
le.name = names.first
|
141
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
142
119
|
raise le
|
143
120
|
end
|
144
121
|
|
145
122
|
valid.activate
|
146
123
|
end
|
124
|
+
end
|
147
125
|
|
148
|
-
|
126
|
+
begin
|
149
127
|
gem_original_require(path)
|
150
128
|
rescue LoadError => load_error
|
151
|
-
if load_error.path == path
|
152
|
-
|
153
|
-
|
154
|
-
begin
|
155
|
-
require_again = Gem.try_activate(path)
|
156
|
-
ensure
|
157
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
158
|
-
end
|
129
|
+
if load_error.path == path &&
|
130
|
+
RUBYGEMS_ACTIVATION_MONITOR.synchronize { Gem.try_activate(path) }
|
159
131
|
|
160
|
-
return gem_original_require(path)
|
132
|
+
return gem_original_require(path)
|
161
133
|
end
|
162
134
|
|
163
135
|
raise load_error
|
@@ -165,5 +137,4 @@ module Kernel
|
|
165
137
|
end
|
166
138
|
|
167
139
|
private :require
|
168
|
-
|
169
140
|
end
|
@@ -19,7 +19,7 @@ module CoreExtensions
|
|
19
19
|
cond_var = Thread::ConditionVariable.new
|
20
20
|
|
21
21
|
Addrinfo.foreach(host, serv, nil, :STREAM) do |addr|
|
22
|
-
Thread.report_on_exception = false
|
22
|
+
Thread.report_on_exception = false
|
23
23
|
|
24
24
|
threads << Thread.new(addr) do
|
25
25
|
# give head start to ipv6 addresses
|
data/lib/rubygems/defaults.rb
CHANGED
@@ -94,7 +94,7 @@ module Gem
|
|
94
94
|
# The home directory for the user.
|
95
95
|
|
96
96
|
def self.user_home
|
97
|
-
@user_home ||= find_home
|
97
|
+
@user_home ||= find_home
|
98
98
|
end
|
99
99
|
|
100
100
|
##
|
@@ -131,14 +131,14 @@ module Gem
|
|
131
131
|
# The path to standard location of the user's .gemrc file.
|
132
132
|
|
133
133
|
def self.config_file
|
134
|
-
@config_file ||= find_config_file
|
134
|
+
@config_file ||= find_config_file
|
135
135
|
end
|
136
136
|
|
137
137
|
##
|
138
138
|
# The path to standard location of the user's state file.
|
139
139
|
|
140
140
|
def self.state_file
|
141
|
-
@state_file ||= File.join(Gem.state_home, "gem", "last_update_check")
|
141
|
+
@state_file ||= File.join(Gem.state_home, "gem", "last_update_check")
|
142
142
|
end
|
143
143
|
|
144
144
|
##
|
@@ -235,6 +235,18 @@ module Gem
|
|
235
235
|
default_cert_path
|
236
236
|
end
|
237
237
|
|
238
|
+
##
|
239
|
+
# Enables automatic installation into user directory
|
240
|
+
|
241
|
+
def self.default_user_install # :nodoc:
|
242
|
+
if !ENV.key?("GEM_HOME") && (File.exist?(Gem.dir) && !File.writable?(Gem.dir))
|
243
|
+
Gem.ui.say "Defaulting to user installation because default installation directory (#{Gem.dir}) is not writable."
|
244
|
+
return true
|
245
|
+
end
|
246
|
+
|
247
|
+
false
|
248
|
+
end
|
249
|
+
|
238
250
|
##
|
239
251
|
# Install extensions into lib as well as into the extension directory.
|
240
252
|
|
data/lib/rubygems/dependency.rb
CHANGED
@@ -46,10 +46,10 @@ class Gem::Dependency
|
|
46
46
|
end
|
47
47
|
|
48
48
|
type = Symbol === requirements.last ? requirements.pop : :runtime
|
49
|
-
requirements = requirements.first if
|
49
|
+
requirements = requirements.first if requirements.length == 1 # unpack
|
50
50
|
|
51
51
|
unless TYPES.include? type
|
52
|
-
raise ArgumentError, "Valid types are #{TYPES.inspect}, "
|
52
|
+
raise ArgumentError, "Valid types are #{TYPES.inspect}, " \
|
53
53
|
"not #{type.inspect}"
|
54
54
|
end
|
55
55
|
|
@@ -74,11 +74,9 @@ class Gem::Dependency
|
|
74
74
|
|
75
75
|
def inspect # :nodoc:
|
76
76
|
if prerelease?
|
77
|
-
"<%s type=%p name=%p requirements=%p prerelease=ok>"
|
78
|
-
[self.class, self.type, self.name, requirement.to_s]
|
77
|
+
format("<%s type=%p name=%p requirements=%p prerelease=ok>", self.class, type, name, requirement.to_s)
|
79
78
|
else
|
80
|
-
"<%s type=%p name=%p requirements=%p>"
|
81
|
-
[self.class, self.type, self.name, requirement.to_s]
|
79
|
+
format("<%s type=%p name=%p requirements=%p>", self.class, type, name, requirement.to_s)
|
82
80
|
end
|
83
81
|
end
|
84
82
|
|
@@ -169,16 +167,16 @@ class Gem::Dependency
|
|
169
167
|
|
170
168
|
def ==(other) # :nodoc:
|
171
169
|
Gem::Dependency === other &&
|
172
|
-
|
173
|
-
|
174
|
-
|
170
|
+
name == other.name &&
|
171
|
+
type == other.type &&
|
172
|
+
requirement == other.requirement
|
175
173
|
end
|
176
174
|
|
177
175
|
##
|
178
176
|
# Dependencies are ordered by name.
|
179
177
|
|
180
178
|
def <=>(other)
|
181
|
-
|
179
|
+
name <=> other.name
|
182
180
|
end
|
183
181
|
|
184
182
|
##
|
@@ -205,7 +203,7 @@ class Gem::Dependency
|
|
205
203
|
requirement.satisfied_by? version
|
206
204
|
end
|
207
205
|
|
208
|
-
|
206
|
+
alias_method :===, :=~
|
209
207
|
|
210
208
|
##
|
211
209
|
# :call-seq:
|
@@ -263,7 +261,7 @@ class Gem::Dependency
|
|
263
261
|
end
|
264
262
|
|
265
263
|
default = Gem::Requirement.default
|
266
|
-
self_req =
|
264
|
+
self_req = requirement
|
267
265
|
other_req = other.requirement
|
268
266
|
|
269
267
|
return self.class.new name, self_req if other_req == default
|
@@ -324,9 +322,9 @@ class Gem::Dependency
|
|
324
322
|
end
|
325
323
|
|
326
324
|
def to_spec
|
327
|
-
matches =
|
325
|
+
matches = to_specs.compact
|
328
326
|
|
329
|
-
active = matches.find
|
327
|
+
active = matches.find(&:activated?)
|
330
328
|
return active if active
|
331
329
|
|
332
330
|
unless prerelease?
|
@@ -17,18 +17,18 @@ class Gem::DependencyInstaller
|
|
17
17
|
extend Gem::Deprecate
|
18
18
|
|
19
19
|
DEFAULT_OPTIONS = { # :nodoc:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
20
|
+
env_shebang: false,
|
21
|
+
document: %w[ri],
|
22
|
+
domain: :both, # HACK: dup
|
23
|
+
force: false,
|
24
|
+
format_executable: false, # HACK: dup
|
25
|
+
ignore_dependencies: false,
|
26
|
+
prerelease: false,
|
27
|
+
security_policy: nil, # HACK: NoSecurity requires OpenSSL. AlmostNo? Low?
|
28
|
+
wrappers: true,
|
29
|
+
build_args: nil,
|
30
|
+
build_docs_in_background: false,
|
31
|
+
install_as_default: false,
|
32
32
|
}.freeze
|
33
33
|
|
34
34
|
##
|
@@ -66,7 +66,7 @@ class Gem::DependencyInstaller
|
|
66
66
|
# :build_args:: See Gem::Installer::new
|
67
67
|
|
68
68
|
def initialize(options = {})
|
69
|
-
@only_install_dir =
|
69
|
+
@only_install_dir = !options[:install_dir].nil?
|
70
70
|
@install_dir = options[:install_dir] || Gem.dir
|
71
71
|
@build_root = options[:build_root]
|
72
72
|
|
@@ -177,7 +177,6 @@ class Gem::DependencyInstaller
|
|
177
177
|
end
|
178
178
|
|
179
179
|
set << specs
|
180
|
-
|
181
180
|
rescue Gem::RemoteFetcher::FetchError => e
|
182
181
|
# FIX if there is a problem talking to the network, we either need to always tell
|
183
182
|
# the user (no really_verbose) or fail hard, not silently tell them that we just
|
@@ -229,22 +228,22 @@ class Gem::DependencyInstaller
|
|
229
228
|
@installed_gems = []
|
230
229
|
|
231
230
|
options = {
|
232
|
-
:
|
233
|
-
:
|
234
|
-
:
|
235
|
-
:
|
236
|
-
:
|
237
|
-
:
|
238
|
-
:
|
239
|
-
:
|
240
|
-
:
|
241
|
-
:
|
242
|
-
:
|
243
|
-
:
|
244
|
-
:
|
245
|
-
:
|
246
|
-
:
|
247
|
-
:
|
231
|
+
bin_dir: @bin_dir,
|
232
|
+
build_args: @build_args,
|
233
|
+
document: @document,
|
234
|
+
env_shebang: @env_shebang,
|
235
|
+
force: @force,
|
236
|
+
format_executable: @format_executable,
|
237
|
+
ignore_dependencies: @ignore_dependencies,
|
238
|
+
prerelease: @prerelease,
|
239
|
+
security_policy: @security_policy,
|
240
|
+
user_install: @user_install,
|
241
|
+
wrappers: @wrappers,
|
242
|
+
build_root: @build_root,
|
243
|
+
install_as_default: @install_as_default,
|
244
|
+
dir_mode: @dir_mode,
|
245
|
+
data_mode: @data_mode,
|
246
|
+
prog_mode: @prog_mode,
|
248
247
|
}
|
249
248
|
options[:install_dir] = @install_dir if @only_install_dir
|
250
249
|
|
data/lib/rubygems/deprecate.rb
CHANGED
@@ -70,7 +70,6 @@
|
|
70
70
|
# end
|
71
71
|
|
72
72
|
module Gem::Deprecate
|
73
|
-
|
74
73
|
def self.skip # :nodoc:
|
75
74
|
@skip ||= false
|
76
75
|
end
|
@@ -105,12 +104,13 @@ module Gem::Deprecate
|
|
105
104
|
old = "_deprecated_#{name}"
|
106
105
|
alias_method old, name
|
107
106
|
define_method name do |*args, &block|
|
108
|
-
klass =
|
107
|
+
klass = is_a? Module
|
109
108
|
target = klass ? "#{self}." : "#{self.class}#"
|
110
|
-
msg = [
|
111
|
-
|
112
|
-
|
113
|
-
|
109
|
+
msg = [
|
110
|
+
"NOTE: #{target}#{name} is deprecated",
|
111
|
+
repl == :none ? " with no replacement" : "; use #{repl} instead",
|
112
|
+
format(". It will be removed on or after %4d-%02d.", year, month),
|
113
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
114
114
|
]
|
115
115
|
warn "#{msg.join}." unless Gem::Deprecate.skip
|
116
116
|
send old, *args, &block
|
@@ -130,12 +130,13 @@ module Gem::Deprecate
|
|
130
130
|
old = "_deprecated_#{name}"
|
131
131
|
alias_method old, name
|
132
132
|
define_method name do |*args, &block|
|
133
|
-
klass =
|
133
|
+
klass = is_a? Module
|
134
134
|
target = klass ? "#{self}." : "#{self.class}#"
|
135
|
-
msg = [
|
136
|
-
|
137
|
-
|
138
|
-
|
135
|
+
msg = [
|
136
|
+
"NOTE: #{target}#{name} is deprecated",
|
137
|
+
replacement == :none ? " with no replacement" : "; use #{replacement} instead",
|
138
|
+
". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}",
|
139
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
139
140
|
]
|
140
141
|
warn "#{msg.join}." unless Gem::Deprecate.skip
|
141
142
|
send old, *args, &block
|
@@ -152,15 +153,15 @@ module Gem::Deprecate
|
|
152
153
|
end
|
153
154
|
|
154
155
|
define_method "deprecation_warning" do
|
155
|
-
msg = [
|
156
|
-
|
156
|
+
msg = [
|
157
|
+
"#{command} command is deprecated",
|
158
|
+
". It will be removed in Rubygems #{version}.\n",
|
157
159
|
]
|
158
160
|
|
159
|
-
alert_warning
|
161
|
+
alert_warning msg.join.to_s unless Gem::Deprecate.skip
|
160
162
|
end
|
161
163
|
end
|
162
164
|
end
|
163
165
|
|
164
166
|
module_function :rubygems_deprecate, :rubygems_deprecate_command, :skip_during
|
165
|
-
|
166
167
|
end
|
data/lib/rubygems/doctor.rb
CHANGED
@@ -53,7 +53,7 @@ class Gem::Doctor
|
|
53
53
|
# Specs installed in this gem repository
|
54
54
|
|
55
55
|
def installed_specs # :nodoc:
|
56
|
-
@installed_specs ||= Gem::Specification.map
|
56
|
+
@installed_specs ||= Gem::Specification.map(&:full_name)
|
57
57
|
end
|
58
58
|
|
59
59
|
##
|
@@ -75,7 +75,7 @@ class Gem::Doctor
|
|
75
75
|
Gem.use_paths @gem_repository.to_s
|
76
76
|
|
77
77
|
unless gem_repository?
|
78
|
-
say "This directory does not appear to be a RubyGems repository, "
|
78
|
+
say "This directory does not appear to be a RubyGems repository, " \
|
79
79
|
"skipping"
|
80
80
|
say
|
81
81
|
return
|
@@ -104,7 +104,7 @@ class Gem::Doctor
|
|
104
104
|
directory = File.join(@gem_repository, sub_directory)
|
105
105
|
|
106
106
|
Dir.entries(directory).sort.each do |ent|
|
107
|
-
next if
|
107
|
+
next if [".", ".."].include?(ent)
|
108
108
|
|
109
109
|
child = File.join(directory, ent)
|
110
110
|
next unless File.exist?(child)
|
@@ -112,8 +112,8 @@ class Gem::Doctor
|
|
112
112
|
basename = File.basename(child, extension)
|
113
113
|
next if installed_specs.include? basename
|
114
114
|
next if /^rubygems-\d/.match?(basename)
|
115
|
-
next if "specifications"
|
116
|
-
next if "plugins"
|
115
|
+
next if sub_directory == "specifications" && basename == "default"
|
116
|
+
next if sub_directory == "plugins" && Gem.plugin_suffix_regexp =~ (basename)
|
117
117
|
|
118
118
|
type = File.directory?(child) ? "directory" : "file"
|
119
119
|
|
data/lib/rubygems/errors.rb
CHANGED
@@ -134,11 +134,7 @@ module Gem
|
|
134
134
|
##
|
135
135
|
# A wordy description of the error.
|
136
136
|
def wordy
|
137
|
-
"Found %s (%s), but was for platform%s %s"
|
138
|
-
[@name,
|
139
|
-
@version,
|
140
|
-
@platforms.size == 1 ? "" : "s",
|
141
|
-
@platforms.join(" ,")]
|
137
|
+
format("Found %s (%s), but was for platform%s %s", @name, @version, @platforms.size == 1 ? "" : "s", @platforms.join(" ,"))
|
142
138
|
end
|
143
139
|
end
|
144
140
|
|
@@ -175,6 +171,6 @@ module Gem
|
|
175
171
|
##
|
176
172
|
# The "exception" alias allows you to call raise on a SourceFetchProblem.
|
177
173
|
|
178
|
-
|
174
|
+
alias_method :exception, :error
|
179
175
|
end
|
180
176
|
end
|
data/lib/rubygems/exceptions.rb
CHANGED
@@ -172,6 +172,7 @@ class Gem::ImpossibleDependenciesError < Gem::Exception
|
|
172
172
|
end
|
173
173
|
|
174
174
|
class Gem::InstallError < Gem::Exception; end
|
175
|
+
|
175
176
|
class Gem::RuntimeRequirementNotMetError < Gem::InstallError
|
176
177
|
attr_accessor :suggestion
|
177
178
|
def message
|
@@ -231,7 +232,7 @@ class Gem::SystemExitException < SystemExit
|
|
231
232
|
##
|
232
233
|
# The exit code for the process
|
233
234
|
|
234
|
-
|
235
|
+
alias_method :exit_code, :status
|
235
236
|
|
236
237
|
##
|
237
238
|
# Creates a new SystemExitException with the given +exit_code+
|
data/lib/rubygems/ext/builder.rb
CHANGED
@@ -27,19 +27,17 @@ class Gem::Ext::Builder
|
|
27
27
|
# try to find make program from Ruby configure arguments first
|
28
28
|
RbConfig::CONFIG["configure_args"] =~ /with-make-prog\=(\w+)/
|
29
29
|
make_program_name = ENV["MAKE"] || ENV["make"] || $1
|
30
|
-
|
31
|
-
make_program_name = (RUBY_PLATFORM.include?("mswin")) ? "nmake" : "make"
|
32
|
-
end
|
30
|
+
make_program_name ||= RUBY_PLATFORM.include?("mswin") ? "nmake" : "make"
|
33
31
|
make_program = Shellwords.split(make_program_name)
|
34
32
|
|
35
33
|
# The installation of the bundled gems is failed when DESTDIR is empty in mswin platform.
|
36
|
-
destdir =
|
34
|
+
destdir = /\bnmake/i !~ make_program_name || ENV["DESTDIR"] && ENV["DESTDIR"] != "" ? format("DESTDIR=%s", ENV["DESTDIR"]) : ""
|
37
35
|
|
38
36
|
env = [destdir]
|
39
37
|
|
40
38
|
if sitedir
|
41
|
-
env << "sitearchdir=%s"
|
42
|
-
env << "sitelibdir=%s"
|
39
|
+
env << format("sitearchdir=%s", sitedir)
|
40
|
+
env << format("sitelibdir=%s", sitedir)
|
43
41
|
end
|
44
42
|
|
45
43
|
targets.each do |target|
|
@@ -90,13 +88,20 @@ class Gem::Ext::Builder
|
|
90
88
|
# Set $SOURCE_DATE_EPOCH for the subprocess.
|
91
89
|
build_env = { "SOURCE_DATE_EPOCH" => Gem.source_date_epoch_string }.merge(env)
|
92
90
|
output, status = begin
|
93
|
-
Open3.
|
91
|
+
Open3.popen2e(build_env, *command, chdir: dir) do |_stdin, stdouterr, wait_thread|
|
92
|
+
output = String.new
|
93
|
+
while line = stdouterr.gets
|
94
|
+
output << line
|
95
|
+
if verbose
|
96
|
+
print line
|
97
|
+
end
|
98
|
+
end
|
99
|
+
[output, wait_thread.value]
|
100
|
+
end
|
94
101
|
rescue StandardError => error
|
95
102
|
raise Gem::InstallError, "#{command_name || class_name} failed#{error.message}"
|
96
103
|
end
|
97
|
-
|
98
|
-
puts output
|
99
|
-
else
|
104
|
+
unless verbose
|
100
105
|
results << output
|
101
106
|
end
|
102
107
|
ensure
|
@@ -198,7 +198,7 @@ class Gem::Ext::CargoBuilder < Gem::Ext::Builder
|
|
198
198
|
|
199
199
|
output, status =
|
200
200
|
begin
|
201
|
-
Open3.capture2e(cargo, "metadata", "--no-deps", "--format-version", "1", :
|
201
|
+
Open3.capture2e(cargo, "metadata", "--no-deps", "--format-version", "1", chdir: cargo_dir)
|
202
202
|
rescue StandardError => error
|
203
203
|
raise Gem::InstallError, "cargo metadata failed #{error.message}"
|
204
204
|
end
|
@@ -246,10 +246,10 @@ EOF
|
|
246
246
|
end
|
247
247
|
|
248
248
|
def rustc_dynamic_linker_flags(dest_dir, crate_name)
|
249
|
-
split_flags("DLDFLAGS")
|
250
|
-
|
251
|
-
.
|
252
|
-
|
249
|
+
split_flags("DLDFLAGS").
|
250
|
+
map {|arg| maybe_resolve_ldflag_variable(arg, dest_dir, crate_name) }.
|
251
|
+
compact.
|
252
|
+
flat_map {|arg| ldflag_to_link_modifier(arg) }
|
253
253
|
end
|
254
254
|
|
255
255
|
def rustc_lib_flags(dest_dir)
|
@@ -48,7 +48,7 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
|
|
48
48
|
FileUtils.mkdir_p lib_dir
|
49
49
|
entries = Dir.entries(full_tmp_dest) - %w[. ..]
|
50
50
|
entries = entries.map {|entry| File.join full_tmp_dest, entry }
|
51
|
-
FileUtils.cp_r entries, lib_dir, :
|
51
|
+
FileUtils.cp_r entries, lib_dir, remove_destination: true
|
52
52
|
end
|
53
53
|
|
54
54
|
FileUtils::Entry_.new(full_tmp_dest).traverse do |ent|
|
@@ -66,8 +66,6 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder
|
|
66
66
|
FileUtils.rm_rf tmp_dest if tmp_dest
|
67
67
|
end
|
68
68
|
|
69
|
-
private
|
70
|
-
|
71
69
|
def self.get_relative_path(path, base)
|
72
70
|
path[0..base.length - 1] = "." if path.start_with?(base)
|
73
71
|
path
|
data/lib/rubygems/gem_runner.rb
CHANGED
@@ -45,10 +45,10 @@ class Gem::GemRunner
|
|
45
45
|
cmd.command_names.each do |command_name|
|
46
46
|
config_args = Gem.configuration[command_name]
|
47
47
|
config_args = case config_args
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
48
|
+
when String
|
49
|
+
config_args.split " "
|
50
|
+
else
|
51
|
+
Array(config_args)
|
52
52
|
end
|
53
53
|
Gem::Command.add_specific_extra_args command_name, config_args
|
54
54
|
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
##
|
4
4
|
# The WebauthnListener Response class is used by the WebauthnListener to create
|
5
|
-
# responses to be sent to the Gem host. It creates a Net::HTTPResponse instance
|
5
|
+
# responses to be sent to the Gem host. It creates a Gem::Net::HTTPResponse instance
|
6
6
|
# when initialized and can be converted to the appropriate format to be sent by a socket using `to_s`.
|
7
|
-
# Net::HTTPResponse instances cannot be directly sent over a socket.
|
7
|
+
# Gem::Net::HTTPResponse instances cannot be directly sent over a socket.
|
8
8
|
#
|
9
9
|
# Types of response classes:
|
10
10
|
# - OkResponse
|
@@ -60,7 +60,7 @@ module Gem::GemcutterUtilities
|
|
60
60
|
def body; end
|
61
61
|
|
62
62
|
def build_http_response
|
63
|
-
response_class = Net::HTTPResponse::CODE_TO_OBJ[code.to_s]
|
63
|
+
response_class = Gem::Net::HTTPResponse::CODE_TO_OBJ[code.to_s]
|
64
64
|
@http_response = response_class.new("1.1", code, reason_phrase)
|
65
65
|
@http_response.instance_variable_set(:@read, true)
|
66
66
|
|