Skip to content

Commit

Permalink
keg_relocate: Don't relocate dylib IDs containing metavariables.
Browse files Browse the repository at this point in the history
  • Loading branch information
woodruffw committed Feb 20, 2017
1 parent 5a2a063 commit 0f89f65
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion Library/Homebrew/extend/os/mac/keg_relocate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,19 @@ def fixed_name(file, bad_name)
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)
Expand Down

0 comments on commit 0f89f65

Please sign in to comment.