Merge pull request #15944 from MikeMcQuaid/more_liberal_formula_upgrade
upgrade: more liberal formula upgrade changes.
This commit is contained in:
commit
fbc1e84bdc
@ -31,6 +31,7 @@ class FormulaInstaller
|
||||
extend Predicable
|
||||
|
||||
attr_reader :formula
|
||||
attr_reader :bottle_tab_runtime_dependencies
|
||||
|
||||
attr_accessor :options, :link_keg
|
||||
|
||||
@ -96,7 +97,7 @@ class FormulaInstaller
|
||||
@requirement_messages = []
|
||||
@poured_bottle = false
|
||||
@start_time = nil
|
||||
@bottle_tab_runtime_dependencies = {}
|
||||
@bottle_tab_runtime_dependencies = {}.freeze
|
||||
|
||||
# Take the original formula instance, which might have been swapped from an API instance to a source instance
|
||||
@formula = previously_fetched_formula if previously_fetched_formula
|
||||
|
||||
@ -22,6 +22,7 @@ module Homebrew
|
||||
installed_on_request: false,
|
||||
force_bottle: false,
|
||||
build_from_source_formulae: [],
|
||||
dependents: false,
|
||||
interactive: false,
|
||||
keep_tmp: false,
|
||||
debug_symbols: false,
|
||||
@ -70,6 +71,20 @@ module Homebrew
|
||||
)
|
||||
unless dry_run
|
||||
fi.prelude
|
||||
|
||||
# Don't need to install this bottle if all the runtime dependencies
|
||||
# are already satisfied.
|
||||
next if dependents && fi.bottle_tab_runtime_dependencies.presence&.none? do |dependency, hash|
|
||||
installed_version = begin
|
||||
Formula[dependency].any_installed_version
|
||||
rescue FormulaUnavailableError
|
||||
nil
|
||||
end
|
||||
next true unless installed_version
|
||||
|
||||
Version.new(hash["version"]) > installed_version.version
|
||||
end
|
||||
|
||||
fi.fetch
|
||||
end
|
||||
fi
|
||||
@ -336,6 +351,7 @@ module Homebrew
|
||||
installed_on_request: installed_on_request,
|
||||
force_bottle: force_bottle,
|
||||
build_from_source_formulae: build_from_source_formulae,
|
||||
dependents: true,
|
||||
interactive: interactive,
|
||||
keep_tmp: keep_tmp,
|
||||
debug_symbols: debug_symbols,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user