diff options
| author | Mike McQuaid | 2017-04-05 09:32:52 +0100 |
|---|---|---|
| committer | GitHub | 2017-04-05 09:32:52 +0100 |
| commit | d84655efb9dba5840d75e08da5b69f5fd0c56744 (patch) | |
| tree | 687655fb353a5ee38033a1fed8fd866799504fe3 /Library | |
| parent | 1a87964e04037b77b82b7545b95fcd0ab72b8cff (diff) | |
| parent | 2144c35539318a8ec88ba3ebcca473a917eee71b (diff) | |
| download | brew-d84655efb9dba5840d75e08da5b69f5fd0c56744.tar.bz2 | |
Merge pull request #2442 from tdsmith/fix-symlink-relocation
Virtualenv relocation fixes
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/extend/os/mac/keg_relocate.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/keg_relocate.rb | 17 |
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? |
