rubygems-update 3.4.21 → 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.
Files changed (564) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +132 -2
  3. data/Manifest.txt +39 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +74 -0
  6. data/bundler/README.md +1 -2
  7. data/bundler/bundler.gemspec +4 -2
  8. data/bundler/exe/bundle +1 -10
  9. data/bundler/lib/bundler/build_metadata.rb +3 -3
  10. data/bundler/lib/bundler/capistrano.rb +1 -1
  11. data/bundler/lib/bundler/checksum.rb +245 -0
  12. data/bundler/lib/bundler/ci_detector.rb +75 -0
  13. data/bundler/lib/bundler/cli/add.rb +3 -3
  14. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  15. data/bundler/lib/bundler/cli/cache.rb +1 -1
  16. data/bundler/lib/bundler/cli/check.rb +1 -1
  17. data/bundler/lib/bundler/cli/common.rb +9 -1
  18. data/bundler/lib/bundler/cli/config.rb +8 -7
  19. data/bundler/lib/bundler/cli/console.rb +3 -2
  20. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  21. data/bundler/lib/bundler/cli/exec.rb +1 -1
  22. data/bundler/lib/bundler/cli/gem.rb +31 -23
  23. data/bundler/lib/bundler/cli/info.rb +2 -13
  24. data/bundler/lib/bundler/cli/install.rb +5 -4
  25. data/bundler/lib/bundler/cli/issue.rb +1 -1
  26. data/bundler/lib/bundler/cli/lock.rb +4 -4
  27. data/bundler/lib/bundler/cli/open.rb +1 -1
  28. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  29. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  30. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  31. data/bundler/lib/bundler/cli/show.rb +2 -2
  32. data/bundler/lib/bundler/cli/update.rb +5 -5
  33. data/bundler/lib/bundler/cli.rb +215 -263
  34. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  35. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  36. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  37. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  38. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  39. data/bundler/lib/bundler/constants.rb +1 -1
  40. data/bundler/lib/bundler/current_ruby.rb +5 -21
  41. data/bundler/lib/bundler/definition.rb +43 -16
  42. data/bundler/lib/bundler/dependency.rb +16 -12
  43. data/bundler/lib/bundler/digest.rb +2 -2
  44. data/bundler/lib/bundler/dsl.rb +43 -25
  45. data/bundler/lib/bundler/endpoint_specification.rb +6 -2
  46. data/bundler/lib/bundler/env.rb +1 -3
  47. data/bundler/lib/bundler/errors.rb +58 -0
  48. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  49. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  50. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  51. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  52. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  53. data/bundler/lib/bundler/fetcher.rb +28 -25
  54. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  55. data/bundler/lib/bundler/gem_helper.rb +1 -1
  56. data/bundler/lib/bundler/gem_helpers.rb +12 -2
  57. data/bundler/lib/bundler/graph.rb +9 -9
  58. data/bundler/lib/bundler/index.rb +1 -2
  59. data/bundler/lib/bundler/injector.rb +1 -1
  60. data/bundler/lib/bundler/inline.rb +3 -3
  61. data/bundler/lib/bundler/installer/gem_installer.rb +10 -10
  62. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  63. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  64. data/bundler/lib/bundler/installer.rb +9 -9
  65. data/bundler/lib/bundler/lazy_specification.rb +28 -17
  66. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  67. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  68. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  69. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  70. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  71. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  72. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  73. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  74. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  75. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  76. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  77. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  78. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  79. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  80. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  81. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  82. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  83. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  84. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  85. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  86. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  87. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  88. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  89. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  90. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  91. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  92. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  93. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  94. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  95. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  96. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  97. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  98. data/bundler/lib/bundler/man/bundle.1 +5 -44
  99. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  100. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  101. data/bundler/lib/bundler/match_metadata.rb +4 -0
  102. data/bundler/lib/bundler/match_platform.rb +1 -1
  103. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  104. data/bundler/lib/bundler/plugin/index.rb +8 -0
  105. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  106. data/bundler/lib/bundler/plugin.rb +12 -5
  107. data/bundler/lib/bundler/resolver/base.rb +1 -1
  108. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  109. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  110. data/bundler/lib/bundler/resolver.rb +16 -16
  111. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  112. data/bundler/lib/bundler/ruby_version.rb +1 -1
  113. data/bundler/lib/bundler/rubygems_ext.rb +27 -54
  114. data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -58
  115. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  116. data/bundler/lib/bundler/runtime.rb +2 -2
  117. data/bundler/lib/bundler/self_manager.rb +23 -7
  118. data/bundler/lib/bundler/settings.rb +27 -7
  119. data/bundler/lib/bundler/setup.rb +4 -1
  120. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  121. data/bundler/lib/bundler/source/git/git_proxy.rb +22 -14
  122. data/bundler/lib/bundler/source/git.rb +4 -3
  123. data/bundler/lib/bundler/source/metadata.rb +16 -16
  124. data/bundler/lib/bundler/source/path.rb +7 -6
  125. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  126. data/bundler/lib/bundler/source.rb +2 -0
  127. data/bundler/lib/bundler/spec_set.rb +43 -12
  128. data/bundler/lib/bundler/stub_specification.rb +1 -0
  129. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  130. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  131. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  132. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  133. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  134. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  135. data/bundler/lib/bundler/ui/shell.rb +2 -2
  136. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  137. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  138. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +4 -3
  140. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +23 -11
  141. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  142. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +36 -36
  143. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
  144. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
  145. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
  146. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +8 -10
  147. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +15 -4
  148. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +15 -15
  149. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
  150. data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
  151. data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +4 -0
  152. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +16 -25
  153. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
  154. data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
  155. data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
  156. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +20 -1
  157. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
  158. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +27 -8
  159. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +44 -6
  160. data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
  161. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
  162. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +26 -150
  163. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +4 -46
  164. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
  165. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -45
  166. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb +49 -0
  167. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
  168. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
  169. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
  170. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
  171. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
  172. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  173. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +155 -8
  174. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  175. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  176. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  177. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  178. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  179. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  180. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  181. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  182. data/bundler/lib/bundler/version.rb +1 -1
  183. data/bundler/lib/bundler/vlad.rb +1 -1
  184. data/bundler/lib/bundler/yaml_serializer.rb +9 -4
  185. data/bundler/lib/bundler.rb +38 -35
  186. data/lib/rubygems/available_set.rb +4 -4
  187. data/lib/rubygems/basic_specification.rb +35 -37
  188. data/lib/rubygems/bundler_version_finder.rb +4 -4
  189. data/lib/rubygems/ci_detector.rb +75 -0
  190. data/lib/rubygems/command.rb +15 -17
  191. data/lib/rubygems/command_manager.rb +5 -4
  192. data/lib/rubygems/commands/build_command.rb +2 -2
  193. data/lib/rubygems/commands/cert_command.rb +2 -3
  194. data/lib/rubygems/commands/check_command.rb +4 -4
  195. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  196. data/lib/rubygems/commands/contents_command.rb +5 -5
  197. data/lib/rubygems/commands/dependency_command.rb +4 -5
  198. data/lib/rubygems/commands/environment_command.rb +3 -5
  199. data/lib/rubygems/commands/exec_command.rb +1 -1
  200. data/lib/rubygems/commands/fetch_command.rb +2 -2
  201. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  202. data/lib/rubygems/commands/help_command.rb +4 -4
  203. data/lib/rubygems/commands/info_command.rb +2 -2
  204. data/lib/rubygems/commands/install_command.rb +8 -16
  205. data/lib/rubygems/commands/list_command.rb +2 -2
  206. data/lib/rubygems/commands/lock_command.rb +1 -1
  207. data/lib/rubygems/commands/open_command.rb +1 -1
  208. data/lib/rubygems/commands/owner_command.rb +1 -1
  209. data/lib/rubygems/commands/pristine_command.rb +13 -15
  210. data/lib/rubygems/commands/push_command.rb +2 -2
  211. data/lib/rubygems/commands/query_command.rb +4 -5
  212. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  213. data/lib/rubygems/commands/search_command.rb +2 -2
  214. data/lib/rubygems/commands/setup_command.rb +33 -36
  215. data/lib/rubygems/commands/sources_command.rb +12 -12
  216. data/lib/rubygems/commands/specification_command.rb +10 -10
  217. data/lib/rubygems/commands/stale_command.rb +1 -1
  218. data/lib/rubygems/commands/uninstall_command.rb +13 -14
  219. data/lib/rubygems/commands/unpack_command.rb +7 -7
  220. data/lib/rubygems/commands/update_command.rb +11 -13
  221. data/lib/rubygems/commands/which_command.rb +1 -1
  222. data/lib/rubygems/commands/yank_command.rb +1 -1
  223. data/lib/rubygems/compatibility.rb +5 -6
  224. data/lib/rubygems/config_file.rb +7 -7
  225. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  226. data/lib/rubygems/core_ext/kernel_require.rb +20 -49
  227. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  228. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  229. data/lib/rubygems/defaults.rb +15 -3
  230. data/lib/rubygems/dependency.rb +12 -14
  231. data/lib/rubygems/dependency_installer.rb +30 -31
  232. data/lib/rubygems/dependency_list.rb +1 -1
  233. data/lib/rubygems/deprecate.rb +16 -15
  234. data/lib/rubygems/doctor.rb +6 -6
  235. data/lib/rubygems/errors.rb +2 -6
  236. data/lib/rubygems/exceptions.rb +2 -1
  237. data/lib/rubygems/ext/builder.rb +15 -10
  238. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  239. data/lib/rubygems/ext/ext_conf_builder.rb +2 -4
  240. data/lib/rubygems/ext/rake_builder.rb +1 -1
  241. data/lib/rubygems/gem_runner.rb +4 -4
  242. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  243. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  244. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  245. data/lib/rubygems/install_update_options.rb +18 -19
  246. data/lib/rubygems/installer.rb +66 -45
  247. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  248. data/lib/rubygems/local_remote_options.rb +8 -11
  249. data/lib/rubygems/name_tuple.rb +7 -9
  250. data/lib/rubygems/net/http.rb +3 -0
  251. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  252. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  253. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  254. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  255. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  256. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  257. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  258. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  259. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  260. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  261. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  262. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  263. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  264. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  265. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  266. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  267. data/lib/rubygems/package/digest_io.rb +1 -1
  268. data/lib/rubygems/package/old.rb +2 -2
  269. data/lib/rubygems/package/tar_header.rb +45 -39
  270. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  271. data/lib/rubygems/package/tar_reader.rb +14 -5
  272. data/lib/rubygems/package/tar_writer.rb +20 -18
  273. data/lib/rubygems/package.rb +28 -27
  274. data/lib/rubygems/package_task.rb +2 -2
  275. data/lib/rubygems/path_support.rb +10 -11
  276. data/lib/rubygems/platform.rb +65 -48
  277. data/lib/rubygems/query_utils.rb +7 -9
  278. data/lib/rubygems/remote_fetcher.rb +17 -17
  279. data/lib/rubygems/request/connection_pools.rb +3 -3
  280. data/lib/rubygems/request.rb +20 -17
  281. data/lib/rubygems/request_set/gem_dependency_api.rb +120 -123
  282. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  283. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  284. data/lib/rubygems/request_set/lockfile.rb +6 -11
  285. data/lib/rubygems/request_set.rb +5 -5
  286. data/lib/rubygems/requirement.rb +7 -7
  287. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  288. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  289. data/lib/rubygems/resolver/activation_request.rb +1 -3
  290. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  291. data/lib/rubygems/resolver/best_set.rb +1 -1
  292. data/lib/rubygems/resolver/composed_set.rb +1 -1
  293. data/lib/rubygems/resolver/conflict.rb +4 -12
  294. data/lib/rubygems/resolver/index_set.rb +4 -4
  295. data/lib/rubygems/resolver/index_specification.rb +2 -2
  296. data/lib/rubygems/resolver/installer_set.rb +5 -6
  297. data/lib/rubygems/resolver/lock_set.rb +1 -1
  298. data/lib/rubygems/resolver.rb +6 -13
  299. data/lib/rubygems/s3_uri_signer.rb +6 -6
  300. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  301. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  302. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  303. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  304. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  305. data/lib/rubygems/safe_marshal.rb +74 -0
  306. data/lib/rubygems/safe_yaml.rb +5 -28
  307. data/lib/rubygems/security/policies.rb +36 -38
  308. data/lib/rubygems/security/policy.rb +7 -11
  309. data/lib/rubygems/security/signer.rb +1 -1
  310. data/lib/rubygems/security/trust_dir.rb +4 -4
  311. data/lib/rubygems/security.rb +8 -22
  312. data/lib/rubygems/source/git.rb +1 -3
  313. data/lib/rubygems/source/installed.rb +0 -2
  314. data/lib/rubygems/source/local.rb +7 -9
  315. data/lib/rubygems/source/lock.rb +1 -3
  316. data/lib/rubygems/source/specific_file.rb +0 -1
  317. data/lib/rubygems/source/vendor.rb +0 -2
  318. data/lib/rubygems/source.rb +12 -12
  319. data/lib/rubygems/source_list.rb +5 -5
  320. data/lib/rubygems/spec_fetcher.rb +31 -31
  321. data/lib/rubygems/specification.rb +145 -150
  322. data/lib/rubygems/specification_policy.rb +61 -31
  323. data/lib/rubygems/stub_specification.rb +4 -5
  324. data/lib/rubygems/text.rb +1 -2
  325. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  326. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  327. data/lib/rubygems/timeout.rb +3 -0
  328. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  329. data/lib/rubygems/uninstaller.rb +9 -11
  330. data/lib/rubygems/update_suggestion.rb +5 -18
  331. data/lib/rubygems/uri_formatter.rb +1 -1
  332. data/lib/rubygems/user_interaction.rb +17 -23
  333. data/lib/rubygems/util/licenses.rb +113 -35
  334. data/lib/rubygems/util/list.rb +3 -1
  335. data/lib/rubygems/util.rb +2 -4
  336. data/lib/rubygems/validator.rb +6 -4
  337. data/lib/rubygems/version.rb +35 -29
  338. data/lib/rubygems/version_option.rb +2 -5
  339. data/lib/rubygems/yaml_serializer.rb +9 -4
  340. data/lib/rubygems.rb +42 -42
  341. data/rubygems-update.gemspec +4 -4
  342. data/setup.rb +2 -2
  343. metadata +43 -225
  344. data/lib/rubygems/indexer.rb +0 -428
  345. data/lib/rubygems/mock_gem_ui.rb +0 -86
  346. data/test/rubygems/alternate_cert.pem +0 -19
  347. data/test/rubygems/alternate_cert_32.pem +0 -19
  348. data/test/rubygems/alternate_key.pem +0 -27
  349. data/test/rubygems/bad_rake.rb +0 -3
  350. data/test/rubygems/bundler_test_gem.rb +0 -424
  351. data/test/rubygems/ca_cert.pem +0 -77
  352. data/test/rubygems/child_cert.pem +0 -19
  353. data/test/rubygems/child_cert_32.pem +0 -19
  354. data/test/rubygems/child_key.pem +0 -27
  355. data/test/rubygems/client.pem +0 -107
  356. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  357. data/test/rubygems/data/gem-private_key.pem +0 -27
  358. data/test/rubygems/data/gem-public_cert.pem +0 -20
  359. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  360. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  361. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  362. data/test/rubygems/encrypted_private_key.pem +0 -30
  363. data/test/rubygems/expired_cert.pem +0 -19
  364. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  365. data/test/rubygems/foo/discover.rb +0 -1
  366. data/test/rubygems/future_cert.pem +0 -19
  367. data/test/rubygems/future_cert_32.pem +0 -19
  368. data/test/rubygems/good_rake.rb +0 -3
  369. data/test/rubygems/grandchild_cert.pem +0 -19
  370. data/test/rubygems/grandchild_cert_32.pem +0 -19
  371. data/test/rubygems/grandchild_key.pem +0 -27
  372. data/test/rubygems/helper.rb +0 -1649
  373. data/test/rubygems/installer_test_case.rb +0 -248
  374. data/test/rubygems/invalid_client.pem +0 -49
  375. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  376. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  377. data/test/rubygems/invalid_key.pem +0 -27
  378. data/test/rubygems/invalid_signer_cert.pem +0 -19
  379. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  380. data/test/rubygems/invalidchild_cert.pem +0 -19
  381. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  382. data/test/rubygems/invalidchild_key.pem +0 -27
  383. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  384. data/test/rubygems/package/tar_test_case.rb +0 -175
  385. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  386. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  387. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  388. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  389. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  390. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  391. data/test/rubygems/private3072_key.pem +0 -40
  392. data/test/rubygems/private_ec_key.pem +0 -9
  393. data/test/rubygems/private_key.pem +0 -27
  394. data/test/rubygems/public3072_cert.pem +0 -25
  395. data/test/rubygems/public_cert.pem +0 -20
  396. data/test/rubygems/public_cert_32.pem +0 -19
  397. data/test/rubygems/public_key.pem +0 -9
  398. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  399. data/test/rubygems/rubygems_plugin.rb +0 -24
  400. data/test/rubygems/sff/discover.rb +0 -1
  401. data/test/rubygems/simple_gem.rb +0 -68
  402. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  403. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  404. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  405. data/test/rubygems/ssl_cert.pem +0 -80
  406. data/test/rubygems/ssl_key.pem +0 -27
  407. data/test/rubygems/test_bundled_ca.rb +0 -61
  408. data/test/rubygems/test_config.rb +0 -28
  409. data/test/rubygems/test_deprecate.rb +0 -158
  410. data/test/rubygems/test_exit.rb +0 -17
  411. data/test/rubygems/test_gem.rb +0 -1799
  412. data/test/rubygems/test_gem_available_set.rb +0 -130
  413. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  414. data/test/rubygems/test_gem_command.rb +0 -403
  415. data/test/rubygems/test_gem_command_manager.rb +0 -400
  416. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  417. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  418. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  419. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  420. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  421. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  422. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  423. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  424. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  425. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  426. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  427. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  428. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  429. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  430. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  431. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  432. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  433. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  434. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  435. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  436. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  437. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  438. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  439. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  440. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  441. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  442. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  443. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  444. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  445. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  446. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -522
  447. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  448. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  449. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  450. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  451. data/test/rubygems/test_gem_config_file.rb +0 -551
  452. data/test/rubygems/test_gem_dependency.rb +0 -398
  453. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  454. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  455. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  456. data/test/rubygems/test_gem_doctor.rb +0 -195
  457. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  458. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  459. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  460. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  461. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  462. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  463. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  464. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  465. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  466. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  467. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  468. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  469. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  470. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  471. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  472. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  473. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  474. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  475. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  476. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  477. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  478. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  479. data/test/rubygems/test_gem_indexer.rb +0 -381
  480. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  481. data/test/rubygems/test_gem_installer.rb +0 -2512
  482. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  483. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  484. data/test/rubygems/test_gem_package.rb +0 -1306
  485. data/test/rubygems/test_gem_package_old.rb +0 -91
  486. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  487. data/test/rubygems/test_gem_package_tar_reader.rb +0 -135
  488. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  489. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  490. data/test/rubygems/test_gem_package_task.rb +0 -118
  491. data/test/rubygems/test_gem_path_support.rb +0 -139
  492. data/test/rubygems/test_gem_platform.rb +0 -497
  493. data/test/rubygems/test_gem_rdoc.rb +0 -137
  494. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  495. data/test/rubygems/test_gem_request.rb +0 -547
  496. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  497. data/test/rubygems/test_gem_request_set.rb +0 -672
  498. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  499. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  500. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  501. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  502. data/test/rubygems/test_gem_requirement.rb +0 -505
  503. data/test/rubygems/test_gem_resolver.rb +0 -859
  504. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  505. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  506. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  507. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  508. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  509. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  510. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  511. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  512. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  513. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  514. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  515. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  516. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  517. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  518. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  519. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  520. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  521. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  522. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  523. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  524. data/test/rubygems/test_gem_security.rb +0 -341
  525. data/test/rubygems/test_gem_security_policy.rb +0 -535
  526. data/test/rubygems/test_gem_security_signer.rb +0 -218
  527. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  528. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  529. data/test/rubygems/test_gem_source.rb +0 -254
  530. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  531. data/test/rubygems/test_gem_source_git.rb +0 -310
  532. data/test/rubygems/test_gem_source_installed.rb +0 -35
  533. data/test/rubygems/test_gem_source_list.rb +0 -119
  534. data/test/rubygems/test_gem_source_local.rb +0 -107
  535. data/test/rubygems/test_gem_source_lock.rb +0 -113
  536. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  537. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  538. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  539. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  540. data/test/rubygems/test_gem_specification.rb +0 -3856
  541. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  542. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  543. data/test/rubygems/test_gem_text.rb +0 -103
  544. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  545. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  546. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  547. data/test/rubygems/test_gem_uri.rb +0 -41
  548. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  549. data/test/rubygems/test_gem_util.rb +0 -91
  550. data/test/rubygems/test_gem_validator.rb +0 -42
  551. data/test/rubygems/test_gem_version.rb +0 -305
  552. data/test/rubygems/test_gem_version_option.rb +0 -165
  553. data/test/rubygems/test_kernel.rb +0 -124
  554. data/test/rubygems/test_project_sanity.rb +0 -49
  555. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  556. data/test/rubygems/test_require.rb +0 -732
  557. data/test/rubygems/test_rubygems.rb +0 -76
  558. data/test/rubygems/test_webauthn_listener.rb +0 -143
  559. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  560. data/test/rubygems/test_webauthn_poller.rb +0 -124
  561. data/test/rubygems/utilities.rb +0 -436
  562. data/test/rubygems/wrong_key_cert.pem +0 -19
  563. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  564. data/test/test_changelog_generator.rb +0 -17
