rubygems-update 3.2.3 → 3.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/{History.txt → CHANGELOG.md} +443 -427
  3. data/Manifest.txt +28 -27
  4. data/Rakefile +3 -3
  5. data/bundler/CHANGELOG.md +7 -0
  6. data/bundler/bundler.gemspec +1 -1
  7. data/bundler/lib/bundler/build_metadata.rb +2 -2
  8. data/bundler/lib/bundler/cli.rb +2 -5
  9. data/bundler/{man → lib/bundler/man}/bundle-add.1 +0 -0
  10. data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +0 -0
  11. data/bundler/{man → lib/bundler/man}/bundle-cache.1 +0 -0
  12. data/bundler/{man → lib/bundler/man}/bundle-check.1 +0 -0
  13. data/bundler/{man → lib/bundler/man}/bundle-clean.1 +0 -0
  14. data/bundler/{man → lib/bundler/man}/bundle-config.1 +0 -0
  15. data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +0 -0
  16. data/bundler/{man → lib/bundler/man}/bundle-exec.1 +0 -0
  17. data/bundler/{man → lib/bundler/man}/bundle-gem.1 +0 -0
  18. data/bundler/{man → lib/bundler/man}/bundle-info.1 +0 -0
  19. data/bundler/{man → lib/bundler/man}/bundle-init.1 +0 -0
  20. data/bundler/{man → lib/bundler/man}/bundle-inject.1 +0 -0
  21. data/bundler/{man → lib/bundler/man}/bundle-install.1 +0 -0
  22. data/bundler/{man → lib/bundler/man}/bundle-list.1 +0 -0
  23. data/bundler/{man → lib/bundler/man}/bundle-lock.1 +0 -0
  24. data/bundler/{man → lib/bundler/man}/bundle-open.1 +0 -0
  25. data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +0 -0
  26. data/bundler/{man → lib/bundler/man}/bundle-platform.1 +0 -0
  27. data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +0 -0
  28. data/bundler/{man → lib/bundler/man}/bundle-remove.1 +0 -0
  29. data/bundler/{man → lib/bundler/man}/bundle-show.1 +0 -0
  30. data/bundler/{man → lib/bundler/man}/bundle-update.1 +0 -0
  31. data/bundler/{man → lib/bundler/man}/bundle-viz.1 +0 -0
  32. data/bundler/{man → lib/bundler/man}/bundle.1 +0 -0
  33. data/bundler/{man → lib/bundler/man}/gemfile.5 +0 -0
  34. data/bundler/{man → lib/bundler/man}/index.txt +0 -0
  35. data/bundler/lib/bundler/source/git/git_proxy.rb +27 -40
  36. data/bundler/lib/bundler/version.rb +1 -1
  37. data/lib/rubygems.rb +1 -1
  38. data/lib/rubygems/commands/setup_command.rb +16 -60
  39. data/lib/rubygems/ext/builder.rb +3 -3
  40. data/lib/rubygems/ext/cmake_builder.rb +1 -2
  41. data/lib/rubygems/ext/configure_builder.rb +1 -2
  42. data/lib/rubygems/remote_fetcher.rb +3 -1
  43. data/lib/rubygems/resolver/best_set.rb +1 -1
  44. data/lib/rubygems/resolver/index_specification.rb +4 -1
  45. data/lib/rubygems/test_case.rb +3 -3
  46. data/rubygems-update.gemspec +2 -2
  47. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  48. data/test/rubygems/test_gem_commands_setup_command.rb +13 -36
  49. data/test/rubygems/test_gem_dependency_installer.rb +27 -47
  50. data/test/rubygems/test_gem_ext_builder.rb +6 -6
  51. data/test/rubygems/test_gem_ext_cmake_builder.rb +2 -4
  52. data/test/rubygems/test_gem_ext_configure_builder.rb +2 -2
  53. data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
  54. data/test/rubygems/test_gem_resolver_best_set.rb +23 -0
  55. data/test/rubygems/test_gem_specification.rb +1 -3
  56. metadata +32 -55
