1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
# Copyright 2001 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Authors Ben Beuchler <insyte@mazer.squad51.net>
# and Aron Griffis <agriffis@gentoo.org>
# $Header: /var/cvsroot/gentoo-x86/app-editors/vim/vim-6.0-r3.ebuild,v 1.1 2002/01/06 22:32:01 agriffis Exp $
# Please name the ebuild as follows. If this is followed, there
# should be no need to modify this ebuild when the Vim version is
# updated. (Yes it's overkill, but it was fun!)
#
# vim-6.0, when 6.0 is finally released
# vim-6.0_pre9, where 9 = (i), for vim-6.0i
# vim-6.0_pre47, where 47 = 26(a) + 21(u), for vim-6.0au
# vim-6.0_pre72, where 72 = 52(b) + 20(t), for vim-6.0bt
#
# Quick reference:
# a=1 e=5 i=9 m=13 q=17 u=21 y=25
# b=2 f=6 j=10 n=14 r=18 v=22 z=26
# c=3 g=7 k=11 o=15 s=19 w=23 aa=27
# d=4 h=8 l=12 p=16 t=20 x=24 ab=28 (etc.)
#
# (08 Sep 2001 agriffis)
# Calculate the version based on the name of the ebuild
vim_version="${PV%_pre*}"
vim_pre="${PV##*_pre}"
if [ "$vim_version" = "$vim_pre" ]; then
# Final releases prior to 6.0 include a dash and decimal point in
# the directory name
if [ "${vim_version%%.*}" -lt 6 ]; then
S="$WORKDIR/vim-$vim_version"
else
S="$WORKDIR/vim${vim_version//.}"
fi
vim_letters=
A="vim-$vim_version.tar.bz2"
SRC_URI="ftp://ftp.us.vim.org/pub/vim/unix/$A
ftp://ftp.vim.org/pub/vim/unix/$A"
elif [ "$vim_pre" -lt 27 ]; then
# Handle (prerelease) versions with one trailing letter
vim_letters=`echo $vim_pre | awk '{printf "%c", $0+96}'`
S="$WORKDIR/vim${vim_version//.}$vim_letters"
A="vim-$vim_version$vim_letters.tar.bz2"
SRC_URI="ftp://ftp.us.vim.org/pub/vim/unreleased/unix/$A
ftp://ftp.vim.org/pub/vim/unreleased/unix/$A"
elif [ "$vim_pre" -lt 703 ]; then
# Handle (prerelease) versions with two trailing letters
vim_letters=`echo $vim_pre | awk '{printf "%c%c", $0/26+96, $0%26+96}'`
S="$WORKDIR/vim${vim_version//.}$vim_letters"
A="vim-$vim_version$vim_letters.tar.bz2"
SRC_URI="ftp://ftp.us.vim.org/pub/vim/unreleased/unix/$A
ftp://ftp.vim.org/pub/vim/unreleased/unix/$A"
else
die "Eek! I don't know how to interpret the version!"
fi
# Add in 6.0 patches
#
# For some reason this doesn't work. Portage never fetches these
# patches. For the moment I'm putting them in vim/files until this is
# resolved.
#
#if [ "$PV" = 6.0 ]; then
# SRC_URI="$SRC_URI
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.001
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.002
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.003
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.004
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.005
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.006
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.007
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.010
# ftp://ftp.us.vim.org/pub/vim/patches/6.0.011
# ftp://ftp.vim.org/pub/vim/patches/6.0.001
# ftp://ftp.vim.org/pub/vim/patches/6.0.002
# ftp://ftp.vim.org/pub/vim/patches/6.0.003
# ftp://ftp.vim.org/pub/vim/patches/6.0.004
# ftp://ftp.vim.org/pub/vim/patches/6.0.005
# ftp://ftp.vim.org/pub/vim/patches/6.0.006
# ftp://ftp.vim.org/pub/vim/patches/6.0.007
# ftp://ftp.vim.org/pub/vim/patches/6.0.010
# ftp://ftp.vim.org/pub/vim/patches/6.0.011"
#fi
DESCRIPTION="Vi IMproved! ${PV}"
HOMEPAGE="http://www.vim.org/"
DEPEND="virtual/glibc
>=sys-libs/ncurses-5.2-r2
dev-util/cscope
gpm? ( >=sys-libs/gpm-1.19.3 )
gnome? ( >=gnome-base/gnome-libs-1.4.1.2-r1 )
gtk? ( >=x11-libs/gtk+-1.2.10-r4 )
X? ( x11-base/xfree )
perl? ( sys-devel/perl )
python? ( dev-lang/python )
ruby? ( >=dev-lang/ruby-1.6.4 )"
# tcltk? ( dev-lang/tcl-tk )"
# It appears that the tclinterp stuff in Vim is broken right now.
# When you --enable-tclinterp flag, then the following command never
# returns:
#
# VIMINIT='let OS = system("uname -s")' vim
#
# Please don't re-enable the tclinterp flag without verifying first
# that the above works. Thanks. (08 Sep 2001 agriffis)
src_unpack() {
unpack $A
# Fixup a script to use awk instead of nawk
cd $S/runtime/tools
mv mve.awk mve.awk.old
( read l; echo "#!/usr/bin/awk -f"; cat ) <mve.awk.old >mve.awk
# Apply patches, if appropriate
local patches=`echo $FILESDIR/$PV.[0-9][0-9][0-9]`
case "$patches" in
*\])
break # globbing didn't work; no patches available
;;
*)
cd $S
for a in $patches; do
patch -p0 < $a || echo $a >> /tmp/badpatches
done
;;
esac
}
src_compile() {
local myconf
use nls || myconf="--disable-nls"
use gpm || myconf="$myconf --disable-gpm"
use perl && myconf="$myconf --enable-perlinterp"
use python && myconf="$myconf --enable-pythoninterp"
use ruby && myconf="$myconf --enable-rubyinterp"
# tclinterp is BROKEN. See note above DEPEND=
# use tcltk && myconf="$myconf --enable-tclinterp"
#
# First, build a gui version, this will install as /usr/bin/gvim
#
if use gnome; then
guiconf="--enable-gui=gnome --with-x"
elif use gtk; then
guiconf="--enable-gui=gtk --with-x"
elif use X; then
guiconf="--enable-gui=athena --with-x"
else
# No gui version will be built
guiconf=""
fi
if [ -n "$guiconf" ]; then
./configure \
--prefix=/usr --mandir=/usr/share/man --host=$CHOST \
--enable-max-features --enable-cscope $myconf $guiconf \
|| die "gvim configure failed"
# Parallel make does not work
make || die "gvim make failed"
mv src/vim src/gvim
fi
#
# Second, build a nogui version, this will install as /usr/bin/vim
#
./configure \
--prefix=/usr --mandir=/usr/share/man --host=$CHOST \
--enable-max-features --with-cscope $myconf \
--enable-gui=no --without-x \
|| die "vim configure failed"
# Parallel make does not work
make || die "vim make failed"
}
src_install() {
# Install the nogui version
mkdir -p $D/usr/{bin,share/man/man1,share/vim}
make install STRIP=true DESTDIR=$D \
BINDIR=/usr/bin MANDIR=/usr/share/man DATADIR=/usr/share
# Install the gui version, if it was built
if [ -f src/gvim ]; then
install -m755 src/gvim $D/usr/bin/gvim
ln -s gvim $D/usr/bin/gvimdiff
fi
# Docs
dodoc README*
cd $D/usr/share/doc/$PF
ln -s ../../vim/*/doc $P
# Default .vimrc for users (this should be revisited)
insinto /etc/skel
newins $FILESDIR/vimrc .vimrc
# Don't install .vimrc for root since it might overwrite root's
# current .vimrc, if it exists.
#mkdir -p $D/root
#install -m644 $FILESDIR/vimrc $D/root/.vimrc
}
|