# Maintainer: Olivier Médoc 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')