[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]