@@ -14,7 +14,6 @@ require_relative "text"
14
14
  # module will have access to the +ui+ method that returns the default UI.
15
15
 
16
16
  module Gem::DefaultUserInteraction
17
-
18
17
  include Gem::Text
19
18
 
20
19
  ##
@@ -69,7 +68,6 @@ module Gem::DefaultUserInteraction
69
68
  def use_ui(new_ui, &block)
70
69
  Gem::DefaultUserInteraction.use_ui(new_ui, &block)
71
70
  end
72
-
73
71
  end
74
72
 
75
73
  ##
@@ -92,7 +90,6 @@ end
92
90
  # end
93
91
 
94
92
  module Gem::UserInteraction
95
-
96
93
  include Gem::DefaultUserInteraction
97
94
 
98
95
  ##
@@ -196,7 +193,7 @@ class Gem::StreamUI
196
193
  # then special operations (like asking for passwords) will use the TTY
197
194
  # commands to disable character echo.
198
195
 
199
- def initialize(in_stream, out_stream, err_stream=STDERR, usetty=true)
196
+ def initialize(in_stream, out_stream, err_stream=$stderr, usetty=true)
200
197
  @ins = in_stream
201
198
  @outs = out_stream
202
199
  @errs = err_stream
@@ -241,7 +238,7 @@ class Gem::StreamUI
241
238
 
