diff options
| author | Mike McQuaid | 2017-12-07 14:56:12 +0000 |
|---|---|---|
| committer | Mike McQuaid | 2017-12-07 14:56:12 +0000 |
| commit | b9cf7b2bbc9439080ad397574381b1e8bf1e1f9a (patch) | |
| tree | 7fdbdfe231bdefe6b97a6b961d66095b00ebadf9 /Library/Homebrew/formula_installer.rb | |
| parent | 286d74eec2dad60562f81f9fc02043ad82466b5c (diff) | |
| download | brew-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.rb | 7 |
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 |
