Merge pull request #14437 from hyuraku/apply-extend/os-to-migrate_gcc_dependents_if_needed
apply extend/os to `migrate_gcc_dependents_if_needed`
This commit is contained in:
commit
28e1135c92
@ -9,6 +9,7 @@ require "description_cache_store"
|
|||||||
require "cli/parser"
|
require "cli/parser"
|
||||||
require "settings"
|
require "settings"
|
||||||
require "linuxbrew-core-migration"
|
require "linuxbrew-core-migration"
|
||||||
|
require "extend/os/cmd/update-report"
|
||||||
|
|
||||||
module Homebrew
|
module Homebrew
|
||||||
extend T::Sig
|
extend T::Sig
|
||||||
@ -293,31 +294,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
def migrate_gcc_dependents_if_needed
|
def migrate_gcc_dependents_if_needed
|
||||||
# TODO: Refactor and move to extend/os
|
# do nothing
|
||||||
return if OS.mac? # rubocop:disable Homebrew/MoveToExtendOS
|
|
||||||
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
4
Library/Homebrew/extend/os/cmd/update-report.rb
Normal file
4
Library/Homebrew/extend/os/cmd/update-report.rb
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# typed: strict
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "extend/os/linux/cmd/update-report" if OS.linux?
|
||||||
34
Library/Homebrew/extend/os/linux/cmd/update-report.rb
Normal file
34
Library/Homebrew/extend/os/linux/cmd/update-report.rb
Normal file
@ -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
|
||||||
Loading…
x
Reference in New Issue
Block a user