diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb index 8855588e6b..1a0cd6ee4e 100644 --- a/Library/Homebrew/cmd/update-report.rb +++ b/Library/Homebrew/cmd/update-report.rb @@ -294,29 +294,7 @@ module Homebrew end def migrate_gcc_dependents_if_needed - return if Settings.read("gcc-rpaths.fixed") == "true" - - Formula.installed.each do |formula| - next unless formula.tap&.core_tap? - - recursive_runtime_dependencies = Dependency.expand( - formula, - cache_key: "update-report", - ) do |_, dependency| - Dependency.prune if dependency.build? || dependency.test? - end - next unless recursive_runtime_dependencies.map(&:name).include? "gcc" - - keg = formula.installed_kegs.last - tab = Tab.for_keg(keg) - # Force reinstallation upon `brew upgrade` to fix the bottle RPATH. - tab.source["versions"]["version_scheme"] = -1 - tab.write - rescue TapFormulaUnavailableError - nil - end - - Settings.write "gcc-rpaths.fixed", true + # do nothing end end diff --git a/Library/Homebrew/extend/os/linux/cmd/update-report.rb b/Library/Homebrew/extend/os/linux/cmd/update-report.rb new file mode 100644 index 0000000000..7471633287 --- /dev/null +++ b/Library/Homebrew/extend/os/linux/cmd/update-report.rb @@ -0,0 +1,34 @@ +# typed: false +# frozen_string_literal: true + +module Homebrew + extend T::Sig + + module_function + + def migrate_gcc_dependents_if_needed + return if Settings.read("gcc-rpaths.fixed") == "true" + + Formula.installed.each do |formula| + next unless formula.tap&.core_tap? + + recursive_runtime_dependencies = Dependency.expand( + formula, + cache_key: "update-report", + ) do |_, dependency| + Dependency.prune if dependency.build? || dependency.test? + end + next unless recursive_runtime_dependencies.map(&:name).include? "gcc" + + keg = formula.installed_kegs.last + tab = Tab.for_keg(keg) + # Force reinstallation upon `brew upgrade` to fix the bottle RPATH. + tab.source["versions"]["version_scheme"] = -1 + tab.write + rescue TapFormulaUnavailableError + nil + end + + Settings.write "gcc-rpaths.fixed", true + end +end diff --git a/Library/Homebrew/extend/os/mac/update-report.rb b/Library/Homebrew/extend/os/mac/cmd/update-report.rb similarity index 100% rename from Library/Homebrew/extend/os/mac/update-report.rb rename to Library/Homebrew/extend/os/mac/cmd/update-report.rb diff --git a/Library/Homebrew/extend/os/update-report.rb b/Library/Homebrew/extend/os/update-report.rb index 36f8a1eb01..ba0c9803bc 100644 --- a/Library/Homebrew/extend/os/update-report.rb +++ b/Library/Homebrew/extend/os/update-report.rb @@ -1,4 +1,8 @@ # typed: strict # frozen_string_literal: true -require "extend/os/mac/update-report" if OS.mac? +if OS.mac? + require "extend/os/mac/cmd/update-report" +elsif OS.linux? + require "extend/os/linux/cmd/update-report" +end