From 471c5502f5b287fc274f9d214c2530d317e22441 Mon Sep 17 00:00:00 2001 From: Xu Cheng Date: Mon, 18 May 2015 18:44:27 +0800 Subject: [PATCH] test-bot: don't complain bottle errors when installing gcc and hg Closes Homebrew/homebrew#39626. Signed-off-by: Xu Cheng --- Library/Homebrew/cmd/test-bot.rb | 20 ++++++++++++++------ Library/Homebrew/utils.rb | 9 +++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb index 3106c29691..7a6c64a94d 100644 --- a/Library/Homebrew/cmd/test-bot.rb +++ b/Library/Homebrew/cmd/test-bot.rb @@ -386,7 +386,7 @@ module Homebrew formula.conflicts.map { |c| Formulary.factory(c.name) }. select { |f| f.installed? }.each do |conflict| test "brew", "unlink", conflict.name - end + end installed_gcc = false @@ -418,7 +418,11 @@ module Homebrew CompilerSelector.select_for(formula) rescue CompilerSelectionError => e unless installed_gcc - test "brew", "install", "gcc" + if @formulae.include? "gcc" + run_as_not_developer { test "brew", "install", "gcc" } + else + test "brew", "install", "gcc" + end installed_gcc = true OS::Mac.clear_version_cache retry @@ -448,7 +452,11 @@ module Homebrew testable_dependents = dependents.select { |d| d.test_defined? && d.bottled? } if (deps | reqs).any? { |d| d.name == "mercurial" && d.build? } - test "brew", "install", "mercurial" + if @formulae.include? "mercurial" + run_as_not_developer { test "brew", "install", "mercurial" } + else + test "brew", "install", "mercurial" + end end test "brew", "fetch", "--retry", *unchanged_dependencies unless unchanged_dependencies.empty? @@ -475,9 +483,9 @@ module Homebrew install_args << canonical_formula_name # Don't care about e.g. bottle failures for dependencies. - ENV["HOMEBREW_DEVELOPER"] = nil - test "brew", "install", "--only-dependencies", *install_args unless dependencies.empty? - ENV["HOMEBREW_DEVELOPER"] = "1" + run_as_not_developer do + test "brew", "install", "--only-dependencies", *install_args unless dependencies.empty? + end test "brew", "install", *install_args install_passed = steps.last.passed? audit_args = [canonical_formula_name] diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index bb90f6cbff..ea8d30a945 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -150,6 +150,15 @@ ensure ENV['PATH'] = old_path end +def run_as_not_developer(&block) + begin + old = ENV.delete "HOMEBREW_DEVELOPER" + yield + ensure + ENV["HOMEBREW_DEVELOPER"] = old + end +end + # Kernel.system but with exceptions def safe_system cmd, *args Homebrew.system(cmd, *args) or raise ErrorDuringExecution.new(cmd, args)