@@ -1,6 +1,6 @@
1
+ CHANGELOG.md
1
2
  CODE_OF_CONDUCT.md
2
3
  CONTRIBUTING.md
3
- History.txt
4
4
  LICENSE.txt
5
5
  MAINTAINERS.txt
6
6
  MIT.txt
@@ -91,31 +91,57 @@ bundler/lib/bundler/lazy_specification.rb
91
91
  bundler/lib/bundler/lockfile_generator.rb
92
92
  bundler/lib/bundler/lockfile_parser.rb
93
93
  bundler/lib/bundler/man/.document
94
+ bundler/lib/bundler/man/bundle-add.1
94
95
  bundler/lib/bundler/man/bundle-add.1.ronn
96
+ bundler/lib/bundler/man/bundle-binstubs.1
95
97
  bundler/lib/bundler/man/bundle-binstubs.1.ronn
98
+ bundler/lib/bundler/man/bundle-cache.1
96
99
  bundler/lib/bundler/man/bundle-cache.1.ronn
100
+ bundler/lib/bundler/man/bundle-check.1
97
101
  bundler/lib/bundler/man/bundle-check.1.ronn
102
+ bundler/lib/bundler/man/bundle-clean.1
98
103
  bundler/lib/bundler/man/bundle-clean.1.ronn
104
+ bundler/lib/bundler/man/bundle-config.1
99
105
  bundler/lib/bundler/man/bundle-config.1.ronn
106
+ bundler/lib/bundler/man/bundle-doctor.1
100
107
  bundler/lib/bundler/man/bundle-doctor.1.ronn
108
+ bundler/lib/bundler/man/bundle-exec.1
101
109
  bundler/lib/bundler/man/bundle-exec.1.ronn
110
+ bundler/lib/bundler/man/bundle-gem.1
102
111
  bundler/lib/bundler/man/bundle-gem.1.ronn
112
+ bundler/lib/bundler/man/bundle-info.1
103
113
  bundler/lib/bundler/man/bundle-info.1.ronn
114
+ bundler/lib/bundler/man/bundle-init.1
104
115
  bundler/lib/bundler/man/bundle-init.1.ronn
116
+ bundler/lib/bundler/man/bundle-inject.1
105
117
  bundler/lib/bundler/man/bundle-inject.1.ronn
118
+ bundler/lib/bundler/man/bundle-install.1
106
119
  bundler/lib/bundler/man/bundle-install.1.ronn
120
+ bundler/lib/bundler/man/bundle-list.1
107
121
  bundler/lib/bundler/man/bundle-list.1.ronn
122
+ bundler/lib/bundler/man/bundle-lock.1
108
123
  bundler/lib/bundler/man/bundle-lock.1.ronn
124
+ bundler/lib/bundler/man/bundle-open.1
109
125
  bundler/lib/bundler/man/bundle-open.1.ronn
126
+ bundler/lib/bundler/man/bundle-outdated.1
110
127
  bundler/lib/bundler/man/bundle-outdated.1.ronn
128
+ bundler/lib/bundler/man/bundle-platform.1
111
129
  bundler/lib/bundler/man/bundle-platform.1.ronn
130
+ bundler/lib/bundler/man/bundle-pristine.1
112
131
  bundler/lib/bundler/man/bundle-pristine.1.ronn
132
+ bundler/lib/bundler/man/bundle-remove.1
113
133
  bundler/lib/bundler/man/bundle-remove.1.ronn
134
+ bundler/lib/bundler/man/bundle-show.1
114
135
  bundler/lib/bundler/man/bundle-show.1.ronn
136
+ bundler/lib/bundler/man/bundle-update.1
115
137
  bundler/lib/bundler/man/bundle-update.1.ronn
138
+ bundler/lib/bundler/man/bundle-viz.1
116
139
  bundler/lib/bundler/man/bundle-viz.1.ronn
