From 301a6dc1d9d0f91038a3b2bf7f727a5012f6079a Mon Sep 17 00:00:00 2001 From: ilovezfs Date: Fri, 23 Jun 2017 00:45:08 -0700 Subject: [PATCH] formula_installer: runtime reqs of build deps are build reqs so don't consider their absence fatal if we're pouring a bottle. --- Library/Homebrew/formula_installer.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 2a5120342b..a365c967ad 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -409,12 +409,21 @@ class FormulaInstaller install_bottle_for?(dependent, build) end + def runtime_requirements(formula) + runtime_deps = formula.runtime_dependencies.map(&:to_formula) + recursive_requirements = formula.recursive_requirements do |dependent, _| + Requirement.prune unless runtime_deps.include?(dependent) + end + (recursive_requirements.to_a + formula.requirements.to_a).reject(&:build?).uniq + end + def expand_requirements unsatisfied_reqs = Hash.new { |h, k| h[k] = [] } deps = [] formulae = [formula] while f = formulae.pop + runtime_requirements = runtime_requirements(f) f.recursive_requirements do |dependent, req| build = effective_build_options_for(dependent) @@ -429,6 +438,8 @@ class FormulaInstaller Requirement.prune elsif req.satisfied? Requirement.prune + elsif !runtime_requirements.include?(req) && install_bottle_for?(dependent, build) + Requirement.prune else unsatisfied_reqs[dependent] << req end