From 1fc39d2d0d9a0db881356201725272e8455fffef Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Mon, 31 May 2021 16:29:23 +0100 Subject: [PATCH] os/mac/keg_relocate: add fallback to default Perl version when using tab While this should never be necessary for per-OS bottles, this could be useful for :all bottles where the OS it was built on uses a Perl version that doesn't exist on all macOS versions. --- Library/Homebrew/extend/os/mac/keg_relocate.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/extend/os/mac/keg_relocate.rb b/Library/Homebrew/extend/os/mac/keg_relocate.rb index ea2cb366eb..a0abdb0ab9 100644 --- a/Library/Homebrew/extend/os/mac/keg_relocate.rb +++ b/Library/Homebrew/extend/os/mac/keg_relocate.rb @@ -159,13 +159,16 @@ class Keg brewed_perl = runtime_dependencies&.any? { |dep| dep["full_name"] == "perl" && dep["declared_directly"] } perl_path = if brewed_perl || name == "perl" "#{HOMEBREW_PREFIX}/opt/perl/bin/perl" + elsif tab["built_on"].present? + perl_path = "/usr/bin/perl#{tab["built_on"]["preferred_perl"]}" + + # For `:all` bottles, we could have built this bottle with a Perl we don't have. + # Such bottles typically don't have strict version requirements. + perl_path = "/usr/bin/perl#{MacOS.preferred_perl_version}" unless File.exist?(perl_path) + + perl_path else - perl_version = if tab["built_on"].present? - tab["built_on"]["preferred_perl"] - else - MacOS.preferred_perl_version - end - "/usr/bin/perl#{perl_version}" + "/usr/bin/perl#{MacOS.preferred_perl_version}" end relocation.add_replacement_pair(:perl, PERL_PLACEHOLDER, perl_path)