242
239
  result = result.strip.to_i - 1
243
240
  return nil, nil unless (0...list.size) === result
244
- return list[result], result
241
+ [list[result], result]
245
242
  end
246
243
 
247
244
  ##
@@ -260,26 +257,25 @@ class Gem::StreamUI
260
257
  end
261
258
 
262
259
  default_answer = case default
263
- when nil
264
- "yn"
265
- when true
266
- "Yn"
267
- else
268
- "yN"
260
+ when nil
261
+ "yn"
262
+ when true
263
+ "Yn"
264
+ else
265
+ "yN"
269
266
  end
270
267
 
271
268
  result = nil
272
269
 
273
270
  while result.nil? do
274
271
  result = case ask "#{question} [#{default_answer}]"
275
- when /^y/i then true
276
- when /^n/i then false
277
- when /^$/ then default
278
- else nil
272
+ when /^y/i then true
273
+ when /^n/i then false
274
+ when /^$/ then default
279
275
  end
280
276
  end
281
277
 
282
- return result
278
+ result
283
279
  end
284
280
 
285
281
  ##
@@ -430,8 +426,7 @@ class Gem::StreamUI
430
426
  # +size+ items. Shows the given +initial_message+ when progress starts
431
427
  # and the +terminal_message+ when it is complete.
