diff options
| author | Xu Cheng | 2015-09-25 21:06:07 +0800 |
|---|---|---|
| committer | Xu Cheng | 2015-09-26 13:51:56 +0800 |
| commit | 7b97dca554459892f11f7ee28aa7eb12c763a549 (patch) | |
| tree | 80600a514a234ab017b9ac3cadfdb840edd3dec9 | |
| parent | 5045fc95bf91bbd0bf6d5b7612a9e664bdf80f6c (diff) | |
| download | brew-7b97dca554459892f11f7ee28aa7eb12c763a549.tar.bz2 | |
use `skip_deps_check?` instead of `ignore_deps?` hack
We previously set `ignore_deps?` as true for DependencyInstaller to
avoid duplicated dependencies resolution. (See a9fc82aea30506eeacbddeb8b53fb85de8acb9d4)
However, this will cause problem when pouring bottle of a dependency is
failed. In this case, it will try to build dependency from source but
failed due to uninstalled build deps for this formula.
Another disadvantage for using `ignore_deps?` hack is we cannot
distinguish users passing `--ignore-dependencies` flag from we are in
`DependencyInstaller`.
So, let's differentiate these using `skip_deps_check?`
| -rw-r--r-- | Library/Homebrew/formula_installer.rb | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index caf4a7475..0ac94a40c 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -56,6 +56,10 @@ class FormulaInstaller @pour_failed = false end + def skip_deps_check? + ignore_deps? + end + # When no build tools are available and build flags are passed through ARGV, # it's necessary to interrupt the user before any sort of installation # can proceed. Only invoked when the user has no developer tools. @@ -97,7 +101,7 @@ class FormulaInstaller end def prelude - verify_deps_exist unless ignore_deps? + verify_deps_exist unless skip_deps_check? lock check_install_sanity end @@ -120,7 +124,7 @@ class FormulaInstaller def check_install_sanity raise FormulaInstallationAlreadyAttemptedError, formula if @@attempted.include?(formula) - unless ignore_deps? + unless skip_deps_check? unlinked_deps = formula.recursive_dependencies.map(&:to_formula).select do |dep| dep.installed? && !dep.keg_only? && !dep.linked_keg.directory? end @@ -159,7 +163,7 @@ class FormulaInstaller raise BuildToolsError.new([formula]) end - unless ignore_deps? + unless skip_deps_check? deps = compute_dependencies check_dependencies_bottled(deps) if pour_bottle? && !MacOS.has_apple_developer_tools? install_dependencies(deps) @@ -364,15 +368,8 @@ class FormulaInstaller end class DependencyInstaller < FormulaInstaller - def initialize(*) - super - @ignore_deps = true - end - - def sanitized_ARGV_options - args = super - args.delete "--ignore-dependencies" - args + def skip_deps_check? + true end end |
