diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-02-04 00:48:31 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-02-04 00:48:31 +0000 |
commit | ea2a00d785576a7dc45c0f6e965de605929e889d () | |
tree | 567e52888b17aacb404c59eb64519d927fb8894f /lib | |
parent | bd950a75b512a7d6243d1f0bb5e944a06a2e1f94 (diff) |
* lib/rubygems: Update to RubyGems 2.2.2 prerelease to check fixes to
CI. * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | lib/rubygems/available_set.rb | 3 | ||||
-rw-r--r-- | lib/rubygems/config_file.rb | 5 | ||||
-rw-r--r-- | lib/rubygems/dependency_installer.rb | 1 | ||||
-rw-r--r-- | lib/rubygems/ext/ext_conf_builder.rb | 6 | ||||
-rw-r--r-- | lib/rubygems/installer.rb | 2 | ||||
-rw-r--r-- | lib/rubygems/package/tar_header.rb | 2 | ||||
-rw-r--r-- | lib/rubygems/remote_fetcher.rb | 40 | ||||
-rw-r--r-- | lib/rubygems/request.rb | 8 | ||||
-rw-r--r-- | lib/rubygems/request_set.rb | 8 | ||||
-rw-r--r-- | lib/rubygems/resolver.rb | 2 | ||||
-rw-r--r-- | lib/rubygems/resolver/api_set.rb | 7 | ||||
-rw-r--r-- | lib/rubygems/resolver/best_set.rb | 21 | ||||
-rw-r--r-- | lib/rubygems/resolver/composed_set.rb | 11 | ||||
-rw-r--r-- | lib/rubygems/resolver/git_set.rb | 3 | ||||
-rw-r--r-- | lib/rubygems/resolver/index_set.rb | 4 | ||||
-rw-r--r-- | lib/rubygems/resolver/installer_set.rb | 16 | ||||
-rw-r--r-- | lib/rubygems/resolver/lock_set.rb | 2 | ||||
-rw-r--r-- | lib/rubygems/resolver/set.rb | 17 | ||||
-rw-r--r-- | lib/rubygems/resolver/vendor_set.rb | 2 | ||||
-rw-r--r-- | lib/rubygems/source/git.rb | 14 | ||||
-rw-r--r-- | lib/rubygems/test_case.rb | 24 | ||||
-rw-r--r-- | lib/rubygems/version.rb | 5 |
22 files changed, 175 insertions, 28 deletions
@@ -4,9 +4,12 @@ class Gem::AvailableSet Tuple = Struct.new(:spec, :source) def initialize @set = [] @sorted = nil end attr_reader :set @@ -137,9 +137,10 @@ class Gem::ConfigFile attr_reader :ssl_verify_mode ## - # Path name of directory or file of openssl CA certificate, used for remote https connection - attr_reader :ssl_ca_cert ## # Path name of directory or file of openssl client certificate, used for remote https connection with client authentication @@ -419,6 +419,7 @@ class Gem::DependencyInstaller request_set = as.to_request_set install_development_deps request_set.soft_missing = @force installer_set = Gem::Resolver::InstallerSet.new @domain installer_set.always_install.concat request_set.always_install @@ -34,7 +34,11 @@ class Gem::Ext::ExtConfBuilder < Gem::Ext::Builder ENV["RUBYOPT"] = ["-r#{siteconf_path}", rubyopt].compact.join(' ') cmd = [Gem.ruby, File.basename(extension), *args].join ' ' - run cmd, results ENV["DESTDIR"] = nil ENV["RUBYOPT"] = rubyopt @@ -641,7 +641,7 @@ version = "#{Gem::Requirement.default}" if ARGV.first str = ARGV.first str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding - if str =~ /\\A_(.*)_\\z/ version = $1 ARGV.shift end @@ -134,7 +134,7 @@ class Gem::Package::TarHeader vals[:gid] ||= 0 vals[:mtime] ||= 0 vals[:checksum] ||= "" - vals[:typeflag] ||= "0" vals[:magic] ||= "ustar" vals[:version] ||= "00" vals[:uname] ||= "wheel" @@ -131,11 +131,19 @@ class Gem::RemoteFetcher FileUtils.mkdir_p cache_dir rescue nil unless File.exist? cache_dir - # Always escape URI's to deal with potential spaces and such - unless URI::Generic === source_uri - source_uri = URI.parse(URI.const_defined?(:DEFAULT_PARSER) ? - URI::DEFAULT_PARSER.escape(source_uri.to_s) : - URI.escape(source_uri.to_s)) end scheme = source_uri.scheme @@ -285,20 +293,20 @@ class Gem::RemoteFetcher def cache_update_path uri, path = nil, update = true mtime = path && File.stat(path).mtime rescue nil - if mtime && Net::HTTPNotModified === fetch_path(uri, mtime, true) - Gem.read_binary(path) - else - data = fetch_path(uri) - if update and path then - open(path, 'wb') do |io| - io.flock(File::LOCK_EX) - io.write data - end - end - data end end ## @@ -48,15 +48,14 @@ class Gem::Request connection.key = OpenSSL::PKey::RSA.new pem end if Gem.configuration.ssl_ca_cert if File.directory? Gem.configuration.ssl_ca_cert store.add_path Gem.configuration.ssl_ca_cert else store.add_file Gem.configuration.ssl_ca_cert end - else - store.set_default_paths - add_rubygems_trusted_certs(store) end connection.cert_store = store rescue LoadError => e @@ -106,7 +105,8 @@ class Gem::Request request = @request_class.new @uri.request_uri unless @uri.nil? || @uri.user.nil? || @uri.user.empty? then - request.basic_auth @uri.user, @uri.password end request.add_field 'User-Agent', @user_agent @@ -39,6 +39,11 @@ class Gem::RequestSet attr_accessor :ignore_dependencies ## # Sets used for resolution attr_reader :sets # :nodoc: @@ -71,6 +76,7 @@ class Gem::RequestSet @git_set = nil @ignore_dependencies = false @install_dir = Gem.dir @requests = [] @sets = [] @soft_missing = false @@ -150,6 +156,7 @@ class Gem::RequestSet gemdeps = options[:gemdeps] @install_dir = options[:install_dir] || Gem.dir load_gemdeps gemdeps, options[:without_groups] @@ -235,6 +242,7 @@ class Gem::RequestSet @sets << @vendor_set set = Gem::Resolver.compose_sets(*@sets) resolver = Gem::Resolver.new @dependencies, set resolver.development = @development @@ -59,6 +59,8 @@ class Gem::Resolver sets = sets.map do |set| case set when Gem::Resolver::ComposedSet then set.sets else @@ -25,10 +25,12 @@ class Gem::Resolver::APISet < Gem::Resolver::Set # http://guides.rubygems.org/rubygems-org-api def initialize dep_uri = 'https://rubygems.org/api/v1/dependencies' dep_uri = URI dep_uri unless URI === dep_uri # for ruby 1.8 @dep_uri = dep_uri - @uri = dep_uri + '../../..' @data = Hash.new { |h,k| h[k] = [] } @source = Gem::Source.new @uri @@ -41,6 +43,8 @@ class Gem::Resolver::APISet < Gem::Resolver::Set def find_all req res = [] versions(req.name).each do |ver| if req.dependency.match? req.name, ver[:number] res << Gem::Resolver::APISpecification.new(self, ver) @@ -55,6 +59,7 @@ class Gem::Resolver::APISet < Gem::Resolver::Set # data for DependencyRequests +reqs+. def prefetch reqs names = reqs.map { |r| r.dependency.name } needed = names - @data.keys @@ -12,11 +12,30 @@ class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet def initialize sources = Gem.sources super() - sources.each_source do |source| @sets << source.dependency_resolver_set end end def pretty_print q # :nodoc: q.group 2, '[BestSet', ']' do q.breakable @@ -16,10 +16,21 @@ class Gem::Resolver::ComposedSet < Gem::Resolver::Set # Gem::Resolver::compose_sets instead. def initialize *sets @sets = sets end ## # Finds all specs matching +req+ in all sets. def find_all req @@ -33,6 +33,8 @@ class Gem::Resolver::GitSet < Gem::Resolver::Set attr_reader :specs # :nodoc: def initialize # :nodoc: @git = ENV['git'] || 'git' @need_submodules = {} @repositories = {} @@ -91,6 +93,7 @@ class Gem::Resolver::GitSet < Gem::Resolver::Set @repositories.each do |name, (repository, reference)| source = Gem::Source::Git.new name, repository, reference source.root_dir = @root_dir source.specs.each do |spec| git_spec = Gem::Resolver::GitSpecification.new self, spec, source @@ -5,6 +5,8 @@ class Gem::Resolver::IndexSet < Gem::Resolver::Set def initialize source = nil # :nodoc: @f = if source then sources = Gem::SourceList.from [source] @@ -34,6 +36,8 @@ class Gem::Resolver::IndexSet < Gem::Resolver::Set def find_all req res = [] name = req.dependency.name @all[name].each do |uri, n| @@ -24,14 +24,17 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set # Creates a new InstallerSet that will look for gems in +domain+. def initialize domain @domain = domain @f = Gem::SpecFetcher.fetcher @always_install = [] @ignore_dependencies = false @ignore_installed = false - @remote_set = Gem::Resolver::BestSet.new if consider_remote? @specs = {} end @@ -120,5 +123,16 @@ class Gem::Resolver::InstallerSet < Gem::Resolver::Set end end end @@ -9,6 +9,8 @@ class Gem::Resolver::LockSet < Gem::Resolver::Set # Creates a new LockSet from the given +source+ def initialize source @source = Gem::Source::Lock.new source @specs = [] end @@ -5,6 +5,15 @@ class Gem::Resolver::Set ## # The find_all method must be implemented. It returns all Resolver # Specification objects matching the given DependencyRequest +req+. @@ -23,5 +32,13 @@ class Gem::Resolver::Set def prefetch reqs end end @@ -21,6 +21,8 @@ class Gem::Resolver::VendorSet < Gem::Resolver::Set attr_reader :specs # :nodoc: def initialize # :nodoc: @directories = {} @specs = {} end @@ -24,6 +24,11 @@ class Gem::Source::Git < Gem::Source attr_reader :reference ## # The git repository this gem is sourced from. attr_reader :repository @@ -53,6 +58,7 @@ class Gem::Source::Git < Gem::Source @reference = reference @need_submodules = submodules @root_dir = Gem.dir @git = ENV['git'] || 'git' end @@ -85,6 +91,8 @@ class Gem::Source::Git < Gem::Source def checkout # :nodoc: cache unless File.exist? install_dir then system @git, 'clone', '--quiet', '--no-checkout', repo_cache_dir, install_dir @@ -107,6 +115,8 @@ class Gem::Source::Git < Gem::Source # Creates a local cache repository for the git gem. def cache # :nodoc: if File.exist? repo_cache_dir then Dir.chdir repo_cache_dir do system @git, 'fetch', '--quiet', '--force', '--tags', @@ -142,6 +152,8 @@ class Gem::Source::Git < Gem::Source # The directory where the git gem will be installed. def install_dir # :nodoc: File.join base_dir, 'gems', "#{@name}-#{dir_shortref}" end @@ -177,6 +189,8 @@ class Gem::Source::Git < Gem::Source def specs checkout Dir.chdir install_dir do Dir['{,*,*/*}.gemspec'].map do |spec_file| directory = File.dirname spec_file @@ -115,6 +115,23 @@ class Gem::TestCase < MiniTest::Unit::TestCase assert File.exist?(path), msg end # TODO: move to minitest def refute_path_exists path, msg = nil msg = message(msg) { "Expected path '#{path}' to not exist" } @@ -1249,10 +1266,17 @@ Also, a list: class StaticSet ## # Creates a new StaticSet for the given +specs+ def initialize(specs) @specs = specs end ## @@ -22,6 +22,11 @@ # 3. 1.0.a.2 # 4. 0.9 # # == How Software Changes # # Users expect to be able to specify a version constraint that gives them |