Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 45828 - gvim does not provide (vimdiff rvim ex view rview) symlinks
Summary: gvim does not provide (vimdiff rvim ex view rview) symlinks
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: Vim Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-26 11:47 UTC by Ed Catmur
Modified: 2004-04-07 15:25 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Catmur 2004-03-26 11:47:14 UTC
I understand that it should be possible to install just the gvim and vim-common ebuilds and still have the full functionality of vim.

However, the vim eclass does not install the (vimdiff rvim ex view rview) symlinks in /usr/bin when the package is gvim, only when the package is vim.

I believe that these symlinks should be installed by vim.eclass regardless of whether the package name is vim or gvim.
Comment 1 Aron Griffis (RETIRED) gentoo-dev 2004-04-07 15:25:35 UTC
Thanks, fixed in vim.eclass:

Index: vim.eclass
===================================================================
RCS file: /home/cvsroot/gentoo-x86/eclass/vim.eclass,v
retrieving revision 1.51
diff -u -b -B -r1.51 vim.eclass
--- vim.eclass  21 Mar 2004 05:19:51 -0000      1.51
+++ vim.eclass  7 Apr 2004 22:23:55 -0000
@@ -312,6 +312,37 @@
        fi
 }
 
+# Make convenience symlinks, hopefully without stepping on toes.  Some
+# of these links are "owned" by the vim ebuild when it is installed,
+# but they might be good for gvim as well (see bug 16852)
+update_vim_symlinks() {
+       local f syms="vi vimdiff rvim ex view rview"
+
+       # Make or remove convenience symlink, vim -> gvim
+       if [[ -f /usr/bin/gvim ]]; then
+               ln -s gvim /usr/bin/vim 2>/dev/null
+       elif [[ -L /usr/bin/vim && ! -f /usr/bin/vim ]]; then
+               rm /usr/bin/vim
+       fi
+
+       # Make or remove convenience symlinks to vim
+       if [[ -f /usr/bin/vim ]]; then
+               for f in ${syms}; do
+                       ln -s vim /usr/bin/${f} 2>/dev/null
+               done
+       else
+               for f in ${syms}; do
+                       if [[ -L /usr/bin/${f} && ! -f /usr/bin/${f} ]]; then
+                               rm -f /usr/bin/${f}
+                       fi
+               done
+       fi
+
+       # This will still break if you merge then remove the vi package,
+       # but there's only so much you can do, eh?  Unfortunately we don't
+       # have triggers like are done in rpm-land.
+}
+
 pkg_postinst() {
        # Update documentation tags (from vim-doc.eclass)
        update_vim_helptags
@@ -342,12 +373,14 @@
                ewarn
        fi
 
-       # Make convenience symlinks, hopefully without stepping on toes
-       [ -f /usr/bin/gvim ] && ln -s gvim /usr/bin/vim 2>/dev/null
-       [ -f /usr/bin/vim ] && ln -s vim /usr/bin/vi 2>/dev/null
+       # Make convenience symlinks
+       update_vim_symlinks
 }
 
 pkg_postrm() {
        # Update documentation tags (from vim-doc.eclass)
        update_vim_helptags
+
+       # Make convenience symlinks
+       update_vim_symlinks
 }