Faster and more legible brew doctor
Please check for regressions. I was careful, but there was a lot of stuff. Closes Homebrew/homebrew#9409.
This commit is contained in:
parent
a77c11ceea
commit
918f2a1f3a
@ -1,5 +1,3 @@
|
|||||||
require 'stringio'
|
|
||||||
|
|
||||||
class Volumes
|
class Volumes
|
||||||
def initialize
|
def initialize
|
||||||
@volumes = []
|
@volumes = []
|
||||||
@ -25,6 +23,9 @@ class Volumes
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
class Checks
|
||||||
|
# Sorry for the lack of an indent here, the diff would have been unreadable.
|
||||||
|
|
||||||
def remove_trailing_slash s
|
def remove_trailing_slash s
|
||||||
(s[s.length-1] == '/') ? s[0,s.length-1] : s
|
(s[s.length-1] == '/') ? s[0,s.length-1] : s
|
||||||
end
|
end
|
||||||
@ -40,11 +41,10 @@ end
|
|||||||
def check_for_macgpg2
|
def check_for_macgpg2
|
||||||
if File.exist? "/Applications/start-gpg-agent.app" or
|
if File.exist? "/Applications/start-gpg-agent.app" or
|
||||||
File.exist? "/Library/Receipts/libiconv1.pkg"
|
File.exist? "/Library/Receipts/libiconv1.pkg"
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
If you have installed MacGPG2 via the package installer, several other
|
You may have installed MacGPG2 via the package installer.
|
||||||
checks in this script will turn up problems, such as stray .dylibs in
|
Several other checks in this script will turn up problems, such as stray
|
||||||
/usr/local and permissions issues with share and man in /usr/local/.
|
dylibs in /usr/local and permissions issues with share and man in /usr/local/.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -62,32 +62,30 @@ def check_for_stray_dylibs
|
|||||||
bad_dylibs = unbrewed_dylibs.reject {|d| white_list.key? File.basename(d) }
|
bad_dylibs = unbrewed_dylibs.reject {|d| white_list.key? File.basename(d) }
|
||||||
return if bad_dylibs.empty?
|
return if bad_dylibs.empty?
|
||||||
|
|
||||||
puts <<-EOS.undent
|
s = <<-EOS.undent
|
||||||
Unbrewed dylibs were found in /usr/local/lib.
|
Unbrewed dylibs were found in /usr/local/lib.
|
||||||
|
|
||||||
If you didn't put them there on purpose they could cause problems when
|
If you didn't put them there on purpose they could cause problems when
|
||||||
building Homebrew formulae, and may need to be deleted.
|
building Homebrew formulae, and may need to be deleted.
|
||||||
|
|
||||||
Unexpected dylibs:
|
Unexpected dylibs:
|
||||||
EOS
|
EOS
|
||||||
puts *bad_dylibs.collect { |f| " #{f}" }
|
bad_dylibs.each { |f| s << " #{f}" }
|
||||||
puts
|
s
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_stray_static_libs
|
def check_for_stray_static_libs
|
||||||
unbrewed_alibs = Dir['/usr/local/lib/*.a'].select { |f| File.file? f and not File.symlink? f }
|
unbrewed_alibs = Dir['/usr/local/lib/*.a'].select { |f| File.file? f and not File.symlink? f }
|
||||||
return if unbrewed_alibs.empty?
|
return if unbrewed_alibs.empty?
|
||||||
|
|
||||||
puts <<-EOS.undent
|
s = <<-EOS.undent
|
||||||
Unbrewed static libraries were found in /usr/local/lib.
|
Unbrewed static libraries were found in /usr/local/lib.
|
||||||
|
|
||||||
If you didn't put them there on purpose they could cause problems when
|
If you didn't put them there on purpose they could cause problems when
|
||||||
building Homebrew formulae, and may need to be deleted.
|
building Homebrew formulae, and may need to be deleted.
|
||||||
|
|
||||||
Unexpected static libraries:
|
Unexpected static libraries:
|
||||||
EOS
|
EOS
|
||||||
puts *unbrewed_alibs.collect { |f| " #{f}" }
|
unbrewed_alibs.each{ |f| s << " #{f}" }
|
||||||
puts
|
s
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_stray_pcs
|
def check_for_stray_pcs
|
||||||
@ -102,16 +100,15 @@ def check_for_stray_pcs
|
|||||||
bad_pcs = unbrewed_pcs.reject {|d| white_list.key? File.basename(d) }
|
bad_pcs = unbrewed_pcs.reject {|d| white_list.key? File.basename(d) }
|
||||||
return if bad_pcs.empty?
|
return if bad_pcs.empty?
|
||||||
|
|
||||||
puts <<-EOS.undent
|
s = <<-EOS.undent
|
||||||
Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
|
Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
|
||||||
|
|
||||||
If you didn't put them there on purpose they could cause problems when
|
If you didn't put them there on purpose they could cause problems when
|
||||||
building Homebrew formulae, and may need to be deleted.
|
building Homebrew formulae, and may need to be deleted.
|
||||||
|
|
||||||
Unexpected .pc files:
|
Unexpected .pc files:
|
||||||
EOS
|
EOS
|
||||||
puts *bad_pcs.collect { |f| " #{f}" }
|
bad_pcs.each{ |f| s << " #{f}" }
|
||||||
puts
|
s
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_stray_las
|
def check_for_stray_las
|
||||||
@ -125,101 +122,85 @@ def check_for_stray_las
|
|||||||
bad_las = unbrewed_las.reject {|d| white_list.key? File.basename(d) }
|
bad_las = unbrewed_las.reject {|d| white_list.key? File.basename(d) }
|
||||||
return if bad_las.empty?
|
return if bad_las.empty?
|
||||||
|
|
||||||
puts <<-EOS.undent
|
s = <<-EOS.undent
|
||||||
Unbrewed .la files were found in /usr/local/lib.
|
Unbrewed .la files were found in /usr/local/lib.
|
||||||
|
|
||||||
If you didn't put them there on purpose they could cause problems when
|
If you didn't put them there on purpose they could cause problems when
|
||||||
building Homebrew formulae, and may need to be deleted.
|
building Homebrew formulae, and may need to be deleted.
|
||||||
|
|
||||||
Unexpected .la files:
|
Unexpected .la files:
|
||||||
EOS
|
EOS
|
||||||
puts *bad_las.collect { |f| " #{f}" }
|
bad_las.each{ |f| s << " #{f}" }
|
||||||
puts
|
s
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_x11
|
def check_for_x11
|
||||||
unless x11_installed?
|
unless x11_installed?
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
X11 not installed.
|
X11 not installed.
|
||||||
|
|
||||||
You don't have X11 installed as part of your OS X installation.
|
You don't have X11 installed as part of your OS X installation.
|
||||||
This isn't required for all formulae, but is expected by some.
|
This is not required for all formulae, but is expected by some.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_nonstandard_x11
|
def check_for_nonstandard_x11
|
||||||
return unless File.exists? '/usr/X11'
|
|
||||||
x11 = Pathname.new('/usr/X11')
|
x11 = Pathname.new('/usr/X11')
|
||||||
if x11.symlink?
|
if x11.symlink?
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
"/usr/X11" was found, but it is a symlink to:
|
/usr/X11 is a symlink
|
||||||
#{x11.resolved_path}
|
|
||||||
|
|
||||||
Homebrew's X11 support has only be tested with Apple's X11.
|
Homebrew's X11 support has only be tested with Apple's X11.
|
||||||
In particular, "XQuartz" and "XDarwin" are not known to be compatible.
|
In particular, "XQuartz" and "XDarwin" are not known to be compatible.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_other_package_managers
|
def check_for_other_package_managers
|
||||||
if macports_or_fink_installed?
|
if macports_or_fink_installed?
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
You have Macports or Fink installed. This can cause trouble.
|
You have Macports or Fink installed.
|
||||||
You don't have to uninstall them, but you may like to try temporarily
|
This can cause trouble. You don't have to uninstall them, but you may like to
|
||||||
moving them away, eg.
|
try temporarily moving them away, eg.
|
||||||
|
|
||||||
sudo mv /opt/local ~/macports
|
sudo mv /opt/local ~/macports
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_gcc_versions
|
def check_gcc_42
|
||||||
gcc_42 = MacOS.gcc_42_build_version
|
if MacOS.gcc_42_build_version == nil
|
||||||
gcc_40 = MacOS.gcc_40_build_version
|
|
||||||
|
|
||||||
if gcc_42 == nil
|
|
||||||
# Don't show this warning on Xcode 4.2+
|
# Don't show this warning on Xcode 4.2+
|
||||||
if MacOS.xcode_version < "4.2"
|
if MacOS.xcode_version < "4.2"
|
||||||
puts <<-EOS.undent
|
"We couldn't detect gcc 4.2.x. Some formulae require this compiler."
|
||||||
We couldn't detect gcc 4.2.x. Some formulae require this compiler.
|
end
|
||||||
|
elsif MacOS.gcc_42_build_version < RECOMMENDED_GCC_42
|
||||||
|
<<-EOS.undent
|
||||||
|
Your gcc 4.2.x version is older than the recommended version.
|
||||||
|
It may be advisable to upgrade to the latest release of Xcode.
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
elsif gcc_42 < RECOMMENDED_GCC_42
|
|
||||||
puts <<-EOS.undent
|
|
||||||
Your gcc 4.2.x version is older than the recommended version. It may be advisable
|
|
||||||
to upgrade to the latest release of Xcode.
|
|
||||||
|
|
||||||
EOS
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def check_xcode_exists
|
||||||
if MacOS.xcode_version == nil
|
if MacOS.xcode_version == nil
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
We couldn't detect any version of Xcode.
|
We couldn't detect any version of Xcode.
|
||||||
If you downloaded Xcode from the App Store, you may need to run the installer.
|
If you downloaded Xcode from the App Store, you may need to run the installer.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
elsif MacOS.xcode_version < "4.0"
|
elsif MacOS.xcode_version < "4.0"
|
||||||
if gcc_40 == nil
|
if MacOS.gcc_40_build_version == nil
|
||||||
puts <<-EOS.undent
|
"We couldn't detect gcc 4.0.x. Some formulae require this compiler."
|
||||||
We couldn't detect gcc 4.0.x. Some formulae require this compiler.
|
elsif MacOS.gcc_40_build_version < RECOMMENDED_GCC_40
|
||||||
|
<<-EOS.undent
|
||||||
EOS
|
Your gcc 4.0.x version is older than the recommended version.
|
||||||
elsif gcc_40 < RECOMMENDED_GCC_40
|
It may be advisable to upgrade to the latest release of Xcode.
|
||||||
puts <<-EOS.undent
|
|
||||||
Your gcc 4.0.x version is older than the recommended version. It may be advisable
|
|
||||||
to upgrade to the latest release of Xcode.
|
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_cc
|
||||||
unless File.exist? '/usr/bin/cc'
|
unless File.exist? '/usr/bin/cc'
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
You have no /usr/bin/cc.
|
You have no /usr/bin/cc.
|
||||||
This means you probably can't build *anything*. You need to install the CLI
|
This means you probably can't build *anything*. You need to install the CLI
|
||||||
Tools for Xcode. You can either download this from http://connect.apple.com/
|
Tools for Xcode. You can either download this from http://connect.apple.com/
|
||||||
@ -241,8 +222,8 @@ def __check_subdir_access base
|
|||||||
end
|
end
|
||||||
|
|
||||||
cant_read.sort!
|
cant_read.sort!
|
||||||
if cant_read.length > 0
|
if cant_read.length > 0 then
|
||||||
puts <<-EOS.undent
|
s = <<-EOS.undent
|
||||||
Some directories in #{target} aren't writable.
|
Some directories in #{target} aren't writable.
|
||||||
This can happen if you "sudo make install" software that isn't managed
|
This can happen if you "sudo make install" software that isn't managed
|
||||||
by Homebrew. If a brew tries to add locale information to one of these
|
by Homebrew. If a brew tries to add locale information to one of these
|
||||||
@ -250,25 +231,22 @@ def __check_subdir_access base
|
|||||||
You should probably `chown` them:
|
You should probably `chown` them:
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
puts *cant_read.collect { |f| " #{f}" }
|
cant_read.each{ |f| s << " #{f}\n" }
|
||||||
puts
|
s
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_access_usr_local
|
def check_access_usr_local
|
||||||
return unless HOMEBREW_PREFIX.to_s == '/usr/local'
|
return unless HOMEBREW_PREFIX.to_s == '/usr/local'
|
||||||
|
|
||||||
unless Pathname('/usr/local').writable?
|
unless Pathname('/usr/local').writable? then <<-EOS.undent
|
||||||
puts <<-EOS.undent
|
|
||||||
The /usr/local directory is not writable.
|
The /usr/local directory is not writable.
|
||||||
|
|
||||||
Even if this folder was writable when you installed Homebrew, other
|
Even if this folder was writable when you installed Homebrew, other
|
||||||
software may change permissions on this folder. Some versions of the
|
software may change permissions on this folder. Some versions of the
|
||||||
"InstantOn" component of Airfoil are known to do this.
|
"InstantOn" component of Airfoil are known to do this.
|
||||||
|
|
||||||
You should probably change the ownership and permissions of /usr/local
|
You should probably change the ownership and permissions of /usr/local
|
||||||
back to your user account.
|
back to your user account.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -283,10 +261,8 @@ end
|
|||||||
|
|
||||||
def __check_folder_access base, msg
|
def __check_folder_access base, msg
|
||||||
folder = HOMEBREW_PREFIX+base
|
folder = HOMEBREW_PREFIX+base
|
||||||
return unless folder.exist?
|
if folder.exist? and not folder.writable?
|
||||||
|
<<-EOS.undent
|
||||||
unless folder.writable?
|
|
||||||
puts <<-EOS.undent
|
|
||||||
#{folder} isn't writable.
|
#{folder} isn't writable.
|
||||||
This can happen if you "sudo make install" software that isn't managed
|
This can happen if you "sudo make install" software that isn't managed
|
||||||
by Homebrew.
|
by Homebrew.
|
||||||
@ -294,7 +270,6 @@ def __check_folder_access base, msg
|
|||||||
#{msg}
|
#{msg}
|
||||||
|
|
||||||
You should probably `chown` #{folder}
|
You should probably `chown` #{folder}
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -325,21 +300,20 @@ end
|
|||||||
|
|
||||||
def check_usr_bin_ruby
|
def check_usr_bin_ruby
|
||||||
if /^1\.9/.match RUBY_VERSION
|
if /^1\.9/.match RUBY_VERSION
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
Ruby version #{RUBY_VERSION} is unsupported.
|
Ruby version #{RUBY_VERSION} is unsupported.
|
||||||
Homebrew is developed and tested on Ruby 1.8.x, and may not work correctly
|
Homebrew is developed and tested on Ruby 1.8.x, and may not work correctly
|
||||||
on Ruby 1.9.x. Patches are accepted as long as they don't break on 1.8.x.
|
on other Rubies. Patches are accepted as long as they don't break on 1.8.x.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_homebrew_prefix
|
def check_homebrew_prefix
|
||||||
unless HOMEBREW_PREFIX.to_s == '/usr/local'
|
unless HOMEBREW_PREFIX.to_s == '/usr/local'
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
|
Your Homebrew is not installed to /usr/local
|
||||||
You can install Homebrew anywhere you want, but some brews may only build
|
You can install Homebrew anywhere you want, but some brews may only build
|
||||||
correctly if you install to /usr/local.
|
correctly if you install in /usr/local. Sorry!
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -348,10 +322,9 @@ def check_xcode_prefix
|
|||||||
prefix = MacOS.xcode_prefix
|
prefix = MacOS.xcode_prefix
|
||||||
return if prefix.nil?
|
return if prefix.nil?
|
||||||
if prefix.to_s.match(' ')
|
if prefix.to_s.match(' ')
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
Xcode is installed to a directory with a space in the name.
|
Xcode is installed to a directory with a space in the name.
|
||||||
This may cause some formulae, such as libiconv, to fail to build.
|
This will cause some formulae, such as libiconv, to fail to build.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -360,8 +333,8 @@ def check_xcode_select_path
|
|||||||
path = `xcode-select -print-path 2>/dev/null`.chomp
|
path = `xcode-select -print-path 2>/dev/null`.chomp
|
||||||
unless File.directory? path and File.file? "#{path}/usr/bin/xcodebuild"
|
unless File.directory? path and File.file? "#{path}/usr/bin/xcodebuild"
|
||||||
# won't guess at the path they should use because it's too hard to get right
|
# won't guess at the path they should use because it's too hard to get right
|
||||||
ohai "Your Xcode is configured with an invalid path."
|
<<-EOS.undent
|
||||||
puts <<-EOS.undent
|
Your Xcode is configured with an invalid path.
|
||||||
You should change it to the correct path. Please note that there is no correct
|
You should change it to the correct path. Please note that there is no correct
|
||||||
path at this time if you have *only* installed the Command Line Tools for Xcode.
|
path at this time if you have *only* installed the Command Line Tools for Xcode.
|
||||||
If your Xcode is pre-4.3 or you installed the whole of Xcode 4.3 then one of
|
If your Xcode is pre-4.3 or you installed the whole of Xcode 4.3 then one of
|
||||||
@ -369,20 +342,21 @@ def check_xcode_select_path
|
|||||||
|
|
||||||
sudo xcode-select -switch /Developer
|
sudo xcode-select -switch /Developer
|
||||||
sudo xcode-select -switch /Application/Xcode.app
|
sudo xcode-select -switch /Application/Xcode.app
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_user_path
|
def check_user_path_1
|
||||||
seen_prefix_bin = false
|
$seen_prefix_bin = false
|
||||||
seen_prefix_sbin = false
|
$seen_prefix_sbin = false
|
||||||
seen_usr_bin = false
|
seen_usr_bin = false
|
||||||
|
|
||||||
|
out = nil
|
||||||
|
|
||||||
path_folders.each do |p| case p
|
path_folders.each do |p| case p
|
||||||
when '/usr/bin'
|
when '/usr/bin'
|
||||||
seen_usr_bin = true
|
seen_usr_bin = true
|
||||||
unless seen_prefix_bin
|
unless $seen_prefix_bin
|
||||||
# only show the doctor message if there are any conflicts
|
# only show the doctor message if there are any conflicts
|
||||||
# rationale: a default install should not trigger any brew doctor messages
|
# rationale: a default install should not trigger any brew doctor messages
|
||||||
conflicts = Dir["#{HOMEBREW_PREFIX}/bin/*"].
|
conflicts = Dir["#{HOMEBREW_PREFIX}/bin/*"].
|
||||||
@ -390,50 +364,46 @@ def check_user_path
|
|||||||
select{ |bn| File.exist? "/usr/bin/#{bn}" }
|
select{ |bn| File.exist? "/usr/bin/#{bn}" }
|
||||||
|
|
||||||
if conflicts.size
|
if conflicts.size
|
||||||
ohai "/usr/bin occurs before #{HOMEBREW_PREFIX}/bin"
|
out = <<-EOS.undent
|
||||||
puts <<-EOS.undent
|
/usr/bin occurs before #{HOMEBREW_PREFIX}/bin
|
||||||
This means that system-provided programs will be used instead of those
|
This means that system-provided programs will be used instead of those
|
||||||
provided by Homebrew. The following tools exist at both paths:
|
provided by Homebrew. The following tools exist at both paths:
|
||||||
|
|
||||||
#{conflicts * "\n "}
|
#{conflicts * "\n "}
|
||||||
|
|
||||||
Consider editing your .bashrc to put #{HOMEBREW_PREFIX}/bin
|
Consider ammending your PATH so that #{HOMEBREW_PREFIX}/bin
|
||||||
ahead of /usr/bin in your PATH.
|
is ahead of /usr/bin in your PATH.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
when "#{HOMEBREW_PREFIX}/bin"
|
when "#{HOMEBREW_PREFIX}/bin"
|
||||||
seen_prefix_bin = true
|
$seen_prefix_bin = true
|
||||||
when "#{HOMEBREW_PREFIX}/sbin"
|
when "#{HOMEBREW_PREFIX}/sbin"
|
||||||
seen_prefix_sbin = true
|
$seen_prefix_sbin = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
out
|
||||||
|
end
|
||||||
|
|
||||||
unless seen_prefix_bin
|
def check_user_path_2
|
||||||
puts <<-EOS.undent
|
unless $seen_prefix_bin
|
||||||
Homebrew's bin was not found in your path. Some brews depend
|
<<-EOS.undent
|
||||||
on other brews that install tools to bin.
|
Homebrew's bin was not found in your path.
|
||||||
|
Consider ammending your PATH variable so it contains:
|
||||||
You should edit your .bashrc to add:
|
|
||||||
#{HOMEBREW_PREFIX}/bin
|
#{HOMEBREW_PREFIX}/bin
|
||||||
to the PATH variable.
|
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_user_path_3
|
||||||
# Don't complain about sbin not being in the path if it doesn't exist
|
# Don't complain about sbin not being in the path if it doesn't exist
|
||||||
sbin = (HOMEBREW_PREFIX+'sbin')
|
sbin = (HOMEBREW_PREFIX+'sbin')
|
||||||
if sbin.directory? and sbin.children.length > 0
|
if sbin.directory? and sbin.children.length > 0
|
||||||
unless seen_prefix_sbin
|
unless $seen_prefix_sbin
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
Some brews install binaries to sbin instead of bin, but Homebrew's
|
Homebrew's sbin was not found in your path.
|
||||||
sbin was not found in your path.
|
Consider ammending your PATH variable so it contains:
|
||||||
|
|
||||||
Consider editing your .bashrc to add:
|
|
||||||
#{HOMEBREW_PREFIX}/sbin
|
#{HOMEBREW_PREFIX}/sbin
|
||||||
to the PATH variable.
|
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -444,13 +414,12 @@ def check_which_pkg_config
|
|||||||
return if binary.empty?
|
return if binary.empty?
|
||||||
|
|
||||||
unless binary == "#{HOMEBREW_PREFIX}/bin/pkg-config"
|
unless binary == "#{HOMEBREW_PREFIX}/bin/pkg-config"
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
You have a non-brew 'pkg-config' in your PATH:
|
You have a non-brew 'pkg-config' in your PATH:
|
||||||
#{binary}
|
#{binary}
|
||||||
|
|
||||||
`./configure` may have problems finding brew-installed packages using
|
`./configure` may have problems finding brew-installed packages using
|
||||||
this other pkg-config.
|
this other pkg-config.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -470,7 +439,7 @@ def check_pkg_config_paths
|
|||||||
|
|
||||||
# Check that all expected paths are being searched
|
# Check that all expected paths are being searched
|
||||||
unless pkg_config_paths.include? "/usr/X11/lib/pkgconfig"
|
unless pkg_config_paths.include? "/usr/X11/lib/pkgconfig"
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
Your pkg-config is not checking "/usr/X11/lib/pkgconfig" for packages.
|
Your pkg-config is not checking "/usr/X11/lib/pkgconfig" for packages.
|
||||||
Earlier versions of the pkg-config formula did not add this path
|
Earlier versions of the pkg-config formula did not add this path
|
||||||
to the search path, which means that other formula may not be able
|
to the search path, which means that other formula may not be able
|
||||||
@ -478,7 +447,6 @@ def check_pkg_config_paths
|
|||||||
|
|
||||||
To resolve this issue, re-brew pkg-config with:
|
To resolve this issue, re-brew pkg-config with:
|
||||||
brew rm pkg-config && brew install pkg-config
|
brew rm pkg-config && brew install pkg-config
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -487,9 +455,8 @@ def check_for_gettext
|
|||||||
if %w[lib/libgettextlib.dylib
|
if %w[lib/libgettextlib.dylib
|
||||||
lib/libintl.dylib
|
lib/libintl.dylib
|
||||||
include/libintl.h ].any? { |f| File.exist? "#{HOMEBREW_PREFIX}/#{f}" }
|
include/libintl.h ].any? { |f| File.exist? "#{HOMEBREW_PREFIX}/#{f}" }
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
gettext was detected in your PREFIX.
|
gettext was detected in your PREFIX.
|
||||||
|
|
||||||
The gettext provided by Homebrew is "keg-only", meaning it does not
|
The gettext provided by Homebrew is "keg-only", meaning it does not
|
||||||
get linked into your PREFIX by default.
|
get linked into your PREFIX by default.
|
||||||
|
|
||||||
@ -499,7 +466,6 @@ def check_for_gettext
|
|||||||
|
|
||||||
If you have a non-Homebrew provided gettext, other problems will happen
|
If you have a non-Homebrew provided gettext, other problems will happen
|
||||||
especially if it wasn't compiled with the proper architectures.
|
especially if it wasn't compiled with the proper architectures.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -507,16 +473,14 @@ end
|
|||||||
def check_for_iconv
|
def check_for_iconv
|
||||||
if %w[lib/libiconv.dylib
|
if %w[lib/libiconv.dylib
|
||||||
include/iconv.h ].any? { |f| File.exist? "#{HOMEBREW_PREFIX}/#{f}" }
|
include/iconv.h ].any? { |f| File.exist? "#{HOMEBREW_PREFIX}/#{f}" }
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
libiconv was detected in your PREFIX.
|
libiconv was detected in your PREFIX.
|
||||||
|
|
||||||
Homebrew doesn't provide a libiconv formula, and expects to link against
|
Homebrew doesn't provide a libiconv formula, and expects to link against
|
||||||
the system version in /usr/lib.
|
the system version in /usr/lib.
|
||||||
|
|
||||||
If you have a non-Homebrew provided libiconv, many formulae will fail
|
If you have a non-Homebrew provided libiconv, many formulae will fail
|
||||||
to compile or link, especially if it wasn't compiled with the proper
|
to compile or link, especially if it wasn't compiled with the proper
|
||||||
architectures.
|
architectures.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -527,7 +491,7 @@ def check_for_config_scripts
|
|||||||
config_scripts = []
|
config_scripts = []
|
||||||
|
|
||||||
path_folders.each do |p|
|
path_folders.each do |p|
|
||||||
next if ['/usr/bin', '/usr/sbin', '/usr/X11/bin', '/usr/X11R6/bin', "#{HOMEBREW_PREFIX}/bin", "#{HOMEBREW_PREFIX}/sbin"].include? p
|
next if ['/usr/bin', '/usr/sbin', '/usr/X11/bin', '/usr/X11R6/bin', "#{HOMEBREW_PREFIX}/bin", "#{HOMEBREW_PREFIX}/sbin", "/opt/X11/bin"].include? p
|
||||||
next if p =~ %r[^(#{real_cellar.to_s}|#{HOMEBREW_CELLAR.to_s})] if real_cellar
|
next if p =~ %r[^(#{real_cellar.to_s}|#{HOMEBREW_CELLAR.to_s})] if real_cellar
|
||||||
|
|
||||||
configs = Dir["#{p}/*-config"]
|
configs = Dir["#{p}/*-config"]
|
||||||
@ -536,41 +500,40 @@ def check_for_config_scripts
|
|||||||
end
|
end
|
||||||
|
|
||||||
unless config_scripts.empty?
|
unless config_scripts.empty?
|
||||||
puts <<-EOS.undent
|
s = <<-EOS.undent
|
||||||
Some "config" scripts were found in your path, but not in system or
|
"config" scripts exist outside your system or Homebrew directories.
|
||||||
Homebrew directories.
|
|
||||||
|
|
||||||
`./configure` scripts often look for *-config scripts to determine if
|
`./configure` scripts often look for *-config scripts to determine if
|
||||||
software packages are installed, and what additional flags to use when
|
software packages are installed, and what additional flags to use when
|
||||||
compiling and linking.
|
compiling and linking.
|
||||||
|
|
||||||
Having additional scripts in your path can confuse software installed via
|
Having additional scripts in your path can confuse software installed via
|
||||||
Homebrew if the config script overrides a system or Homebrew provided
|
Homebrew if the config script overrides a system or Homebrew provided
|
||||||
script of the same name.
|
script of the same name. We found the following "config" scripts:
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
config_scripts.each do |pair|
|
config_scripts.each do |pair|
|
||||||
puts pair[0]
|
dn = pair[0]
|
||||||
puts " " + pair[1] * " "
|
pair[1].each do |fn|
|
||||||
|
s << " #{dn}/#{fn}\n"
|
||||||
end
|
end
|
||||||
puts
|
end
|
||||||
|
s
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_dyld_vars
|
def check_for_dyld_vars
|
||||||
if ENV['DYLD_LIBRARY_PATH']
|
if ENV['DYLD_LIBRARY_PATH']
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
Setting DYLD_LIBRARY_PATH can break dynamic linking.
|
Setting DYLD_LIBRARY_PATH can break dynamic linking.
|
||||||
You should probably unset it.
|
You should probably unset it.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_symlinked_cellar
|
def check_for_symlinked_cellar
|
||||||
if HOMEBREW_CELLAR.symlink?
|
if HOMEBREW_CELLAR.symlink?
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
Symlinked Cellars can cause problems.
|
Symlinked Cellars can cause problems.
|
||||||
Your Homebrew Cellar is a symlink: #{HOMEBREW_CELLAR}
|
Your Homebrew Cellar is a symlink: #{HOMEBREW_CELLAR}
|
||||||
which resolves to: #{HOMEBREW_CELLAR.realpath}
|
which resolves to: #{HOMEBREW_CELLAR.realpath}
|
||||||
@ -582,7 +545,6 @@ def check_for_symlinked_cellar
|
|||||||
Older installations of Homebrew may have created a symlinked Cellar, but this can
|
Older installations of Homebrew may have created a symlinked Cellar, but this can
|
||||||
cause problems when two formula install to locations that are mapped on top of each
|
cause problems when two formula install to locations that are mapped on top of each
|
||||||
other during the linking step.
|
other during the linking step.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -603,33 +565,23 @@ def check_for_multiple_volumes
|
|||||||
|
|
||||||
Dir.delete tmp
|
Dir.delete tmp
|
||||||
|
|
||||||
unless where_cellar == where_temp
|
unless where_cellar == where_temp then <<-EOS.undent
|
||||||
puts <<-EOS.undent
|
|
||||||
Your Cellar and TEMP directories are on different volumes.
|
Your Cellar and TEMP directories are on different volumes.
|
||||||
|
OS X won't move relative symlinks across volumes unless the target file already
|
||||||
OS X won't move relative symlinks across volumes unless the target file
|
exists. Brews known to be affected by this are Git and Narwhal.
|
||||||
already exists.
|
|
||||||
|
|
||||||
Brews known to be affected by this are Git and Narwhal.
|
|
||||||
|
|
||||||
You should set the "HOMEBREW_TEMP" environmental variable to a suitable
|
You should set the "HOMEBREW_TEMP" environmental variable to a suitable
|
||||||
directory on the same volume as your Cellar.
|
directory on the same volume as your Cellar.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_git
|
def check_for_git
|
||||||
unless system "/usr/bin/which -s git"
|
unless system "/usr/bin/which -s git" then <<-EOS.undent
|
||||||
puts <<-EOS.undent
|
Git could not be found in your PATH.
|
||||||
"Git" was not found in your path.
|
Homebrew uses Git for several internal functions, and some formulae use Git
|
||||||
|
checkouts instead of stable tarballs. You may want to install Git:
|
||||||
Homebrew uses Git for several internal functions, and some formulae
|
|
||||||
use Git checkouts instead of stable tarballs.
|
|
||||||
|
|
||||||
You may want to install git:
|
|
||||||
brew install git
|
brew install git
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -640,8 +592,7 @@ def check_git_newline_settings
|
|||||||
autocrlf = `git config --get core.autocrlf`.chomp
|
autocrlf = `git config --get core.autocrlf`.chomp
|
||||||
safecrlf = `git config --get core.safecrlf`.chomp
|
safecrlf = `git config --get core.safecrlf`.chomp
|
||||||
|
|
||||||
if autocrlf == 'input' and safecrlf == 'true'
|
if autocrlf == 'input' and safecrlf == 'true' then <<-EOS.undent
|
||||||
puts <<-EOS.undent
|
|
||||||
Suspicious Git newline settings found.
|
Suspicious Git newline settings found.
|
||||||
|
|
||||||
The detected Git newline settings can cause checkout problems:
|
The detected Git newline settings can cause checkout problems:
|
||||||
@ -650,7 +601,6 @@ def check_git_newline_settings
|
|||||||
|
|
||||||
If you are not routinely dealing with Windows-based projects,
|
If you are not routinely dealing with Windows-based projects,
|
||||||
consider removing these settings.
|
consider removing these settings.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -660,13 +610,11 @@ def check_for_autoconf
|
|||||||
|
|
||||||
autoconf = `/usr/bin/which autoconf`.chomp
|
autoconf = `/usr/bin/which autoconf`.chomp
|
||||||
safe_autoconfs = %w[/usr/bin/autoconf /Developer/usr/bin/autoconf]
|
safe_autoconfs = %w[/usr/bin/autoconf /Developer/usr/bin/autoconf]
|
||||||
unless autoconf.empty? or safe_autoconfs.include? autoconf
|
unless autoconf.empty? or safe_autoconfs.include? autoconf then <<-EOS.undent
|
||||||
puts <<-EOS.undent
|
An "autoconf" in your path blocks the Xcode-provided version at:
|
||||||
An "autoconf" in your path blocking the Xcode-provided version at:
|
|
||||||
#{autoconf}
|
#{autoconf}
|
||||||
|
|
||||||
This custom autoconf may cause some Homebrew formulae to fail to compile.
|
This custom autoconf may cause some Homebrew formulae to fail to compile.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -703,9 +651,8 @@ def check_for_linked_kegonly_brews
|
|||||||
end
|
end
|
||||||
|
|
||||||
unless warnings.empty?
|
unless warnings.empty?
|
||||||
puts <<-EOS.undent
|
s = <<-EOS.undent
|
||||||
Some keg-only formula are linked into the Cellar.
|
Some keg-only formula are linked into the Cellar.
|
||||||
|
|
||||||
Linking a keg-only formula, such as gettext, into the cellar with
|
Linking a keg-only formula, such as gettext, into the cellar with
|
||||||
`brew link f` will cause other formulae to detect them during the
|
`brew link f` will cause other formulae to detect them during the
|
||||||
`./configure` step. This may cause problems when compiling those
|
`./configure` step. This may cause problems when compiling those
|
||||||
@ -715,87 +662,67 @@ def check_for_linked_kegonly_brews
|
|||||||
with other strange results.
|
with other strange results.
|
||||||
|
|
||||||
You may wish to `brew unlink` these brews:
|
You may wish to `brew unlink` these brews:
|
||||||
EOS
|
|
||||||
|
|
||||||
puts *warnings.keys.collect { |f| " #{f}" }
|
EOS
|
||||||
puts
|
warnings.keys.each{ |f| s << " #{f}\n" }
|
||||||
|
s
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_MACOSX_DEPLOYMENT_TARGET
|
def check_for_MACOSX_DEPLOYMENT_TARGET
|
||||||
target_var = ENV['MACOSX_DEPLOYMENT_TARGET']
|
target_var = ENV['MACOSX_DEPLOYMENT_TARGET']
|
||||||
return if target_var.to_s.empty?
|
if target_var and target_var != MACOS_VERSION.to_s then <<-EOS.undent
|
||||||
|
|
||||||
unless target_var == MACOS_VERSION.to_s
|
|
||||||
puts <<-EOS.undent
|
|
||||||
MACOSX_DEPLOYMENT_TARGET was set to #{target_var}
|
MACOSX_DEPLOYMENT_TARGET was set to #{target_var}
|
||||||
This is used by Fink, but having it set to a value different from the
|
This is used by Fink, but having it set to a value different from the
|
||||||
current system version (#{MACOS_VERSION}) can cause problems, compiling
|
current system version (#{MACOS_VERSION}) can cause problems, compiling
|
||||||
Git for instance, and should probably be removed.
|
Git for instance, and should probably be removed.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_other_frameworks
|
def check_for_other_frameworks
|
||||||
# Other frameworks that are known to cause problems when present
|
# Other frameworks that are known to cause problems when present
|
||||||
["/Library/Frameworks/expat.framework", "/Library/Frameworks/libexpat.framework"].each do |f|
|
%w{Mono.framework expat.framework libexpat.framework}.
|
||||||
if File.exist? f
|
map{ |frmwrk| "/Library/Frameworks/#{frmwrk}" }.
|
||||||
puts <<-EOS.undent
|
select{ |frmwrk| File.exist? frmwrk }.
|
||||||
#{f} detected
|
map do |frmwrk| <<-EOS.undent
|
||||||
|
#{frmwrk} detected
|
||||||
This will be picked up by Cmake's build system and likely cause the
|
This can be picked up by CMake's build system and likely cause the build to
|
||||||
build to fail, trying to link to a 32-bit version of expat.
|
fail. You may need to move this file out of the way to compile CMake.
|
||||||
You may need to move this file out of the way to compile Cmake.
|
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end.join
|
||||||
end
|
|
||||||
|
|
||||||
if File.exist? "/Library/Frameworks/Mono.framework"
|
|
||||||
puts <<-EOS.undent
|
|
||||||
/Library/Frameworks/Mono.framework detected
|
|
||||||
|
|
||||||
This can be picked up by Cmake's build system and likely cause the
|
|
||||||
build to fail, finding improper header files for libpng for instance.
|
|
||||||
|
|
||||||
EOS
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_tmpdir
|
def check_tmpdir
|
||||||
tmpdir = ENV['TMPDIR']
|
tmpdir = ENV['TMPDIR']
|
||||||
return if tmpdir.nil?
|
"TMPDIR #{tmpdir.inspect} doesn't exist." unless tmpdir.nil? or File.directory? tmpdir
|
||||||
if !File.directory?(tmpdir)
|
|
||||||
puts "TMPDIR #{tmpdir.inspect} doesn't exist."
|
|
||||||
puts
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_missing_deps
|
def check_missing_deps
|
||||||
s = `brew missing`.strip
|
s = `brew missing`.strip
|
||||||
if s.length > 0
|
if s.length > 0 then <<-EOS.undent
|
||||||
ohai "You should brew install these missing dependencies:"
|
You have missing dependencies for install formula
|
||||||
puts s
|
You should `brew install` these missing dependencies:
|
||||||
puts
|
#{s}
|
||||||
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_git_status
|
def check_git_status
|
||||||
HOMEBREW_REPOSITORY.cd do
|
HOMEBREW_REPOSITORY.cd do
|
||||||
cmd = `git status -s Library/Homebrew/ 2> /dev/null`.chomp
|
cmd = `git status -s Library/Homebrew/ 2> /dev/null`.chomp
|
||||||
if system "/usr/bin/which -s git" and File.directory? '.git' and not cmd.empty?
|
if system "/usr/bin/which -s git" and File.directory? '.git' and not cmd.empty? then <<-EOS.undent
|
||||||
ohai "You have uncommitted modifications to Homebrew's core."
|
You have uncommitted modifications to Homebrew's core.
|
||||||
puts "Unless you know what you are doing, you should run:"
|
Unless you know what you are doing, you should run:
|
||||||
puts "cd "+HOMEBREW_REPOSITORY+" && git reset --hard"
|
cd #{HOMEBREW_REPOSITORY} && git reset --hard
|
||||||
puts
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_leopard_ssl
|
def check_for_leopard_ssl
|
||||||
if MacOS.leopard? and not ENV['GIT_SSL_NO_VERIFY']
|
if MacOS.leopard? and not ENV['GIT_SSL_NO_VERIFY']
|
||||||
puts <<-EOS.undent
|
<<-EOS.undent
|
||||||
The version of libcurl provided with Mac OS X Leopard has outdated
|
The version of libcurl provided with Mac OS X Leopard has outdated
|
||||||
SSL certificates.
|
SSL certificates.
|
||||||
|
|
||||||
@ -805,7 +732,6 @@ def check_for_leopard_ssl
|
|||||||
|
|
||||||
You can force Git to ignore these errors by setting GIT_SSL_NO_VERIFY.
|
You can force Git to ignore these errors by setting GIT_SSL_NO_VERIFY.
|
||||||
export GIT_SSL_NO_VERIFY=1
|
export GIT_SSL_NO_VERIFY=1
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -815,90 +741,43 @@ def check_git_version
|
|||||||
return unless system "/usr/bin/which -s git"
|
return unless system "/usr/bin/which -s git"
|
||||||
`git --version`.chomp =~ /git version (\d)\.(\d)\.(\d)/
|
`git --version`.chomp =~ /git version (\d)\.(\d)\.(\d)/
|
||||||
|
|
||||||
if $2.to_i > 6
|
if $2.to_i < 6 or $2.to_i == 6 and $3.to_i < 6 then <<-EOS.undent
|
||||||
return
|
|
||||||
elsif $2.to_i == 6 and $3.to_i == 6
|
|
||||||
return
|
|
||||||
else
|
|
||||||
puts <<-EOS.undent
|
|
||||||
An outdated version of Git was detected in your PATH.
|
An outdated version of Git was detected in your PATH.
|
||||||
|
|
||||||
Git 1.6.6 or newer is required to perform checkouts over HTTP from GitHub.
|
Git 1.6.6 or newer is required to perform checkouts over HTTP from GitHub.
|
||||||
|
Please upgrade: brew upgrade git
|
||||||
You may want to upgrade:
|
|
||||||
brew upgrade git
|
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_for_enthought_python
|
def check_for_enthought_python
|
||||||
return unless system "/usr/bin/which -s enpkg"
|
if system "/usr/bin/which -s enpkg" then <<-EOS.undent
|
||||||
puts <<-EOS.undent
|
|
||||||
Enthought Python was found in your PATH.
|
Enthought Python was found in your PATH.
|
||||||
|
|
||||||
This can cause build problems, as this software installs its own
|
This can cause build problems, as this software installs its own
|
||||||
copies of iconv and libxml2 into directories that are picked up by
|
copies of iconv and libxml2 into directories that are picked up by
|
||||||
other build systems.
|
other build systems.
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end # end class Checks
|
||||||
|
|
||||||
module Homebrew extend self
|
module Homebrew extend self
|
||||||
def doctor
|
def doctor
|
||||||
old_stdout = $stdout
|
raring_to_brew = true
|
||||||
$stdout = output = StringIO.new
|
|
||||||
|
|
||||||
begin
|
checks = Checks.new
|
||||||
check_usr_bin_ruby
|
|
||||||
check_homebrew_prefix
|
checks.methods.select{ |method| method =~ /^check_/ }.sort.each do |method|
|
||||||
check_xcode_prefix
|
out = checks.send(method)
|
||||||
check_xcode_select_path
|
unless out.nil? or out.empty?
|
||||||
check_for_macgpg2
|
puts unless raring_to_brew
|
||||||
check_for_stray_dylibs
|
lines = out.to_s.split('\n')
|
||||||
check_for_stray_static_libs
|
opoo lines.shift
|
||||||
check_for_stray_pcs
|
puts lines
|
||||||
check_for_stray_las
|
raring_to_brew = false
|
||||||
check_gcc_versions
|
end
|
||||||
check_for_other_package_managers
|
|
||||||
check_for_x11
|
|
||||||
check_for_nonstandard_x11
|
|
||||||
check_access_usr_local
|
|
||||||
check_access_include
|
|
||||||
check_access_etc
|
|
||||||
check_access_share
|
|
||||||
check_access_share_locale
|
|
||||||
check_access_share_man
|
|
||||||
check_user_path
|
|
||||||
check_which_pkg_config
|
|
||||||
check_pkg_config_paths
|
|
||||||
check_access_pkgconfig
|
|
||||||
check_for_gettext
|
|
||||||
check_for_config_scripts
|
|
||||||
check_for_dyld_vars
|
|
||||||
check_for_MACOSX_DEPLOYMENT_TARGET
|
|
||||||
check_for_symlinked_cellar
|
|
||||||
check_for_multiple_volumes
|
|
||||||
check_for_git
|
|
||||||
check_git_newline_settings
|
|
||||||
check_for_autoconf
|
|
||||||
check_for_linked_kegonly_brews
|
|
||||||
check_for_other_frameworks
|
|
||||||
check_tmpdir
|
|
||||||
check_missing_deps
|
|
||||||
check_git_status
|
|
||||||
check_for_leopard_ssl
|
|
||||||
check_git_version
|
|
||||||
check_for_enthought_python
|
|
||||||
ensure
|
|
||||||
$stdout = old_stdout
|
|
||||||
end
|
end
|
||||||
|
|
||||||
unless (warnings = output.string).chomp.empty?
|
puts "Your system is raring to brew." if raring_to_brew
|
||||||
puts warnings
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
puts "Your system is raring to brew."
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user