# Maintainer: Olivier Médoc <o_medoc@yahoo.fr>
pkgname=vmware-patch
pkgver=3.4
pkgrel=2
pkgdesc="Several scripts to apply patches to vmware modules (tested for vmware-player and vmware-workstation)"
arch=('i686' 'x86_64')
url="http://www.vmware.com"
license=('GPL')
depends=('linux-headers' 'kmod>=5-2')
source=(vmware-patch vmware-unpatch vmware-rc
vmmon-2.6.35.diff vsock-2.6.35.diff
vmmon-2.6.36.diff
vmci-2.6.37.diff vmmon-2.6.37.diff vmnet-2.6.37.diff vsock-2.6.37.diff
vmblock-2.6.39.diff vmci-2.6.39.diff vmmon-2.6.39.diff vmnet-2.6.39.diff vsock-2.6.39.diff
vmblock-3.0.diff vmci-3.0.diff vmmon-3.0.diff vmnet-3.0.diff vsock-3.0.diff
vmnet-3.1.0.diff
vmnet-3.1.1.diff
vmmon-8.0.1-4.0.1-3.2.0.diff vmnet-8.0.1-4.0.1-3.2.0.diff
vmnet-8.0.2-4.0.2-3.2.1.diff
vmblock-7.1.5-0.0.0-3.2.1.diff vmnet-7.1.5-0.0.0-3.2.1.diff vmci-7.1.5-0.0.0-3.2.1.diff vsock-7.1.5-0.0.0-3.2.1.diff vmmon-7.1.5-0.0.0-3.2.1.diff
vmblock-8.0.3-4.0.3-3.4.diff)
install=${pkgname}.install
fix_mod_symlink() {
BINARY_NAME=$1
echo "Checking if it is necessary to create symlink for ${BINARY_NAME}"
# Vmware Player fixes
mkdir -p "${pkgdir}/sbin"
if [ -h "/sbin/${BINARY_NAME}" ] ; then
# If lsmod is own by a pacman packet (probably ours)
unset NOT_IN_PACMAN
pacman -Qo "/sbin/${BINARY_NAME}" || NOT_IN_PACMAN=True
if [ -n "$NOT_IN_PACMAN" ] ; then
echo "Symlink has been created manually... Not creating /sbin/$BINARY_NAME symlink"
else
unset IN_VMWARE_PATCH
IN_VMWARE_PATCH=`pacman -Qo "/sbin/${BINARY_NAME}" | grep vmware-patch`
if [ -n "$IN_VMWARE_PATCH" ] ; then
echo "/sbin/${BINARY_NAME} is owned by vmware-patch... recreating symlink"
ln -s "/usr/bin/${BINARY_NAME}" "${pkgdir}/sbin/${BINARY_NAME}"
else
echo "/sbin/${BINARY_NAME} is owned by an unknown package. Not creating symlink"
fi
fi
else
ln -s "/usr/bin/${BINARY_NAME}" "${pkgdir}/sbin/${BINARY_NAME}"
fi
}
package() {
install -D -m755 vmware-patch "${pkgdir}/usr/bin/vmware-patch"
install -D -m755 vmware-unpatch "${pkgdir}/usr/bin/vmware-unpatch"
mkdir -p "${pkgdir}/usr/lib/vmware/patches"
cp *.diff "${pkgdir}/usr/lib/vmware/patches"
fix_mod_symlink insmod
fix_mod_symlink lsmod
fix_mod_symlink rmmod
fix_mod_symlink modinfo
# rc.d
install -D -m755 vmware-rc "${pkgdir}/etc/rc.d/vmwared"
# Creating links for future kernel version
cd "${pkgdir}/usr/lib/vmware/patches"
# For linux 3.1.1 until 3.1.10
for i in {2..10};
do
ln -s vmnet-3.1.1.diff vmnet-3.1.${i}.diff
done
# For Linux 3.2.0 until 3.2.15 (workstation 8.0.1)
for i in {1..15};
do
ln -s vmnet-8.0.1-4.0.1-3.2.0.diff vmnet-8.0.1-4.0.1-3.2.${i}.diff
ln -s vmmon-8.0.1-4.0.1-3.2.0.diff vmmon-8.0.1-4.0.1-3.2.${i}.diff
done
# For Linux 3.2.2 until 3.2.15 (workstation 8.0.2)
for i in {2..15};
do
ln -s vmnet-8.0.2-4.0.2-3.2.1.diff vmnet-8.0.2-4.0.2-3.2.${i}.diff
done
# For Linux 3.3 (workstation 8.0.2)
ln -s vmnet-8.0.2-4.0.2-3.2.1.diff vmnet-8.0.2-4.0.2-3.3.diff
# For Linux 3.3.1 until 3.3.15 (workstation 8.0.2 and 8.0.3)
for i in {0..15};
do
ln -s vmnet-8.0.2-4.0.2-3.2.1.diff vmnet-8.0.2-4.0.2-3.3.${i}.diff
ln -s vmnet-8.0.2-4.0.2-3.2.1.diff vmnet-8.0.3-4.0.3-3.3.${i}.diff
done
# For Linux 3.4 (workstation 8.0.2 and 8.0.3)
ln -s vmnet-8.0.2-4.0.2-3.2.1.diff vmnet-8.0.2-4.0.3-3.4.diff
ln -s vmnet-8.0.2-4.0.2-3.2.1.diff vmnet-8.0.3-4.0.3-3.4.diff
# For Linux 3.4.0 until 3.4.15 (workstation 8.0.2 and 8.0.3)
for i in {0..15};
do
ln -s vmnet-8.0.2-4.0.2-3.2.1.diff vmnet-8.0.2-4.0.3-3.4.${i}.diff
ln -s vmnet-8.0.2-4.0.2-3.2.1.diff vmnet-8.0.3-4.0.3-3.4.${i}.diff
ln -s vmblock-8.0.3-4.0.3-3.4.diff vmblock-8.0.2-4.0.3-3.4.${i}.diff
ln -s vmblock-8.0.3-4.0.3-3.4.diff vmblock-8.0.3-4.0.3-3.4.${i}.diff
done
# For VMWare 7.1.5
for code in vmblock vmnet vmci vsock vmmon ; do
for i in {2..20} ; do
ln -s "${code}-7.1.5-0.0.0-3.2.1.diff" "${code}-7.1.5-0.0.0-3.2.${i}.diff"
ln -s "${code}-7.1.5-0.0.0-3.2.1.diff" "${code}-7.1.5-0.0.0-3.3.${i}.diff"
done
done
}
md5sums=('4e778e16df7f8f3fc7bfabe31d1d0c2f'
'0a76ebe17bf692bddce7607ed103e063'
'771c0901c44a93090348ebc10a17874e'
'f91cf3f46e5220a64b1cfdb07aa3257e'
'78740f2ae60d84d7e81ef128cf10eb5d'
'f0a138dcfb01a12b54bd4268f23fcc2b'
'289fe3df6aa21e53f0071079800e5754'
'a4d7bcc5a23382b0c6dd5040723b4d0b'
'f07e53526dd47a248dec7eacd54121a8'
'0bbfdfe33dd5e14d96b9719456b0b49c'
'0c317d09aaed3b10de4a35a97c605f8d'
'e3efe95c6f90e87bb8fe78ccceb7c4c4'
'4b11a8f484f89ebea72b8d9ebfc1d23c'
'f2cc9e4042c43f6075207f3612d72f21'
'a2a45aa9e9ebd311ecfd6e96f19ad674'
'd1c9773adc7ec14392f2ac7e7610afec'
'e3efe95c6f90e87bb8fe78ccceb7c4c4'
'2e24ef4fa122afd023685d521d533ffc'
'f2cc9e4042c43f6075207f3612d72f21'
'adb689206fe85cc0e19ac4b3e50cd656'
'827b32cec681045a3d2ef761631aa2b2'
'827b32cec681045a3d2ef761631aa2b2'
'c913e13035815cfc4cda3bd07d057666'
'e74c231c297833f55e1108327089a34d'
'edea711dca63399b7f47b53e50444c09'
'09a021a9dce9dccd32184bba06086022'
'b16f5e552d364419b6671ae76c6054f3'
'ac83544cc198455ce7d5ff367134f20d'
'b15bb2a426a5a5be701ab265b5bcfe51'
'b8d90cee99489b8b4c9ab5d0f86fd618'
'a8d9b98570344514eda185a8115b2c32')