* 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/trunk@39731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2013-03-11 21:29:32 +00:00
parent 21c1e2da06
commit 10c5d6ee25
12 changed files with 82 additions and 152 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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