diff options
| author | William Woodruff | 2017-02-16 01:33:24 -0500 |
|---|---|---|
| committer | William Woodruff | 2017-02-19 19:51:27 -0500 |
| commit | 0f89f6520ee9054d3e1ba09a3f6e14455375d2ed (patch) | |
| tree | 42e6d93f2a54f2f4b5be7e99e9fc1a763afcd0d9 /Library | |
| parent | 5a2a0638028ee49991e404c1bd6397c10659474b (diff) | |
| download | brew-0f89f6520ee9054d3e1ba09a3f6e14455375d2ed.tar.bz2 | |
keg_relocate: Don't relocate dylib IDs containing metavariables.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/extend/os/mac/keg_relocate.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Library/Homebrew/extend/os/mac/keg_relocate.rb b/Library/Homebrew/extend/os/mac/keg_relocate.rb index f44a97b31..476e5da4a 100644 --- a/Library/Homebrew/extend/os/mac/keg_relocate.rb +++ b/Library/Homebrew/extend/os/mac/keg_relocate.rb @@ -78,13 +78,19 @@ class Keg end end + def filename_contains_metavariable?(fn) + fn =~ /^@(loader_|executable_|r)path/ + end + def each_install_name_for(file, &block) dylibs = file.dynamically_linked_libraries - dylibs.reject! { |fn| fn =~ /^@(loader_|executable_|r)path/ } + dylibs.reject! { |fn| filename_contains_metavariable?(fn) } dylibs.each(&block) end def dylib_id_for(file) + return file.dylib_id if filename_contains_metavariable?(file.dylib_id) + # The new dylib ID should have the same basename as the old dylib ID, not # the basename of the file itself. basename = File.basename(file.dylib_id) |
