vim.spec 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  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 58
  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: 20030804
  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. Patch1: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.001
  53. Patch2: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.002
  54. Patch3: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.003
  55. Patch4: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.004
  56. Patch5: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.005
  57. Patch6: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.006
  58. Patch7: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.007
  59. Patch8: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.008
  60. Patch9: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.009
  61. Patch10: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.010
  62. Patch11: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.011
  63. Patch12: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.012
  64. Patch13: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.013
  65. Patch14: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.014
  66. Patch15: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.015
  67. Patch16: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.016
  68. Patch17: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.017
  69. Patch18: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.018
  70. Patch19: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.019
  71. Patch20: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.020
  72. Patch21: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.021
  73. Patch22: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.022
  74. Patch23: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.023
  75. Patch24: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.024
  76. Patch25: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.025
  77. Patch26: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.026
  78. Patch27: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.027
  79. Patch28: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.028
  80. Patch29: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.029
  81. Patch30: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.030
  82. Patch31: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.031
  83. Patch32: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.032
  84. Patch33: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.033
  85. Patch34: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.034
  86. Patch35: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.035
  87. Patch36: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.036
  88. Patch37: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.037
  89. Patch38: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.038
  90. Patch39: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.039
  91. Patch40: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.040
  92. Patch41: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.041
  93. Patch42: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.042
  94. Patch43: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.043
  95. Patch44: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.044
  96. Patch45: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.045
  97. Patch46: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.046
  98. Patch47: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.047
  99. Patch48: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.048
  100. Patch49: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.049
  101. Patch50: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.050
  102. Patch51: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.051
  103. Patch52: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.052
  104. Patch53: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.053
  105. Patch54: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.054
  106. Patch55: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.055
  107. Patch56: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.056
  108. Patch57: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.057
  109. Patch58: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}.058
  110. # build information
  111. Prefix: %{l_prefix}
  112. BuildRoot: %{l_buildroot}
  113. BuildPreReq: OpenPKG, openpkg >= 20030718
  114. PreReq: OpenPKG, openpkg >= 20030718
  115. %if "%{with_x11}" == "yes"
  116. BuildPreReq: X11, gtk
  117. PreReq: X11, gtk
  118. %endif
  119. %if "%{with_perl}" == "yes"
  120. BuildPreReq: perl
  121. PreReq: perl
  122. %endif
  123. %if "%{with_python}" == "yes"
  124. BuildPreReq: python
  125. PreReq: python
  126. %endif
  127. AutoReq: no
  128. AutoReqProv: no
  129. %description
  130. Vim (Vi Improved) is a text editor that is upwards compatible
  131. with the classical Unix Vi. It can be used to edit any ASCII
  132. text. It is especially useful for editing programs. Vim offers
  133. a lot of enhancements not available in the traditional Vi. For
  134. example, Vim has multi level undo, multi windows and buffers, syntax
  135. highlighting, command line editing, filename completion, on-line
  136. help, and visual selection.
  137. %prep
  138. # unpack base distribution parts
  139. %setup0 -q -c
  140. %setup1 -q -T -D -a 1
  141. %setup2 -q -T -D -a 2
  142. %setup3 -q -T -D -a 3
  143. # apply initial jumbo patches
  144. # %{l_gzip} -d -c $RPM_SOURCE_DIR/%{V_vl}.1-100.gz |\
  145. # %{l_patch} -p0 -E -t -s >/dev/null 2>&1 || true
  146. # apply remaining single patches
  147. i=1
  148. while [ $i -le %{V_pl} ]; do
  149. cat $RPM_SOURCE_DIR/%{V_vl}.`echo $i | awk '{ printf("%03d", $0); }'` |\
  150. %{l_patch} -p0 -E -t -s >/dev/null 2>&1 || true
  151. i=`expr $i + 1`
  152. done
  153. # reorder the terminal library search to make sure our ncurses is
  154. # not picked up too easily (because we do not want an explicit
  155. # dependency to it because of vim:CORE vs. ncurses:BASE).
  156. %{l_shtool} subst \
  157. -e 's;ncurses termlib termcap curses;termlib termcap ncurses curses;' \
  158. vim%{V_vs}/src/auto/configure
  159. %build
  160. # configure package
  161. cd vim%{V_vs}/src
  162. CC="%{l_cc}" \
  163. CFLAGS="%{l_cflags -O}" \
  164. CPPFLAGS="%{l_cppflags}" \
  165. LDFLAGS="%{l_ldflags}" \
  166. ./configure \
  167. --prefix=%{l_prefix} \
  168. %if "%{with_x11}" == "yes"
  169. --with-x \
  170. --x-includes=`%{l_prefix}/etc/rc --query x11_incdir` \
  171. --x-libraries=`%{l_prefix}/etc/rc --query x11_libdir` \
  172. --enable-gui=gtk \
  173. --with-gtk-prefix=%{l_prefix} \
  174. --disable-gtktest \
  175. --without-gnome \
  176. %else
  177. --without-x \
  178. --disable-gui \
  179. %endif
  180. %if "%{with_features}" == "huge"
  181. --with-features=huge \
  182. %else
  183. %if "%{with_features}" == "big"
  184. --with-features=big \
  185. %else
  186. %if "%{with_features}" == "small"
  187. --with-features=small \
  188. %else
  189. --with-features=normal \
  190. %endif
  191. %endif
  192. %endif
  193. %if "%{with_multibyte}" == "yes"
  194. --enable-multibyte \
  195. %endif
  196. %if "%{with_perl}" == "yes"
  197. --enable-perlinterp=%{l_prefix}/bin/perl \
  198. %endif
  199. %if "%{with_python}" == "yes"
  200. --enable-pythoninterp=%{l_prefix}/bin/python \
  201. %endif
  202. --disable-nls
  203. %{l_shtool} subst \
  204. -e 's;^\(VIMRTDIR[^=]*=\).*;\1;' \
  205. Makefile
  206. # build package
  207. %{l_make} %{l_mflags -O}
  208. %install
  209. # perform package installation procedure
  210. rm -rf $RPM_BUILD_ROOT
  211. ( cd vim%{V_vs}/src
  212. %{l_make} %{l_mflags} install \
  213. prefix=$RPM_BUILD_ROOT%{l_prefix}
  214. ) || exit $?
  215. # strip down installation hierarchy
  216. strip $RPM_BUILD_ROOT%{l_prefix}/bin/vim
  217. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/xxd
  218. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/xxd.1
  219. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/vim/tools
  220. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/vim/macros
  221. # add links for program runtime variants
  222. for link in vi ex rview rvim view vimdiff; do
  223. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/$link
  224. ln $RPM_BUILD_ROOT%{l_prefix}/bin/vim \
  225. $RPM_BUILD_ROOT%{l_prefix}/bin/$link
  226. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/$link.1
  227. ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/vim.1 \
  228. $RPM_BUILD_ROOT%{l_prefix}/man/man1/$link.1
  229. done
  230. # install run-command script
  231. %{l_shtool} mkdir -f -p -m 755 \
  232. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  233. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  234. %{SOURCE rc.vim} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  235. # determine installation files
  236. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
  237. %files -f files
  238. %clean
  239. rm -rf $RPM_BUILD_ROOT