diff --git a/Library/Homebrew/dependencies.rb b/Library/Homebrew/dependencies.rb index c4b8f0b671..44584242ae 100644 --- a/Library/Homebrew/dependencies.rb +++ b/Library/Homebrew/dependencies.rb @@ -137,7 +137,7 @@ class Requirement end def hash - @message.hash + message.hash end end @@ -194,7 +194,6 @@ end # This requirement is used to require an X11 implementation, # optionally with a minimum version number. class X11Dependency < Requirement - def initialize min_version=nil @min_version = min_version end @@ -216,6 +215,9 @@ class X11Dependency < Requirement ENV.x11 end + def hash + "X11".hash + end end diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 97ab036f62..8e8770db7d 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -66,26 +66,14 @@ class FormulaInstaller EOS end - # Build up a list of unsatisifed fatal requirements - first_message = true - unsatisfied_fatals = [] - f.requirements.each do |req| - unless req.satisfied? - # Newline between multiple messages - puts unless first_message - puts req.message - first_message = false - if req.fatal? and not ignore_deps - unsatisfied_fatals << req - end - end - end - - unless unsatisfied_fatals.empty? - raise UnsatisfiedRequirements.new(f, unsatisfied_fatals) - end - unless ignore_deps + needed_reqs = f.recursive_requirements.reject { |r| r.satisfied? } + puts needed_reqs.map { |r| r.message } * "\n" + unsatisfied_fatals = needed_reqs.select { |r| r.fatal? } + unless unsatisfied_fatals.empty? + raise UnsatisfiedRequirements.new(f, unsatisfied_fatals) + end + needed_deps = f.recursive_deps.reject{ |d| d.installed? } unless needed_deps.empty? needed_deps.each do |dep|