formula_installer: runtime reqs of build deps are build reqs
so don't consider their absence fatal if we're pouring a bottle.
This commit is contained in:
parent
8a5f12076b
commit
301a6dc1d9
@ -409,12 +409,21 @@ class FormulaInstaller
|
|||||||
install_bottle_for?(dependent, build)
|
install_bottle_for?(dependent, build)
|
||||||
end
|
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
|
def expand_requirements
|
||||||
unsatisfied_reqs = Hash.new { |h, k| h[k] = [] }
|
unsatisfied_reqs = Hash.new { |h, k| h[k] = [] }
|
||||||
deps = []
|
deps = []
|
||||||
formulae = [formula]
|
formulae = [formula]
|
||||||
|
|
||||||
while f = formulae.pop
|
while f = formulae.pop
|
||||||
|
runtime_requirements = runtime_requirements(f)
|
||||||
f.recursive_requirements do |dependent, req|
|
f.recursive_requirements do |dependent, req|
|
||||||
build = effective_build_options_for(dependent)
|
build = effective_build_options_for(dependent)
|
||||||
|
|
||||||
@ -429,6 +438,8 @@ class FormulaInstaller
|
|||||||
Requirement.prune
|
Requirement.prune
|
||||||
elsif req.satisfied?
|
elsif req.satisfied?
|
||||||
Requirement.prune
|
Requirement.prune
|
||||||
|
elsif !runtime_requirements.include?(req) && install_bottle_for?(dependent, build)
|
||||||
|
Requirement.prune
|
||||||
else
|
else
|
||||||
unsatisfied_reqs[dependent] << req
|
unsatisfied_reqs[dependent] << req
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user