From f8fbe0bba89f5f47eb8f9bdc00cc90206a52022f Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Sat, 8 Nov 2008 20:04:02 -0600
Subject: vim to 7.2

---
 abs/extra-testing/vim/PKGBUILD         | 63 ++++++++++++++++++++++++++++++++++
 abs/extra-testing/vim/fetch_patches.sh | 60 ++++++++++++++++++++++++++++++++
 abs/extra-testing/vim/vim.install      | 38 ++++++++++++++++++++
 3 files changed, 161 insertions(+)
 create mode 100644 abs/extra-testing/vim/PKGBUILD
 create mode 100644 abs/extra-testing/vim/fetch_patches.sh
 create mode 100644 abs/extra-testing/vim/vim.install

diff --git a/abs/extra-testing/vim/PKGBUILD b/abs/extra-testing/vim/PKGBUILD
new file mode 100644
index 0000000..ba20f79
--- /dev/null
+++ b/abs/extra-testing/vim/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 17696 2008-10-31 17:28:10Z allan $
+# Maintainer: tobias [ tobias at archlinux org ]
+
+pkgname=vim
+_srcver=7.2
+_patchlevel=30
+pkgver=${_srcver}.${_patchlevel}
+pkgrel=1.2
+pkgdesc="a highly configurable, improved version of the vi text editor"
+arch=(i686 x86_64)
+license=('custom:vim')
+url="http://www.vim.org"
+depends=("vi>=${pkgver}" 'perl' 'python'  'acl' 'gpm>=1.20.4' 'libxt')
+makedepends=('wget' 'sed' 'grep')
+backup=(etc/vimrc)
+install=${pkgname}.install
+# we need the extra-stuff to get all patches applied smoothly
+source=(ftp://ftp.vim.org/pub/vim/unix/vim-${_srcver}.tar.bz2 \
+        ftp://ftp.vim.org/pub/vim/extra/vim-${_srcver}-extra.tar.gz \
+        ftp://ftp.vim.org/pub/vim/extra/vim-${_srcver}-lang.tar.gz \
+        fetch_patches.sh)
+md5sums=('f0901284b338e448bfd79ccca0041254' '35e04482f07c57221c9a751aaa3b8dac' \
+         'd8884786979e0e520c112faf2e176f05' 'a3b03cd44b8ed78a99850d4cbfaafe55')
+
+build()
+{
+  # pull in patches from vim.org (or the src cache alternatively)
+  . ${startdir}/src/fetch_patches.sh
+  get_patches || return 1
+  cd ${startdir}/src/vim$(echo ${_srcver} | sed "s/\.//")
+  sed -i 's|^.*\(#define SYS_.*VIMRC_FILE.*"\) .*$|\1|' src/feature.h
+  # build party
+  ./configure --prefix=/usr --localstatedir=/var/lib/vim --mandir=/usr/share/man \
+    --with-compiledby=ArchLinux --with-features=big \
+    --with-x=yes --disable-gui \
+    --with-global-runtime=/usr/share/vim --with-vim-name=vim \
+    --enable-multibyte --enable-cscope \
+    --enable-perlinterp --enable-pythoninterp -
+  make || return 1
+  make  VIMRCLOC=/etc DESTDIR=${startdir}/pkg VIMRTDIR= install
+  cd ${startdir}/pkg/usr/bin
+  rm -f ex view rview xxd vimtutor
+  ln -s vitutor vimtutor
+
+   # delete the manpages/symlinks provided by vi package
+  find ${startdir}/pkg/usr/share/man -type d -name 'man1' 2> /dev/null | \
+   while read mandir; do
+    cd ${mandir}
+    mv vimdiff.1 vimdiff.org
+    rm -f *.1
+    ln -s rvi.1.gz rvim.1.gz
+    ln -s vi.1.gz vim.1.gz
+    ln -s vitutor.1.gz vimtutor.1.gz
+    mv vimdiff.org vimdiff.1
+  done
+
+  # kill the nobackup parts
+  sed -i '/vms/,+4 d' ${startdir}/pkg/usr/share/vim/vimrc_example.vim
+  install -Dm644 ${startdir}/pkg/usr/share/vim/vimrc_example.vim \
+    ${startdir}/pkg/etc/vimrc
+  # clean all settings and controls -  served by vi package
+  rm -rf ${startdir}/pkg/usr/share/vim
+}
diff --git a/abs/extra-testing/vim/fetch_patches.sh b/abs/extra-testing/vim/fetch_patches.sh
new file mode 100644
index 0000000..03e16e2
--- /dev/null
+++ b/abs/extra-testing/vim/fetch_patches.sh
@@ -0,0 +1,60 @@
+# the external logic for pulling in patches
+
+get_patches() {
+  _patchdir=${startdir}/src/patches
+  cd ${startdir}/src/vim$(echo ${_srcver} | sed "s/\.//")
+  if [ -d ${_patchdir} ]; then
+    rm -rf ${_patchdir}
+    echo -e "\tremove patches from old build"
+  fi
+  mkdir ${_patchdir} && cd ${_patchdir}
+  _rpath=ftp://ftp.vim.org/pub/vim/patches/${_srcver}
+
+  # change IFS to loop line-by-line
+  _OLDIFS=$IFS
+  IFS="
+"
+  echo -e "\tfetching checksumfile for patches"
+  wget ${_rpath}/MD5SUMS >/dev/null 2>&1
+
+  downloads=0
+  for _line in $(/bin/cat MD5SUMS); do
+    downloads=$((${downloads} + 1))
+    _md5=$(echo $_line | cut -d ' ' -f1)
+    _file=$(echo $_line | cut -d ' ' -f3)
+    if [ -f ${SRCDEST}/vim-${_srcver}/${_file} ]; then
+      echo -e "\thaving patch file:${_file}"
+      cp ${SRCDEST}/vim-${_srcver}/${_file} ./
+    else
+      echo -n -e "\t... fetching patch file: ${_file} ..."
+      wget ${_rpath}/${_file} >/dev/null 2>&1
+      if [ -w ${SRCDEST} ]; then
+        if [ ! -d ${SRCDEST}/vim-${_srcver} ]; then
+          mkdir -p ${SRCDEST}/vim-${_srcver}
+        fi
+        cp ${_file} ${SRCDEST}/vim-${_srcver}/
+        echo " done!"
+      fi
+    fi
+
+    if [ $(echo "${_md5}  ${_file}" | md5sum --status -c -) ]; then
+      echo ${_file} md5sums do not match
+      return 1
+    fi
+  done
+
+  ########
+
+  if [ ${downloads} != ${_patchlevel} ]; then
+    echo -e "Number of patches does not match the patchlevel!\nEdit the PKGBUILD accordingly!"
+    return 1
+  fi
+  IFS=$_OLDIFS
+  rm MD5SUMS
+  cd ${startdir}/src/vim$(echo ${_srcver} | sed "s/\.//")
+  for _patch in $(/bin/ls ${_patchdir}); do
+    patch -Np0 -i ${_patchdir}/${_patch} || return 1
+  done
+  rm -rf ${_patchdir}
+  return 0
+}
diff --git a/abs/extra-testing/vim/vim.install b/abs/extra-testing/vim/vim.install
new file mode 100644
index 0000000..1d46e19
--- /dev/null
+++ b/abs/extra-testing/vim/vim.install
@@ -0,0 +1,38 @@
+post_install() {
+  # if we have an existing gvim installation - relocate binaries and symlinks
+  if [ -f usr/bin/vim ] ; then
+    cd usr/bin
+    rm -f view rview
+    ln -s vim view
+    ln -s vim rview
+    cd ${OLDPWD}
+    echo "Create vim related symlinks..."
+  fi
+  echo -n "Updating vim help tags..."
+  usr/bin/vim --noplugins -u NONE -U NONE \
+    --cmd ":helptags usr/share/vim/doc" --cmd ":q" > /dev/null 2>&1
+  echo "done."
+}
+
+pre_remove() {
+  cd usr/bin
+  rm -f view rview
+  if [ -f usr/bin/vi ] ; then
+    ln -s vi view
+    ln -s vi rview
+    echo "Create vi related symlinks..."
+  fi
+  cd ${OLDPWD}
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_upgrade() {
+  pre_remove $2
+}
+
+op=$1
+shift
+[ "$(type -t "$op")" = "function" ] && $op "$@"
-- 
cgit v0.12