From 2d864d70e0d48a4a0f0ea6affbe52d423f90eceb Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Thu, 26 Jan 2023 22:21:45 +0900 Subject: [PATCH 1/5] apply extend/os to migrate_gcc_dependents_if_needed --- Library/Homebrew/cmd/update-report.rb | 3 +-- Library/Homebrew/extend/os/mac/update-report.rb | 12 ++++++++++++ Library/Homebrew/extend/os/update-report.rb | 4 ++++ 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 Library/Homebrew/extend/os/mac/update-report.rb create mode 100644 Library/Homebrew/extend/os/update-report.rb diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb index 71ecb09d92..8855588e6b 100644 --- a/Library/Homebrew/cmd/update-report.rb +++ b/Library/Homebrew/cmd/update-report.rb @@ -9,6 +9,7 @@ require "description_cache_store" require "cli/parser" require "settings" require "linuxbrew-core-migration" +require "extend/os/update-report" module Homebrew extend T::Sig @@ -293,8 +294,6 @@ module Homebrew end def migrate_gcc_dependents_if_needed - # TODO: Refactor and move to extend/os - return if OS.mac? # rubocop:disable Homebrew/MoveToExtendOS return if Settings.read("gcc-rpaths.fixed") == "true" Formula.installed.each do |formula| diff --git a/Library/Homebrew/extend/os/mac/update-report.rb b/Library/Homebrew/extend/os/mac/update-report.rb new file mode 100644 index 0000000000..a7e8ce393d --- /dev/null +++ b/Library/Homebrew/extend/os/mac/update-report.rb @@ -0,0 +1,12 @@ +# typed: false +# frozen_string_literal: true + +module Homebrew + extend T::Sig + + module_function + + def migrate_gcc_dependents_if_needed + # do nothing + end +end diff --git a/Library/Homebrew/extend/os/update-report.rb b/Library/Homebrew/extend/os/update-report.rb new file mode 100644 index 0000000000..36f8a1eb01 --- /dev/null +++ b/Library/Homebrew/extend/os/update-report.rb @@ -0,0 +1,4 @@ +# typed: strict +# frozen_string_literal: true + +require "extend/os/mac/update-report" if OS.mac? From 653930bed82858f14d49182aa7feedfccfbc4f09 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Sat, 28 Jan 2023 21:38:40 +0900 Subject: [PATCH 2/5] mv files to os/*/cmd/ --- Library/Homebrew/cmd/update-report.rb | 24 +------------ .../extend/os/linux/cmd/update-report.rb | 34 +++++++++++++++++++ .../extend/os/mac/{ => cmd}/update-report.rb | 0 Library/Homebrew/extend/os/update-report.rb | 6 +++- 4 files changed, 40 insertions(+), 24 deletions(-) create mode 100644 Library/Homebrew/extend/os/linux/cmd/update-report.rb rename Library/Homebrew/extend/os/mac/{ => cmd}/update-report.rb (100%) 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 From 6945cd7da48ebb114a9de3cffbd2b8f2293a4093 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Thu, 2 Feb 2023 18:50:09 +0900 Subject: [PATCH 3/5] - remove mac/cmd/update-report - repair if condition - repair require filename --- Library/Homebrew/cmd/update-report.rb | 2 +- Library/Homebrew/extend/os/mac/cmd/update-report.rb | 12 ------------ Library/Homebrew/extend/os/update-report.rb | 4 +--- 3 files changed, 2 insertions(+), 16 deletions(-) delete mode 100644 Library/Homebrew/extend/os/mac/cmd/update-report.rb diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb index 1a0cd6ee4e..474db0052d 100644 --- a/Library/Homebrew/cmd/update-report.rb +++ b/Library/Homebrew/cmd/update-report.rb @@ -9,7 +9,7 @@ require "description_cache_store" require "cli/parser" require "settings" require "linuxbrew-core-migration" -require "extend/os/update-report" +require "extend/os/cmd/update-report" module Homebrew extend T::Sig diff --git a/Library/Homebrew/extend/os/mac/cmd/update-report.rb b/Library/Homebrew/extend/os/mac/cmd/update-report.rb deleted file mode 100644 index a7e8ce393d..0000000000 --- a/Library/Homebrew/extend/os/mac/cmd/update-report.rb +++ /dev/null @@ -1,12 +0,0 @@ -# typed: false -# frozen_string_literal: true - -module Homebrew - extend T::Sig - - module_function - - def migrate_gcc_dependents_if_needed - # do nothing - end -end diff --git a/Library/Homebrew/extend/os/update-report.rb b/Library/Homebrew/extend/os/update-report.rb index ba0c9803bc..d7bc3784df 100644 --- a/Library/Homebrew/extend/os/update-report.rb +++ b/Library/Homebrew/extend/os/update-report.rb @@ -1,8 +1,6 @@ # typed: strict # frozen_string_literal: true -if OS.mac? - require "extend/os/mac/cmd/update-report" -elsif OS.linux? +if OS.linux? require "extend/os/linux/cmd/update-report" end From 4caee38388cd14dd818ce1982981cd0a64ec86be Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Thu, 2 Feb 2023 19:00:13 +0900 Subject: [PATCH 4/5] mv extend/os update-report --- Library/Homebrew/extend/os/{ => cmd}/update-report.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Library/Homebrew/extend/os/{ => cmd}/update-report.rb (100%) diff --git a/Library/Homebrew/extend/os/update-report.rb b/Library/Homebrew/extend/os/cmd/update-report.rb similarity index 100% rename from Library/Homebrew/extend/os/update-report.rb rename to Library/Homebrew/extend/os/cmd/update-report.rb From a57b9e7bdfea68239e94f8dbef07c5a1e4a3a7f1 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Thu, 2 Feb 2023 19:03:05 +0900 Subject: [PATCH 5/5] repair if style --- Library/Homebrew/extend/os/cmd/update-report.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Library/Homebrew/extend/os/cmd/update-report.rb b/Library/Homebrew/extend/os/cmd/update-report.rb index d7bc3784df..59a67f04ce 100644 --- a/Library/Homebrew/extend/os/cmd/update-report.rb +++ b/Library/Homebrew/extend/os/cmd/update-report.rb @@ -1,6 +1,4 @@ # typed: strict # frozen_string_literal: true -if OS.linux? - require "extend/os/linux/cmd/update-report" -end +require "extend/os/linux/cmd/update-report" if OS.linux?