aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorCamillo Lugaresi2012-02-17 19:19:08 -0600
committerJack Nagel2012-02-21 19:39:37 -0600
commite32e2475bb358f3db90383570d794b8cdc7145fa (patch)
treecd7b59194f8d3de6cbf1f7cfb0741e01fd1ab3af /Library
parent8cbaca5b7661c2d48226cc2adf8932cd7cf0d2b9 (diff)
downloadbrew-e32e2475bb358f3db90383570d794b8cdc7145fa.tar.bz2
Make fix_install_names more robust
fixes a problem with the opencv formula Closes Homebrew/homebrew#10291. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/keg_fix_install_names.rb11
1 files changed, 9 insertions, 2 deletions
diff --git a/Library/Homebrew/keg_fix_install_names.rb b/Library/Homebrew/keg_fix_install_names.rb
index d3117b6f3..e0b9259c4 100644
--- a/Library/Homebrew/keg_fix_install_names.rb
+++ b/Library/Homebrew/keg_fix_install_names.rb
@@ -5,8 +5,15 @@ class Keg
dylib.ensure_writable do
system "install_name_tool", "-id", id, dylib
bad_names.each do |bad_name|
- # we should be more careful here, check the path we point to exists etc.
- system "install_name_tool", "-change", bad_name, "@loader_path/#{bad_name}", dylib
+ new_name = bad_name
+ new_name = Pathname.new(bad_name).basename unless (dylib.parent + new_name).exist?
+ # this fixes some problems, maybe not all. opencv seems to have badnames of the type
+ # "lib/libblah.dylib"
+ if (dylib.parent + new_name).exist?
+ system "install_name_tool", "-change", bad_name, "@loader_path/#{new_name}", dylib
+ else
+ opoo "Could not fix install names for #{dylib}"
+ end
end
end
end