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
|
declared_runtime_dependencies | undeclared_runtime_dependencies
|
||||||
end
|
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
|
# Returns a list of formulae depended on by this formula that aren't
|
||||||
# installed
|
# installed
|
||||||
def missing_dependencies(hide: nil)
|
def missing_dependencies(hide: nil)
|
||||||
@ -1833,26 +1853,6 @@ class Formula
|
|||||||
|
|
||||||
private
|
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.
|
# Returns the prefix for a given formula version number.
|
||||||
# @private
|
# @private
|
||||||
def versioned_prefix(v)
|
def versioned_prefix(v)
|
||||||
|
|||||||
@ -63,7 +63,8 @@ class LinkageChecker
|
|||||||
formula.build.without?(dep)
|
formula.build.without?(dep)
|
||||||
end
|
end
|
||||||
declared_deps = formula.deps.reject { |dep| filter_out.call(dep) }.map(&:name)
|
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 }
|
declared_dep_names = declared_deps.map { |dep| dep.split("/").last }
|
||||||
indirect_deps = []
|
indirect_deps = []
|
||||||
undeclared_deps = []
|
undeclared_deps = []
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user