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

ruby-changes:6245

From: nobu <ko1@a...>
Date: Tue, 1 Jul 2008 15:04:43 +0900 (JST)
Subject: [ruby-changes:6245] Ruby:r17758 (trunk): * lib/rubygems/ext/builder.rb (Gem::Ext::Builder.make),

nobu	2008-07-01 15:01:15 +0900 (Tue, 01 Jul 2008)

  New Revision: 17758

  Modified files:
    trunk/ChangeLog
    trunk/lib/rubygems/ext/builder.rb
    trunk/runruby.rb
    trunk/test/rubygems/test_gem_ext_rake_builder.rb

  Log:
    * lib/rubygems/ext/builder.rb (Gem::Ext::Builder.make),
      (Gem::Ext::Builder.run): EXIT_SUCCESS may be 0 or may not.
    
    * test/rubygems/test_gem_ext_rake_builder.rb (build_rake_in): override
      Gem.ruby and ENV["rake"].
    
    * runruby.rb: bin/rake does not exist in archdir where architecture
      depend script (i.e. rbconfig.rb) exists.



  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=17758

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rubygems/ext/builder.rb?r1=17758&r2=17757&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/rubygems/test_gem_ext_rake_builder.rb?r1=17758&r2=17757&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/runruby.rb?r1=17758&r2=17757&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=17758&r2=17757&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 17757)
+++ ChangeLog	(revision 17758)
@@ -1,3 +1,14 @@
+Tue Jul  1 15:01:13 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* lib/rubygems/ext/builder.rb (Gem::Ext::Builder.make),
+	  (Gem::Ext::Builder.run): EXIT_SUCCESS may be 0 or may not.
+
+	* test/rubygems/test_gem_ext_rake_builder.rb (build_rake_in): override
+	  Gem.ruby and ENV["rake"].
+
+	* runruby.rb: bin/rake does not exist in archdir where architecture
+	  depend script (i.e. rbconfig.rb) exists.
+
 Tue Jul  1 13:19:44 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* array.c (rb_ary_fill): check if beg is too big.
Index: lib/rubygems/ext/builder.rb
===================================================================
--- lib/rubygems/ext/builder.rb	(revision 17757)
+++ lib/rubygems/ext/builder.rb	(revision 17758)
@@ -35,7 +35,7 @@
       results << `#{cmd} #{redirector}`
 
       raise Gem::InstallError, "make#{target} failed:\n\n#{results}" unless
-        $?.exitstatus.zero?
+        $?.success?
     end
   end
 
@@ -47,7 +47,7 @@
     results << command
     results << `#{command} #{redirector}`
 
-    unless $?.exitstatus.zero? then
+    unless $?.success? then
       raise Gem::InstallError, "#{class_name} failed:\n\n#{results.join "\n"}"
     end
   end
Index: runruby.rb
===================================================================
--- runruby.rb	(revision 17757)
+++ runruby.rb	(revision 17758)
@@ -46,7 +46,6 @@
 config["bindir"] = abs_archdir
 ENV["RUBY"] = File.expand_path(ruby)
 ENV["PATH"] = [abs_archdir, ENV["PATH"]].compact.join(File::PATH_SEPARATOR)
-ENV["rake"] = ENV["RUBY"] + " " + File.join(abs_archdir, "bin", "rake")
 
 if pure
   libs << File.expand_path("ext", srcdir) << "-"
Index: test/rubygems/test_gem_ext_rake_builder.rb
===================================================================
--- test/rubygems/test_gem_ext_rake_builder.rb	(revision 17757)
+++ test/rubygems/test_gem_ext_rake_builder.rb	(revision 17758)
@@ -3,6 +3,8 @@
 require 'rubygems/ext'
 
 class TestGemExtRakeBuilder < RubyGemTestCase
+  @@ruby = ENV["RUBY"]
+  @@rake = ENV["rake"] || (@@ruby + " " + File.expand_path("../../../bin/rake", __FILE__))
 
   def setup
     super
@@ -14,6 +16,24 @@
     FileUtils.mkdir_p @dest_path
   end
 
+  def build_rake_in dir
+    gem_ruby = Gem.ruby
+    ruby = @@ruby
+    Gem.module_eval {@ruby = ruby}
+    env_rake = ENV["rake"]
+    ENV["rake"] = @@rake
+    Dir.chdir dir do
+      yield @@rake
+    end
+  ensure
+    Gem.module_eval {@ruby = gem_ruby}
+    if env_rake
+      ENV["rake"] = env_rake
+    else
+      ENV.delete("rake")
+    end
+  end
+
   def test_class_build
     File.open File.join(@ext, 'mkrf_conf.rb'), 'w' do |mkrf_conf|
       mkrf_conf.puts <<-EO_MKRF
@@ -26,15 +46,15 @@
     output = []
     realdir = nil # HACK /tmp vs. /private/tmp
 
-    Dir.chdir @ext do
+    build_rake_in @ext do
       realdir = Dir.pwd
       Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', nil, @dest_path, output
     end
 
     expected = [
-      "#{Gem.ruby} mkrf_conf.rb",
+      "#{@@ruby} mkrf_conf.rb",
       "",
-      "#{ENV['rake'] || 'rake'} RUBYARCHDIR=#{@dest_path} RUBYLIBDIR=#{@dest_path}",
+      "#{@@rake} RUBYARCHDIR=#{@dest_path} RUBYLIBDIR=#{@dest_path}",
       "(in #{realdir})\n"
     ]
 
@@ -53,7 +73,7 @@
     output = []
 
     error = assert_raise Gem::InstallError do
-      Dir.chdir @ext do
+      build_rake_in @ext do
         Gem::Ext::RakeBuilder.build "mkrf_conf.rb", nil, @dest_path, output
       end
     end
@@ -61,9 +81,9 @@
     expected = <<-EOF.strip
 rake failed:
 
-#{Gem.ruby} mkrf_conf.rb
+#{@@ruby} mkrf_conf.rb
 
-#{ENV['rake'] || 'rake'} RUBYARCHDIR=#{@dest_path} RUBYLIBDIR=#{@dest_path}
+#{@@rake} RUBYARCHDIR=#{@dest_path} RUBYLIBDIR=#{@dest_path}
     EOF
 
     assert_equal expected, error.message.split("\n")[0..4].join("\n")

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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