## ## vim.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2008 OpenPKG Foundation e.V. ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # package versions %define V_vl 7.2 %define V_vs 72 %define V_pl 093 # package information Name: vim Summary: The Vi (Improved) Text Editor URL: http://www.vim.org/ Vendor: Bram Moolenaar et al. Packager: OpenPKG Foundation e.V. Distribution: OpenPKG Community Class: CORE Group: Editor License: Charityware Version: %{V_vl}.%{V_pl} Release: 20090130 # package options %option with_x11 no %option with_features normal %option with_multibyte no %option with_perl no %option with_python no %option with_tcl no %option with_ruby no # list of sources Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{V_vl}.tar.bz2 Source2: rc.vim Source3: vimrc Patch0: vim.patch Patch1: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.001 Patch2: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.002 Patch3: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.003 Patch4: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.004 Patch5: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.005 Patch6: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.006 Patch7: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.007 Patch8: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.008 Patch9: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.009 Patch10: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.010 Patch11: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.011 Patch12: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.012 Patch13: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.013 Patch14: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.014 Patch15: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.015 Patch16: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.016 Patch17: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.017 Patch18: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.018 Patch19: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.019 Patch20: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.020 Patch21: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.021 Patch22: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.022 Patch23: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.023 Patch24: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.024 Patch25: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.025 Patch26: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.026 Patch27: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.027 Patch28: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.028 Patch29: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.029 Patch30: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.030 Patch31: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.031 Patch32: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.032 Patch33: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.033 Patch34: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.034 Patch35: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.035 Patch36: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.036 Patch37: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.037 Patch38: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.038 Patch39: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.039 Patch40: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.040 Patch41: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.041 Patch42: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.042 Patch43: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.043 Patch44: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.044 Patch45: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.045 Patch46: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.046 Patch47: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.047 Patch48: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.048 Patch49: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.049 Patch50: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.050 Patch51: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.051 Patch52: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.052 Patch53: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.053 Patch54: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.054 Patch55: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.055 Patch56: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.056 Patch57: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.057 Patch58: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.058 Patch59: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.059 Patch60: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.060 Patch61: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.061 Patch62: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.062 Patch63: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.063 Patch64: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.064 Patch65: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.065 Patch66: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.066 Patch67: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.067 Patch68: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.068 Patch69: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.069 Patch70: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.070 Patch71: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.071 Patch72: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.072 Patch73: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.073 Patch74: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.074 Patch75: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.075 Patch76: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.076 Patch77: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.077 Patch78: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.078 Patch79: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.079 Patch80: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.080 Patch81: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.081 Patch82: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.082 Patch83: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.083 Patch84: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.084 Patch85: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.085 Patch86: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.086 Patch87: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.087 Patch88: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.088 Patch89: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.089 Patch90: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.090 Patch91: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.091 Patch92: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.092 Patch93: ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/%{V_vl}.093 # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20060823, ncurses PreReq: OpenPKG, openpkg >= 20060823, ncurses %if "%{with_x11}" == "yes" BuildPreReq: X11, gtk PreReq: X11, gtk %endif %if "%{with_perl}" == "yes" BuildPreReq: perl PreReq: perl %endif %if "%{with_python}" == "yes" BuildPreReq: python PreReq: python %endif %if "%{with_tcl}" == "yes" BuildPreReq: tcl PreReq: tcl %endif %if "%{with_ruby}" == "yes" BuildPreReq: ruby PreReq: ruby %endif AutoReq: no AutoReqProv: no %description Vim (Vi Improved) is a text editor that is upwards compatible with the classical Unix Vi. It can be used to edit any ASCII text. It is especially useful for editing programs. Vim offers a lot of enhancements not available in the traditional Vi. For example, Vim has multi level undo, multi windows and buffers, syntax highlighting, command line editing, filename completion, on-line help, and visual selection. %track prog vim = { version = %{V_vl} url = ftp://ftp.vim.org/pub/vim/unix/ regex = vim-(\d+.\d+)\.tar\.(gz|bz2) } prog vim:patchlevel = { version = %{V_vl}.%{V_pl} url = ftp://ftp.vim.org/pub/vim/patches/%{V_vl}/ regex = (%{V_vl}\.\d+) } %prep # unpack base distribution parts %setup -q -c %patch -p0 # apply remaining single patches i=1 while [ $i -le %{V_pl} ]; do cat $RPM_SOURCE_DIR/%{V_vl}.`echo $i | awk '{ printf("%03d", $0); }'` |\ %{l_patch} -p0 -E -t -s >/dev/null 2>&1 || true i=`expr $i + 1` done # adjust introduction text for OpenPKG branding %{l_shtool} subst \ -e 's;Modified by;Packaged by;' \ vim%{V_vs}/src/version.c # adjust paths to global configuraton files %{l_shtool} subst \ -e 's;^/\* \(#define SYS_VIMRC_FILE\).*$;\1 "%{l_prefix}/etc/vim/vimrc";' \ -e 's;^/\* \(#define SYS_GVIMRC_FILE\).*$;\1 "%{l_prefix}/etc/vim/gvimrc";' \ vim%{V_vs}/src/feature.h %if "%{with_python}" == "yes" # fix Python includes %{l_shtool} subst \ -e 's;PYTHON_CFLAGS=.*$;PYTHON_CFLAGS="`python-config --includes`";' \ vim%{V_vs}/src/auto/configure %endif %build # configure package cd vim%{V_vs}/src CC="%{l_cc}" \ CFLAGS="%{l_cflags -O}" \ CPPFLAGS="%{l_cppflags}" \ LDFLAGS="%{l_ldflags}" \ ./configure \ --prefix=%{l_prefix} \ --mandir=%{l_prefix}/man \ --with-global-runtime=%{l_prefix}/etc/vim \ --with-modified-by='%{l_openpkg_release}' \ %if "%{with_x11}" == "yes" --with-x \ --x-includes=`%{l_rc} --query x11_incdir` \ --x-libraries=`%{l_rc} --query x11_libdir` \ --enable-gui=gtk \ --with-gtk-prefix=%{l_prefix} \ --disable-gtktest \ --without-gnome \ %else --without-x \ --disable-gui \ %endif %if "%{with_features}" == "huge" --with-features=huge \ %else %if "%{with_features}" == "big" --with-features=big \ %else %if "%{with_features}" == "small" --with-features=small \ %else --with-features=normal \ %endif %endif %endif %if "%{with_multibyte}" == "yes" --enable-multibyte \ %endif %if "%{with_perl}" == "yes" --enable-perlinterp \ %endif %if "%{with_python}" == "yes" --enable-pythoninterp \ --with-python-config-dir=%{l_prefix}/lib/python/config \ %endif %if "%{with_tcl}" == "yes" --enable-tclinterp \ %endif %if "%{with_ruby}" == "yes" --enable-rubyinterp \ %endif --disable-nls %{l_shtool} subst \ -e 's;^\(VIMRTDIR[^=]*=\).*;\1;' \ Makefile # build package %{l_make} %{l_mflags -O} %install # perform package installation procedure rm -rf $RPM_BUILD_ROOT ( cd vim%{V_vs}/src %{l_make} %{l_mflags} install \ prefix=$RPM_BUILD_ROOT%{l_prefix} \ MANDIR=$RPM_BUILD_ROOT%{l_prefix}/man ) || exit $? # strip down installation hierarchy strip $RPM_BUILD_ROOT%{l_prefix}/bin/vim >/dev/null 2>&1 || true rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/xxd rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/xxd.1 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/vim/tools rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/vim/macros # add links for program runtime variants for link in vi ex rview rvim view vimdiff; do rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/$link ln $RPM_BUILD_ROOT%{l_prefix}/bin/vim \ $RPM_BUILD_ROOT%{l_prefix}/bin/$link rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/$link.1 ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/vim.1 \ $RPM_BUILD_ROOT%{l_prefix}/man/man1/$link.1 done # install run-command script %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d %{l_shtool} install -c -m 755 %{l_value -s -a} \ %{SOURCE rc.vim} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ # install default configuration %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/etc/vim %{l_shtool} install -c -m 755 %{l_value -s -a} \ %{SOURCE vimrc} $RPM_BUILD_ROOT%{l_prefix}/etc/vim/ # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ '%config %{l_prefix}/etc/vim/vimrc' %files -f files %clean rm -rf $RPM_BUILD_ROOT