diff --git a/Library/Homebrew/cmd/fetch.rb b/Library/Homebrew/cmd/fetch.rb index fabe268e53..28a6c42114 100644 --- a/Library/Homebrew/cmd/fetch.rb +++ b/Library/Homebrew/cmd/fetch.rb @@ -42,9 +42,15 @@ module Homebrew end def fetch_bottle?(f) - return true if ARGV.force_bottle? && f.bottle - return false unless f.bottle && f.pour_bottle? - return false if ARGV.build_from_source? || ARGV.build_bottle? + return false unless f.bottle + return true if ARGV.force_bottle? + return false unless f.pour_bottle? + # We want to behave different with `--build-from-source` and + # ENV["HOMEBREW_BUILD_FROM_SOURCE"] because the latter implies you want + # everything built from source and the prior that you want just the + # formulae you've requested built from source. + return false if ENV["HOMEBREW_BUILD_FROM_SOURCE"] + return false if ARGV.build_bottle? return false unless f.bottle.compatible_cellar? true end diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 3c0ab181d3..af19221507 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -98,8 +98,13 @@ class FormulaInstaller def install_bottle_for?(dep, build) return pour_bottle? if dep == formula - return false if build_from_source? - return false unless dep.bottle && dep.pour_bottle? + # We want to behave different with `--build-from-source` and + # ENV["HOMEBREW_BUILD_FROM_SOURCE"] because the latter implies you want + # everything built from source and the prior that you want just the + # formulae you've requested built from source. + return false if ENV["HOMEBREW_BUILD_FROM_SOURCE"] + return false unless dep.bottle + return false unless dep.pour_bottle? return false unless build.used_options.empty? return false unless dep.bottle.compatible_cellar? true