# File lib/cft/rpm.rb, line 107 def self.shadow(packages) result = {} packages.each do |leaf| result[leaf] ||= [] leaf.requires.each do |req| packages.reject{ |k| k == leaf }.each do |k| if req.name[0,1] == '/' if k.files.find { |file| file.path == req.name } result[leaf] << k end else result[leaf] << k if req.satisfy?(k) end end end end result.each_value { |v| v.uniq! } return result end