diff --git a/Library/Homebrew/rubocops/lines.rb b/Library/Homebrew/rubocops/lines.rb index 0fbe27452a..a945f81dc1 100644 --- a/Library/Homebrew/rubocops/lines.rb +++ b/Library/Homebrew/rubocops/lines.rb @@ -219,6 +219,27 @@ module RuboCop end end + # This cop makes sure that formulae depend on `openssl` instead of `quictls`. + # + # @api private + class QuicTLSCheck < FormulaCop + extend AutoCorrector + + def audit_formula(_node, _class_node, _parent_class_node, body_node) + return if body_node.nil? + + # Enforce use of OpenSSL for TLS dependency in core + return if formula_tap != "homebrew-core" + + find_method_with_args(body_node, :depends_on, "quictls") do + problem "Formulae in homebrew/core should use 'depends_on \"openssl@3\"' " \ + "instead of '#{@offensive_node.source}'." do |corrector| + corrector.replace(@offensive_node.source_range, "depends_on \"openssl@3\"") + end + end + end + end + # This cop makes sure that formulae do not depend on `pyoxidizer` at build-time # or run-time. #