summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-03-11 21:29:32 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-03-11 21:29:32 +0000
commit10c5d6ee2593f5b6a0361009201464c248158da6 (patch)
treeffae8e3894c1e1a93a6293b17ab4b7633043d8e4 /lib
parent21c1e2da06c76e825feeeec9233c3e5a9f0345a0 (diff)
* 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
Diffstat (limited to 'lib')
-rw-r--r--lib/rubygems/commands/setup_command.rb11
-rw-r--r--lib/rubygems/ext/ext_conf_builder.rb4
-rw-r--r--lib/rubygems/package.rb3
-rw-r--r--lib/rubygems/source.rb10
-rw-r--r--lib/rubygems/spec_fetcher.rb37
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