| 
									
										
										
										
											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" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       keg = formula.installed_kegs.last | 
					
						
							| 
									
										
										
										
											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 |