diff --git a/Library/Homebrew/cmd/reinstall.rb b/Library/Homebrew/cmd/reinstall.rb index bacf33beaa..6c66056007 100644 --- a/Library/Homebrew/cmd/reinstall.rb +++ b/Library/Homebrew/cmd/reinstall.rb @@ -138,7 +138,6 @@ module Homebrew Homebrew::Reinstall.reinstall_formula( formula, flags: args.flags_only, - installed_on_request: args.named.present?, force_bottle: args.force_bottle?, build_from_source_formulae: args.build_from_source_formulae, interactive: args.interactive?, @@ -156,7 +155,6 @@ module Homebrew Upgrade.check_installed_dependents( formulae, flags: args.flags_only, - installed_on_request: args.named.present?, force_bottle: args.force_bottle?, build_from_source_formulae: args.build_from_source_formulae, interactive: args.interactive?, diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index cf17914f10..5511cd71e0 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -220,7 +220,6 @@ module Homebrew formulae_to_install, flags: args.flags_only, dry_run: args.dry_run?, - installed_on_request: args.named.present?, force_bottle: args.force_bottle?, build_from_source_formulae: args.build_from_source_formulae, interactive: args.interactive?, @@ -237,7 +236,6 @@ module Homebrew formulae_to_install, flags: args.flags_only, dry_run: args.dry_run?, - installed_on_request: args.named.present?, force_bottle: args.force_bottle?, build_from_source_formulae: args.build_from_source_formulae, interactive: args.interactive?, diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index c26e12b424..e28e83d0bd 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -84,7 +84,7 @@ class FormulaInstaller formula, link_keg: false, installed_as_dependency: false, - installed_on_request: true, + installed_on_request: false, show_header: false, build_bottle: false, skip_post_install: false, diff --git a/Library/Homebrew/install.rb b/Library/Homebrew/install.rb index bf03c18c07..aea4eba02e 100644 --- a/Library/Homebrew/install.rb +++ b/Library/Homebrew/install.rb @@ -259,6 +259,8 @@ module Homebrew formula_installer = FormulaInstaller.new( formula, options: build_options.used_options, + installed_on_request: true, + installed_as_dependency: false, build_bottle:, force_bottle:, bottle_arch:, diff --git a/Library/Homebrew/reinstall.rb b/Library/Homebrew/reinstall.rb index 6e5ba26131..25e27bcc14 100644 --- a/Library/Homebrew/reinstall.rb +++ b/Library/Homebrew/reinstall.rb @@ -10,7 +10,6 @@ module Homebrew def self.reinstall_formula( formula, flags:, - installed_on_request: false, force_bottle: false, build_from_source_formulae: [], interactive: false, @@ -25,9 +24,16 @@ module Homebrew if formula.opt_prefix.directory? keg = Keg.new(formula.opt_prefix.resolved_path) tab = keg.tab - keg_had_linked_opt = true - keg_was_linked = keg.linked? + link_keg = keg.linked? + installed_as_dependency = tab.installed_as_dependency + installed_on_request = tab.installed_on_request + build_bottle = tab.built_bottle? backup keg + else + link_keg = nil + installed_as_dependency = false + installed_on_request = true + build_bottle = false end build_options = BuildOptions.new(Options.create(flags), formula.options) @@ -39,10 +45,10 @@ module Homebrew formula, **{ options:, - link_keg: keg_had_linked_opt ? keg_was_linked : nil, - installed_as_dependency: tab&.installed_as_dependency, - installed_on_request: installed_on_request || tab&.installed_on_request, - build_bottle: tab&.built_bottle?, + link_keg:, + installed_as_dependency:, + installed_on_request:, + build_bottle:, force_bottle:, build_from_source_formulae:, git:, @@ -65,7 +71,7 @@ module Homebrew rescue FormulaInstallationAlreadyAttemptedError nil rescue Exception # rubocop:disable Lint/RescueException - ignore_interrupts { restore_backup(keg, keg_was_linked, verbose:) } + ignore_interrupts { restore_backup(keg, link_keg, verbose:) } raise else begin diff --git a/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb b/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb index 21d23905f8..9981aabada 100644 --- a/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb +++ b/Library/Homebrew/test/support/helper/spec/shared_context/integration_test.rb @@ -202,7 +202,7 @@ RSpec.shared_context "integration test" do # rubocop:disable RSpec/ContextWordin def install_test_formula(name, content = nil, build_bottle: false) setup_test_formula(name, content) - fi = FormulaInstaller.new(Formula[name], build_bottle:) + fi = FormulaInstaller.new(Formula[name], build_bottle:, installed_on_request: true) fi.prelude fi.fetch fi.install diff --git a/Library/Homebrew/upgrade.rb b/Library/Homebrew/upgrade.rb index 8fa8df49ad..8a25927fcd 100644 --- a/Library/Homebrew/upgrade.rb +++ b/Library/Homebrew/upgrade.rb @@ -15,7 +15,6 @@ module Homebrew formulae_to_install, flags:, dry_run: false, - installed_on_request: false, force_bottle: false, build_from_source_formulae: [], dependents: false, @@ -55,7 +54,6 @@ module Homebrew fi = create_formula_installer( formula, flags:, - installed_on_request:, force_bottle:, build_from_source_formulae:, interactive:, @@ -114,7 +112,6 @@ module Homebrew private_class_method def self.create_formula_installer( formula, flags:, - installed_on_request: false, force_bottle: false, build_from_source_formulae: [], interactive: false, @@ -126,15 +123,23 @@ module Homebrew quiet: false, verbose: false ) - if formula.opt_prefix.directory? - keg = Keg.new(formula.opt_prefix.resolved_path) - keg_had_linked_opt = true - keg_was_linked = keg.linked? + keg = if formula.optlinked? + Keg.new(formula.opt_prefix.resolved_path) + else + formula.installed_kegs.find(&:optlinked?) end - if formula.opt_prefix.directory? - keg = Keg.new(formula.opt_prefix.resolved_path) + if keg tab = keg.tab + link_keg = keg.linked? + installed_as_dependency = tab.installed_as_dependency + installed_on_request = tab.installed_on_request + build_bottle = tab.built_bottle? + else + link_keg = nil + installed_as_dependency = false + installed_on_request = true + build_bottle = false end build_options = BuildOptions.new(Options.create(flags), formula.options) @@ -146,10 +151,10 @@ module Homebrew formula, **{ options:, - link_keg: keg_had_linked_opt ? keg_was_linked : nil, - installed_as_dependency: tab&.installed_as_dependency, - installed_on_request: installed_on_request || tab&.installed_on_request, - build_bottle: tab&.built_bottle?, + link_keg:, + installed_as_dependency:, + installed_on_request:, + build_bottle:, force_bottle:, build_from_source_formulae:, interactive:, @@ -338,7 +343,6 @@ module Homebrew upgrade_formulae( upgradeable_dependents, flags:, - installed_on_request:, force_bottle:, build_from_source_formulae:, dependents: true,