From c3ae0327c01aab461531bfc0fcdfb4dd3a779205 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Thu, 18 Jul 2024 15:30:04 +0100 Subject: [PATCH] dependency: fix missed upgrades when an alias is changed to a formula --- Library/Homebrew/dependency.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb index bd245d4d4f8c5..79a3c5684ff8c 100644 --- a/Library/Homebrew/dependency.rb +++ b/Library/Homebrew/dependency.rb @@ -56,8 +56,16 @@ def installed?(minimum_version: nil, minimum_revision: nil) return false if minimum_version.blank? - installed_version = formula.any_installed_version - return false unless installed_version + # If the opt prefix doesn't exist: we likely have an incomplete installation. + return false unless formula.opt_prefix.exist? + + installed_keg = formula.any_installed_keg + return false unless installed_keg + + # If the keg name doesn't match, we may have moved from an alias to a full formula and need to upgrade. + return false unless formula.possible_names.include?(installed_keg.name) + + installed_version = installed_keg.version # Tabs prior to 4.1.18 did not have revision or pkg_version fields. # As a result, we have to be more conversative when we do not have