formula_installer: default_formula using build.

Use the build options instead of whether the requirement is optional to
work out if it is needed. This handles the case of an optional
requirement becoming needed because it's a dependency for another
formula.

Closes Homebrew/homebrew#31476.
This commit is contained in:
Mike McQuaid 2014-08-11 15:32:19 +01:00
parent 045a02aa74
commit 4790d4cba9

View File

@ -239,9 +239,9 @@ class FormulaInstaller
raise UnsatisfiedRequirements.new(f, fatals) unless fatals.empty?
end
def install_requirement_default_formula?(req)
def install_requirement_default_formula?(req, build)
return false unless req.default_formula?
return false if req.optional?
return false if build.without?(req)
return true unless req.satisfied?
pour_bottle? || build_bottle?
end
@ -262,7 +262,7 @@ class FormulaInstaller
Requirement.prune
elsif req.build? && dependent != f && install_bottle_for_dep?(dependent, build)
Requirement.prune
elsif install_requirement_default_formula?(req)
elsif install_requirement_default_formula?(req, build)
dep = req.to_dependency
deps.unshift(dep)
formulae.unshift(dep.to_formula)