Merge pull request #15944 from MikeMcQuaid/more_liberal_formula_upgrade

upgrade: more liberal formula upgrade changes.
This commit is contained in:
Mike McQuaid 2023-09-05 07:28:28 -04:00 committed by GitHub
commit fbc1e84bdc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 1 deletions

View File

@ -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

View File

@ -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,