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:
parent
045a02aa74
commit
4790d4cba9
@ -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)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user