aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorTim D. Smith2015-08-24 14:41:56 -0700
committerTim D. Smith2015-08-27 00:27:31 -0700
commitc2dfcf913dce93fdb1324a86718cde3803c24632 (patch)
treeb849b1d94a5d193f9cf5d74253fd0ba0730e8829 /Library
parentc992749986a949e84b62dcc4070751652d355b31 (diff)
downloadbrew-c2dfcf913dce93fdb1324a86718cde3803c24632.tar.bz2
test-bot: don't consider optional deps for compiler selection
Fixes test-bot mishandling of optional cross-tap dependencies. Without this change, since formula.stable.deps includes the optional dependencies but formula.recursive_dependencies does not, test-bot was trying to select a compiler for an untapped formula, which raised an error. Our suspect handling of optional dependencies was exposed by Homebrew/homebrew#43145 / 7184348e822d6745d8a103de104ff9626536bf1e. Closes Homebrew/homebrew#43237.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/test-bot.rb10
1 files changed, 5 insertions, 5 deletions
diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb
index 506e50af2..dfeea0ad6 100644
--- a/Library/Homebrew/cmd/test-bot.rb
+++ b/Library/Homebrew/cmd/test-bot.rb
@@ -398,19 +398,19 @@ module Homebrew
if formula.stable
return unless satisfied_requirements?(formula, :stable)
- deps |= formula.stable.deps.to_a
- reqs |= formula.stable.requirements.to_a
+ deps |= formula.stable.deps.to_a.reject(&:optional?)
+ reqs |= formula.stable.requirements.to_a.reject(&:optional?)
elsif formula.devel
return unless satisfied_requirements?(formula, :devel)
end
if formula.devel && !ARGV.include?("--HEAD")
- deps |= formula.devel.deps.to_a
- reqs |= formula.devel.requirements.to_a
+ deps |= formula.devel.deps.to_a.reject(&:optional?)
+ reqs |= formula.devel.requirements.to_a.reject(&:optional?)
end
begin
- formula.recursive_dependencies
+ deps.each { |d| d.to_formula.recursive_dependencies }
rescue TapFormulaUnavailableError => e
raise if e.tap.installed?
safe_system "brew", "tap", e.tap.name