From 14d84be78e5ba15affa009bd0012e3ab2f24d74c Mon Sep 17 00:00:00 2001
From: Adam Vandenberg <flangy@gmail.com>
Date: Tue, 29 Jun 2010 10:10:53 -0700
Subject: [PATCH] brew doctor - add whitelist to dylibs

---
 Library/Homebrew/brew_doctor.rb | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/Library/Homebrew/brew_doctor.rb b/Library/Homebrew/brew_doctor.rb
index c4daa06c46..e95cb9198f 100644
--- a/Library/Homebrew/brew_doctor.rb
+++ b/Library/Homebrew/brew_doctor.rb
@@ -30,14 +30,27 @@ end
 
 
 def check_for_stray_dylibs
-  bad_dylibs = Dir['/usr/local/lib/*.dylib'].select { |f| File.file? f and not File.symlink? f }
-  if bad_dylibs.length > 0
-    puts "You have unbrewed dylibs in /usr/local/lib. These could cause build problems"
-    puts "when building Homebrew formula. If you no longer need them, delete them:"
-    puts
-    puts *bad_dylibs.collect { |f| "    #{f}" }
-    puts
-  end
+  unbrewed_dylibs = Dir['/usr/local/lib/*.dylib'].select { |f| File.file? f and not File.symlink? f }
+
+  # Dylibs which are generally OK should be added to this list,
+  # with a short description of the software they come with.
+  white_list = {
+    "libfuse.2.dylib" => "MacFuse",
+    "libfuse_ino64.2.dylib" => "MacFuse"
+  }
+
+  bad_dylibs = unbrewed_dylibs.reject {|d| white_list.key? File.basename(d) }
+  return if bad_dylibs.empty?
+
+  opoo "Unbrewed dylibs were found in /usr/local/lib"
+  puts <<-EOS.undent
+    You have unbrewed dylibs in /usr/local/lib. If you didn't put them there on purpose,
+    they could cause problems when building Homebrew formulae.
+
+    Unexpected dylibs (delete if they are no longer needed):
+  EOS
+  puts *bad_dylibs.collect { |f| "    #{f}" }
+  puts
 end
 
 def check_for_x11
-- 
GitLab