ruby-changes:39554
From: nagachika <ko1@a...>
Date: Tue, 18 Aug 2015 22:55:21 +0900 (JST)
Subject: [ruby-changes:39554] nagachika:r51635 (ruby_2_2): merge revision(s) 49014:
nagachika 2015-08-18 22:55:06 +0900 (Tue, 18 Aug 2015) New Revision: 51635 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=51635 Log: merge revision(s) 49014: * tool/downloader.rb: support old versions of ruby. * tool/downloader.rb: now can download gems by http if openssl is not available (this may be danger!) Modified directories: branches/ruby_2_2/ Modified files: branches/ruby_2_2/ChangeLog branches/ruby_2_2/tool/downloader.rb branches/ruby_2_2/version.h Index: ruby_2_2/ChangeLog =================================================================== --- ruby_2_2/ChangeLog (revision 51634) +++ ruby_2_2/ChangeLog (revision 51635) @@ -1,3 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/ChangeLog#L1 +Tue Aug 18 22:52:50 2015 NAKAMURA Usaku <usa@r...> + + * tool/downloader.rb: support old versions of ruby. + + * tool/downloader.rb: now can download gems by http if openssl is not + available (this may be danger!) + Tue Aug 18 20:10:13 2015 Tanaka Akira <akr@f...> * numeric.c (Init_Numeric): Fix document for Float::MIN and Index: ruby_2_2/version.h =================================================================== --- ruby_2_2/version.h (revision 51634) +++ ruby_2_2/version.h (revision 51635) @@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/version.h#L1 #define RUBY_VERSION "2.2.3" #define RUBY_RELEASE_DATE "2015-08-18" -#define RUBY_PATCHLEVEL 172 +#define RUBY_PATCHLEVEL 173 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 8 Index: ruby_2_2/tool/downloader.rb =================================================================== --- ruby_2_2/tool/downloader.rb (revision 51634) +++ ruby_2_2/tool/downloader.rb (revision 51635) @@ -1,4 +1,33 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/tool/downloader.rb#L1 require 'open-uri' +begin + require 'net/https' + $rubygems_schema = 'https' + + # open-uri of ruby 2.2.0 accept an array of PEMs as ssl_ca_cert, but old + # versions are not. so, patching OpenSSL::X509::Store#add_file instead. + class OpenSSL::X509::Store + alias orig_add_file add_file + def add_file(pems) + Array(pems).each do |pem| + if File.directory?(pem) + add_path pem + else + orig_add_file pem + end + end + end + end + # since open-uri internally checks ssl_ca_cert by File.directory?, to allow + # accept an array. + class <<File + alias orig_directory? directory? + def File.directory? files + files.is_a?(Array) ? false : orig_directory?(files) + end + end +rescue LoadError + $rubygems_schema = 'http' +end class Downloader class GNU < self @@ -10,7 +39,10 @@ class Downloader https://github.com/ruby/ruby/blob/trunk/ruby_2_2/tool/downloader.rb#L39 class RubyGems < self def self.download(name, dir = nil, ims = true, options = {}) options[:ssl_ca_cert] = Dir.glob(File.expand_path("../lib/rubygems/ssl_certs/*.pem", File.dirname(__FILE__))) - super("https://rubygems.org/downloads/#{name}", name, dir, ims, options) + if $rubygems_schema != 'https' + warn "*** using http instead of https ***" + end + super("#{$rubygems_schema}://rubygems.org/downloads/#{name}", name, dir, ims, options) end end Property changes on: ruby_2_2 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r49014 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/