From be4b1393a6caa763eeef9c450184aae7c90389df Mon Sep 17 00:00:00 2001 From: Peter Aronoff Date: Wed, 2 Jan 2013 10:50:52 -0500 Subject: 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 --- Library/Formula/emacs.rb | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'Library') diff --git a/Library/Formula/emacs.rb b/Library/Formula/emacs.rb index bdd5be9fd..3e0cd5b48 100644 --- a/Library/Formula/emacs.rb +++ b/Library/Formula/emacs.rb @@ -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 @@ class Emacs < Formula 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 @@ class Emacs < Formula 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 @@ class Emacs < Formula 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 -- cgit v1.2.3