audit: allow python symlinks based on keg-only status

This commit is contained in:
Rylan Polster 2020-10-20 12:46:23 -04:00
parent dccece702c
commit 6e82f77108

View File

@ -265,18 +265,16 @@ module FormulaCellarChecks
EOS
end
PYTHON_SYMLINK_ALLOWED_FORMULA = "python@3.8"
def check_python_symlinks(name)
def check_python_symlinks(name, keg_only)
return unless keg_only
return unless name.start_with? "python"
return if name == PYTHON_SYMLINK_ALLOWED_FORMULA
return if %w[pip3 wheel3].none? do |l|
link = HOMEBREW_PREFIX/"bin"/l
link.exist? && File.realpath(link).start_with?(HOMEBREW_CELLAR/name)
end
"Only `#{PYTHON_SYMLINK_ALLOWED_FORMULA}` should create symlinks for `pip3` and `wheel3`"
"Python formulae that are keg-only should not create `pip3` and `wheel3` symlinks"
end
def audit_installed
@ -296,7 +294,7 @@ module FormulaCellarChecks
problem_if_output(check_python_packages(formula.lib, formula.deps))
problem_if_output(check_shim_references(formula.prefix))
problem_if_output(check_plist(formula.prefix, formula.plist))
problem_if_output(check_python_symlinks(formula.name))
problem_if_output(check_python_symlinks(formula.name, formula.keg_only?))
end
alias generic_audit_installed audit_installed