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/