rubygems-update 3.0.9 → 3.1.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (428) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +31 -8
  3. data/.travis.yml +9 -27
  4. data/CONTRIBUTING.md +13 -0
  5. data/History.txt +24 -28
  6. data/MAINTAINERS.txt +1 -6
  7. data/Manifest.txt +65 -15
  8. data/Rakefile +39 -23
  9. data/bin/gem +0 -6
  10. data/bundler/CHANGELOG.md +746 -570
  11. data/bundler/CODE_OF_CONDUCT.md +117 -23
  12. data/bundler/LICENSE.md +18 -19
  13. data/bundler/README.md +9 -8
  14. data/bundler/bundler.gemspec +8 -25
  15. data/bundler/exe/bundle +19 -3
  16. data/bundler/lib/bundler.rb +120 -67
  17. data/bundler/lib/bundler/build_metadata.rb +1 -3
  18. data/bundler/lib/bundler/capistrano.rb +4 -4
  19. data/bundler/lib/bundler/cli.rb +129 -121
  20. data/bundler/lib/bundler/cli/add.rb +27 -16
  21. data/bundler/lib/bundler/cli/common.rb +11 -12
  22. data/bundler/lib/bundler/cli/config.rb +161 -86
  23. data/bundler/lib/bundler/cli/console.rb +1 -1
  24. data/bundler/lib/bundler/cli/doctor.rb +4 -4
  25. data/bundler/lib/bundler/cli/exec.rb +4 -9
  26. data/bundler/lib/bundler/cli/gem.rb +5 -5
  27. data/bundler/lib/bundler/cli/info.rb +17 -5
  28. data/bundler/lib/bundler/cli/init.rb +1 -1
  29. data/bundler/lib/bundler/cli/install.rb +11 -10
  30. data/bundler/lib/bundler/cli/issue.rb +3 -3
  31. data/bundler/lib/bundler/cli/open.rb +10 -6
  32. data/bundler/lib/bundler/cli/outdated.rb +85 -81
  33. data/bundler/lib/bundler/cli/package.rb +8 -9
  34. data/bundler/lib/bundler/cli/plugin.rb +9 -2
  35. data/bundler/lib/bundler/cli/pristine.rb +1 -1
  36. data/bundler/lib/bundler/cli/show.rb +1 -1
  37. data/bundler/lib/bundler/cli/update.rb +31 -11
  38. data/bundler/lib/bundler/compact_index_client.rb +25 -9
  39. data/bundler/lib/bundler/compact_index_client/updater.rb +2 -6
  40. data/bundler/lib/bundler/current_ruby.rb +9 -7
  41. data/bundler/lib/bundler/definition.rb +35 -26
  42. data/bundler/lib/bundler/dependency.rb +16 -4
  43. data/bundler/lib/bundler/deployment.rb +1 -1
  44. data/bundler/lib/bundler/dsl.rb +15 -39
  45. data/bundler/lib/bundler/env.rb +8 -13
  46. data/bundler/lib/bundler/environment_preserver.rb +0 -1
  47. data/bundler/lib/bundler/feature_flag.rb +23 -34
  48. data/bundler/lib/bundler/fetcher.rb +14 -11
  49. data/bundler/lib/bundler/fetcher/compact_index.rb +26 -12
  50. data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
  51. data/bundler/lib/bundler/fetcher/downloader.rb +4 -1
  52. data/bundler/lib/bundler/fetcher/index.rb +4 -2
  53. data/bundler/lib/bundler/friendly_errors.rb +4 -5
  54. data/bundler/lib/bundler/gem_helper.rb +39 -24
  55. data/bundler/lib/bundler/gem_helpers.rb +2 -4
  56. data/bundler/lib/bundler/gem_tasks.rb +1 -1
  57. data/bundler/lib/bundler/gem_version_promoter.rb +3 -3
  58. data/bundler/lib/bundler/graph.rb +2 -2
  59. data/bundler/lib/bundler/injector.rb +10 -8
  60. data/bundler/lib/bundler/inline.rb +19 -18
  61. data/bundler/lib/bundler/installer.rb +7 -14
  62. data/bundler/lib/bundler/installer/gem_installer.rb +5 -1
  63. data/bundler/lib/bundler/installer/parallel_installer.rb +4 -8
  64. data/bundler/lib/bundler/installer/standalone.rb +1 -2
  65. data/bundler/lib/bundler/lazy_specification.rb +2 -2
  66. data/bundler/lib/bundler/lockfile_parser.rb +13 -21
  67. data/bundler/lib/bundler/match_platform.rb +1 -1
  68. data/bundler/lib/bundler/plugin.rb +42 -29
  69. data/bundler/lib/bundler/plugin/api.rb +1 -1
  70. data/bundler/lib/bundler/plugin/api/source.rb +2 -2
  71. data/bundler/lib/bundler/plugin/index.rb +14 -3
  72. data/bundler/lib/bundler/plugin/installer.rb +28 -15
  73. data/bundler/lib/bundler/psyched_yaml.rb +1 -1
  74. data/bundler/lib/bundler/resolver.rb +72 -24
  75. data/bundler/lib/bundler/resolver/spec_group.rb +3 -2
  76. data/bundler/lib/bundler/retry.rb +2 -2
  77. data/bundler/lib/bundler/ruby_version.rb +4 -19
  78. data/bundler/lib/bundler/rubygems_ext.rb +10 -66
  79. data/bundler/lib/bundler/rubygems_gem_installer.rb +1 -8
  80. data/bundler/lib/bundler/rubygems_integration.rb +144 -395
  81. data/bundler/lib/bundler/runtime.rb +2 -9
  82. data/bundler/lib/bundler/settings.rb +15 -47
  83. data/bundler/lib/bundler/setup.rb +6 -5
  84. data/bundler/lib/bundler/shared_helpers.rb +58 -71
  85. data/bundler/lib/bundler/similarity_detector.rb +2 -2
  86. data/bundler/lib/bundler/source.rb +5 -5
  87. data/bundler/lib/bundler/source/git.rb +19 -12
  88. data/bundler/lib/bundler/source/git/git_proxy.rb +35 -39
  89. data/bundler/lib/bundler/source/metadata.rb +7 -2
  90. data/bundler/lib/bundler/source/path.rb +13 -8
  91. data/bundler/lib/bundler/source/rubygems.rb +11 -5
  92. data/bundler/lib/bundler/source/rubygems/remote.rb +1 -2
  93. data/bundler/lib/bundler/source_list.rb +9 -12
  94. data/bundler/lib/bundler/spec_set.rb +23 -12
  95. data/bundler/lib/bundler/stub_specification.rb +18 -30
  96. data/bundler/lib/bundler/templates/Executable.bundler +23 -14
  97. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +3 -3
  98. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +8 -2
  99. data/bundler/lib/bundler/templates/newgem/README.md.tt +4 -3
  100. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +6 -27
  101. data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +1 -1
  102. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -1
  103. data/bundler/lib/bundler/ui.rb +3 -3
  104. data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
  105. data/bundler/lib/bundler/ui/shell.rb +4 -8
  106. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
  107. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
  108. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
  109. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  110. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +151 -48
  111. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils/version.rb +5 -0
  112. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +6 -6
  113. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
  114. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
  115. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
  116. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
  117. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
  118. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
  119. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
  120. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
  121. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +30 -8
  122. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  123. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
  124. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
  125. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +248 -279
  126. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
  127. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
  128. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  129. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +7 -2
  130. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +21 -11
  131. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
  132. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -1
  133. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
  134. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +11 -2
  135. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -1
  136. data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +16 -17
  137. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +82 -0
  138. data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
  139. data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
  140. data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
  141. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +7 -2
  142. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +6 -6
  143. data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
  144. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +52 -7
  145. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
  146. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
  147. data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  148. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  149. data/bundler/lib/bundler/vendored_fileutils.rb +1 -6
  150. data/bundler/lib/bundler/vendored_molinillo.rb +1 -1
  151. data/bundler/lib/bundler/vendored_persistent.rb +7 -5
  152. data/bundler/lib/bundler/vendored_thor.rb +2 -2
  153. data/bundler/lib/bundler/version.rb +1 -20
  154. data/bundler/lib/bundler/version_ranges.rb +51 -5
  155. data/bundler/lib/bundler/vlad.rb +2 -2
  156. data/bundler/lib/bundler/worker.rb +1 -3
  157. data/bundler/lib/bundler/yaml_serializer.rb +2 -3
  158. data/bundler/man/bundle-add.1 +66 -0
  159. data/bundler/man/bundle-add.1.txt +58 -0
  160. data/bundler/man/bundle-add.ronn +7 -1
  161. data/bundler/man/bundle-binstubs.1 +40 -0
  162. data/bundler/man/bundle-binstubs.1.txt +48 -0
  163. data/bundler/man/bundle-binstubs.ronn +1 -1
  164. data/bundler/man/bundle-check.1 +31 -0
  165. data/bundler/man/bundle-check.1.txt +33 -0
  166. data/bundler/man/bundle-clean.1 +24 -0
  167. data/bundler/man/bundle-clean.1.txt +26 -0
  168. data/bundler/man/bundle-config.1 +497 -0
  169. data/bundler/man/bundle-config.1.txt +528 -0
  170. data/bundler/man/bundle-config.ronn +42 -40
  171. data/bundler/man/bundle-doctor.1 +44 -0
  172. data/bundler/man/bundle-doctor.1.txt +44 -0
  173. data/bundler/man/bundle-exec.1 +165 -0
  174. data/bundler/man/bundle-exec.1.txt +178 -0
  175. data/bundler/man/bundle-exec.ronn +1 -1
  176. data/bundler/man/bundle-gem.1 +80 -0
  177. data/bundler/man/bundle-gem.1.txt +91 -0
  178. data/bundler/man/bundle-info.1 +20 -0
  179. data/bundler/man/bundle-info.1.txt +21 -0
  180. data/bundler/man/bundle-init.1 +25 -0
  181. data/bundler/man/bundle-init.1.txt +34 -0
  182. data/bundler/man/bundle-init.ronn +1 -1
  183. data/bundler/man/bundle-inject.1 +33 -0
  184. data/bundler/man/bundle-inject.1.txt +32 -0
  185. data/bundler/man/bundle-install.1 +311 -0
  186. data/bundler/man/bundle-install.1.txt +401 -0
  187. data/bundler/man/bundle-install.ronn +9 -4
  188. data/bundler/man/bundle-list.1 +50 -0
  189. data/bundler/man/bundle-list.1.txt +43 -0
  190. data/bundler/man/bundle-lock.1 +84 -0
  191. data/bundler/man/bundle-lock.1.txt +93 -0
  192. data/bundler/man/bundle-open.1 +32 -0
  193. data/bundler/man/bundle-open.1.txt +29 -0
  194. data/bundler/man/bundle-outdated.1 +155 -0
  195. data/bundler/man/bundle-outdated.1.txt +131 -0
  196. data/bundler/man/bundle-package.1 +55 -0
  197. data/bundler/man/bundle-package.1.txt +79 -0
  198. data/bundler/man/bundle-platform.1 +61 -0
  199. data/bundler/man/bundle-platform.1.txt +57 -0
  200. data/bundler/man/bundle-pristine.1 +34 -0
  201. data/bundler/man/bundle-pristine.1.txt +44 -0
  202. data/bundler/man/bundle-remove.1 +31 -0
  203. data/bundler/man/bundle-remove.1.txt +34 -0
  204. data/bundler/man/bundle-show.1 +23 -0
  205. data/bundler/man/bundle-show.1.txt +27 -0
  206. data/bundler/man/bundle-update.1 +394 -0
  207. data/bundler/man/bundle-update.1.txt +390 -0
  208. data/bundler/man/bundle-update.ronn +3 -3
  209. data/bundler/man/bundle-viz.1 +39 -0
  210. data/bundler/man/bundle-viz.1.txt +39 -0
  211. data/bundler/man/bundle.1 +136 -0
  212. data/bundler/man/bundle.1.txt +116 -0
  213. data/bundler/man/bundle.ronn +2 -2
  214. data/bundler/man/gemfile.5 +686 -0
  215. data/bundler/man/gemfile.5.ronn +14 -18
  216. data/bundler/man/gemfile.5.txt +649 -0
  217. data/bundler/man/index.txt +25 -0
  218. data/lib/rubygems.rb +80 -48
  219. data/lib/rubygems/available_set.rb +1 -0
  220. data/lib/rubygems/basic_specification.rb +17 -6
  221. data/lib/rubygems/bundler_version_finder.rb +5 -0
  222. data/lib/rubygems/command.rb +34 -5
  223. data/lib/rubygems/command_manager.rb +0 -6
  224. data/lib/rubygems/commands/build_command.rb +21 -8
  225. data/lib/rubygems/commands/cert_command.rb +0 -1
  226. data/lib/rubygems/commands/cleanup_command.rb +7 -7
  227. data/lib/rubygems/commands/contents_command.rb +3 -3
  228. data/lib/rubygems/commands/dependency_command.rb +4 -3
  229. data/lib/rubygems/commands/environment_command.rb +0 -3
  230. data/lib/rubygems/commands/info_command.rb +2 -0
  231. data/lib/rubygems/commands/install_command.rb +12 -52
  232. data/lib/rubygems/commands/lock_command.rb +2 -2
  233. data/lib/rubygems/commands/mirror_command.rb +1 -0
  234. data/lib/rubygems/commands/open_command.rb +2 -1
  235. data/lib/rubygems/commands/outdated_command.rb +1 -0
  236. data/lib/rubygems/commands/owner_command.rb +2 -7
  237. data/lib/rubygems/commands/pristine_command.rb +3 -0
  238. data/lib/rubygems/commands/push_command.rb +4 -6
  239. data/lib/rubygems/commands/query_command.rb +94 -80
  240. data/lib/rubygems/commands/rdoc_command.rb +1 -0
  241. data/lib/rubygems/commands/setup_command.rb +10 -8
  242. data/lib/rubygems/commands/signin_command.rb +1 -0
  243. data/lib/rubygems/commands/specification_command.rb +1 -0
  244. data/lib/rubygems/commands/stale_command.rb +2 -0
  245. data/lib/rubygems/commands/uninstall_command.rb +1 -0
  246. data/lib/rubygems/commands/unpack_command.rb +2 -29
  247. data/lib/rubygems/commands/update_command.rb +14 -14
  248. data/lib/rubygems/commands/which_command.rb +1 -0
  249. data/lib/rubygems/commands/yank_command.rb +8 -2
  250. data/lib/rubygems/compatibility.rb +4 -4
  251. data/lib/rubygems/config_file.rb +28 -23
  252. data/lib/rubygems/core_ext/kernel_gem.rb +2 -5
  253. data/lib/rubygems/core_ext/kernel_require.rb +29 -2
  254. data/lib/rubygems/core_ext/kernel_warn.rb +10 -4
  255. data/lib/rubygems/defaults.rb +10 -17
  256. data/lib/rubygems/dependency.rb +21 -6
  257. data/lib/rubygems/dependency_installer.rb +19 -102
  258. data/lib/rubygems/dependency_list.rb +11 -10
  259. data/lib/rubygems/deprecate.rb +5 -5
  260. data/lib/rubygems/errors.rb +11 -2
  261. data/lib/rubygems/exceptions.rb +9 -0
  262. data/lib/rubygems/ext/builder.rb +24 -43
  263. data/lib/rubygems/ext/cmake_builder.rb +2 -0
  264. data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
  265. data/lib/rubygems/ext/rake_builder.rb +1 -1
  266. data/lib/rubygems/gemcutter_utilities.rb +19 -26
  267. data/lib/rubygems/indexer.rb +9 -5
  268. data/lib/rubygems/installer.rb +26 -13
  269. data/lib/rubygems/installer_test_case.rb +86 -38
  270. data/lib/rubygems/local_remote_options.rb +1 -1
  271. data/lib/rubygems/mock_gem_ui.rb +4 -1
  272. data/lib/rubygems/name_tuple.rb +1 -0
  273. data/lib/rubygems/package.rb +37 -9
  274. data/lib/rubygems/package/tar_writer.rb +4 -4
  275. data/lib/rubygems/path_support.rb +2 -0
  276. data/lib/rubygems/platform.rb +2 -1
  277. data/lib/rubygems/psych_tree.rb +2 -0
  278. data/lib/rubygems/remote_fetcher.rb +5 -1
  279. data/lib/rubygems/request.rb +5 -3
  280. data/lib/rubygems/request/connection_pools.rb +4 -4
  281. data/lib/rubygems/request/http_pool.rb +1 -0
  282. data/lib/rubygems/request/https_pool.rb +2 -0
  283. data/lib/rubygems/request_set.rb +2 -2
  284. data/lib/rubygems/request_set/gem_dependency_api.rb +2 -2
  285. data/lib/rubygems/request_set/lockfile.rb +5 -2
  286. data/lib/rubygems/request_set/lockfile/parser.rb +4 -2
  287. data/lib/rubygems/request_set/lockfile/tokenizer.rb +2 -0
  288. data/lib/rubygems/requirement.rb +20 -18
  289. data/lib/rubygems/resolver.rb +4 -5
  290. data/lib/rubygems/resolver/activation_request.rb +19 -49
  291. data/lib/rubygems/resolver/best_set.rb +2 -2
  292. data/lib/rubygems/resolver/conflict.rb +0 -5
  293. data/lib/rubygems/resolver/installer_set.rb +3 -3
  294. data/lib/rubygems/resolver/lock_set.rb +1 -1
  295. data/lib/rubygems/resolver/lock_specification.rb +2 -2
  296. data/lib/rubygems/resolver/requirement_list.rb +1 -0
  297. data/lib/rubygems/resolver/specification.rb +1 -0
  298. data/lib/rubygems/resolver/stats.rb +2 -0
  299. data/lib/rubygems/security/signer.rb +3 -2
  300. data/lib/rubygems/server.rb +5 -4
  301. data/lib/rubygems/source_list.rb +1 -0
  302. data/lib/rubygems/spec_fetcher.rb +3 -16
  303. data/lib/rubygems/specification.rb +69 -133
  304. data/lib/rubygems/specification_policy.rb +7 -2
  305. data/{bundler/lib/bundler → lib/rubygems}/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -0
  306. data/{bundler/lib/bundler → lib/rubygems}/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -0
  307. data/{bundler/lib/bundler → lib/rubygems}/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -0
  308. data/lib/rubygems/stub_specification.rb +5 -2
  309. data/lib/rubygems/syck_hack.rb +2 -0
  310. data/lib/rubygems/test_case.rb +78 -227
  311. data/lib/rubygems/test_utilities.rb +17 -6
  312. data/lib/rubygems/text.rb +2 -3
  313. data/lib/rubygems/uninstaller.rb +15 -15
  314. data/lib/rubygems/user_interaction.rb +9 -1
  315. data/lib/rubygems/util.rb +5 -41
  316. data/lib/rubygems/util/licenses.rb +398 -396
  317. data/lib/rubygems/util/list.rb +2 -0
  318. data/lib/rubygems/validator.rb +9 -29
  319. data/lib/rubygems/version.rb +5 -3
  320. data/rubygems-update.gemspec +3 -3
  321. data/test/rubygems/plugin/load/rubygems_plugin.rb +2 -0
  322. data/test/rubygems/test_bundled_ca.rb +4 -7
  323. data/test/rubygems/test_deprecate.rb +3 -0
  324. data/test/rubygems/test_gem.rb +183 -176
  325. data/test/rubygems/test_gem_available_set.rb +3 -2
  326. data/test/rubygems/test_gem_bundler_version_finder.rb +3 -1
  327. data/test/rubygems/test_gem_command.rb +94 -5
  328. data/test/rubygems/test_gem_command_manager.rb +5 -13
  329. data/test/rubygems/test_gem_commands_build_command.rb +142 -4
  330. data/test/rubygems/test_gem_commands_cert_command.rb +15 -1
  331. data/test/rubygems/test_gem_commands_cleanup_command.rb +22 -6
  332. data/test/rubygems/test_gem_commands_dependency_command.rb +1 -1
  333. data/test/rubygems/test_gem_commands_environment_command.rb +1 -11
  334. data/test/rubygems/test_gem_commands_help_command.rb +2 -0
  335. data/test/rubygems/test_gem_commands_info_command.rb +1 -0
  336. data/test/rubygems/test_gem_commands_install_command.rb +207 -2
  337. data/test/rubygems/test_gem_commands_mirror.rb +1 -0
  338. data/test/rubygems/test_gem_commands_outdated_command.rb +1 -0
  339. data/test/rubygems/test_gem_commands_owner_command.rb +4 -5
  340. data/test/rubygems/test_gem_commands_pristine_command.rb +56 -4
  341. data/test/rubygems/test_gem_commands_push_command.rb +19 -14
  342. data/test/rubygems/test_gem_commands_query_command.rb +27 -2
  343. data/test/rubygems/test_gem_commands_setup_command.rb +62 -37
  344. data/test/rubygems/test_gem_commands_signin_command.rb +5 -4
  345. data/test/rubygems/test_gem_commands_sources_command.rb +20 -6
  346. data/test/rubygems/test_gem_commands_uninstall_command.rb +107 -50
  347. data/test/rubygems/test_gem_commands_update_command.rb +86 -23
  348. data/test/rubygems/test_gem_commands_yank_command.rb +46 -1
  349. data/test/rubygems/test_gem_config_file.rb +9 -2
  350. data/test/rubygems/test_gem_dependency.rb +6 -0
  351. data/test/rubygems/test_gem_dependency_installer.rb +67 -36
  352. data/test/rubygems/test_gem_dependency_list.rb +21 -14
  353. data/test/rubygems/test_gem_ext_builder.rb +5 -1
  354. data/test/rubygems/test_gem_ext_cmake_builder.rb +2 -0
  355. data/test/rubygems/test_gem_ext_configure_builder.rb +8 -0
  356. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +12 -0
  357. data/test/rubygems/test_gem_ext_rake_builder.rb +2 -0
  358. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -8
  359. data/test/rubygems/test_gem_indexer.rb +31 -40
  360. data/test/rubygems/test_gem_install_update_options.rb +31 -17
  361. data/test/rubygems/test_gem_installer.rb +383 -223
  362. data/test/rubygems/test_gem_package.rb +99 -14
  363. data/test/rubygems/test_gem_package_old.rb +57 -54
  364. data/test/rubygems/test_gem_package_tar_reader_entry.rb +6 -5
  365. data/test/rubygems/test_gem_package_tar_writer.rb +11 -6
  366. data/test/rubygems/test_gem_path_support.rb +19 -13
  367. data/test/rubygems/test_gem_platform.rb +4 -2
  368. data/test/rubygems/test_gem_rdoc.rb +1 -0
  369. data/test/rubygems/test_gem_remote_fetcher.rb +29 -16
  370. data/test/rubygems/test_gem_request.rb +19 -4
  371. data/test/rubygems/test_gem_request_connection_pools.rb +6 -2
  372. data/test/rubygems/test_gem_request_set.rb +33 -8
  373. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +1 -1
  374. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -0
  375. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +2 -1
  376. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +2 -0
  377. data/test/rubygems/test_gem_requirement.rb +7 -1
  378. data/test/rubygems/test_gem_resolver.rb +67 -23
  379. data/test/rubygems/test_gem_resolver_activation_request.rb +3 -32
  380. data/test/rubygems/test_gem_resolver_conflict.rb +0 -4
  381. data/test/rubygems/test_gem_resolver_git_specification.rb +1 -0
  382. data/test/rubygems/test_gem_resolver_index_specification.rb +7 -2
  383. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
  384. data/test/rubygems/test_gem_resolver_installer_set.rb +3 -1
  385. data/test/rubygems/test_gem_resolver_specification.rb +2 -0
  386. data/test/rubygems/test_gem_security.rb +6 -2
  387. data/test/rubygems/test_gem_security_signer.rb +1 -0
  388. data/test/rubygems/test_gem_server.rb +7 -2
  389. data/test/rubygems/test_gem_silent_ui.rb +1 -0
  390. data/test/rubygems/test_gem_source.rb +7 -7
  391. data/test/rubygems/test_gem_source_fetch_problem.rb +1 -0
  392. data/test/rubygems/test_gem_source_git.rb +4 -9
  393. data/test/rubygems/test_gem_source_installed.rb +6 -6
  394. data/test/rubygems/test_gem_source_list.rb +1 -0
  395. data/test/rubygems/test_gem_source_local.rb +5 -4
  396. data/test/rubygems/test_gem_source_lock.rb +12 -12
  397. data/test/rubygems/test_gem_source_specific_file.rb +7 -6
  398. data/test/rubygems/test_gem_source_vendor.rb +4 -4
  399. data/test/rubygems/test_gem_specification.rb +75 -43
  400. data/test/rubygems/test_gem_stream_ui.rb +2 -0
  401. data/test/rubygems/test_gem_stub_specification.rb +3 -1
  402. data/test/rubygems/test_gem_text.rb +1 -0
  403. data/test/rubygems/test_gem_uninstaller.rb +31 -10
  404. data/test/rubygems/test_gem_util.rb +6 -4
  405. data/test/rubygems/test_gem_validator.rb +3 -4
  406. data/test/rubygems/test_gem_version.rb +16 -8
  407. data/test/rubygems/test_kernel.rb +1 -0
  408. data/test/rubygems/test_rake_package.rb +26 -0
  409. data/test/rubygems/test_remote_fetch_error.rb +1 -0
  410. data/test/rubygems/test_require.rb +107 -3
  411. data/util/bisect +31 -0
  412. data/util/ci.sh +50 -0
  413. data/util/generate_spdx_license_list.rb +4 -2
  414. data/util/rubocop +2 -2
  415. data/util/update_bundled_ca_certificates.rb +3 -1
  416. metadata +97 -25
  417. data/appveyor.yml +0 -43
  418. data/bundler/CONTRIBUTING.md +0 -17
  419. data/bundler/exe/bundle_ruby +0 -60
  420. data/bundler/lib/bundler/cli/cache.rb +0 -36
  421. data/bundler/lib/bundler/compatibility_guard.rb +0 -14
  422. data/bundler/lib/bundler/ssl_certs/.document +0 -1
  423. data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
  424. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
  425. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
  426. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +0 -21
  427. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +0 -21
  428. 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, &arguments.pop)
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, &arguments.pop)
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, &arguments.pop)
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
  )
