rubygems-update 3.0.8 → 3.1.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +31 -8
- data/.travis.yml +9 -27
- data/CONTRIBUTING.md +13 -0
- data/History.txt +24 -21
- data/MAINTAINERS.txt +1 -6
- data/Manifest.txt +62 -13
- data/Rakefile +39 -23
- data/bin/gem +0 -6
- data/bundler/CHANGELOG.md +746 -570
- data/bundler/CODE_OF_CONDUCT.md +117 -23
- data/bundler/LICENSE.md +18 -19
- data/bundler/README.md +9 -8
- data/bundler/bundler.gemspec +8 -25
- data/bundler/exe/bundle +19 -3
- data/bundler/lib/bundler.rb +120 -67
- data/bundler/lib/bundler/build_metadata.rb +1 -3
- data/bundler/lib/bundler/capistrano.rb +4 -4
- data/bundler/lib/bundler/cli.rb +129 -121
- data/bundler/lib/bundler/cli/add.rb +27 -16
- data/bundler/lib/bundler/cli/common.rb +11 -12
- data/bundler/lib/bundler/cli/config.rb +161 -86
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +4 -4
- data/bundler/lib/bundler/cli/exec.rb +4 -9
- data/bundler/lib/bundler/cli/gem.rb +5 -5
- data/bundler/lib/bundler/cli/info.rb +17 -5
- data/bundler/lib/bundler/cli/init.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +11 -10
- data/bundler/lib/bundler/cli/issue.rb +3 -3
- data/bundler/lib/bundler/cli/open.rb +10 -6
- data/bundler/lib/bundler/cli/outdated.rb +85 -81
- data/bundler/lib/bundler/cli/package.rb +8 -9
- data/bundler/lib/bundler/cli/plugin.rb +9 -2
- data/bundler/lib/bundler/cli/pristine.rb +1 -1
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +31 -11
- data/bundler/lib/bundler/compact_index_client.rb +25 -9
- data/bundler/lib/bundler/compact_index_client/updater.rb +2 -6
- data/bundler/lib/bundler/current_ruby.rb +9 -7
- data/bundler/lib/bundler/definition.rb +35 -26
- data/bundler/lib/bundler/dependency.rb +16 -4
- data/bundler/lib/bundler/deployment.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +15 -39
- data/bundler/lib/bundler/env.rb +8 -13
- data/bundler/lib/bundler/environment_preserver.rb +0 -1
- data/bundler/lib/bundler/feature_flag.rb +23 -34
- data/bundler/lib/bundler/fetcher.rb +14 -11
- data/bundler/lib/bundler/fetcher/compact_index.rb +26 -12
- data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +4 -1
- data/bundler/lib/bundler/fetcher/index.rb +4 -2
- data/bundler/lib/bundler/friendly_errors.rb +4 -5
- data/bundler/lib/bundler/gem_helper.rb +39 -24
- data/bundler/lib/bundler/gem_helpers.rb +2 -4
- data/bundler/lib/bundler/gem_tasks.rb +1 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +3 -3
- data/bundler/lib/bundler/graph.rb +2 -2
- data/bundler/lib/bundler/injector.rb +10 -8
- data/bundler/lib/bundler/inline.rb +19 -18
- data/bundler/lib/bundler/installer.rb +7 -14
- data/bundler/lib/bundler/installer/gem_installer.rb +5 -1
- data/bundler/lib/bundler/installer/parallel_installer.rb +4 -8
- data/bundler/lib/bundler/installer/standalone.rb +1 -2
- data/bundler/lib/bundler/lazy_specification.rb +2 -2
- data/bundler/lib/bundler/lockfile_parser.rb +13 -21
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/plugin.rb +42 -29
- data/bundler/lib/bundler/plugin/api.rb +1 -1
- data/bundler/lib/bundler/plugin/api/source.rb +2 -2
- data/bundler/lib/bundler/plugin/index.rb +14 -3
- data/bundler/lib/bundler/plugin/installer.rb +28 -15
- data/bundler/lib/bundler/psyched_yaml.rb +1 -1
- data/bundler/lib/bundler/resolver.rb +72 -24
- data/bundler/lib/bundler/resolver/spec_group.rb +3 -2
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_version.rb +4 -19
- data/bundler/lib/bundler/rubygems_ext.rb +10 -66
- data/bundler/lib/bundler/rubygems_gem_installer.rb +1 -8
- data/bundler/lib/bundler/rubygems_integration.rb +144 -395
- data/bundler/lib/bundler/runtime.rb +2 -9
- data/bundler/lib/bundler/settings.rb +15 -47
- data/bundler/lib/bundler/setup.rb +6 -5
- data/bundler/lib/bundler/shared_helpers.rb +58 -71
- data/bundler/lib/bundler/similarity_detector.rb +2 -2
- data/bundler/lib/bundler/source.rb +5 -5
- data/bundler/lib/bundler/source/git.rb +19 -12
- data/bundler/lib/bundler/source/git/git_proxy.rb +35 -39
- data/bundler/lib/bundler/source/metadata.rb +7 -2
- data/bundler/lib/bundler/source/path.rb +13 -8
- data/bundler/lib/bundler/source/rubygems.rb +11 -5
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -2
- data/bundler/lib/bundler/source_list.rb +9 -12
- data/bundler/lib/bundler/spec_set.rb +23 -12
- data/bundler/lib/bundler/stub_specification.rb +18 -30
- data/bundler/lib/bundler/templates/Executable.bundler +23 -14
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +3 -3
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +8 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +4 -3
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +6 -27
- data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -1
- data/bundler/lib/bundler/ui.rb +3 -3
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
- data/bundler/lib/bundler/ui/shell.rb +4 -8
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +151 -48
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils/version.rb +5 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +6 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +30 -8
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +248 -279
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +7 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +21 -11
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +11 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +16 -17
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +82 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +7 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +6 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +52 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendored_fileutils.rb +1 -6
- data/bundler/lib/bundler/vendored_molinillo.rb +1 -1
- data/bundler/lib/bundler/vendored_persistent.rb +7 -5
- data/bundler/lib/bundler/vendored_thor.rb +2 -2
- data/bundler/lib/bundler/version.rb +1 -20
- data/bundler/lib/bundler/version_ranges.rb +51 -5
- data/bundler/lib/bundler/vlad.rb +2 -2
- data/bundler/lib/bundler/worker.rb +1 -3
- data/bundler/lib/bundler/yaml_serializer.rb +2 -3
- data/bundler/man/bundle-add.1 +66 -0
- data/bundler/man/bundle-add.1.txt +58 -0
- data/bundler/man/bundle-add.ronn +7 -1
- data/bundler/man/bundle-binstubs.1 +40 -0
- data/bundler/man/bundle-binstubs.1.txt +48 -0
- data/bundler/man/bundle-binstubs.ronn +1 -1
- data/bundler/man/bundle-check.1 +31 -0
- data/bundler/man/bundle-check.1.txt +33 -0
- data/bundler/man/bundle-clean.1 +24 -0
- data/bundler/man/bundle-clean.1.txt +26 -0
- data/bundler/man/bundle-config.1 +497 -0
- data/bundler/man/bundle-config.1.txt +528 -0
- data/bundler/man/bundle-config.ronn +42 -40
- data/bundler/man/bundle-doctor.1 +44 -0
- data/bundler/man/bundle-doctor.1.txt +44 -0
- data/bundler/man/bundle-exec.1 +165 -0
- data/bundler/man/bundle-exec.1.txt +178 -0
- data/bundler/man/bundle-exec.ronn +1 -1
- data/bundler/man/bundle-gem.1 +80 -0
- data/bundler/man/bundle-gem.1.txt +91 -0
- data/bundler/man/bundle-info.1 +20 -0
- data/bundler/man/bundle-info.1.txt +21 -0
- data/bundler/man/bundle-init.1 +25 -0
- data/bundler/man/bundle-init.1.txt +34 -0
- data/bundler/man/bundle-init.ronn +1 -1
- data/bundler/man/bundle-inject.1 +33 -0
- data/bundler/man/bundle-inject.1.txt +32 -0
- data/bundler/man/bundle-install.1 +311 -0
- data/bundler/man/bundle-install.1.txt +401 -0
- data/bundler/man/bundle-install.ronn +9 -4
- data/bundler/man/bundle-list.1 +50 -0
- data/bundler/man/bundle-list.1.txt +43 -0
- data/bundler/man/bundle-lock.1 +84 -0
- data/bundler/man/bundle-lock.1.txt +93 -0
- data/bundler/man/bundle-open.1 +32 -0
- data/bundler/man/bundle-open.1.txt +29 -0
- data/bundler/man/bundle-outdated.1 +155 -0
- data/bundler/man/bundle-outdated.1.txt +131 -0
- data/bundler/man/bundle-package.1 +55 -0
- data/bundler/man/bundle-package.1.txt +79 -0
- data/bundler/man/bundle-platform.1 +61 -0
- data/bundler/man/bundle-platform.1.txt +57 -0
- data/bundler/man/bundle-pristine.1 +34 -0
- data/bundler/man/bundle-pristine.1.txt +44 -0
- data/bundler/man/bundle-remove.1 +31 -0
- data/bundler/man/bundle-remove.1.txt +34 -0
- data/bundler/man/bundle-show.1 +23 -0
- data/bundler/man/bundle-show.1.txt +27 -0
- data/bundler/man/bundle-update.1 +394 -0
- data/bundler/man/bundle-update.1.txt +390 -0
- data/bundler/man/bundle-update.ronn +3 -3
- data/bundler/man/bundle-viz.1 +39 -0
- data/bundler/man/bundle-viz.1.txt +39 -0
- data/bundler/man/bundle.1 +136 -0
- data/bundler/man/bundle.1.txt +116 -0
- data/bundler/man/bundle.ronn +2 -2
- data/bundler/man/gemfile.5 +686 -0
- data/bundler/man/gemfile.5.ronn +14 -18
- data/bundler/man/gemfile.5.txt +649 -0
- data/bundler/man/index.txt +25 -0
- data/lib/rubygems.rb +80 -48
- data/lib/rubygems/available_set.rb +1 -0
- data/lib/rubygems/basic_specification.rb +17 -6
- data/lib/rubygems/bundler_version_finder.rb +5 -0
- data/lib/rubygems/command.rb +34 -5
- data/lib/rubygems/command_manager.rb +0 -6
- data/lib/rubygems/commands/build_command.rb +21 -8
- data/lib/rubygems/commands/cert_command.rb +0 -1
- data/lib/rubygems/commands/cleanup_command.rb +7 -7
- data/lib/rubygems/commands/contents_command.rb +3 -3
- data/lib/rubygems/commands/dependency_command.rb +4 -3
- data/lib/rubygems/commands/environment_command.rb +0 -3
- data/lib/rubygems/commands/info_command.rb +2 -0
- data/lib/rubygems/commands/install_command.rb +12 -52
- data/lib/rubygems/commands/lock_command.rb +2 -2
- data/lib/rubygems/commands/mirror_command.rb +1 -0
- data/lib/rubygems/commands/open_command.rb +2 -1
- data/lib/rubygems/commands/outdated_command.rb +1 -0
- data/lib/rubygems/commands/owner_command.rb +2 -7
- data/lib/rubygems/commands/pristine_command.rb +3 -0
- data/lib/rubygems/commands/push_command.rb +4 -6
- data/lib/rubygems/commands/query_command.rb +94 -80
- data/lib/rubygems/commands/rdoc_command.rb +1 -0
- data/lib/rubygems/commands/setup_command.rb +10 -8
- data/lib/rubygems/commands/signin_command.rb +1 -0
- data/lib/rubygems/commands/specification_command.rb +1 -0
- data/lib/rubygems/commands/stale_command.rb +2 -0
- data/lib/rubygems/commands/uninstall_command.rb +1 -0
- data/lib/rubygems/commands/unpack_command.rb +2 -29
- data/lib/rubygems/commands/update_command.rb +14 -14
- data/lib/rubygems/commands/which_command.rb +1 -0
- data/lib/rubygems/commands/yank_command.rb +8 -2
- data/lib/rubygems/compatibility.rb +4 -4
- data/lib/rubygems/config_file.rb +28 -23
- data/lib/rubygems/core_ext/kernel_gem.rb +2 -5
- data/lib/rubygems/core_ext/kernel_require.rb +29 -2
- data/lib/rubygems/core_ext/kernel_warn.rb +10 -4
- data/lib/rubygems/defaults.rb +10 -17
- data/lib/rubygems/dependency.rb +21 -6
- data/lib/rubygems/dependency_installer.rb +19 -102
- data/lib/rubygems/dependency_list.rb +11 -10
- data/lib/rubygems/deprecate.rb +5 -5
- data/lib/rubygems/errors.rb +11 -2
- data/lib/rubygems/exceptions.rb +9 -0
- data/lib/rubygems/ext/builder.rb +24 -43
- data/lib/rubygems/ext/cmake_builder.rb +2 -0
- data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
- data/lib/rubygems/ext/rake_builder.rb +1 -1
- data/lib/rubygems/gemcutter_utilities.rb +19 -26
- data/lib/rubygems/indexer.rb +9 -5
- data/lib/rubygems/installer.rb +26 -13
- data/lib/rubygems/installer_test_case.rb +86 -38
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +4 -1
- data/lib/rubygems/name_tuple.rb +1 -0
- data/lib/rubygems/package.rb +37 -9
- data/lib/rubygems/package/tar_writer.rb +4 -4
- data/lib/rubygems/path_support.rb +2 -0
- data/lib/rubygems/platform.rb +2 -1
- data/lib/rubygems/psych_tree.rb +2 -0
- data/lib/rubygems/remote_fetcher.rb +5 -1
- data/lib/rubygems/request.rb +5 -3
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -0
- data/lib/rubygems/request/https_pool.rb +2 -0
- data/lib/rubygems/request_set.rb +2 -2
- data/lib/rubygems/request_set/gem_dependency_api.rb +2 -2
- data/lib/rubygems/request_set/lockfile.rb +5 -2
- data/lib/rubygems/request_set/lockfile/parser.rb +4 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +2 -0
- data/lib/rubygems/requirement.rb +20 -18
- data/lib/rubygems/resolver.rb +4 -5
- data/lib/rubygems/resolver/activation_request.rb +19 -49
- data/lib/rubygems/resolver/best_set.rb +2 -2
- data/lib/rubygems/resolver/conflict.rb +0 -5
- data/lib/rubygems/resolver/installer_set.rb +3 -3
- data/lib/rubygems/resolver/lock_set.rb +1 -1
- data/lib/rubygems/resolver/lock_specification.rb +2 -2
- data/lib/rubygems/resolver/requirement_list.rb +1 -0
- data/lib/rubygems/resolver/specification.rb +1 -0
- data/lib/rubygems/resolver/stats.rb +2 -0
- data/lib/rubygems/security/signer.rb +3 -2
- data/lib/rubygems/server.rb +5 -4
- data/lib/rubygems/source_list.rb +1 -0
- data/lib/rubygems/spec_fetcher.rb +3 -16
- data/lib/rubygems/specification.rb +69 -133
- data/lib/rubygems/specification_policy.rb +7 -2
- data/lib/rubygems/stub_specification.rb +5 -2
- data/lib/rubygems/syck_hack.rb +2 -0
- data/lib/rubygems/test_case.rb +78 -227
- data/lib/rubygems/test_utilities.rb +17 -6
- data/lib/rubygems/text.rb +2 -3
- data/lib/rubygems/uninstaller.rb +15 -15
- data/lib/rubygems/user_interaction.rb +9 -1
- data/lib/rubygems/util.rb +5 -41
- data/lib/rubygems/util/licenses.rb +398 -396
- data/lib/rubygems/util/list.rb +2 -0
- data/lib/rubygems/validator.rb +9 -29
- data/lib/rubygems/version.rb +5 -3
- data/rubygems-update.gemspec +3 -3
- data/test/rubygems/plugin/load/rubygems_plugin.rb +2 -0
- data/test/rubygems/test_deprecate.rb +3 -0
- data/test/rubygems/test_gem.rb +183 -176
- data/test/rubygems/test_gem_available_set.rb +3 -2
- data/test/rubygems/test_gem_bundler_version_finder.rb +3 -1
- data/test/rubygems/test_gem_command.rb +94 -5
- data/test/rubygems/test_gem_command_manager.rb +5 -13
- data/test/rubygems/test_gem_commands_build_command.rb +142 -4
- data/test/rubygems/test_gem_commands_cert_command.rb +15 -1
- data/test/rubygems/test_gem_commands_cleanup_command.rb +22 -6
- data/test/rubygems/test_gem_commands_dependency_command.rb +1 -1
- data/test/rubygems/test_gem_commands_environment_command.rb +1 -11
- data/test/rubygems/test_gem_commands_help_command.rb +2 -0
- data/test/rubygems/test_gem_commands_info_command.rb +1 -0
- data/test/rubygems/test_gem_commands_install_command.rb +207 -2
- data/test/rubygems/test_gem_commands_mirror.rb +1 -0
- data/test/rubygems/test_gem_commands_outdated_command.rb +1 -0
- data/test/rubygems/test_gem_commands_owner_command.rb +4 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +56 -4
- data/test/rubygems/test_gem_commands_push_command.rb +19 -14
- data/test/rubygems/test_gem_commands_query_command.rb +27 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +62 -37
- data/test/rubygems/test_gem_commands_signin_command.rb +5 -4
- data/test/rubygems/test_gem_commands_sources_command.rb +20 -6
- data/test/rubygems/test_gem_commands_uninstall_command.rb +107 -50
- data/test/rubygems/test_gem_commands_update_command.rb +86 -23
- data/test/rubygems/test_gem_commands_yank_command.rb +46 -1
- data/test/rubygems/test_gem_config_file.rb +9 -2
- data/test/rubygems/test_gem_dependency.rb +6 -0
- data/test/rubygems/test_gem_dependency_installer.rb +67 -36
- data/test/rubygems/test_gem_dependency_list.rb +21 -14
- data/test/rubygems/test_gem_ext_builder.rb +5 -1
- data/test/rubygems/test_gem_ext_cmake_builder.rb +2 -0
- data/test/rubygems/test_gem_ext_configure_builder.rb +8 -0
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +12 -0
- data/test/rubygems/test_gem_ext_rake_builder.rb +2 -0
- data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -8
- data/test/rubygems/test_gem_indexer.rb +31 -40
- data/test/rubygems/test_gem_install_update_options.rb +31 -17
- data/test/rubygems/test_gem_installer.rb +383 -223
- data/test/rubygems/test_gem_package.rb +99 -14
- data/test/rubygems/test_gem_package_old.rb +57 -54
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +6 -5
- data/test/rubygems/test_gem_package_tar_writer.rb +11 -6
- data/test/rubygems/test_gem_path_support.rb +19 -13
- data/test/rubygems/test_gem_platform.rb +4 -2
- data/test/rubygems/test_gem_rdoc.rb +1 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +29 -16
- data/test/rubygems/test_gem_request.rb +19 -4
- data/test/rubygems/test_gem_request_connection_pools.rb +6 -2
- data/test/rubygems/test_gem_request_set.rb +33 -8
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +1 -1
- data/test/rubygems/test_gem_request_set_lockfile.rb +1 -0
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +2 -1
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +2 -0
- data/test/rubygems/test_gem_requirement.rb +7 -1
- data/test/rubygems/test_gem_resolver.rb +67 -23
- data/test/rubygems/test_gem_resolver_activation_request.rb +3 -32
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -4
- data/test/rubygems/test_gem_resolver_git_specification.rb +1 -0
- data/test/rubygems/test_gem_resolver_index_specification.rb +7 -2
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installer_set.rb +3 -1
- data/test/rubygems/test_gem_resolver_specification.rb +2 -0
- data/test/rubygems/test_gem_security.rb +6 -2
- data/test/rubygems/test_gem_security_signer.rb +1 -0
- data/test/rubygems/test_gem_server.rb +7 -2
- data/test/rubygems/test_gem_silent_ui.rb +1 -0
- data/test/rubygems/test_gem_source.rb +7 -7
- data/test/rubygems/test_gem_source_fetch_problem.rb +1 -0
- data/test/rubygems/test_gem_source_git.rb +4 -9
- data/test/rubygems/test_gem_source_installed.rb +6 -6
- data/test/rubygems/test_gem_source_list.rb +1 -0
- data/test/rubygems/test_gem_source_local.rb +5 -4
- data/test/rubygems/test_gem_source_lock.rb +12 -12
- data/test/rubygems/test_gem_source_specific_file.rb +7 -6
- data/test/rubygems/test_gem_source_vendor.rb +4 -4
- data/test/rubygems/test_gem_specification.rb +75 -43
- data/test/rubygems/test_gem_stream_ui.rb +2 -0
- data/test/rubygems/test_gem_stub_specification.rb +3 -1
- data/test/rubygems/test_gem_text.rb +1 -0
- data/test/rubygems/test_gem_uninstaller.rb +31 -10
- data/test/rubygems/test_gem_util.rb +6 -4
- data/test/rubygems/test_gem_validator.rb +3 -4
- data/test/rubygems/test_gem_version.rb +16 -8
- data/test/rubygems/test_kernel.rb +1 -0
- data/test/rubygems/test_rake_package.rb +26 -0
- data/test/rubygems/test_remote_fetch_error.rb +1 -0
- data/test/rubygems/test_require.rb +107 -3
- data/util/bisect +31 -0
- data/util/ci.sh +50 -0
- data/util/generate_spdx_license_list.rb +4 -2
- data/util/rubocop +2 -2
- metadata +90 -18
- data/appveyor.yml +0 -43
- data/bundler/CONTRIBUTING.md +0 -17
- data/bundler/exe/bundle_ruby +0 -60
- data/bundler/lib/bundler/cli/cache.rb +0 -36
- data/bundler/lib/bundler/compatibility_guard.rb +0 -14
- data/bundler/lib/bundler/ssl_certs/.document +0 -1
- data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
- data/bundler/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
- data/bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
- data/util/ci +0 -82
@@ -13,6 +13,13 @@ require 'rubygems/remote_fetcher'
|
|
13
13
|
# @fetcher.data['http://gems.example.com/yaml'] = source_index.to_yaml
|
14
14
|
# Gem::RemoteFetcher.fetcher = @fetcher
|
15
15
|
#
|
16
|
+
# use nested array if multiple response is needed
|
17
|
+
#
|
18
|
+
# @fetcher.data['http://gems.example.com/sequence'] = [['Success', 200, 'OK'], ['Failed', 401, 'Unauthorized']]
|
19
|
+
#
|
20
|
+
# @fetcher.fetch_path('http://gems.example.com/sequence') # => ['Success', 200, 'OK']
|
21
|
+
# @fetcher.fetch_path('http://gems.example.com/sequence') # => ['Failed', 401, 'Unauthorized']
|
22
|
+
#
|
16
23
|
# # invoke RubyGems code
|
17
24
|
#
|
18
25
|
# paths = @fetcher.paths
|
@@ -32,7 +39,7 @@ class Gem::FakeFetcher
|
|
32
39
|
@paths = []
|
33
40
|
end
|
34
41
|
|
35
|
-
def find_data(path)
|
42
|
+
def find_data(path, nargs = 3)
|
36
43
|
return File.read path.path if URI === path and 'file' == path.scheme
|
37
44
|
|
38
45
|
if URI === path and "URI::#{path.scheme.upcase}" != path.class.name
|
@@ -48,7 +55,10 @@ class Gem::FakeFetcher
|
|
48
55
|
raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
|
49
56
|
end
|
50
57
|
|
51
|
-
@data[path]
|
58
|
+
data = @data[path]
|
59
|
+
|
60
|
+
data.flatten! and return data.shift(nargs) if data.respond_to?(:flatten!)
|
61
|
+
data
|
52
62
|
end
|
53
63
|
|
54
64
|
def fetch_path(path, mtime = nil, head = false)
|
@@ -60,7 +70,6 @@ class Gem::FakeFetcher
|
|
60
70
|
if path.to_s =~ /gz$/ and not data.nil? and not data.empty?
|
61
71
|
data = Gem::Util.gunzip data
|
62
72
|
end
|
63
|
-
|
64
73
|
data
|
65
74
|
end
|
66
75
|
end
|
@@ -232,21 +241,22 @@ class Gem::TestCase::SpecFetcherSetup
|
|
232
241
|
|
233
242
|
def execute_operations # :nodoc:
|
234
243
|
@operations.each do |operation, *arguments|
|
244
|
+
block = arguments.pop
|
235
245
|
case operation
|
236
246
|
when :gem then
|
237
|
-
spec, gem = @test.util_gem(*arguments, &
|
247
|
+
spec, gem = @test.util_gem(*arguments, &block)
|
238
248
|
|
239
249
|
write_spec spec
|
240
250
|
|
241
251
|
@gems[spec] = gem
|
242
252
|
@installed << spec
|
243
253
|
when :download then
|
244
|
-
spec, gem = @test.util_gem(*arguments, &
|
254
|
+
spec, gem = @test.util_gem(*arguments, &block)
|
245
255
|
|
246
256
|
@gems[spec] = gem
|
247
257
|
@downloaded << spec
|
248
258
|
when :spec then
|
249
|
-
spec = @test.util_spec(*arguments, &
|
259
|
+
spec = @test.util_spec(*arguments, &block)
|
250
260
|
|
251
261
|
write_spec spec
|
252
262
|
|
@@ -366,4 +376,5 @@ class TempIO < Tempfile
|
|
366
376
|
flush
|
367
377
|
Gem.read_binary path
|
368
378
|
end
|
379
|
+
|
369
380
|
end
|
data/lib/rubygems/text.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'rubygems'
|
3
2
|
|
4
3
|
##
|
5
4
|
# A collection of text-wrangling methods
|
@@ -65,12 +64,12 @@ module Gem::Text
|
|
65
64
|
x = nil
|
66
65
|
|
67
66
|
str1.each_char.each_with_index do |char1,i|
|
68
|
-
e = i+1
|
67
|
+
e = i + 1
|
69
68
|
|
70
69
|
str2.each_char.each_with_index do |char2,j|
|
71
70
|
cost = (char1 == char2) ? 0 : 1
|
72
71
|
x = min3(
|
73
|
-
d[j+1] + 1, # insertion
|
72
|
+
d[j + 1] + 1, # insertion
|
74
73
|
e + 1, # deletion
|
75
74
|
d[j] + cost # substitution
|
76
75
|
)
|
data/lib/rubygems/uninstaller.rb
CHANGED
@@ -57,7 +57,7 @@ class Gem::Uninstaller
|
|
57
57
|
# Indicate if development dependencies should be checked when
|
58
58
|
# uninstalling. (default: false)
|
59
59
|
#
|
60
|
-
@check_dev
|
60
|
+
@check_dev = options[:check_dev]
|
61
61
|
|
62
62
|
if options[:force]
|
63
63
|
@force_all = true
|
@@ -80,7 +80,7 @@ class Gem::Uninstaller
|
|
80
80
|
|
81
81
|
dirs =
|
82
82
|
Gem::Specification.dirs +
|
83
|
-
[Gem
|
83
|
+
[Gem.default_specifications_dir]
|
84
84
|
|
85
85
|
Gem::Specification.each_spec dirs do |spec|
|
86
86
|
next unless dependency.matches_spec? spec
|
@@ -88,10 +88,18 @@ class Gem::Uninstaller
|
|
88
88
|
list << spec
|
89
89
|
end
|
90
90
|
|
91
|
+
if list.empty?
|
92
|
+
raise Gem::InstallError, "gem #{@gem.inspect} is not installed"
|
93
|
+
end
|
94
|
+
|
91
95
|
default_specs, list = list.partition do |spec|
|
92
96
|
spec.default_gem?
|
93
97
|
end
|
94
98
|
|
99
|
+
default_specs.each do |default_spec|
|
100
|
+
say "Gem #{default_spec.full_name} cannot be uninstalled because it is a default gem"
|
101
|
+
end
|
102
|
+
|
95
103
|
list, other_repo_specs = list.partition do |spec|
|
96
104
|
@gem_home == spec.base_dir or
|
97
105
|
(@user_install and spec.base_dir == Gem.user_dir)
|
@@ -100,16 +108,7 @@ class Gem::Uninstaller
|
|
100
108
|
list.sort!
|
101
109
|
|
102
110
|
if list.empty?
|
103
|
-
|
104
|
-
if default_specs.empty?
|
105
|
-
raise Gem::InstallError, "gem #{@gem.inspect} is not installed"
|
106
|
-
else
|
107
|
-
message =
|
108
|
-
"gem #{@gem.inspect} cannot be uninstalled " +
|
109
|
-
"because it is a default gem"
|
110
|
-
raise Gem::InstallError, message
|
111
|
-
end
|
112
|
-
end
|
111
|
+
return unless other_repo_specs.any?
|
113
112
|
|
114
113
|
other_repos = other_repo_specs.map { |spec| spec.base_dir }.uniq
|
115
114
|
|
@@ -134,7 +133,7 @@ class Gem::Uninstaller
|
|
134
133
|
elsif index >= 0 && index < list.size
|
135
134
|
uninstall_gem list[index]
|
136
135
|
else
|
137
|
-
say "Error: must enter a number [1-#{list.size+1}]"
|
136
|
+
say "Error: must enter a number [1-#{list.size + 1}]"
|
138
137
|
end
|
139
138
|
else
|
140
139
|
uninstall_gem list.first
|
@@ -180,9 +179,9 @@ class Gem::Uninstaller
|
|
180
179
|
# Leave any executables created by other installed versions
|
181
180
|
# of this gem installed.
|
182
181
|
|
183
|
-
list = Gem::Specification.find_all
|
182
|
+
list = Gem::Specification.find_all do |s|
|
184
183
|
s.name == spec.name && s.version != spec.version
|
185
|
-
|
184
|
+
end
|
186
185
|
|
187
186
|
list.each do |s|
|
188
187
|
s.executables.each do |exe_name|
|
@@ -354,4 +353,5 @@ class Gem::Uninstaller
|
|
354
353
|
|
355
354
|
raise e
|
356
355
|
end
|
356
|
+
|
357
357
|
end
|
@@ -230,7 +230,7 @@ class Gem::StreamUI
|
|
230
230
|
@outs.puts question
|
231
231
|
|
232
232
|
list.each_with_index do |item, index|
|
233
|
-
@outs.puts " #{index+1}. #{item}"
|
233
|
+
@outs.puts " #{index + 1}. #{item}"
|
234
234
|
end
|
235
235
|
|
236
236
|
@outs.print "> "
|
@@ -421,6 +421,7 @@ class Gem::StreamUI
|
|
421
421
|
|
422
422
|
def done
|
423
423
|
end
|
424
|
+
|
424
425
|
end
|
425
426
|
|
426
427
|
##
|
@@ -509,6 +510,7 @@ class Gem::StreamUI
|
|
509
510
|
def done
|
510
511
|
@out.puts @terminal_message
|
511
512
|
end
|
513
|
+
|
512
514
|
end
|
513
515
|
|
514
516
|
##
|
@@ -552,6 +554,7 @@ class Gem::StreamUI
|
|
552
554
|
|
553
555
|
def done
|
554
556
|
end
|
557
|
+
|
555
558
|
end
|
556
559
|
|
557
560
|
##
|
@@ -601,12 +604,15 @@ class Gem::StreamUI
|
|
601
604
|
end
|
602
605
|
|
603
606
|
private
|
607
|
+
|
604
608
|
def locked_puts(message)
|
605
609
|
MUTEX.synchronize do
|
606
610
|
@out.puts message
|
607
611
|
end
|
608
612
|
end
|
613
|
+
|
609
614
|
end
|
615
|
+
|
610
616
|
end
|
611
617
|
|
612
618
|
##
|
@@ -622,6 +628,7 @@ class Gem::ConsoleUI < Gem::StreamUI
|
|
622
628
|
def initialize
|
623
629
|
super STDIN, STDOUT, STDERR, true
|
624
630
|
end
|
631
|
+
|
625
632
|
end
|
626
633
|
|
627
634
|
##
|
@@ -654,4 +661,5 @@ class Gem::SilentUI < Gem::StreamUI
|
|
654
661
|
def progress_reporter(*args) # :nodoc:
|
655
662
|
SilentProgressReporter.new(@outs, *args)
|
656
663
|
end
|
664
|
+
|
657
665
|
end
|
data/lib/rubygems/util.rb
CHANGED
@@ -28,7 +28,9 @@ module Gem::Util
|
|
28
28
|
zipped = StringIO.new(String.new, 'w')
|
29
29
|
zipped.set_encoding Encoding::BINARY
|
30
30
|
|
31
|
-
Zlib::GzipWriter.wrap zipped do |io|
|
31
|
+
Zlib::GzipWriter.wrap zipped do |io|
|
32
|
+
io.write data
|
33
|
+
end
|
32
34
|
|
33
35
|
zipped.string
|
34
36
|
end
|
@@ -42,29 +44,10 @@ module Gem::Util
|
|
42
44
|
end
|
43
45
|
|
44
46
|
##
|
45
|
-
# This calls IO.popen
|
46
|
-
# and implements an IO.popen-like behavior where it does not accept an array
|
47
|
-
# for a command.
|
47
|
+
# This calls IO.popen and reads the result
|
48
48
|
|
49
49
|
def self.popen(*command)
|
50
50
|
IO.popen command, &:read
|
51
|
-
rescue TypeError # ruby 1.8 only supports string command
|
52
|
-
r, w = IO.pipe
|
53
|
-
|
54
|
-
pid = fork do
|
55
|
-
STDIN.close
|
56
|
-
STDOUT.reopen w
|
57
|
-
|
58
|
-
exec(*command)
|
59
|
-
end
|
60
|
-
|
61
|
-
w.close
|
62
|
-
|
63
|
-
begin
|
64
|
-
return r.read
|
65
|
-
ensure
|
66
|
-
Process.wait pid
|
67
|
-
end
|
68
51
|
end
|
69
52
|
|
70
53
|
##
|
@@ -78,26 +61,7 @@ module Gem::Util
|
|
78
61
|
else
|
79
62
|
cmds = command.dup
|
80
63
|
end
|
81
|
-
|
82
|
-
rescue TypeError
|
83
|
-
@silent_mutex ||= Mutex.new
|
84
|
-
|
85
|
-
@silent_mutex.synchronize do
|
86
|
-
begin
|
87
|
-
stdout = STDOUT.dup
|
88
|
-
stderr = STDERR.dup
|
89
|
-
|
90
|
-
STDOUT.reopen IO::NULL, 'w'
|
91
|
-
STDERR.reopen IO::NULL, 'w'
|
92
|
-
|
93
|
-
return system(*command)
|
94
|
-
ensure
|
95
|
-
STDOUT.reopen stdout
|
96
|
-
STDERR.reopen stderr
|
97
|
-
stdout.close
|
98
|
-
stderr.close
|
99
|
-
end
|
100
|
-
end
|
64
|
+
system(*(cmds << opt))
|
101
65
|
end
|
102
66
|
|
103
67
|
##
|
@@ -2,6 +2,7 @@
|
|
2
2
|
require 'rubygems/text'
|
3
3
|
|
4
4
|
class Gem::Licenses
|
5
|
+
|
5
6
|
extend Gem::Text
|
6
7
|
|
7
8
|
NONSTANDARD = 'Nonstandard'.freeze
|
@@ -9,406 +10,406 @@ class Gem::Licenses
|
|
9
10
|
# Software Package Data Exchange (SPDX) standard open-source software
|
10
11
|
# license identifiers
|
11
12
|
LICENSE_IDENTIFIERS = %w(
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
13
|
+
0BSD
|
14
|
+
AAL
|
15
|
+
ADSL
|
16
|
+
AFL-1.1
|
17
|
+
AFL-1.2
|
18
|
+
AFL-2.0
|
19
|
+
AFL-2.1
|
20
|
+
AFL-3.0
|
21
|
+
AGPL-1.0
|
22
|
+
AGPL-3.0
|
23
|
+
AGPL-3.0-only
|
24
|
+
AGPL-3.0-or-later
|
25
|
+
AMDPLPA
|
26
|
+
AML
|
27
|
+
AMPAS
|
28
|
+
ANTLR-PD
|
29
|
+
APAFML
|
30
|
+
APL-1.0
|
31
|
+
APSL-1.0
|
32
|
+
APSL-1.1
|
33
|
+
APSL-1.2
|
34
|
+
APSL-2.0
|
35
|
+
Abstyles
|
36
|
+
Adobe-2006
|
37
|
+
Adobe-Glyph
|
38
|
+
Afmparse
|
39
|
+
Aladdin
|
40
|
+
Apache-1.0
|
41
|
+
Apache-1.1
|
42
|
+
Apache-2.0
|
43
|
+
Artistic-1.0
|
44
|
+
Artistic-1.0-Perl
|
45
|
+
Artistic-1.0-cl8
|
46
|
+
Artistic-2.0
|
47
|
+
BSD-1-Clause
|
48
|
+
BSD-2-Clause
|
49
|
+
BSD-2-Clause-FreeBSD
|
50
|
+
BSD-2-Clause-NetBSD
|
51
|
+
BSD-2-Clause-Patent
|
52
|
+
BSD-3-Clause
|
53
|
+
BSD-3-Clause-Attribution
|
54
|
+
BSD-3-Clause-Clear
|
55
|
+
BSD-3-Clause-LBNL
|
56
|
+
BSD-3-Clause-No-Nuclear-License
|
57
|
+
BSD-3-Clause-No-Nuclear-License-2014
|
58
|
+
BSD-3-Clause-No-Nuclear-Warranty
|
59
|
+
BSD-4-Clause
|
60
|
+
BSD-4-Clause-UC
|
61
|
+
BSD-Protection
|
62
|
+
BSD-Source-Code
|
63
|
+
BSL-1.0
|
64
|
+
Bahyph
|
65
|
+
Barr
|
66
|
+
Beerware
|
67
|
+
BitTorrent-1.0
|
68
|
+
BitTorrent-1.1
|
69
|
+
Borceux
|
70
|
+
CATOSL-1.1
|
71
|
+
CC-BY-1.0
|
72
|
+
CC-BY-2.0
|
73
|
+
CC-BY-2.5
|
74
|
+
CC-BY-3.0
|
75
|
+
CC-BY-4.0
|
76
|
+
CC-BY-NC-1.0
|
77
|
+
CC-BY-NC-2.0
|
78
|
+
CC-BY-NC-2.5
|
79
|
+
CC-BY-NC-3.0
|
80
|
+
CC-BY-NC-4.0
|
81
|
+
CC-BY-NC-ND-1.0
|
82
|
+
CC-BY-NC-ND-2.0
|
83
|
+
CC-BY-NC-ND-2.5
|
84
|
+
CC-BY-NC-ND-3.0
|
85
|
+
CC-BY-NC-ND-4.0
|
86
|
+
CC-BY-NC-SA-1.0
|
87
|
+
CC-BY-NC-SA-2.0
|
88
|
+
CC-BY-NC-SA-2.5
|
89
|
+
CC-BY-NC-SA-3.0
|
90
|
+
CC-BY-NC-SA-4.0
|
91
|
+
CC-BY-ND-1.0
|
92
|
+
CC-BY-ND-2.0
|
93
|
+
CC-BY-ND-2.5
|
94
|
+
CC-BY-ND-3.0
|
95
|
+
CC-BY-ND-4.0
|
96
|
+
CC-BY-SA-1.0
|
97
|
+
CC-BY-SA-2.0
|
98
|
+
CC-BY-SA-2.5
|
99
|
+
CC-BY-SA-3.0
|
100
|
+
CC-BY-SA-4.0
|
101
|
+
CC0-1.0
|
102
|
+
CDDL-1.0
|
103
|
+
CDDL-1.1
|
104
|
+
CDLA-Permissive-1.0
|
105
|
+
CDLA-Sharing-1.0
|
106
|
+
CECILL-1.0
|
107
|
+
CECILL-1.1
|
108
|
+
CECILL-2.0
|
109
|
+
CECILL-2.1
|
110
|
+
CECILL-B
|
111
|
+
CECILL-C
|
112
|
+
CNRI-Jython
|
113
|
+
CNRI-Python
|
114
|
+
CNRI-Python-GPL-Compatible
|
115
|
+
CPAL-1.0
|
116
|
+
CPL-1.0
|
117
|
+
CPOL-1.02
|
118
|
+
CUA-OPL-1.0
|
119
|
+
Caldera
|
120
|
+
ClArtistic
|
121
|
+
Condor-1.1
|
122
|
+
Crossword
|
123
|
+
CrystalStacker
|
124
|
+
Cube
|
125
|
+
D-FSL-1.0
|
126
|
+
DOC
|
127
|
+
DSDP
|
128
|
+
Dotseqn
|
129
|
+
ECL-1.0
|
130
|
+
ECL-2.0
|
131
|
+
EFL-1.0
|
132
|
+
EFL-2.0
|
133
|
+
EPL-1.0
|
134
|
+
EPL-2.0
|
135
|
+
EUDatagrid
|
136
|
+
EUPL-1.0
|
137
|
+
EUPL-1.1
|
138
|
+
EUPL-1.2
|
139
|
+
Entessa
|
140
|
+
ErlPL-1.1
|
141
|
+
Eurosym
|
142
|
+
FSFAP
|
143
|
+
FSFUL
|
144
|
+
FSFULLR
|
145
|
+
FTL
|
146
|
+
Fair
|
147
|
+
Frameworx-1.0
|
148
|
+
FreeImage
|
149
|
+
GFDL-1.1
|
150
|
+
GFDL-1.1-only
|
151
|
+
GFDL-1.1-or-later
|
152
|
+
GFDL-1.2
|
153
|
+
GFDL-1.2-only
|
154
|
+
GFDL-1.2-or-later
|
155
|
+
GFDL-1.3
|
156
|
+
GFDL-1.3-only
|
157
|
+
GFDL-1.3-or-later
|
158
|
+
GL2PS
|
159
|
+
GPL-1.0
|
160
|
+
GPL-1.0+
|
161
|
+
GPL-1.0-only
|
162
|
+
GPL-1.0-or-later
|
163
|
+
GPL-2.0
|
164
|
+
GPL-2.0+
|
165
|
+
GPL-2.0-only
|
166
|
+
GPL-2.0-or-later
|
167
|
+
GPL-2.0-with-GCC-exception
|
168
|
+
GPL-2.0-with-autoconf-exception
|
169
|
+
GPL-2.0-with-bison-exception
|
170
|
+
GPL-2.0-with-classpath-exception
|
171
|
+
GPL-2.0-with-font-exception
|
172
|
+
GPL-3.0
|
173
|
+
GPL-3.0+
|
174
|
+
GPL-3.0-only
|
175
|
+
GPL-3.0-or-later
|
176
|
+
GPL-3.0-with-GCC-exception
|
177
|
+
GPL-3.0-with-autoconf-exception
|
178
|
+
Giftware
|
179
|
+
Glide
|
180
|
+
Glulxe
|
181
|
+
HPND
|
182
|
+
HaskellReport
|
183
|
+
IBM-pibs
|
184
|
+
ICU
|
185
|
+
IJG
|
186
|
+
IPA
|
187
|
+
IPL-1.0
|
188
|
+
ISC
|
189
|
+
ImageMagick
|
190
|
+
Imlib2
|
191
|
+
Info-ZIP
|
192
|
+
Intel
|
193
|
+
Intel-ACPI
|
194
|
+
Interbase-1.0
|
195
|
+
JSON
|
196
|
+
JasPer-2.0
|
197
|
+
LAL-1.2
|
198
|
+
LAL-1.3
|
199
|
+
LGPL-2.0
|
200
|
+
LGPL-2.0+
|
201
|
+
LGPL-2.0-only
|
202
|
+
LGPL-2.0-or-later
|
203
|
+
LGPL-2.1
|
204
|
+
LGPL-2.1+
|
205
|
+
LGPL-2.1-only
|
206
|
+
LGPL-2.1-or-later
|
207
|
+
LGPL-3.0
|
208
|
+
LGPL-3.0+
|
209
|
+
LGPL-3.0-only
|
210
|
+
LGPL-3.0-or-later
|
211
|
+
LGPLLR
|
212
|
+
LPL-1.0
|
213
|
+
LPL-1.02
|
214
|
+
LPPL-1.0
|
215
|
+
LPPL-1.1
|
216
|
+
LPPL-1.2
|
217
|
+
LPPL-1.3a
|
218
|
+
LPPL-1.3c
|
219
|
+
Latex2e
|
220
|
+
Leptonica
|
221
|
+
LiLiQ-P-1.1
|
222
|
+
LiLiQ-R-1.1
|
223
|
+
LiLiQ-Rplus-1.1
|
224
|
+
Libpng
|
225
|
+
MIT
|
226
|
+
MIT-CMU
|
227
|
+
MIT-advertising
|
228
|
+
MIT-enna
|
229
|
+
MIT-feh
|
230
|
+
MITNFA
|
231
|
+
MPL-1.0
|
232
|
+
MPL-1.1
|
233
|
+
MPL-2.0
|
234
|
+
MPL-2.0-no-copyleft-exception
|
235
|
+
MS-PL
|
236
|
+
MS-RL
|
237
|
+
MTLL
|
238
|
+
MakeIndex
|
239
|
+
MirOS
|
240
|
+
Motosoto
|
241
|
+
Multics
|
242
|
+
Mup
|
243
|
+
NASA-1.3
|
244
|
+
NBPL-1.0
|
245
|
+
NCSA
|
246
|
+
NGPL
|
247
|
+
NLOD-1.0
|
248
|
+
NLPL
|
249
|
+
NOSL
|
250
|
+
NPL-1.0
|
251
|
+
NPL-1.1
|
252
|
+
NPOSL-3.0
|
253
|
+
NRL
|
254
|
+
NTP
|
255
|
+
Naumen
|
256
|
+
Net-SNMP
|
257
|
+
NetCDF
|
258
|
+
Newsletr
|
259
|
+
Nokia
|
260
|
+
Noweb
|
261
|
+
Nunit
|
262
|
+
OCCT-PL
|
263
|
+
OCLC-2.0
|
264
|
+
ODbL-1.0
|
265
|
+
OFL-1.0
|
266
|
+
OFL-1.1
|
267
|
+
OGTSL
|
268
|
+
OLDAP-1.1
|
269
|
+
OLDAP-1.2
|
270
|
+
OLDAP-1.3
|
271
|
+
OLDAP-1.4
|
272
|
+
OLDAP-2.0
|
273
|
+
OLDAP-2.0.1
|
274
|
+
OLDAP-2.1
|
275
|
+
OLDAP-2.2
|
276
|
+
OLDAP-2.2.1
|
277
|
+
OLDAP-2.2.2
|
278
|
+
OLDAP-2.3
|
279
|
+
OLDAP-2.4
|
280
|
+
OLDAP-2.5
|
281
|
+
OLDAP-2.6
|
282
|
+
OLDAP-2.7
|
283
|
+
OLDAP-2.8
|
284
|
+
OML
|
285
|
+
OPL-1.0
|
286
|
+
OSET-PL-2.1
|
287
|
+
OSL-1.0
|
288
|
+
OSL-1.1
|
289
|
+
OSL-2.0
|
290
|
+
OSL-2.1
|
291
|
+
OSL-3.0
|
292
|
+
OpenSSL
|
293
|
+
PDDL-1.0
|
294
|
+
PHP-3.0
|
295
|
+
PHP-3.01
|
296
|
+
Plexus
|
297
|
+
PostgreSQL
|
298
|
+
Python-2.0
|
299
|
+
QPL-1.0
|
300
|
+
Qhull
|
301
|
+
RHeCos-1.1
|
302
|
+
RPL-1.1
|
303
|
+
RPL-1.5
|
304
|
+
RPSL-1.0
|
305
|
+
RSA-MD
|
306
|
+
RSCPL
|
307
|
+
Rdisc
|
308
|
+
Ruby
|
309
|
+
SAX-PD
|
310
|
+
SCEA
|
311
|
+
SGI-B-1.0
|
312
|
+
SGI-B-1.1
|
313
|
+
SGI-B-2.0
|
314
|
+
SISSL
|
315
|
+
SISSL-1.2
|
316
|
+
SMLNJ
|
317
|
+
SMPPL
|
318
|
+
SNIA
|
319
|
+
SPL-1.0
|
320
|
+
SWL
|
321
|
+
Saxpath
|
322
|
+
Sendmail
|
323
|
+
SimPL-2.0
|
324
|
+
Sleepycat
|
325
|
+
Spencer-86
|
326
|
+
Spencer-94
|
327
|
+
Spencer-99
|
328
|
+
StandardML-NJ
|
329
|
+
SugarCRM-1.1.3
|
330
|
+
TCL
|
331
|
+
TCP-wrappers
|
332
|
+
TMate
|
333
|
+
TORQUE-1.1
|
334
|
+
TOSL
|
335
|
+
UPL-1.0
|
336
|
+
Unicode-DFS-2015
|
337
|
+
Unicode-DFS-2016
|
338
|
+
Unicode-TOU
|
339
|
+
Unlicense
|
340
|
+
VOSTROM
|
341
|
+
VSL-1.0
|
342
|
+
Vim
|
343
|
+
W3C
|
344
|
+
W3C-19980720
|
345
|
+
W3C-20150513
|
346
|
+
WTFPL
|
347
|
+
Watcom-1.0
|
348
|
+
Wsuipa
|
349
|
+
X11
|
350
|
+
XFree86-1.1
|
351
|
+
XSkat
|
352
|
+
Xerox
|
353
|
+
Xnet
|
354
|
+
YPL-1.0
|
355
|
+
YPL-1.1
|
356
|
+
ZPL-1.1
|
357
|
+
ZPL-2.0
|
358
|
+
ZPL-2.1
|
359
|
+
Zed
|
360
|
+
Zend-2.0
|
361
|
+
Zimbra-1.3
|
362
|
+
Zimbra-1.4
|
363
|
+
Zlib
|
364
|
+
bzip2-1.0.5
|
365
|
+
bzip2-1.0.6
|
366
|
+
curl
|
367
|
+
diffmark
|
368
|
+
dvipdfm
|
369
|
+
eCos-2.0
|
370
|
+
eGenix
|
371
|
+
gSOAP-1.3b
|
372
|
+
gnuplot
|
373
|
+
iMatix
|
374
|
+
libtiff
|
375
|
+
mpich2
|
376
|
+
psfrag
|
377
|
+
psutils
|
378
|
+
wxWindows
|
379
|
+
xinetd
|
380
|
+
xpp
|
381
|
+
zlib-acknowledgement
|
381
382
|
).freeze
|
382
383
|
|
383
384
|
# exception identifiers
|
384
385
|
EXCEPTION_IDENTIFIERS = %w(
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
386
|
+
389-exception
|
387
|
+
Autoconf-exception-2.0
|
388
|
+
Autoconf-exception-3.0
|
389
|
+
Bison-exception-2.2
|
390
|
+
Bootloader-exception
|
391
|
+
CLISP-exception-2.0
|
392
|
+
Classpath-exception-2.0
|
393
|
+
DigiRule-FOSS-exception
|
394
|
+
FLTK-exception
|
395
|
+
Fawkes-Runtime-exception
|
396
|
+
Font-exception-2.0
|
397
|
+
GCC-exception-2.0
|
398
|
+
GCC-exception-3.1
|
399
|
+
LZMA-exception
|
400
|
+
Libtool-exception
|
401
|
+
Linux-syscall-note
|
402
|
+
Nokia-Qt-exception-1.1
|
403
|
+
OCCT-exception-1.0
|
404
|
+
Qwt-exception-1.0
|
405
|
+
WxWindows-exception-3.1
|
406
|
+
eCos-exception-2.0
|
407
|
+
freertos-exception-2.0
|
408
|
+
gnu-javamail-exception
|
409
|
+
i2p-gpl-java-exception
|
410
|
+
mif-exception
|
411
|
+
openvpn-openssl-exception
|
412
|
+
u-boot-exception-2.0
|
412
413
|
).freeze
|
413
414
|
|
414
415
|
REGEXP = %r{
|
@@ -434,4 +435,5 @@ class Gem::Licenses
|
|
434
435
|
return unless lowest < license.size
|
435
436
|
by_distance[lowest]
|
436
437
|
end
|
438
|
+
|
437
439
|
end
|