aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/formula_installer.rb
diff options
context:
space:
mode:
authorMike McQuaid2017-12-07 14:56:12 +0000
committerMike McQuaid2017-12-07 14:56:12 +0000
commitb9cf7b2bbc9439080ad397574381b1e8bf1e1f9a (patch)
tree7fdbdfe231bdefe6b97a6b961d66095b00ebadf9 /Library/Homebrew/formula_installer.rb
parent286d74eec2dad60562f81f9fc02043ad82466b5c (diff)
downloadbrew-b9cf7b2bbc9439080ad397574381b1e8bf1e1f9a.tar.bz2
formula_installer: avoid irrelevant build deps.
If dependents are already installed ensure their build dependencies (and requirements) don't end up in the dependency/requirement tree. Fixes #3033.
Diffstat (limited to 'Library/Homebrew/formula_installer.rb')
-rw-r--r--Library/Homebrew/formula_installer.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 77e0ab29b..10b0ae9cf 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -417,8 +417,9 @@ class FormulaInstaller
raise UnsatisfiedRequirements, fatals
end
- def install_requirement_formula?(req_dependency, req, install_bottle_for_dependent)
+ def install_requirement_formula?(req_dependency, req, dependent, install_bottle_for_dependent)
return false unless req_dependency
+ return false if req.build? && dependent.installed?
return true unless req.satisfied?
return false if req.run?
return true if build_bottle?
@@ -451,7 +452,7 @@ class FormulaInstaller
Requirement.prune
elsif req.build? && use_default_formula && req_dependency.installed?
Requirement.prune
- elsif install_requirement_formula?(req_dependency, req, install_bottle_for_dependent)
+ elsif install_requirement_formula?(req_dependency, req, dependent, install_bottle_for_dependent)
deps.unshift(req_dependency)
formulae.unshift(req_dependency.to_formula)
Requirement.prune
@@ -485,6 +486,8 @@ class FormulaInstaller
Dependency.prune
elsif dep.build? && install_bottle_for?(dependent, build)
Dependency.prune
+ elsif dep.build? && dependent.installed?
+ Dependency.prune
elsif dep.satisfied?(inherited_options[dep.name])
Dependency.skip
end