aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/extend/os/mac/keg_relocate.rb6
-rw-r--r--Library/Homebrew/keg_relocate.rb17
2 files changed, 19 insertions, 4 deletions
diff --git a/Library/Homebrew/extend/os/mac/keg_relocate.rb b/Library/Homebrew/extend/os/mac/keg_relocate.rb
index f44a97b31..0b2ecd1c9 100644
--- a/Library/Homebrew/extend/os/mac/keg_relocate.rb
+++ b/Library/Homebrew/extend/os/mac/keg_relocate.rb
@@ -125,6 +125,12 @@ class Keg
mach_o_files
end
+ def recursive_fgrep_args
+ # Don't recurse into symlinks; the man page says this is the default, but
+ # it's wrong. -O is a BSD-grep-only option.
+ "-lrO"
+ end
+
def self.file_linked_libraries(file, string)
# Check dynamic library linkage. Importantly, do not perform for static
# libraries, which will falsely report "linkage" to themselves.
diff --git a/Library/Homebrew/keg_relocate.rb b/Library/Homebrew/keg_relocate.rb
index 834cda768..6044426ee 100644
--- a/Library/Homebrew/keg_relocate.rb
+++ b/Library/Homebrew/keg_relocate.rb
@@ -16,9 +16,12 @@ class Keg
link = file.readlink
# Don't fix relative symlinks
next unless link.absolute?
- if link.to_s.start_with?(HOMEBREW_CELLAR.to_s) || link.to_s.start_with?(HOMEBREW_PREFIX.to_s)
- FileUtils.ln_sf(link.relative_path_from(file.parent), file)
- end
+ link_starts_cellar = link.to_s.start_with?(HOMEBREW_CELLAR.to_s)
+ link_starts_prefix = link.to_s.start_with?(HOMEBREW_PREFIX.to_s)
+ next if !link_starts_cellar && !link_starts_prefix
+ new_src = link.relative_path_from(file.parent)
+ file.unlink
+ FileUtils.ln_s(new_src, file)
end
end
alias generic_fix_dynamic_linkage fix_dynamic_linkage
@@ -96,8 +99,14 @@ class Keg
[]
end
+ def recursive_fgrep_args
+ # for GNU grep; overridden for BSD grep on OS X
+ "-lr"
+ end
+ alias generic_recursive_fgrep_args recursive_fgrep_args
+
def each_unique_file_matching(string)
- Utils.popen_read("/usr/bin/fgrep", "-lr", string, to_s) do |io|
+ Utils.popen_read("/usr/bin/fgrep", recursive_fgrep_args, string, to_s) do |io|
hardlinks = Set.new
until io.eof?