Fix formula/linkage_checker infinite recursion
This commit is contained in:
parent
af682d2d63
commit
0a2f0ab456
@ -1491,6 +1491,26 @@ class Formula
|
||||
declared_runtime_dependencies | undeclared_runtime_dependencies
|
||||
end
|
||||
|
||||
def declared_runtime_dependencies
|
||||
recursive_dependencies do |_, dependency|
|
||||
Dependency.prune if dependency.build?
|
||||
Dependency.prune if !dependency.required? && build.without?(dependency)
|
||||
end
|
||||
end
|
||||
|
||||
def undeclared_runtime_dependencies
|
||||
if optlinked?
|
||||
keg = Keg.new(opt_prefix)
|
||||
elsif prefix.directory?
|
||||
keg = Keg.new(prefix)
|
||||
else
|
||||
return []
|
||||
end
|
||||
|
||||
linkage_checker = LinkageChecker.new(keg, self)
|
||||
linkage_checker.undeclared_deps.map { |n| Dependency.new(n) }
|
||||
end
|
||||
|
||||
# Returns a list of formulae depended on by this formula that aren't
|
||||
# installed
|
||||
def missing_dependencies(hide: nil)
|
||||
@ -1833,26 +1853,6 @@ class Formula
|
||||
|
||||
private
|
||||
|
||||
def declared_runtime_dependencies
|
||||
recursive_dependencies do |_, dependency|
|
||||
Dependency.prune if dependency.build?
|
||||
Dependency.prune if !dependency.required? && build.without?(dependency)
|
||||
end
|
||||
end
|
||||
|
||||
def undeclared_runtime_dependencies
|
||||
if optlinked?
|
||||
keg = Keg.new(opt_prefix)
|
||||
elsif prefix.directory?
|
||||
keg = Keg.new(prefix)
|
||||
else
|
||||
return []
|
||||
end
|
||||
|
||||
linkage_checker = LinkageChecker.new(keg, self)
|
||||
linkage_checker.undeclared_deps.map { |n| Dependency.new(n) }
|
||||
end
|
||||
|
||||
# Returns the prefix for a given formula version number.
|
||||
# @private
|
||||
def versioned_prefix(v)
|
||||
|
||||
@ -63,7 +63,8 @@ class LinkageChecker
|
||||
formula.build.without?(dep)
|
||||
end
|
||||
declared_deps = formula.deps.reject { |dep| filter_out.call(dep) }.map(&:name)
|
||||
recursive_deps = keg.to_formula.runtime_dependencies.map { |dep| dep.to_formula.full_name }
|
||||
recursive_deps = keg.to_formula.declared_runtime_dependencies
|
||||
.map { |dep| dep.to_formula.full_name }
|
||||
declared_dep_names = declared_deps.map { |dep| dep.split("/").last }
|
||||
indirect_deps = []
|
||||
undeclared_deps = []
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user