432
428
 
433
- def initialize(out_stream, size, initial_message,
434
- terminal_message = "complete")
429
+ def initialize(out_stream, size, initial_message, terminal_message = "complete")
435
430
  @out = out_stream
436
431
  @total = size
437
432
  @count = 0
@@ -473,8 +468,7 @@ class Gem::StreamUI
473
468
  # +size+ items. Shows the given +initial_message+ when progress starts
474
469
  # and the +terminal_message+ when it is complete.
475
470
 
476
- def initialize(out_stream, size, initial_message,
477
- terminal_message = "complete")
471
+ def initialize(out_stream, size, initial_message, terminal_message = "complete")
478
472
  @out = out_stream
479
473
  @total = size
480
474
  @count = 0
@@ -597,8 +591,8 @@ class Gem::StreamUI
597
591
  end
598
592
 
599
593
  ##
600
- # Subclass of StreamUI that instantiates the user interaction using STDIN,
601
- # STDOUT, and STDERR.
594
+ # Subclass of StreamUI that instantiates the user interaction using $stdin,
595
+ # $stdout, and $stderr.
602
596
 
603
597
  class Gem::ConsoleUI < Gem::StreamUI
604
598
  ##
@@ -606,7 +600,7 @@ class Gem::ConsoleUI < Gem::StreamUI
606
600
  # stdin, output to stdout and warnings or errors to stderr.
