aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMike McQuaid2017-06-23 17:34:34 +0100
committerGitHub2017-06-23 17:34:34 +0100
commitf4f1f1a6108970bf646aad82305978262c671ee2 (patch)
treeb050ee0c148585e11c7b485e924ef714536ae855 /Library
parent8a5f12076bec42c0305c1121b82d81c455ab1501 (diff)
parent301a6dc1d9d0f91038a3b2bf7f727a5012f6079a (diff)
downloadbrew-f4f1f1a6108970bf646aad82305978262c671ee2.tar.bz2
Merge pull request #2815 from ilovezfs/runtime-requirements
formula_installer: make unsatisifed recursive build reqs non-fatal for bottles
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/formula_installer.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 2a5120342..a365c967a 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