diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb index aa5375112a..79874077d5 100644 --- a/Library/Homebrew/dependency.rb +++ b/Library/Homebrew/dependency.rb @@ -44,6 +44,11 @@ class Dependency formula = Formulary.factory(name) formula.build = BuildOptions.new(options, formula.options) formula + rescue CoreTapFormulaUnavailableError + raise if !Homebrew::EnvConfig.install_from_api? || !Homebrew::API::Bottle.available?(name) + + Homebrew::API::Bottle.fetch_bottles(name) + retry end def unavailable_core_formula? diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 78aacaab5a..4c3fd9e547 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -213,7 +213,7 @@ class FormulaInstaller begin compute_dependencies rescue TapFormulaUnavailableError => e - raise if e.tap.installed? + raise if e.tap.installed? || e.tap.core_tap? e.tap.install retry diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb index 4696e1a708..ed492477a6 100644 --- a/Library/Homebrew/formulary.rb +++ b/Library/Homebrew/formulary.rb @@ -343,6 +343,8 @@ module Formulary rescue FormulaClassUnavailableError => e raise TapFormulaClassUnavailableError.new(tap, name, e.path, e.class_name, e.class_list), "", e.backtrace rescue FormulaUnavailableError => e + raise CoreTapFormulaUnavailableError.new(name), "", e.backtrace if tap.core_tap? + raise TapFormulaUnavailableError.new(tap, name), "", e.backtrace end