607
601
 
608
602
  def initialize
609
- super STDIN, STDOUT, STDERR, true
603
+ super $stdin, $stdout, $stderr, true
610
604
  end
611
605
  end
612
606
 
@@ -22,10 +22,8 @@ class Gem::Licenses
22
22
  AFL-2.0
23
23
  AFL-2.1
24
24
  AFL-3.0
25
- AGPL-1.0
26
25
  AGPL-1.0-only
27
26
  AGPL-1.0-or-later
28
- AGPL-3.0
29
27
  AGPL-3.0-only
30
28
  AGPL-3.0-or-later
31
29
  AMDPLPA
@@ -45,6 +43,7 @@ class Gem::Licenses
45
43
  AdaCore-doc
46
44
  Adobe-2006
47
45
  Adobe-Glyph
46
+ Adobe-Utopia
48
47
  Afmparse
49
48
  Aladdin
50
49
  Apache-1.0
@@ -58,13 +57,12 @@ class Gem::Licenses
58
57
  Artistic-2.0
59
58
  BSD-1-Clause
60
59
  BSD-2-Clause
61
- BSD-2-Clause-FreeBSD
62
- BSD-2-Clause-NetBSD
63
60
  BSD-2-Clause-Patent
64
61
  BSD-2-Clause-Views
65
62
  BSD-3-Clause
66
63
  BSD-3-Clause-Attribution
67
64
  BSD-3-Clause-Clear
65
+ BSD-3-Clause-HP
68
66
  BSD-3-Clause-LBNL
69
67
  BSD-3-Clause-Modification
70
68
  BSD-3-Clause-No-Military-License
@@ -72,6 +70,8 @@ class Gem::Licenses
72
70
  BSD-3-Clause-No-Nuclear-License-2014
73
71
  BSD-3-Clause-No-Nuclear-Warranty
74
72
  BSD-3-Clause-Open-MPI
73
+ BSD-3-Clause-Sun
74
+ BSD-3-Clause-flex
75
75
  BSD-4-Clause
76
76
  BSD-4-Clause-Shortened
77
77
  BSD-4-Clause-UC
@@ -79,8 +79,10 @@ class Gem::Licenses
79
79
  BSD-4.3TAHOE
80
80
  BSD-Advertising-Acknowledgement
81
81
  BSD-Attribution-HPND-disclaimer
82
+ BSD-Inferno-Nettverk
82
83
  BSD-Protection
83
84
  BSD-Source-Code
85
+ BSD-Systemics
84
86
  BSL-1.0
85
87
  BUSL-1.1
86
88
  Baekmuk
@@ -184,11 +186,13 @@ class Gem::Licenses
184
186
  Community-Spec-1.0
185
187
  Condor-1.1