140
+ bundler/lib/bundler/man/bundle.1
117
141
  bundler/lib/bundler/man/bundle.1.ronn
142
+ bundler/lib/bundler/man/gemfile.5
118
143
  bundler/lib/bundler/man/gemfile.5.ronn
144
+ bundler/lib/bundler/man/index.txt
119
145
  bundler/lib/bundler/match_platform.rb
120
146
  bundler/lib/bundler/mirror.rb
121
147
  bundler/lib/bundler/plugin.rb
@@ -280,32 +306,6 @@ bundler/lib/bundler/version_ranges.rb
280
306
  bundler/lib/bundler/vlad.rb
281
307
  bundler/lib/bundler/worker.rb
282
308
  bundler/lib/bundler/yaml_serializer.rb
283
- bundler/man/bundle-add.1
284
- bundler/man/bundle-binstubs.1
285
- bundler/man/bundle-cache.1
286
- bundler/man/bundle-check.1
287
- bundler/man/bundle-clean.1
288
- bundler/man/bundle-config.1
289
- bundler/man/bundle-doctor.1
290
- bundler/man/bundle-exec.1
291
- bundler/man/bundle-gem.1
292
- bundler/man/bundle-info.1
293
- bundler/man/bundle-init.1
294
- bundler/man/bundle-inject.1
295
- bundler/man/bundle-install.1
296
- bundler/man/bundle-list.1
297
- bundler/man/bundle-lock.1
298
- bundler/man/bundle-open.1
299
- bundler/man/bundle-outdated.1
300
- bundler/man/bundle-platform.1
301
- bundler/man/bundle-pristine.1
302
- bundler/man/bundle-remove.1
303
- bundler/man/bundle-show.1
304
- bundler/man/bundle-update.1
305
- bundler/man/bundle-viz.1
306
- bundler/man/bundle.1
307
- bundler/man/gemfile.5
308
- bundler/man/index.txt
309
309
  hide_lib_for_update/note.txt
310
310
  lib/rubygems.rb
311
311
  lib/rubygems/available_set.rb
@@ -511,6 +511,7 @@ test/rubygems/child_key.pem
511
511
  test/rubygems/client.pem
512
512
  test/rubygems/data/gem-private_key.pem
513
513
  test/rubygems/data/gem-public_cert.pem
514
+ test/rubygems/data/null-required-rubygems-version.gemspec.rz
514
515
  test/rubygems/data/null-type.gemspec.rz
515
516
  test/rubygems/encrypted_private_key.pem
516
517
  test/rubygems/expired_cert.pem
data/Rakefile CHANGED
@@ -39,7 +39,7 @@ RDoc::Task.new :rdoc => 'docs', :clobber_rdoc => 'clobber_docs' do |doc|
39
39
  doc.title = "RubyGems #{v} API Documentation"
40
40
 
41
41
  rdoc_files = Rake::FileList.new %w[lib bundler/lib]
