Merge pull request #2815 from ilovezfs/runtime-requirements
formula_installer: make unsatisifed recursive build reqs non-fatal for bottles
This commit is contained in:
		
						commit
						f4f1f1a610
					
				@ -409,12 +409,21 @@ class FormulaInstaller
 | 
			
		||||
    install_bottle_for?(dependent, build)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def runtime_requirements(formula)
 | 
			
		||||
    runtime_deps = formula.runtime_dependencies.map(&:to_formula)
 | 
			
		||||
    recursive_requirements = formula.recursive_requirements do |dependent, _|
 | 
			
		||||
      Requirement.prune unless runtime_deps.include?(dependent)
 | 
			
		||||
    end
 | 
			
		||||
    (recursive_requirements.to_a + formula.requirements.to_a).reject(&:build?).uniq
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def expand_requirements
 | 
			
		||||
    unsatisfied_reqs = Hash.new { |h, k| h[k] = [] }
 | 
			
		||||
    deps = []
 | 
			
		||||
    formulae = [formula]
 | 
			
		||||
 | 
			
		||||
    while f = formulae.pop
 | 
			
		||||
      runtime_requirements = runtime_requirements(f)
 | 
			
		||||
      f.recursive_requirements do |dependent, req|
 | 
			
		||||
        build = effective_build_options_for(dependent)
 | 
			
		||||
 | 
			
		||||
@ -429,6 +438,8 @@ class FormulaInstaller
 | 
			
		||||
          Requirement.prune
 | 
			
		||||
        elsif req.satisfied?
 | 
			
		||||
          Requirement.prune
 | 
			
		||||
        elsif !runtime_requirements.include?(req) && install_bottle_for?(dependent, build)
 | 
			
		||||
          Requirement.prune
 | 
			
		||||
        else
 | 
			
		||||
          unsatisfied_reqs[dependent] << req
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user