186
188
  Cornell-Lossless-JPEG
189
+ Cronyx
187
190
  Crossword
188
191
  CrystalStacker
189
192
  Cube
190
193
  D-FSL-1.0
191
194
  DL-DE-BY-2.0
195
+ DL-DE-ZERO-2.0
192
196
  DOC
193
197
  DRL-1.0
194
198
  DSDP
@@ -208,6 +212,7 @@ class Gem::Licenses
208
212
  Entessa
209
213
  ErlPL-1.1
210
214
  Eurosym
215
+ FBM
211
216
  FDK-AAC
212
217
  FSFAP
213
218
  FSFUL
@@ -215,25 +220,24 @@ class Gem::Licenses
215
220
  FSFULLRWD
216
221
  FTL
217
222
  Fair
223
+ Ferguson-Twofish
218
224
  Frameworx-1.0
219
225
  FreeBSD-DOC
220
226
  FreeImage
227
+ Furuseth
221
228
  GD
222
- GFDL-1.1
223
229
  GFDL-1.1-invariants-only
224
230
  GFDL-1.1-invariants-or-later
225
231
  GFDL-1.1-no-invariants-only
226
232
  GFDL-1.1-no-invariants-or-later
227
233
  GFDL-1.1-only
228
234
  GFDL-1.1-or-later
229
- GFDL-1.2
230
235
  GFDL-1.2-invariants-only
231
236
  GFDL-1.2-invariants-or-later
232
237
  GFDL-1.2-no-invariants-only
233
238
  GFDL-1.2-no-invariants-or-later
234
239
  GFDL-1.2-only
235
240
  GFDL-1.2-or-later
236
- GFDL-1.3
237
241
  GFDL-1.3-invariants-only
238
242
  GFDL-1.3-invariants-or-later
239
243
  GFDL-1.3-no-invariants-only
@@ -242,33 +246,28 @@ class Gem::Licenses
242
246
  GFDL-1.3-or-later
243
247
  GL2PS
244
248
  GLWTPL
245
- GPL-1.0
246
- GPL-1.0+
247
249
  GPL-1.0-only
248
250
  GPL-1.0-or-later
249
- GPL-2.0
250
- GPL-2.0+
251
251
  GPL-2.0-only
252
252
  GPL-2.0-or-later
253
- GPL-2.0-with-GCC-exception
254
- GPL-2.0-with-autoconf-exception
255
- GPL-2.0-with-bison-exception
256
- GPL-2.0-with-classpath-exception
257
- GPL-2.0-with-font-exception
258
- GPL-3.0
259
- GPL-3.0+
260
253
  GPL-3.0-only
261
254
  GPL-3.0-or-later
262
- GPL-3.0-with-GCC-exception
263
- GPL-3.0-with-autoconf-exception
264
255
  Giftware
265
256
  Glide
266
257
  Glulxe
267
258
  Graphics-Gems
268
259
  HP-1986
260
+ HP-1989
269
261
  HPND
262
+ HPND-DEC
270
263
  HPND-Markus-Kuhn
264
+ HPND-Pbmplus
265
+ HPND-UC
266
+ HPND-doc
267
+ HPND-doc-sell
271
268
  HPND-export-US
269
+ HPND-export-US-modify
270
+ HPND-sell-regexpr
272
271
  HPND-sell-variant
273
272
  HPND-sell-variant-MIT-disclaimer
274
273
  HTMLTIDY
@@ -294,20 +293,15 @@ class Gem::Licenses
294
293
  JSON
295
294
  Jam
296
295
  JasPer-2.0
296
+ Kastrup
297
297
  Kazlib
298
298
  Knuth-CTAN
299
299
  LAL-1.2
300
300
  LAL-1.3
301
- LGPL-2.0
302
- LGPL-2.0+
303
301
  LGPL-2.0-only
304
302
  LGPL-2.0-or-later
305
- LGPL-2.1
306
- LGPL-2.1+
307
303
  LGPL-2.1-only
308
304
  LGPL-2.1-or-later
309
- LGPL-3.0
310
- LGPL-3.0+
311
305
  LGPL-3.0-only
312
306
  LGPL-3.0-or-later
313
307
  LGPLLR
@@ -333,6 +327,7 @@ class Gem::Licenses
333
327
  Linux-man-pages-copyleft
334
328
  Linux-man-pages-copyleft-2-para
335
329
  Linux-man-pages-copyleft-var
330
+ Lucida-Bitmap-Fonts
336
331
  MIT
337
332
  MIT-0
338
333
  MIT-CMU
@@ -343,7 +338,10 @@ class Gem::Licenses
343
338
  MIT-enna
344
339
  MIT-feh
345
340
  MIT-open-group
341
+ MIT-testregex
346
342
  MITNFA
343
+ MMIXware
344
+ MPEG-SSG
347
345
  MPL-1.0
348
346
  MPL-1.1
349
347
  MPL-2.0
@@ -354,6 +352,7 @@ class Gem::Licenses
354
352
  MTLL
355
353
  MakeIndex
356
354
  Martin-Birgmeier
355
+ McPhee-slideshow
357
356
  Minpack
358
357
  MirOS
359
358
  Motosoto
@@ -387,7 +386,6 @@ class Gem::Licenses
387
386
  Newsletr
388
387
  Nokia
389
388
  Noweb
390
- Nunit
391
389
  O-UDA-1.0
392
390
  OCCT-PL
393
391
  OCLC-2.0
@@ -436,6 +434,7 @@ class Gem::Licenses
436
434
  OSL-3.0
437
435
  OpenPBS-2.3
438
436
  OpenSSL
437
+ PADL
439
438
  PDDL-1.0
440
439
  PHP-3.0
441
440
  PHP-3.01
@@ -464,11 +463,13 @@ class Gem::Licenses
464
463
  SGI-B-1.0
