From eadbd95d2c785c78ac4d6deee37e0841fc155d6b Mon Sep 17 00:00:00 2001
From: Mike McQuaid <mike@mikemcquaid.com>
Date: Sun, 19 Mar 2017 20:45:21 +0200
Subject: [PATCH] audit: check system dupe deps on new formulae.

Provide a gentle nudge to users to check if these dependencies are
definitely required.
---
 Library/Homebrew/dev-cmd/audit.rb   | 6 ++++++
 Library/Homebrew/formula_support.rb | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb
index 677a524470..e246c7fb00 100644
--- a/Library/Homebrew/dev-cmd/audit.rb
+++ b/Library/Homebrew/dev-cmd/audit.rb
@@ -472,6 +472,12 @@ class FormulaAuditor
           problem "Dependency '#{dep.name}' is an alias; use the canonical name '#{dep.to_formula.full_name}'."
         end
 
+        if @new_formula && dep_f.keg_only_reason &&
+           !["openssl", "apr", "apr-util"].include?(dep.name) &&
+           [:provided_by_macos, :provided_by_osx].include?(dep_f.keg_only_reason.reason)
+          problem "Dependency '#{dep.name}' may be unnecessary as it is provided by macOS; try to build this formula without it."
+        end
+
         dep.options.reject do |opt|
           next true if dep_f.option_defined?(opt)
           dep_f.requirements.detect do |r|
diff --git a/Library/Homebrew/formula_support.rb b/Library/Homebrew/formula_support.rb
index dcb995a6be..b8476f5cc7 100644
--- a/Library/Homebrew/formula_support.rb
+++ b/Library/Homebrew/formula_support.rb
@@ -4,6 +4,8 @@ FormulaConflict = Struct.new(:name, :reason)
 # Used to annotate formulae that duplicate macOS provided software
 # or cause conflicts when linked in.
 class KegOnlyReason
+  attr_reader :reason
+
   def initialize(reason, explanation)
     @reason = reason
     @explanation = explanation
-- 
GitLab