aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorMike McQuaid2016-09-18 16:31:58 +0100
committerMike McQuaid2016-09-18 16:31:58 +0100
commit997ccb044d21fccb1a95ef4eefad0fa892289e02 (patch)
tree2948ea9c1d2bd6a0fce9cb7b6a4a874d45c7417b /Library/Homebrew
parentf4a8d28819f1fee73fcc63d08e70cb36eecdfb20 (diff)
downloadbrew-997ccb044d21fccb1a95ef4eefad0fa892289e02.tar.bz2
Relocate HOMEBREW_REPOSITORY when necessary.
Now that the default from the installer, our CI and soon all users is `/usr/local/Homebrew` it's a lot easier to check if there's references to it (as we cannot look for `/usr/local` as it's a too commonly hardcoded path).
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/dev-cmd/bottle.rb8
-rw-r--r--Library/Homebrew/formula_installer.rb3
-rw-r--r--Library/Homebrew/keg_relocate.rb5
3 files changed, 12 insertions, 4 deletions
diff --git a/Library/Homebrew/dev-cmd/bottle.rb b/Library/Homebrew/dev-cmd/bottle.rb
index 1a7da8eb9..0c13d5028 100644
--- a/Library/Homebrew/dev-cmd/bottle.rb
+++ b/Library/Homebrew/dev-cmd/bottle.rb
@@ -177,6 +177,7 @@ module Homebrew
tar_path = Pathname.pwd/tar_filename
prefix = HOMEBREW_PREFIX.to_s
+ repository = HOMEBREW_REPOSITORY.to_s
cellar = HOMEBREW_CELLAR.to_s
ohai "Bottling #{filename}..."
@@ -193,7 +194,8 @@ module Homebrew
keg.relocate_dynamic_linkage prefix, Keg::PREFIX_PLACEHOLDER,
cellar, Keg::CELLAR_PLACEHOLDER
keg.relocate_text_files prefix, Keg::PREFIX_PLACEHOLDER,
- cellar, Keg::CELLAR_PLACEHOLDER
+ cellar, Keg::CELLAR_PLACEHOLDER,
+ repository, Keg::REPOSITORY_PLACEHOLDER
end
keg.delete_pyc_files!
@@ -248,6 +250,7 @@ module Homebrew
skip_relocation = true
else
relocatable = false if keg_contain?(prefix_check, keg, ignores)
+ relocatable = false if keg_contain?(repository, keg, ignores)
relocatable = false if keg_contain?(cellar, keg, ignores)
if prefix != prefix_check
relocatable = false if keg_contain_absolute_symlink_starting_with?(prefix, keg)
@@ -265,7 +268,8 @@ module Homebrew
keg.relocate_dynamic_linkage Keg::PREFIX_PLACEHOLDER, prefix,
Keg::CELLAR_PLACEHOLDER, cellar
keg.relocate_text_files Keg::PREFIX_PLACEHOLDER, prefix,
- Keg::CELLAR_PLACEHOLDER, cellar
+ Keg::CELLAR_PLACEHOLDER, cellar,
+ Keg::REPOSITORY_PLACEHOLDER, repository
end
end
end
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 18267ee78..f64b77026 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -779,7 +779,8 @@ class FormulaInstaller
Keg::CELLAR_PLACEHOLDER, HOMEBREW_CELLAR.to_s
end
keg.relocate_text_files Keg::PREFIX_PLACEHOLDER, HOMEBREW_PREFIX.to_s,
- Keg::CELLAR_PLACEHOLDER, HOMEBREW_CELLAR.to_s
+ Keg::CELLAR_PLACEHOLDER, HOMEBREW_CELLAR.to_s,
+ Keg::REPOSITORY_PLACEHOLDER, HOMEBREW_REPOSITORY.to_s
Pathname.glob("#{formula.bottle_prefix}/{etc,var}/**/*") do |path|
path.extend(InstallRenamed)
diff --git a/Library/Homebrew/keg_relocate.rb b/Library/Homebrew/keg_relocate.rb
index 053c8b9de..04f589984 100644
--- a/Library/Homebrew/keg_relocate.rb
+++ b/Library/Homebrew/keg_relocate.rb
@@ -1,6 +1,7 @@
class Keg
PREFIX_PLACEHOLDER = "@@HOMEBREW_PREFIX@@".freeze
CELLAR_PLACEHOLDER = "@@HOMEBREW_CELLAR@@".freeze
+ REPOSITORY_PLACEHOLDER = "@@HOMEBREW_REPOSITORY@@".freeze
def fix_dynamic_linkage
symlink_files.each do |file|
@@ -18,13 +19,15 @@ class Keg
[]
end
- def relocate_text_files(old_prefix, new_prefix, old_cellar, new_cellar)
+ def relocate_text_files(old_prefix, new_prefix, old_cellar, new_cellar,
+ old_repository, new_repository)
files = text_files | libtool_files
files.group_by { |f| f.stat.ino }.each_value do |first, *rest|
s = first.open("rb", &:read)
changed = s.gsub!(old_cellar, new_cellar)
changed = s.gsub!(old_prefix, new_prefix) || changed
+ changed = s.gsub!(old_repository, new_repository) || changed
next unless changed