465
464
  SGI-B-1.1
466
465
  SGI-B-2.0
466
+ SGI-OpenGL
467
467
  SGP4
468
468
  SHL-0.5
469
469
  SHL-0.51
470
470
  SISSL
471
471
  SISSL-1.2
472
+ SL
472
473
  SMLNJ
473
474
  SMPPL
474
475
  SNIA
@@ -483,10 +484,10 @@ class Gem::Licenses
483
484
  Sendmail-8.23
484
485
  SimPL-2.0
485
486
  Sleepycat
487
+ Soundex
486
488
  Spencer-86
487
489
  Spencer-94
488
490
  Spencer-99
489
- StandardML-NJ
490
491
  SugarCRM-1.1.3
491
492
  SunPro
492
493
  Symlinks
@@ -499,12 +500,14 @@ class Gem::Licenses
499
500
  TPDL
500
501
  TPL-1.0
501
502
  TTWL
503
+ TTYP0
502
504
  TU-Berlin-1.0
503
505
  TU-Berlin-2.0
504
506
  TermReadKey
505
507
  UCAR
506
508
  UCL-1.0
507
509
  UPL-1.0
510
+ URT-RLE
508
511
  Unicode-DFS-2015
509
512
  Unicode-DFS-2016
510
513
  Unicode-TOU
@@ -534,13 +537,14 @@ class Gem::Licenses
534
537
  ZPL-2.0
535
538
  ZPL-2.1
536
539
  Zed
540
+ Zeeff
537
541
  Zend-2.0
538
542
  Zimbra-1.3
539
543
  Zimbra-1.4
540
544
  Zlib
541
545
  blessing
542
- bzip2-1.0.5
543
546
  bzip2-1.0.6
547
+ check-cvs
544
548
  checkmk
545
549
  copyleft-next-0.3.0
546
550
  copyleft-next-0.3.1
@@ -548,9 +552,9 @@ class Gem::Licenses
548
552
  diffmark
549
553
  dtoa
550
554
  dvipdfm
551
- eCos-2.0
552
555
  eGenix
553
556
  etalab-2.0
557
+ fwlw
554
558
  gSOAP-1.3b
555
559
  gnuplot
556
560
  iMatix
@@ -558,21 +562,61 @@ class Gem::Licenses
558
562
  libselinux-1.0
559
563
  libtiff
560
564
  libutil-David-Nugent
565
+ lsof
566
+ magaz
561
567
  metamail
562
568
  mpi-permissive
563
569
  mpich2
564
570
  mplus
571
+ pnmstitch
565
572
  psfrag
566
573
  psutils
574
+ python-ldap
567
575
  snprintf
576
+ ssh-keyscan
577
+ swrule
578
+ ulem
568
579
  w3m
569
- wxWindows
570
580
  xinetd
571
581
  xlock
572
582
  xpp
573
583
  zlib-acknowledgement
574
584
  ].freeze
575
585
 
586
+ DEPRECATED_LICENSE_IDENTIFIERS = %w[
587
+ AGPL-1.0
588
+ AGPL-3.0
589
+ BSD-2-Clause-FreeBSD
590
+ BSD-2-Clause-NetBSD
591
+ GFDL-1.1
592
+ GFDL-1.2
593
+ GFDL-1.3
594
+ GPL-1.0
595
+ GPL-1.0+
596
+ GPL-2.0
597
+ GPL-2.0+
598
+ GPL-2.0-with-GCC-exception
599
+ GPL-2.0-with-autoconf-exception
600
+ GPL-2.0-with-bison-exception
601
+ GPL-2.0-with-classpath-exception
602
+ GPL-2.0-with-font-exception
603
+ GPL-3.0
604
+ GPL-3.0+
605
+ GPL-3.0-with-GCC-exception
606
+ GPL-3.0-with-autoconf-exception
607
+ LGPL-2.0
608
+ LGPL-2.0+
609
+ LGPL-2.1
610
+ LGPL-2.1+
611
+ LGPL-3.0
612
+ LGPL-3.0+
613
+ Nunit
614
+ StandardML-NJ
615
+ bzip2-1.0.5
616
+ eCos-2.0
617
+ wxWindows
618
+ ].freeze
619
+
576
620
  # exception identifiers
577
621
  EXCEPTION_IDENTIFIERS = %w[
578
622
  389-exception
@@ -580,6 +624,7 @@ class Gem::Licenses
580
624
  Autoconf-exception-2.0
581
625
  Autoconf-exception-3.0
582
626
  Autoconf-exception-generic
627
+ Autoconf-exception-generic-3.0
583
628
  Autoconf-exception-macro
584
629
  Bison-exception-2.2
585
630
  Bootloader-exception
@@ -590,8 +635,10 @@ class Gem::Licenses
590
635
  Fawkes-Runtime-exception
591
636
  Font-exception-2.0
592
637
  GCC-exception-2.0
638
+ GCC-exception-2.0-note
593
639
  GCC-exception-3.1
594
640
  GNAT-exception
641
+ GNU-compiler-exception
595
642
  GPL-3.0-interface-exception
596
643
  GPL-3.0-linking-exception
597
644
  GPL-3.0-linking-source-exception
@@ -605,7 +652,6 @@ class Gem::Licenses
605
652
  LZMA-exception
606
653
  Libtool-exception
607
654
  Linux-syscall-note
608
- Nokia-Qt-exception-1.1
609
655
  OCCT-exception-1.0
610
656
  OCaml-LGPL-linking-exception
611
657
  OpenJDK-assembly-exception-1.0
@@ -614,10 +660,13 @@ class Gem::Licenses
614
660
  Qt-GPL-exception-1.0
615
661
  Qt-LGPL-exception-1.1
616
662
  Qwt-exception-1.0
663
+ SANE-exception
617
664
  SHL-2.0
618
665
  SHL-2.1
619
666
  SWI-exception
620
667
  Swift-exception
668
+ Texinfo-exception
669
+ UBDL-exception
621
670
  Universal-FOSS-exception-1.0
622
671
  WxWindows-exception-3.1
623
672
  cryptsetup-OpenSSL-exception
@@ -628,12 +677,17 @@ class Gem::Licenses
628
677
  libpri-OpenH323-exception
629
678
  mif-exception
630
679
  openvpn-openssl-exception
680
+ stunnel-exception
631
681
  u-boot-exception-2.0
632
682
  vsftpd-openssl-exception
633
683
  x11vnc-openssl-exception
634
684
  ].freeze
