This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

emacs: Don't install ctags and its manpage

In addition to its etags executable, emacs now installs a ctags executable.
This stomps over exuberant-ctags, and makes it difficult to have emacs and
vim installed and use tags for both.

This follows what MacPorts does and removes bin/ctags and its manpage from
the build before linking. An option is provided for users who want to keep
`ctags` from emacs. Also, remove the conflict with ctags and add
a caveat to the formula about this whole issue.

Fixes #16826.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
  • Loading branch information...
telemachus authored and klausmeyer committed Jan 2, 2013
1 parent ef3269f commit c80b52dcea57c026a6887e71f43c4d5b0ce1c58b
Showing with 21 additions and 3 deletions.
  1. +21 −3 Library/Formula/emacs.rb
View
@@ -6,13 +6,11 @@ class Emacs < Formula
mirror 'http://ftp.gnu.org/pub/gnu/emacs/emacs-24.2.tar.bz2'
sha1 '38e8fbc9573b70a123358b155cf55c274b5a56cf'
- conflicts_with 'ctags',
- :because => 'Both emacs and ctags install a `ctags` executable.'
-
option "cocoa", "Build a Cocoa version of emacs"
option "srgb", "Enable sRGB colors in the Cocoa version of emacs"
option "with-x", "Include X11 support"
option "use-git-head", "Use Savannah git mirror for HEAD builds"
+ option "keep-ctags", "Don't remove the ctags executable that emacs provides"
if build.include? "use-git-head"
head 'http://git.sv.gnu.org/r/emacs.git'
@@ -65,6 +63,13 @@ def install
system "make install"
prefix.install "nextstep/Emacs.app"
+ # Follow MacPorts and don't install ctags from emacs. This allows vim
+ # and emacs and ctags to play together without violence.
+ unless build.include? "keep-ctags"
+ (bin/"ctags").unlink
+ (share/man/man1/"ctags.1.gz").unlink
+ end
+
# Replace the symlink with one that avoids starting Cocoa.
(bin/"emacs").unlink # Kill the existing symlink
(bin/"emacs").write <<-EOS.undent
@@ -87,6 +92,13 @@ def install
system "./configure", *args
system "make"
system "make install"
+
+ # Follow MacPorts and don't install ctags from emacs. This allows vim
+ # and emacs and ctags to play together without violence.
+ unless build.include? "keep-ctags"
+ (bin/"ctags").unlink
+ (share/man/man1/"ctags.1.gz").unlink
+ end
end
end
@@ -118,6 +130,12 @@ def caveats
http://git.savannah.gnu.org/cgit/emacs.git for the mirror's status. The Emacs
devs do not provide support for the git mirror, and they might reject bug
reports filed with git version information. Use it at your own risk.
+
+ Emacs creates an executable `ctags` that stomps on exuberant-ctags. In
+ order to prevent that, we remove `ctags` and its manpage from the emacs
+ build before linking. (Add the flag "--keep-ctags" to keep it.) You can
+ install exuberant-ctags via brew with `brew install ctags`.
+ (exuberant-ctags can provide both vim-style and emacs-style tags.)
EOS
return s

0 comments on commit c80b52d

Please sign in to comment.