2024-08-10 23:50:30 +01:00
|
|
|
# typed: strict
|
2023-01-28 21:38:40 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Homebrew
|
|
|
|
module_function
|
|
|
|
|
2024-08-10 23:50:30 +01:00
|
|
|
sig { returns(String) }
|
2023-03-27 17:24:25 +01:00
|
|
|
def no_changes_message
|
|
|
|
"No changes to formulae."
|
|
|
|
end
|
|
|
|
|
2024-08-10 23:50:30 +01:00
|
|
|
sig { void }
|
2023-01-28 21:38:40 +09:00
|
|
|
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"
|
|
|
|
|
2025-02-16 22:20:37 -08:00
|
|
|
keg = formula.installed_kegs.fetch(-1)
|
2024-04-28 03:23:21 +02:00
|
|
|
tab = keg.tab
|
2023-01-28 21:38:40 +09:00
|
|
|
# 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
|