635
685
 
636
- REGEXP = %r{
686
+ DEPRECATED_EXCEPTION_IDENTIFIERS = %w[
687
+ Nokia-Qt-exception-1.1
688
+ ].freeze
689
+
690
+ VALID_REGEXP = /
637
691
  \A
638
692
  (?:
639
693
  #{Regexp.union(LICENSE_IDENTIFIERS)}
@@ -643,10 +697,34 @@ class Gem::Licenses
643
697
  | #{LICENSE_REF}
644
698
  )
645
699
  \Z
646
- }ox.freeze
700
+ /ox
701
+
702
+ DEPRECATED_LICENSE_REGEXP = /
703
+ \A
704
+ #{Regexp.union(DEPRECATED_LICENSE_IDENTIFIERS)}
705
+ \+?
706
+ (?:\s WITH \s .+?)?
707
+ \Z
708
+ /ox
709
+
710
+ DEPRECATED_EXCEPTION_REGEXP = /
711
+ \A
712
+ .+?
713
+ \+?
714
+ (?:\s WITH \s #{Regexp.union(DEPRECATED_EXCEPTION_IDENTIFIERS)})
715
+ \Z
716
+ /ox
647
717
 
648
718
  def self.match?(license)
649
- !REGEXP.match(license).nil?
719
+ VALID_REGEXP.match?(license)
720
+ end
721
+
722
+ def self.deprecated_license_id?(license)
723
+ DEPRECATED_LICENSE_REGEXP.match?(license)
724
+ end
725
+
726
+ def self.deprecated_exception_id?(license)
727
+ DEPRECATED_EXCEPTION_REGEXP.match?(license)
650
728
  end
651
729
 
652
730
  def self.suggestions(license)
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gem
4
- class List
4
+ # The Gem::List class is currently unused and will be removed in the next major rubygems version
5
+ class List # :nodoc:
5
6
  include Enumerable
6
7
  attr_accessor :value, :tail
7
8
 
@@ -35,4 +36,5 @@ module Gem
35
36
  List.new value, list
36
37
  end
37
38
  end
39
+ deprecate_constant :List
38
40
  end
data/lib/rubygems/util.rb CHANGED
@@ -6,7 +6,6 @@ require_relative "deprecate"
6
6
  # This module contains various utility methods as module methods.
7
7
 
8
8
  module Gem::Util
9
-
10
9
  ##
11
10
  # Zlib::GzipReader wrapper that unzips +data+.
12
11
 
@@ -61,7 +60,7 @@ module Gem::Util
61
60
  # Invokes system, but silences all output.
62
61
 
63
62
  def self.silent_system(*command)
64
- opt = { :out => IO::NULL, :err => [:child, :out] }
63
+ opt = { out: IO::NULL, err: [:child, :out] }
65
64
  if Hash === command.last
66
65
  opt.update(command.last)
67
66
  cmds = command[0...-1]
@@ -110,11 +109,10 @@ module Gem::Util
110
109
  # comes with a leading slash.
111
110
 
112
111
  def self.correct_for_windows_path(path)
113
- if path[0].chr == "/" && path[1].chr =~ /[a-z]/i && path[2].chr == ":"
112
+ if path[0].chr == "/" && path[1].chr.match?(/[a-z]/i) && path[2].chr == ":"
114
113
  path[1..-1]
115
114
  else
116
115
  path
117
116
  end
118
117
  end
119
-
120
118
  end
@@ -25,7 +25,7 @@ class Gem::Validator
25
25
  installed_files = []
26
26
 
27
27
  Find.find gem_directory do |file_name|
28
- fn = file_name[gem_directory.size..file_name.size - 1].sub(/^\//, "")
28
+ fn = file_name[gem_directory.size..file_name.size - 1].sub(%r{^/}, "")
29
29
  installed_files << fn unless
30
30
  fn.empty? || fn.include?("CVS") || File.directory?(file_name)
31
31
  end
@@ -63,7 +63,9 @@ class Gem::Validator
63
63
  errors = Hash.new {|h,k| h[k] = {} }
64
64
 
65
65
  Gem::Specification.each do |spec|
66
- next unless gems.include? spec.name unless gems.empty?
66
+ unless gems.empty?
67
+ next unless gems.include? spec.name
68
+ end
67
69
  next if spec.default_gem?
68
70
 
69
71
  gem_name = spec.file_name
@@ -88,7 +90,7 @@ class Gem::Validator
88
90
 
89
91
  good, gone, unreadable = nil, nil, nil, nil
90
92
 
91
- File.open gem_path, Gem.binary_mode do |file|
93
+ File.open gem_path, Gem.binary_mode do |_file|
92
94
  package = Gem::Package.new gem_path
93
95
 
94
96
  good, gone = package.contents.partition do |file_name|
@@ -108,7 +110,7 @@ class Gem::Validator
108
110
  end
109
111
 
110
112
  good.each do |entry, data|
111
- next unless data # HACK `gem check -a mkrf`
113
+ next unless data # HACK: `gem check -a mkrf`
112
114
 
113
115
  source = File.join gem_directory, entry["path"]
114
116