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