os/mac/keg_relocate: handle libexec/lib.

We can fix up libraries in `lib` not `libexec/lib` so add an extra check
for that case.

Inspired by https://github.com/Homebrew/homebrew-core/pull/53790#issuecomment-637622329
This commit is contained in:
Mike McQuaid 2020-06-02 16:35:36 +01:00
parent 7db771be30
commit 3663e9d5d1
No known key found for this signature in database
GPG Key ID: 48A898132FD8EE70

View File

@ -106,10 +106,12 @@ class Keg
bad_name.sub(PREFIX_PLACEHOLDER, HOMEBREW_PREFIX) bad_name.sub(PREFIX_PLACEHOLDER, HOMEBREW_PREFIX)
elsif bad_name.start_with? CELLAR_PLACEHOLDER elsif bad_name.start_with? CELLAR_PLACEHOLDER
bad_name.sub(CELLAR_PLACEHOLDER, HOMEBREW_CELLAR) bad_name.sub(CELLAR_PLACEHOLDER, HOMEBREW_CELLAR)
elsif (file.dylib? || file.mach_o_bundle?) && (file.parent + bad_name).exist? elsif (file.dylib? || file.mach_o_bundle?) && (file.dirname/bad_name).exist?
"@loader_path/#{bad_name}" "@loader_path/#{bad_name}"
elsif file.mach_o_executable? && (lib + bad_name).exist? elsif file.mach_o_executable? && (lib/bad_name).exist?
"#{lib}/#{bad_name}" "#{lib}/#{bad_name}"
elsif file.mach_o_executable? && (libexec/"lib"/bad_name).exist?
"#{libexec}/lib/#{bad_name}"
elsif bad_name.start_with?("@rpath") && ENV["HOMEBREW_RELOCATE_METAVARS"] elsif bad_name.start_with?("@rpath") && ENV["HOMEBREW_RELOCATE_METAVARS"]
expand_rpath file, bad_name expand_rpath file, bad_name
elsif (abs_name = find_dylib(bad_name)) && abs_name.exist? elsif (abs_name = find_dylib(bad_name)) && abs_name.exist?