vim.spec 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. ##
  2. ## vim.spec -- OpenPKG RPM Specification
  3. ## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
  4. ## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
  5. ## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.com/>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. # package versions
  26. %define V_vl 6.2
  27. %define V_vs 62
  28. %define V_pl 128
  29. # package information
  30. Name: vim
  31. Summary: The Vi (Improved) Text Editor
  32. URL: http://www.vim.org/
  33. Vendor: Bram Moolenaar et al.
  34. Packager: The OpenPKG Project
  35. Distribution: OpenPKG [CORE]
  36. Group: Editor
  37. License: Charityware
  38. Version: %{V_vl}.%{V_pl}
  39. Release: 20031023
  40. # package options
  41. %option with_x11 no
  42. %option with_features normal
  43. %option with_multibyte no
  44. %option with_perl no
  45. %option with_python no
  46. # list of sources
  47. Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{V_vl}-src1.tar.gz
  48. Source1: ftp://ftp.vim.org/pub/vim/unix/vim-%{V_vl}-src2.tar.gz
  49. Source2: ftp://ftp.vim.org/pub/vim/unix/vim-%{V_vl}-rt1.tar.gz
  50. Source3: ftp://ftp.vim.org/pub/vim/unix/vim-%{V_vl}-rt2.tar.gz
  51. Source4: rc.vim
  52. Patch0: vim.patch
  53. Patch1: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.001
  54. Patch2: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.002
  55. Patch3: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.003
  56. Patch4: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.004
  57. Patch5: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.005
  58. Patch6: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.006
  59. Patch7: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.007
  60. Patch8: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.008
  61. Patch9: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.009
  62. Patch10: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.010
  63. Patch11: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.011
  64. Patch12: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.012
  65. Patch13: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.013
  66. Patch14: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.014
  67. Patch15: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.015
  68. Patch16: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.016
  69. Patch17: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.017
  70. Patch18: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.018
  71. Patch19: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.019
  72. Patch20: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.020
  73. Patch21: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.021
  74. Patch22: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.022
  75. Patch23: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.023
  76. Patch24: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.024
  77. Patch25: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.025
  78. Patch26: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.026
  79. Patch27: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.027
  80. Patch28: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.028
  81. Patch29: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.029
  82. Patch30: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.030
  83. Patch31: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.031
  84. Patch32: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.032
  85. Patch33: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.033
  86. Patch34: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.034
  87. Patch35: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.035
  88. Patch36: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.036
  89. Patch37: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.037
  90. Patch38: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.038
  91. Patch39: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.039
  92. Patch40: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.040
  93. Patch41: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.041
  94. Patch42: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.042
  95. Patch43: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.043
  96. Patch44: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.044
  97. Patch45: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.045
  98. Patch46: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.046
  99. Patch47: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.047
  100. Patch48: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.048
  101. Patch49: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.049
  102. Patch50: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.050
  103. Patch51: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.051
  104. Patch52: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.052
  105. Patch53: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.053
  106. Patch54: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.054
  107. Patch55: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.055
  108. Patch56: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.056
  109. Patch57: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.057
  110. Patch58: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.058
  111. Patch59: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.059
  112. Patch60: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.060
  113. Patch61: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.061
  114. Patch62: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.062
  115. Patch63: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.063
  116. Patch64: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.064
  117. Patch65: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.065
  118. Patch66: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.066
  119. Patch67: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.067
  120. Patch68: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.068
  121. Patch69: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.069
  122. Patch70: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.070
  123. Patch71: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.071
  124. Patch72: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.072
  125. Patch73: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.073
  126. Patch74: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.074
  127. Patch75: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.075
  128. Patch76: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.076
  129. Patch77: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.077
  130. Patch78: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.078
  131. Patch79: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.079
  132. Patch80: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.080
  133. Patch81: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.081
  134. Patch82: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.082
  135. Patch83: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.083
  136. Patch84: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.084
  137. Patch85: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.085
  138. Patch86: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.086
  139. Patch87: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.087
  140. Patch88: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.088
  141. Patch89: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.089
  142. Patch90: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.090
  143. Patch91: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.091
  144. Patch92: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.092
  145. Patch93: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.093
  146. Patch94: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.094
  147. Patch95: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.095
  148. Patch96: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.096
  149. Patch97: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.097
  150. Patch98: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.098
  151. Patch99: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.099
  152. Patch100: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.100
  153. Patch101: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.101
  154. Patch102: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.102
  155. Patch103: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.103
  156. Patch104: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.104
  157. Patch105: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.105
  158. Patch106: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.106
  159. Patch107: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.107
  160. Patch108: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.108
  161. Patch109: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.109
  162. Patch110: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.110
  163. Patch111: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.111
  164. Patch112: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.112
  165. Patch113: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.113
  166. Patch114: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.114
  167. Patch115: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.115
  168. Patch116: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.116
  169. Patch117: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.117
  170. Patch118: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.118
  171. Patch119: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.119
  172. Patch120: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.120
  173. Patch121: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.121
  174. Patch122: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.122
  175. Patch123: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.123
  176. Patch124: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.124
  177. Patch125: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.125
  178. Patch126: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.126
  179. Patch127: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.127
  180. Patch128: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.128
  181. # build information
  182. Prefix: %{l_prefix}
  183. BuildRoot: %{l_buildroot}
  184. BuildPreReq: OpenPKG, openpkg >= 20030927
  185. PreReq: OpenPKG, openpkg >= 20030927
  186. %if "%{with_x11}" == "yes"
  187. BuildPreReq: X11, gtk
  188. PreReq: X11, gtk
  189. %endif
  190. %if "%{with_perl}" == "yes"
  191. BuildPreReq: perl
  192. PreReq: perl
  193. %endif
  194. %if "%{with_python}" == "yes"
  195. BuildPreReq: python
  196. PreReq: python
  197. %endif
  198. AutoReq: no
  199. AutoReqProv: no
  200. %description
  201. Vim (Vi Improved) is a text editor that is upwards compatible
  202. with the classical Unix Vi. It can be used to edit any ASCII
  203. text. It is especially useful for editing programs. Vim offers
  204. a lot of enhancements not available in the traditional Vi. For
  205. example, Vim has multi level undo, multi windows and buffers, syntax
  206. highlighting, command line editing, filename completion, on-line
  207. help, and visual selection.
  208. %prep
  209. # unpack base distribution parts
  210. %setup0 -q -c
  211. %setup1 -q -T -D -a 1
  212. %setup2 -q -T -D -a 2
  213. %setup3 -q -T -D -a 3
  214. %patch0 -p0
  215. # apply initial jumbo patches
  216. # %{l_gzip} -d -c $RPM_SOURCE_DIR/%{V_vl}.1-100.gz |\
  217. # %{l_patch} -p0 -E -t -s >/dev/null 2>&1 || true
  218. # apply remaining single patches
  219. i=1
  220. while [ $i -le %{V_pl} ]; do
  221. cat $RPM_SOURCE_DIR/%{V_vl}.`echo $i | awk '{ printf("%03d", $0); }'` |\
  222. %{l_patch} -p0 -E -t -s >/dev/null 2>&1 || true
  223. i=`expr $i + 1`
  224. done
  225. # reorder the terminal library search to make sure our ncurses is
  226. # not picked up too easily (because we do not want an explicit
  227. # dependency to it because of vim:CORE vs. ncurses:BASE).
  228. %{l_shtool} subst \
  229. -e 's;ncurses termlib termcap curses;termlib termcap ncurses curses;' \
  230. vim%{V_vs}/src/auto/configure
  231. # adjust introduction text for OpenPKG branding
  232. %{l_shtool} subst \
  233. -e 's;Modified by;Packaged by;' \
  234. vim%{V_vs}/src/version.c
  235. %build
  236. # configure package
  237. cd vim%{V_vs}/src
  238. CC="%{l_cc}" \
  239. CFLAGS="%{l_cflags -O}" \
  240. CPPFLAGS="%{l_cppflags}" \
  241. LDFLAGS="%{l_ldflags}" \
  242. ./configure \
  243. --prefix=%{l_prefix} \
  244. --with-modified-by='%{l_openpkg_release}' \
  245. %if "%{with_x11}" == "yes"
  246. --with-x \
  247. --x-includes=`%{l_prefix}/etc/rc --query x11_incdir` \
  248. --x-libraries=`%{l_prefix}/etc/rc --query x11_libdir` \
  249. --enable-gui=gtk \
  250. --with-gtk-prefix=%{l_prefix} \
  251. --disable-gtktest \
  252. --without-gnome \
  253. %else
  254. --without-x \
  255. --disable-gui \
  256. %endif
  257. %if "%{with_features}" == "huge"
  258. --with-features=huge \
  259. %else
  260. %if "%{with_features}" == "big"
  261. --with-features=big \
  262. %else
  263. %if "%{with_features}" == "small"
  264. --with-features=small \
  265. %else
  266. --with-features=normal \
  267. %endif
  268. %endif
  269. %endif
  270. %if "%{with_multibyte}" == "yes"
  271. --enable-multibyte \
  272. %endif
  273. %if "%{with_perl}" == "yes"
  274. --enable-perlinterp=%{l_prefix}/bin/perl \
  275. %endif
  276. %if "%{with_python}" == "yes"
  277. --enable-pythoninterp=%{l_prefix}/bin/python \
  278. %endif
  279. --disable-nls
  280. %{l_shtool} subst \
  281. -e 's;^\(VIMRTDIR[^=]*=\).*;\1;' \
  282. Makefile
  283. # build package
  284. %{l_make} %{l_mflags -O}
  285. %install
  286. # perform package installation procedure
  287. rm -rf $RPM_BUILD_ROOT
  288. ( cd vim%{V_vs}/src
  289. %{l_make} %{l_mflags} install \
  290. prefix=$RPM_BUILD_ROOT%{l_prefix}
  291. ) || exit $?
  292. # strip down installation hierarchy
  293. strip $RPM_BUILD_ROOT%{l_prefix}/bin/vim
  294. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/xxd
  295. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/xxd.1
  296. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/vim/tools
  297. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/vim/macros
  298. # add links for program runtime variants
  299. for link in vi ex rview rvim view vimdiff; do
  300. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/$link
  301. ln $RPM_BUILD_ROOT%{l_prefix}/bin/vim \
  302. $RPM_BUILD_ROOT%{l_prefix}/bin/$link
  303. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/$link.1
  304. ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/vim.1 \
  305. $RPM_BUILD_ROOT%{l_prefix}/man/man1/$link.1
  306. done
  307. # install run-command script
  308. %{l_shtool} mkdir -f -p -m 755 \
  309. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  310. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  311. %{SOURCE rc.vim} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  312. # determine installation files
  313. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
  314. %files -f files
  315. %clean
  316. rm -rf $RPM_BUILD_ROOT