42
- rdoc_files.add %w[History.txt LICENSE.txt MIT.txt CODE_OF_CONDUCT.md CONTRIBUTING.md
42
+ rdoc_files.add %w[CHANGELOG.md LICENSE.txt MIT.txt CODE_OF_CONDUCT.md CONTRIBUTING.md
43
43
  MAINTAINERS.txt Manifest.txt POLICIES.md README.md UPGRADING.md bundler/CHANGELOG.md
44
44
  bundler/doc/contributing/README.md bundler/LICENSE.md bundler/README.md
45
45
  hide_lib_for_update/note.txt].map(&:freeze)
@@ -108,7 +108,7 @@ end
108
108
 
109
109
  desc "Install rubygems to local system"
110
110
  task :install => [:clear_package, :package] do
111
- sh "ruby -Ilib bin/gem install --no-document pkg/rubygems-update-#{v}.gem && update_rubygems --no-document"
111
+ sh "ruby -Ilib bin/gem install --no-document pkg/rubygems-update-#{v}.gem --backtrace && update_rubygems --no-document --backtrace"
112
112
  end
113
113
 
114
114
  desc "Clears previously built package"
@@ -365,7 +365,7 @@ module Rubygems
365
365
  class ProjectFiles
366
366
  def self.all
367
367
  files = []
368
- exclude = %r{\A(?:\.|dev_gems|bundler/(?!lib|man|exe|[^/]+\.md|bundler.gemspec)|util/)}
368
+ exclude = %r{\A(?:\.|dev_gems|bundler/(?!lib|exe|[^/]+\.md|bundler.gemspec)|util/)}
369
369
  tracked_files = `git ls-files`.split("\n")
370
370
 
371
371
  tracked_files.each do |path|
@@ -1,3 +1,10 @@
1
+ # 2.2.4 (December 31, 2020)
2
+
3
+ ## Bug fixes:
4
+
5
+ - Fix bundle man pages display on truffleruby [#4209](https://github.com/rubygems/rubygems/pull/4209)
6
+ - Fix Windows + JRuby no longer being able to install git sources [#4196](https://github.com/rubygems/rubygems/pull/4196)
7
+
1
8
  # 2.2.3 (December 22, 2020)
2
9
 
3
10
  ## Bug fixes:
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.required_ruby_version = ">= 2.3.0"
35
35
  s.required_rubygems_version = ">= 2.5.2"
36
36
 
37
- s.files = Dir.glob("{lib,man,exe}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
37
+ s.files = Dir.glob("{lib,exe}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
38
38
 
39
39
  # Include the CHANGELOG.md, LICENSE.md, README.md manually
40
40
  s.files += %w[CHANGELOG.md LICENSE.md README.md]
@@ -4,8 +4,8 @@ module Bundler
4
4
  # Represents metadata from when the Bundler gem was built.
5
5
  module BuildMetadata
6
6
  # begin ivars
7
- @built_at = "2020-12-22".freeze
8
- @git_commit_sha = "29dc3c8398".freeze
7
+ @built_at = "2020-12-31".freeze
8
+ @git_commit_sha = "529e536f28".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -122,9 +122,7 @@ module Bundler
122
122
  else command = "bundle-#{cli}"
123
123
  end
124
124
 
125
- man_path = File.expand_path("../../../man", __FILE__)
126
- # man files are located under ruby's mandir with the default gems of bundler
127
- man_path = RbConfig::CONFIG["mandir"] unless File.directory?(man_path)
125
+ man_path = File.expand_path("man", __dir__)
128
126
  man_pages = Hash[Dir.glob(File.join(man_path, "**", "*")).grep(/.*\.\d*\Z/).collect do |f|
129
127
  [File.basename(f, ".*"), f]
130
128
  end]
@@ -134,8 +132,7 @@ module Bundler
134
132
  if Bundler.which("man") && man_path !~ %r{^file:/.+!/META-INF/jruby.home/.+}
135
133
  Kernel.exec "man #{man_page}"
136
134
  else
137
- fallback_man_path = File.expand_path("../man", __FILE__)
138
- puts File.read("#{fallback_man_path}/#{File.basename(man_page)}.ronn")
135
+ puts File.read("#{man_path}/#{File.basename(man_page)}.ronn")
139
136
  end
140
137
  elsif command_path = Bundler.which("bundler-#{cli}")
141
138
  Kernel.exec(command_path, "--help")
@@ -67,13 +67,13 @@ module Bundler
67
67
 
68
68
  def branch
69
69
  @branch ||= allowed_with_path do
70
- git("rev-parse --abbrev-ref HEAD", :dir => path).strip
70
+ git("rev-parse", "--abbrev-ref", "HEAD", :dir => path).strip
71
71
  end
72
72
  end
73
73
 
74
74
  def contains?(commit)
75
75
  allowed_with_path do
76
- result, status = git_null("branch --contains #{commit}", :dir => path)
76
+ result, status = git_null("branch", "--contains", commit, :dir => path)
77
77
  status.success? && result =~ /^\* (.*)$/
78
78
  end
79
79
  end
@@ -88,20 +88,22 @@ module Bundler
88
88
 
89
89
  def checkout
90
90
  return if path.exist? && has_revision_cached?
91
- extra_ref = "#{Shellwords.shellescape(ref)}:#{Shellwords.shellescape(ref)}" if ref && ref.start_with?("refs/")
91
+ extra_ref = "#{ref}:#{ref}" if ref && ref.start_with?("refs/")
92
92
 
93
93
  Bundler.ui.info "Fetching #{URICredentialsFilter.credential_filtered_uri(uri)}"
94
94
 
95
+ configured_uri = configured_uri_for(uri).to_s
96
+
95
97
  unless path.exist?
96
98
  SharedHelpers.filesystem_access(path.dirname) do |p|
97
99
  FileUtils.mkdir_p(p)
98
100
  end
99
- git_retry %(clone #{uri_escaped_with_configured_credentials} "#{path}" --bare --no-hardlinks --quiet)
101
+ git_retry "clone", configured_uri, path.to_s, "--bare", "--no-hardlinks", "--quiet"
100
102
  return unless extra_ref
101
103
  end
102
104
 
103
105
  with_path do
104
- git_retry %(fetch --force --quiet --tags #{uri_escaped_with_configured_credentials} "refs/heads/*:refs/heads/*" #{extra_ref}), :dir => path
106
+ git_retry(*["fetch", "--force", "--quiet", "--tags", configured_uri, "refs/heads/*:refs/heads/*", extra_ref].compact, :dir => path)
105
107
  end
106
108
  end
107
109
 
@@ -115,7 +117,7 @@ module Bundler
115
117
  SharedHelpers.filesystem_access(destination) do |p|
116
118
  FileUtils.rm_rf(p)
117
119
  end
118
- git_retry %(clone --no-checkout --quiet "#{path}" "#{destination}")
120
+ git_retry "clone", "--no-checkout", "--quiet", path.to_s, destination.to_s
119
121
  File.chmod(((File.stat(destination).mode | 0o777) & ~File.umask), destination)
120
122
  rescue Errno::EEXIST => e
121
123
  file_path = e.message[%r{.*?((?:[a-zA-Z]:)?/.*)}, 1]
@@ -125,46 +127,45 @@ module Bundler
125
127
  end
126
128
  end
127
129
  # method 2
128
- git_retry %(fetch --force --quiet --tags "#{path}"), :dir => destination
130
+ git_retry "fetch", "--force", "--quiet", "--tags", path.to_s, :dir => destination
129
131
 
130
132
  begin
131
- git "reset --hard #{@revision}", :dir => destination
133
+ git "reset", "--hard", @revision, :dir => destination
132
134
  rescue GitCommandError => e
133
135
  raise MissingGitRevisionError.new(e.command, path, destination, @revision, URICredentialsFilter.credential_filtered_uri(uri))
134
136
  end
135
137
 
136
138
  if submodules
137
- git_retry "submodule update --init --recursive", :dir => destination
139
+ git_retry "submodule", "update", "--init", "--recursive", :dir => destination
138
140
  elsif Gem::Version.create(version) >= Gem::Version.create("2.9.0")
139
141
  inner_command = "git -C $toplevel submodule deinit --force $sm_path"
140
- inner_command = inner_command.gsub("$") { '\$' } unless Bundler::WINDOWS
141
- git_retry "submodule foreach --quiet \"#{inner_command}\"", :dir => destination
142
+ git_retry "submodule", "foreach", "--quiet", inner_command, :dir => destination
142
143
  end
143
144
  end
144
145
 
145
146
  private
146
147
 
147
- def git_null(command, dir: SharedHelpers.pwd)
148
+ def git_null(*command, dir: SharedHelpers.pwd)
148
149
  check_allowed(command)
149
150
 
150
151
  out, status = SharedHelpers.with_clean_git_env do
151
- capture_and_ignore_stderr("git #{command}", :chdir => dir.to_s)
152
+ capture_and_ignore_stderr("git", "-C", dir.to_s, *command)
152
153
  end
153
154
 
154
155
  [URICredentialsFilter.credential_filtered_string(out, uri), status]
155
156
  end
156
157
 
157
- def git_retry(command, dir: SharedHelpers.pwd)
158
- Bundler::Retry.new("`git #{URICredentialsFilter.credential_filtered_string(command, uri)}`", GitNotAllowedError).attempts do
159
- git(command, :dir => dir)
158
+ def git_retry(*command, dir: SharedHelpers.pwd)
159
+ Bundler::Retry.new("`git -C #{dir} #{URICredentialsFilter.credential_filtered_string(command.shelljoin, uri)}`", GitNotAllowedError).attempts do
160
+ git(*command, :dir => dir)
160
161
  end
161
162
  end
162
163
 
163
- def git(command, dir: SharedHelpers.pwd)
164
+ def git(*command, dir: SharedHelpers.pwd)
164
165
  command_with_no_credentials = check_allowed(command)
165
166
 
166
167
  out, status = SharedHelpers.with_clean_git_env do
167
- capture_and_filter_stderr(uri, "git #{command}", :chdir => dir.to_s)
168
+ capture_and_filter_stderr("git", "-C", dir.to_s, *command)
168
169
  end
169
170
 
170
171
  raise GitCommandError.new(command_with_no_credentials, path, dir) unless status.success?
@@ -174,7 +175,7 @@ module Bundler
174
175
 
175
176
  def has_revision_cached?
176
177
  return unless @revision
177
- with_path { git("cat-file -e #{@revision}", :dir => path) }
178
+ with_path { git("cat-file", "-e", @revision, :dir => path) }
178
179
  true
179
180
  rescue GitError
180
181
  false
@@ -186,26 +187,12 @@ module Bundler
186
187
 
187
188
  def find_local_revision
188
189
  allowed_with_path do
189
- git("rev-parse --verify #{Shellwords.shellescape(ref)}", :dir => path).strip
190
+ git("rev-parse", "--verify", ref, :dir => path).strip
190
191
  end
191
192
  rescue GitCommandError => e
192
193
  raise MissingGitRevisionError.new(e.command, path, path, ref, URICredentialsFilter.credential_filtered_uri(uri))
193
194
  end
194
195
 
195
- # Escape the URI for git commands
196
- def uri_escaped_with_configured_credentials
197
- remote = configured_uri_for(uri)
198
- if Bundler::WINDOWS
199
- # Windows quoting requires double quotes only, with double quotes
200
- # inside the string escaped by being doubled.
201
- '"' + remote.gsub('"') { '""' } + '"'
202
- else
203
- # Bash requires single quoted strings, with the single quotes escaped
204
- # by ending the string, escaping the quote, and restarting the string.
205
- "'" + remote.gsub("'") { "'\\''" } + "'"
206
- end
207
- end
208
-
209
196
  # Adds credentials to the URI as Fetcher#configured_uri_for does
210
197
  def configured_uri_for(uri)
211
198
  if /https?:/ =~ uri
@@ -233,21 +220,21 @@ module Bundler
233
220
  end
234
221
 
235
222
  def check_allowed(command)
236
- command_with_no_credentials = URICredentialsFilter.credential_filtered_string(command, uri)
223
+ command_with_no_credentials = URICredentialsFilter.credential_filtered_string(command.shelljoin, uri)
237
224
  raise GitNotAllowedError.new(command_with_no_credentials) unless allow?
238
225
  command_with_no_credentials
239
226
  end
240
227
 
241
- def capture_and_filter_stderr(uri, cmd, chdir: SharedHelpers.pwd)
228
+ def capture_and_filter_stderr(*cmd)
242
229
  require "open3"
243
- return_value, captured_err, status = Open3.capture3(cmd, :chdir => chdir)
244
- Bundler.ui.warn URICredentialsFilter.credential_filtered_string(captured_err, uri) if uri && !captured_err.empty?
230
+ return_value, captured_err, status = Open3.capture3(*cmd)
231
+ Bundler.ui.warn URICredentialsFilter.credential_filtered_string(captured_err, uri) unless captured_err.empty?
245
232
  [return_value, status]
246
233
  end
247
234
 
248
- def capture_and_ignore_stderr(cmd, chdir: SharedHelpers.pwd)
235
+ def capture_and_ignore_stderr(*cmd)
249
236
  require "open3"
250
- return_value, _, status = Open3.capture3(cmd, :chdir => chdir)
237
+ return_value, _, status = Open3.capture3(*cmd)
251
238
  [return_value, status]
252
239
  end
253
240
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.2.3".freeze
4
+ VERSION = "2.2.4".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -8,7 +8,7 @@
8
8
  require 'rbconfig'
9
9
 
10
10
  module Gem
11
- VERSION = "3.2.3".freeze
11
+ VERSION = "3.2.4".freeze
12
12
  end
13
13
 
14
14
  # Must be first since it unloads the prelude from 1.9.2
@@ -6,8 +6,8 @@ require 'rubygems/command'
6
6
  # RubyGems checkout or tarball.
7
7
 
8
8
  class Gem::Commands::SetupCommand < Gem::Command
9
- HISTORY_HEADER = /^===\s*[\d.a-zA-Z]+\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
10
- VERSION_MATCHER = /^===\s*([\d.a-zA-Z]+)\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
9
+ HISTORY_HEADER = /^#\s*[\d.a-zA-Z]+\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
10
+ VERSION_MATCHER = /^#\s*([\d.a-zA-Z]+)\s*\/\s*\d{4}-\d{2}-\d{2}\s*$/.freeze
11
11
 
12
12
  ENV_PATHS = %w[/usr/bin/env /bin/env].freeze
13
13
 
@@ -167,19 +167,18 @@ By default, this RubyGems will install gem as:
167
167
  extend MakeDirs
168
168
 
169
169
  lib_dir, bin_dir = make_destination_dirs install_destdir
170
- man_dir = make_man_dir install_destdir
170
+ man_dir = generate_default_man_dir install_destdir
171
171
 
172
172
  install_lib lib_dir
173
173
 
174
- install_man man_dir
175
-
176
174
  install_executables bin_dir
177
175
 
178
176
  remove_old_bin_files bin_dir
179
177
 
180
178
  remove_old_lib_files lib_dir
181
179
 
182
- remove_old_man_files man_dir
180
+ # Can be removed one we drop support for bundler 2.2.3 (the last version installing man files to man_dir)
181
+ remove_old_man_files man_dir if man_dir && File.exist?(man_dir)
183
182
 
184
183
  install_default_bundler_gem bin_dir
185
184
 
@@ -330,21 +329,6 @@ By default, this RubyGems will install gem as:
330
329
  end
331
330
  end
332
331
 
333
- def install_man(man_dir)
334
- mans = { 'Bundler' => 'bundler/man' }
335
- mans.each do |tool, path|
336
- say "Installing #{tool} manpages" if @verbose
337
-
338
- bundler_man1_files = bundler_man1_files_in(path)
339
- bundler_man5_files = bundler_man5_files_in(path)
340
-
341
- Dir.chdir path do
342
- install_file_list(bundler_man1_files, "#{man_dir}/man1")
343
- install_file_list(bundler_man5_files, "#{man_dir}/man5")
344
- end
345
- end
346
- end
347
-
348
332
  def install_rdoc
349
333
  gem_doc_dir = File.join Gem.dir, 'doc'
350
334
  rubygems_name = "rubygems-#{Gem::VERSION}"
@@ -392,7 +376,7 @@ By default, this RubyGems will install gem as:
392
376
  mkdir_p specs_dir, :mode => 0755
393
377
 
394
378
  bundler_spec = Gem::Specification.load("bundler/bundler.gemspec")
395
- bundler_spec.files = Dir.chdir("bundler") { Dir["{*.md,{lib,exe,man}/**/*}"] }
379
+ bundler_spec.files = Dir.chdir("bundler") { Dir["{*.md,{lib,exe}/**/*}"] }
396
380
  bundler_spec.executables -= %w[bundler bundle_ruby]
397
381
 
398
382
  # Remove bundler-*.gemspec in default specification directory.
@@ -455,19 +439,12 @@ By default, this RubyGems will install gem as:
455
439
  return lib_dir, bin_dir
456
440
  end
457
441
 
458
- def make_man_dir(install_destdir)
459
- man_dir = generate_default_man_dir(install_destdir)
460
-
461
- mkdir_p man_dir, :mode => 0755
462
-
463
- return man_dir
464
- end
465
-
466
442
  def generate_default_man_dir(install_destdir)
467
443
  prefix = options[:prefix]
468
444
 
469
445
  if prefix.empty?
470
446
  man_dir = RbConfig::CONFIG['mandir']
447
+ return unless man_dir
471
448
  else
472
449
  man_dir = File.join prefix, 'man'
473
450
  end
@@ -518,20 +495,6 @@ By default, this RubyGems will install gem as:
518
495
  end
519
496
  end
520
497
 
521
- # for installation of bundler as default gems
522
- def bundler_man1_files_in(dir)
523
- Dir.chdir dir do
524
- Dir['bundle*.1']
525
- end
526
- end
527
-
528
- # for installation of bundler as default gems
529
- def bundler_man5_files_in(dir)
530
- Dir.chdir dir do
531
- Dir['gemfile.5']
532
- end
533
- end
534
-
535
498
  def remove_old_bin_files(bin_dir)
536
499
  old_bin_files = {
537
500
  'gem_mirror' => 'gem mirror',
@@ -585,33 +548,26 @@ abort "#{deprecation_message}"
585
548
  end
586
549
  end
587
550
 
588
- def remove_old_man_files(man_dir)
589
- man_dirs = { man_dir => "bundler/man" }
590
- man_dirs.each do |old_man_dir, new_man_dir|
591
- man1_files = bundler_man1_files_in(new_man_dir)
592
-
593
- old_man1_dir = "#{old_man_dir}/man1"
594
- old_man1_files = bundler_man1_files_in(old_man1_dir)
595
- old_man1_files += Dir.chdir(old_man1_dir) { Dir["bundle*.1.{txt,ronn}"] }
551
+ def remove_old_man_files(old_man_dir)
552
+ old_man1_dir = "#{old_man_dir}/man1"
596
553
 
597
- man1_to_remove = old_man1_files - man1_files
554
+ if File.exist?(old_man1_dir)
555
+ man1_to_remove = Dir.chdir(old_man1_dir) { Dir["bundle*.1{,.txt,.ronn}"] }
598
556
 
599
557
  remove_file_list(man1_to_remove, old_man1_dir)
558
+ end
600
559
 
601
- man5_files = bundler_man5_files_in(new_man_dir)
602
-
603
- old_man5_dir = "#{old_man_dir}/man5"
604
- old_man5_files = bundler_man5_files_in(old_man5_dir)
605
- old_man5_files += Dir.chdir(old_man5_dir) { Dir["gemfile.5.{txt,ronn}"] }
560
+ old_man5_dir = "#{old_man_dir}/man5"
606
561
 
607
- man5_to_remove = old_man5_files - man5_files
562
+ if File.exist?(old_man5_dir)
563
+ man5_to_remove = Dir.chdir(old_man5_dir) { Dir["gemfile.5{,.txt,.ronn}"] }
608
564
 
609
565
  remove_file_list(man5_to_remove, old_man5_dir)
610
566
  end
611
567
  end
612
568
 
613
569
  def show_release_notes
614
- release_notes = File.join Dir.pwd, 'History.txt'
570
+ release_notes = File.join Dir.pwd, 'CHANGELOG.md'
615
571
 
616
572
  release_notes =
617
573
  if File.exist? release_notes