vim.spec 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  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 127
  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: 20031017
  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. # build information
  181. Prefix: %{l_prefix}
  182. BuildRoot: %{l_buildroot}
  183. BuildPreReq: OpenPKG, openpkg >= 20030927
  184. PreReq: OpenPKG, openpkg >= 20030927
  185. %if "%{with_x11}" == "yes"
  186. BuildPreReq: X11, gtk
  187. PreReq: X11, gtk
  188. %endif
  189. %if "%{with_perl}" == "yes"
  190. BuildPreReq: perl
  191. PreReq: perl
  192. %endif
  193. %if "%{with_python}" == "yes"
  194. BuildPreReq: python
  195. PreReq: python
  196. %endif
  197. AutoReq: no
  198. AutoReqProv: no
  199. %description
  200. Vim (Vi Improved) is a text editor that is upwards compatible
  201. with the classical Unix Vi. It can be used to edit any ASCII
  202. text. It is especially useful for editing programs. Vim offers
  203. a lot of enhancements not available in the traditional Vi. For
  204. example, Vim has multi level undo, multi windows and buffers, syntax
  205. highlighting, command line editing, filename completion, on-line
  206. help, and visual selection.
  207. %prep
  208. # unpack base distribution parts
  209. %setup0 -q -c
  210. %setup1 -q -T -D -a 1
  211. %setup2 -q -T -D -a 2
  212. %setup3 -q -T -D -a 3
  213. %patch0 -p0
  214. # apply initial jumbo patches
  215. # %{l_gzip} -d -c $RPM_SOURCE_DIR/%{V_vl}.1-100.gz |\
  216. # %{l_patch} -p0 -E -t -s >/dev/null 2>&1 || true
  217. # apply remaining single patches
  218. i=1
  219. while [ $i -le %{V_pl} ]; do
  220. cat $RPM_SOURCE_DIR/%{V_vl}.`echo $i | awk '{ printf("%03d", $0); }'` |\
  221. %{l_patch} -p0 -E -t -s >/dev/null 2>&1 || true
  222. i=`expr $i + 1`
  223. done
  224. # reorder the terminal library search to make sure our ncurses is
  225. # not picked up too easily (because we do not want an explicit
  226. # dependency to it because of vim:CORE vs. ncurses:BASE).
  227. %{l_shtool} subst \
  228. -e 's;ncurses termlib termcap curses;termlib termcap ncurses curses;' \
  229. vim%{V_vs}/src/auto/configure
  230. # adjust introduction text for OpenPKG branding
  231. %{l_shtool} subst \
  232. -e 's;Modified by;Packaged by;' \
  233. vim%{V_vs}/src/version.c
  234. %build
  235. # configure package
  236. cd vim%{V_vs}/src
  237. CC="%{l_cc}" \
  238. CFLAGS="%{l_cflags -O}" \
  239. CPPFLAGS="%{l_cppflags}" \
  240. LDFLAGS="%{l_ldflags}" \
  241. ./configure \
  242. --prefix=%{l_prefix} \
  243. --with-modified-by='%{l_openpkg_release}' \
  244. %if "%{with_x11}" == "yes"
  245. --with-x \
  246. --x-includes=`%{l_prefix}/etc/rc --query x11_incdir` \
  247. --x-libraries=`%{l_prefix}/etc/rc --query x11_libdir` \
  248. --enable-gui=gtk \
  249. --with-gtk-prefix=%{l_prefix} \
  250. --disable-gtktest \
  251. --without-gnome \
  252. %else
  253. --without-x \
  254. --disable-gui \
  255. %endif
  256. %if "%{with_features}" == "huge"
  257. --with-features=huge \
  258. %else
  259. %if "%{with_features}" == "big"
  260. --with-features=big \
  261. %else
  262. %if "%{with_features}" == "small"
  263. --with-features=small \
  264. %else
  265. --with-features=normal \
  266. %endif
  267. %endif
  268. %endif
  269. %if "%{with_multibyte}" == "yes"
  270. --enable-multibyte \
  271. %endif
  272. %if "%{with_perl}" == "yes"
  273. --enable-perlinterp=%{l_prefix}/bin/perl \
  274. %endif
  275. %if "%{with_python}" == "yes"
  276. --enable-pythoninterp=%{l_prefix}/bin/python \
  277. %endif
  278. --disable-nls
  279. %{l_shtool} subst \
  280. -e 's;^\(VIMRTDIR[^=]*=\).*;\1;' \
  281. Makefile
  282. # build package
  283. %{l_make} %{l_mflags -O}
  284. %install
  285. # perform package installation procedure
  286. rm -rf $RPM_BUILD_ROOT
  287. ( cd vim%{V_vs}/src
  288. %{l_make} %{l_mflags} install \
  289. prefix=$RPM_BUILD_ROOT%{l_prefix}
  290. ) || exit $?
  291. # strip down installation hierarchy
  292. strip $RPM_BUILD_ROOT%{l_prefix}/bin/vim
  293. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/xxd
  294. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/xxd.1
  295. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/vim/tools
  296. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/vim/macros
  297. # add links for program runtime variants
  298. for link in vi ex rview rvim view vimdiff; do
  299. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/$link
  300. ln $RPM_BUILD_ROOT%{l_prefix}/bin/vim \
  301. $RPM_BUILD_ROOT%{l_prefix}/bin/$link
  302. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/$link.1
  303. ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/vim.1 \
  304. $RPM_BUILD_ROOT%{l_prefix}/man/man1/$link.1
  305. done
  306. # install run-command script
  307. %{l_shtool} mkdir -f -p -m 755 \
  308. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  309. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  310. %{SOURCE rc.vim} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  311. # determine installation files
  312. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
  313. %files -f files
  314. %clean
  315. rm -rf $RPM_BUILD_ROOT