@@ -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 = options[: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::Specification.default_specifications_dir]
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
- if other_repo_specs.empty?
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 { |s|
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| io.write data end
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 where it accepts an array for a +command+ (Ruby 1.9+)
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
- return system(*(cmds << opt))
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
- 0BSD
13
- AAL
14
- ADSL
15
- AFL-1.1
16
- AFL-1.2
17
- AFL-2.0
18
- AFL-2.1
19
- AFL-3.0
20
- AGPL-1.0
21
- AGPL-3.0
22
- AGPL-3.0-only
23
- AGPL-3.0-or-later
24
- AMDPLPA
25
- AML
26
- AMPAS
27
- ANTLR-PD
28
- APAFML
29
- APL-1.0
30
- APSL-1.0
31
- APSL-1.1
32
- APSL-1.2
33
- APSL-2.0
34
- Abstyles
35
- Adobe-2006
36
- Adobe-Glyph
37
- Afmparse
38
- Aladdin
39
- Apache-1.0
40
- Apache-1.1
41
- Apache-2.0
42
- Artistic-1.0
43
- Artistic-1.0-Perl
44
- Artistic-1.0-cl8
45
- Artistic-2.0
46
- BSD-1-Clause
47
- BSD-2-Clause
48
- BSD-2-Clause-FreeBSD
49
- BSD-2-Clause-NetBSD
50
- BSD-2-Clause-Patent
51
- BSD-3-Clause
52
- BSD-3-Clause-Attribution
53
- BSD-3-Clause-Clear
54
- BSD-3-Clause-LBNL
55
- BSD-3-Clause-No-Nuclear-License
56
- BSD-3-Clause-No-Nuclear-License-2014
57
- BSD-3-Clause-No-Nuclear-Warranty
58
- BSD-4-Clause
59
- BSD-4-Clause-UC
60
- BSD-Protection
61
- BSD-Source-Code
62
- BSL-1.0
63
- Bahyph
64
- Barr
65
- Beerware
66
- BitTorrent-1.0
67
- BitTorrent-1.1
68
- Borceux
69
- CATOSL-1.1
70
- CC-BY-1.0
71
- CC-BY-2.0
72
- CC-BY-2.5
73
- CC-BY-3.0
74
- CC-BY-4.0
75
- CC-BY-NC-1.0
76
- CC-BY-NC-2.0
77
- CC-BY-NC-2.5
78
- CC-BY-NC-3.0
79
- CC-BY-NC-4.0
80
- CC-BY-NC-ND-1.0
81
- CC-BY-NC-ND-2.0
82
- CC-BY-NC-ND-2.5
83
- CC-BY-NC-ND-3.0
84
- CC-BY-NC-ND-4.0
85
- CC-BY-NC-SA-1.0
86
- CC-BY-NC-SA-2.0
87
- CC-BY-NC-SA-2.5
88
- CC-BY-NC-SA-3.0
89
- CC-BY-NC-SA-4.0
90
- CC-BY-ND-1.0
91
- CC-BY-ND-2.0
92
- CC-BY-ND-2.5
93
- CC-BY-ND-3.0
94
- CC-BY-ND-4.0
95
- CC-BY-SA-1.0
96
- CC-BY-SA-2.0
97
- CC-BY-SA-2.5
98
- CC-BY-SA-3.0
99
- CC-BY-SA-4.0
100
- CC0-1.0
101
- CDDL-1.0
102
- CDDL-1.1
103
- CDLA-Permissive-1.0
104
- CDLA-Sharing-1.0
105
- CECILL-1.0
106
- CECILL-1.1
107
- CECILL-2.0
108
- CECILL-2.1
109
- CECILL-B
110
- CECILL-C
111
- CNRI-Jython
112
- CNRI-Python
113
- CNRI-Python-GPL-Compatible
114
- CPAL-1.0
115
- CPL-1.0
116
- CPOL-1.02
117
- CUA-OPL-1.0
118
- Caldera
119
- ClArtistic
120
- Condor-1.1
121
- Crossword
122
- CrystalStacker
123
- Cube
124
- D-FSL-1.0
125
- DOC
126
- DSDP
127
- Dotseqn
128
- ECL-1.0
129
- ECL-2.0
130
- EFL-1.0
131
- EFL-2.0
132
- EPL-1.0
133
- EPL-2.0
134
- EUDatagrid
135
- EUPL-1.0
136
- EUPL-1.1
137
- EUPL-1.2
138
- Entessa
139
- ErlPL-1.1
140
- Eurosym
141
- FSFAP
142
- FSFUL
143
- FSFULLR
144
- FTL
145
- Fair
146
- Frameworx-1.0
147
- FreeImage
148
- GFDL-1.1
149
- GFDL-1.1-only
150
- GFDL-1.1-or-later
151
- GFDL-1.2
152
- GFDL-1.2-only
153
- GFDL-1.2-or-later
154
- GFDL-1.3
155
- GFDL-1.3-only
156
- GFDL-1.3-or-later
157
- GL2PS
158
- GPL-1.0
159
- GPL-1.0+
160
- GPL-1.0-only
161
- GPL-1.0-or-later
162
- GPL-2.0
163
- GPL-2.0+
164
- GPL-2.0-only
165
- GPL-2.0-or-later
166
- GPL-2.0-with-GCC-exception
167
- GPL-2.0-with-autoconf-exception
168
- GPL-2.0-with-bison-exception
169
- GPL-2.0-with-classpath-exception
170
- GPL-2.0-with-font-exception
171
- GPL-3.0
172
- GPL-3.0+
173
- GPL-3.0-only
174
- GPL-3.0-or-later
175
- GPL-3.0-with-GCC-exception
176
- GPL-3.0-with-autoconf-exception
177
- Giftware
178
- Glide
179
- Glulxe
180
- HPND
181
- HaskellReport
182
- IBM-pibs
183
- ICU
184
- IJG
185
- IPA
186
- IPL-1.0
187
- ISC
188
- ImageMagick
189
- Imlib2
190
- Info-ZIP
191
- Intel
192
- Intel-ACPI
193
- Interbase-1.0
194
- JSON
195
- JasPer-2.0
196
- LAL-1.2
197
- LAL-1.3
198
- LGPL-2.0
199
- LGPL-2.0+
200
- LGPL-2.0-only
201
- LGPL-2.0-or-later
202
- LGPL-2.1
203
- LGPL-2.1+
204
- LGPL-2.1-only
205
- LGPL-2.1-or-later
206
- LGPL-3.0
207
- LGPL-3.0+
208
- LGPL-3.0-only
209
- LGPL-3.0-or-later
210
- LGPLLR
211
- LPL-1.0
212
- LPL-1.02
213
- LPPL-1.0
214
- LPPL-1.1
215
- LPPL-1.2
216
- LPPL-1.3a
217
- LPPL-1.3c
218
- Latex2e
219
- Leptonica
220
- LiLiQ-P-1.1
221
- LiLiQ-R-1.1
222
- LiLiQ-Rplus-1.1
223
- Libpng
224
- MIT
225
- MIT-CMU
226
- MIT-advertising
227
- MIT-enna
228
- MIT-feh
229
- MITNFA
230
- MPL-1.0
231
- MPL-1.1
232
- MPL-2.0
233
- MPL-2.0-no-copyleft-exception
234
- MS-PL
235
- MS-RL
236
- MTLL
237
- MakeIndex
238
- MirOS
239
- Motosoto
240
- Multics
241
- Mup
242
- NASA-1.3
243
- NBPL-1.0
244
- NCSA
245
- NGPL
246
- NLOD-1.0
247
- NLPL
248
- NOSL
249
- NPL-1.0
250
- NPL-1.1
251
- NPOSL-3.0
252
- NRL
253
- NTP
254
- Naumen
255
- Net-SNMP
256
- NetCDF
257
- Newsletr
258
- Nokia
259
- Noweb
260
- Nunit
261
- OCCT-PL
262
- OCLC-2.0
263
- ODbL-1.0
264
- OFL-1.0
265
- OFL-1.1
266
- OGTSL
267
- OLDAP-1.1
268
- OLDAP-1.2
269
- OLDAP-1.3
270
- OLDAP-1.4
271
- OLDAP-2.0
272
- OLDAP-2.0.1
273
- OLDAP-2.1
274
- OLDAP-2.2
275
- OLDAP-2.2.1
276
- OLDAP-2.2.2
277
- OLDAP-2.3
278
- OLDAP-2.4
279
- OLDAP-2.5
280
- OLDAP-2.6
281
- OLDAP-2.7
282
- OLDAP-2.8
283
- OML
284
- OPL-1.0
285
- OSET-PL-2.1
286
- OSL-1.0
287
- OSL-1.1
288
- OSL-2.0
289
- OSL-2.1
290
- OSL-3.0
291
- OpenSSL
292
- PDDL-1.0
293
- PHP-3.0
294
- PHP-3.01
295
- Plexus
296
- PostgreSQL
297
- Python-2.0
298
- QPL-1.0
299
- Qhull
300
- RHeCos-1.1
301
- RPL-1.1
302
- RPL-1.5
303
- RPSL-1.0
304
- RSA-MD
305
- RSCPL
306
- Rdisc
307
- Ruby
308
- SAX-PD
309
- SCEA
310
- SGI-B-1.0
311
- SGI-B-1.1
312
- SGI-B-2.0
313
- SISSL
314
- SISSL-1.2
315
- SMLNJ
316
- SMPPL
317
- SNIA
318
- SPL-1.0
319
- SWL
320
- Saxpath
321
- Sendmail
322
- SimPL-2.0
323
- Sleepycat
324
- Spencer-86
325
- Spencer-94
326
- Spencer-99
327
- StandardML-NJ
328
- SugarCRM-1.1.3
329
- TCL
330
- TCP-wrappers
331
- TMate
332
- TORQUE-1.1
333
- TOSL
334
- UPL-1.0
335
- Unicode-DFS-2015
336
- Unicode-DFS-2016
337
- Unicode-TOU
338
- Unlicense
339
- VOSTROM
340
- VSL-1.0
341
- Vim
342
- W3C
343
- W3C-19980720
344
- W3C-20150513
345
- WTFPL
346
- Watcom-1.0
347
- Wsuipa
348
- X11
349
- XFree86-1.1
350
- XSkat
351
- Xerox
352
- Xnet
353
- YPL-1.0
354
- YPL-1.1
355
- ZPL-1.1
356
- ZPL-2.0
357
- ZPL-2.1
358
- Zed
359
- Zend-2.0
360
- Zimbra-1.3
361
- Zimbra-1.4
362
- Zlib
363
- bzip2-1.0.5
364
- bzip2-1.0.6
365
- curl
366
- diffmark
367
- dvipdfm
368
- eCos-2.0
369
- eGenix
370
- gSOAP-1.3b
371
- gnuplot
372
- iMatix
373
- libtiff
374
- mpich2
375
- psfrag
376
- psutils
377
- wxWindows
378
- xinetd
379
- xpp
380
- zlib-acknowledgement
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
- 389-exception
386
- Autoconf-exception-2.0
387
- Autoconf-exception-3.0
388
- Bison-exception-2.2
389
- Bootloader-exception
390
- CLISP-exception-2.0
391
- Classpath-exception-2.0
392
- DigiRule-FOSS-exception
393
- FLTK-exception
394
- Fawkes-Runtime-exception
395
- Font-exception-2.0
396
- GCC-exception-2.0
397
- GCC-exception-3.1
398
- LZMA-exception
399
- Libtool-exception
400
- Linux-syscall-note
401
- Nokia-Qt-exception-1.1
402
- OCCT-exception-1.0
403
- Qwt-exception-1.0
404
- WxWindows-exception-3.1
405
- eCos-exception-2.0
406
- freertos-exception-2.0
407
- gnu-javamail-exception
408
- i2p-gpl-java-exception
409
- mif-exception
410
- openvpn-openssl-exception
411
- u-boot-exception-2.0
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