PKGBUILDs/extra/vim/fetch_patches.sh
2009-09-26 09:35:50 -05:00

68 lines
1.9 KiB
Bash

# the external logic for pulling in patches
get_patches() {
_patchdir=${srcdir}/patches
cd ${srcdir}/${_versiondir}
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
_file=$(echo $_line | cut -d ' ' -f3)
[ ${_file##*.} == "gz" ] && continue
_downloads=$((${_downloads} + 1))
_md5=$(echo $_line | cut -d ' ' -f1)
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 ""
echo -e "\t\tWARNING!"
echo "You are not building the latest available version! A newer patchlevel"
echo "seems to be available. Please edit the PKGBUILD and add the latest"
echo "${_downloads} as pkgrel number!"
echo ""
sleep 10
fi
IFS=$_OLDIFS
rm MD5SUMS
cd ${srcdir}/${_versiondir}
for _patchnum in $(/usr/bin/seq 1 ${_patchlevel}); do
_patch=${_srcver}.$(printf "%03d" ${_patchnum})
patch -Np0 -i ${_patchdir}/${_patch} || return 1
done
rm -rf ${_patchdir}
return 0
}