diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-03-17 15:13:08 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-03-17 15:13:08 +0000 |
commit | d32d8b33b70d6f1f177557446f629fc38ba5895d (patch) | |
tree | 75397c94b17f5302509d5eabd595e1996562f2e4 /lib/rubygems | |
parent | cd1d342286e496b353cf9bc2858af2f70a3c8767 (diff) |
merge revision(s) 39731: [Backport #7991]
* lib/rubygems/commands/setup_command.rb: Don't delete non-rubygems
files when installing RubyGems.
* test/rubygems/test_gem_commands_setup_command.rb: Test for the
above.
* lib/rubygems/ext/ext_conf_builder.rb: Use full path to siteconf.rb
in case the extconf.rb changes directories (like memcached does).
* lib/rubygems/package.rb: Remove double slash from path.
* test/rubygems/test_gem_package.rb: Test for the above.
* test/rubygems/test_gem_package_old.rb: ditto.
* lib/rubygems/source.rb: Revert automatic HTTPS upgrade
* lib/rubygems/spec_fetcher.rb: ditto.
* test/rubygems/test_gem_remote_fetcher.rb: ditto.
* test/rubygems/test_gem_source.rb: ditto.
* test/rubygems/test_gem_spec_fetcher.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@39802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems')
-rw-r--r-- | lib/rubygems/commands/setup_command.rb | 11 | ||||
-rw-r--r-- | lib/rubygems/ext/ext_conf_builder.rb | 4 | ||||
-rw-r--r-- | lib/rubygems/package.rb | 3 | ||||
-rw-r--r-- | lib/rubygems/source.rb | 10 | ||||
-rw-r--r-- | lib/rubygems/spec_fetcher.rb | 37 |
5 files changed, 14 insertions, 51 deletions
diff --git a/lib/rubygems/commands/setup_command.rb b/lib/rubygems/commands/setup_command.rb index 12e60109aa..1cdc9f4c57 100644 --- a/lib/rubygems/commands/setup_command.rb +++ b/lib/rubygems/commands/setup_command.rb @@ -437,13 +437,18 @@ abort "#{deprecation_message}" end def remove_old_lib_files lib_dir - lib_files = rb_files_in 'lib' + rubygems_dir = File.join lib_dir, 'rubygems' + lib_files = rb_files_in 'lib/rubygems' - old_lib_files = rb_files_in lib_dir + old_lib_files = rb_files_in rubygems_dir to_remove = old_lib_files - lib_files - Dir.chdir lib_dir do + to_remove.delete_if do |file| + file.start_with? 'defaults' + end + + Dir.chdir rubygems_dir do to_remove.each do |file| FileUtils.rm_f file diff --git a/lib/rubygems/ext/ext_conf_builder.rb b/lib/rubygems/ext/ext_conf_builder.rb index a172afa7db..d09cb5266f 100644 --- a/lib/rubygems/ext/ext_conf_builder.rb +++ b/lib/rubygems/ext/ext_conf_builder.rb @@ -25,11 +25,13 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder siteconf.flush + siteconf_path = File.expand_path siteconf.path + rubyopt = ENV["RUBYOPT"] destdir = ENV["DESTDIR"] begin - ENV["RUBYOPT"] = ["-r#{siteconf.path}", rubyopt].compact.join(' ') + ENV["RUBYOPT"] = ["-r#{siteconf_path}", rubyopt].compact.join(' ') cmd = [Gem.ruby, File.basename(extension), *args].join ' ' run cmd, results diff --git a/lib/rubygems/package.rb b/lib/rubygems/package.rb index 7e2458c3b6..1a064e12a6 100644 --- a/lib/rubygems/package.rb +++ b/lib/rubygems/package.rb @@ -368,6 +368,9 @@ EOM raise Gem::Package::PathError.new(filename, destination_dir) if filename.start_with? '/' + destination_dir = File.realpath destination_dir if + File.respond_to? :realpath + destination = File.join destination_dir, filename destination = File.expand_path destination diff --git a/lib/rubygems/source.rb b/lib/rubygems/source.rb index 8f39cb1464..96d57870e2 100644 --- a/lib/rubygems/source.rb +++ b/lib/rubygems/source.rb @@ -141,14 +141,4 @@ class Gem::Source fetcher = Gem::RemoteFetcher.fetcher fetcher.download spec, @uri.to_s, dir end - - ## - # Replaces the URI for this source with +uri+. Used for upgrading this - # source to HTTPS - - def uri= uri # :nodoc: - @api_uri = nil - @uri = uri - end - end diff --git a/lib/rubygems/spec_fetcher.rb b/lib/rubygems/spec_fetcher.rb index 31205b9a06..3d484d1c13 100644 --- a/lib/rubygems/spec_fetcher.rb +++ b/lib/rubygems/spec_fetcher.rb @@ -188,8 +188,6 @@ class Gem::SpecFetcher list = {} Gem.sources.each_source do |source| - source = upgrade_http_source source - begin names = case type when :latest @@ -228,40 +226,5 @@ class Gem::SpecFetcher end end - ## - # Attempts to upgrade +source+ to HTTPS if it is for http://rubygems.org - - def upgrade_http_source source - uri = source.uri - - return source unless uri.scheme.downcase == 'http' && - uri.host.downcase == 'rubygems.org' - - https_uri = uri.dup - https_uri.scheme = 'https' - https_uri += '/' - - https_uri = URI https_uri.to_s # cast to URI::HTTPS - - begin - Gem::RemoteFetcher.fetcher.fetch_path https_uri, nil, true - rescue Gem::RemoteFetcher::FetchError => e - raise unless e.message =~ / Not Allowed 405 / - end - - say "Upgraded #{uri} to HTTPS" - - https_uri += uri.request_uri - - source.uri = URI https_uri.to_s # cast to URI::HTTPS - - source - rescue Gem::RemoteFetcher::FetchError - say "Upgrading #{uri} to HTTPS failed, continuing" if - Gem.configuration.really_verbose - - source - end - end |