From a83baba8b50e29e680b89588ca19347ac0133608 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Sun, 30 Jul 2017 16:56:24 +0100 Subject: formula_installer: use default_formula for bottles This was the original, intended functionality before this was broken in fe117bf79b244c42b7e4049d353c3c003eae4880. Fixes https://github.com/Homebrew/homebrew-core/issues/13680. --- Library/Homebrew/formula_installer.rb | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'Library/Homebrew/formula_installer.rb') diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index a0c091e7f..d1c2bd08d 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -402,14 +402,13 @@ class FormulaInstaller raise UnsatisfiedRequirements, fatals end - def install_requirement_formula?(req, dependent, build) - req_dependency = req.to_dependency + def install_requirement_formula?(req_dependency, req, install_bottle_for_dependent) return false unless req_dependency return true unless req.satisfied? return false if req.run? return true if build_bottle? return true if req.satisfied_by_formula? - install_bottle_for?(dependent, build) + install_bottle_for_dependent end def runtime_requirements(formula) @@ -429,19 +428,21 @@ class FormulaInstaller runtime_requirements = runtime_requirements(f) f.recursive_requirements do |dependent, req| build = effective_build_options_for(dependent) + install_bottle_for_dependent = install_bottle_for?(dependent, build) + use_default_formula = install_bottle_for_dependent || build_bottle? + req_dependency = req.to_dependency(use_default_formula: use_default_formula) if (req.optional? || req.recommended?) && build.without?(req) Requirement.prune - elsif req.build? && install_bottle_for?(dependent, build) + elsif req.build? && install_bottle_for_dependent Requirement.prune - elsif install_requirement_formula?(req, dependent, build) - dep = req.to_dependency - deps.unshift(dep) - formulae.unshift(dep.to_formula) + elsif install_requirement_formula?(req_dependency, req, install_bottle_for_dependent) + deps.unshift(req_dependency) + formulae.unshift(req_dependency.to_formula) Requirement.prune elsif req.satisfied? Requirement.prune - elsif !runtime_requirements.include?(req) && install_bottle_for?(dependent, build) + elsif !runtime_requirements.include?(req) && install_bottle_for_dependent Requirement.prune else unsatisfied_reqs[dependent] << req -- cgit v1.2.3