diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 7ca2007bb8..8fb220ba89 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -689,10 +689,15 @@ class Formula def lock @lock = FormulaLock.new(name) @lock.lock + if oldname && (oldname_rack = HOMEBREW_CELLAR/oldname).exist? && oldname_rack.resolved_path == rack + @oldname_lock = FormulaLock.new(oldname) + @oldname_lock.lock + end end def unlock @lock.unlock unless @lock.nil? + @oldname_lock.unlock unless @oldname_lock.nil? end def pinnable? diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index 007d7bcfab..4c68192444 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -216,7 +216,13 @@ class Keg end def lock - FormulaLock.new(name).with_lock { yield } + FormulaLock.new(name).with_lock do + if oldname_opt_record + FormulaLock.new(oldname_opt_record.basename.to_s).with_lock { yield } + else + yield + end + end end def completion_installed?(shell)