summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Kuznetsov <vadimk@gentoo.org>2011-09-04 17:49:07 +0000
committerVadim Kuznetsov <vadimk@gentoo.org>2011-09-04 17:49:07 +0000
commite68e26590fcdad8721af56858e18ab94f70ecb38 (patch)
treece1ef5c907c06eb036ffd9496cda9adac7dc256f /app-emulation/vmware-modules
parentx86 stable wrt bug #381547 (diff)
downloadhistorical-e68e26590fcdad8721af56858e18ab94f70ecb38.tar.gz
historical-e68e26590fcdad8721af56858e18ab94f70ecb38.tar.bz2
historical-e68e26590fcdad8721af56858e18ab94f70ecb38.zip
Bug 368139
Package-Manager: portage-2.1.10.13/cvs/Linux x86_64
Diffstat (limited to 'app-emulation/vmware-modules')
-rw-r--r--app-emulation/vmware-modules/ChangeLog8
-rw-r--r--app-emulation/vmware-modules/Manifest12
-rw-r--r--app-emulation/vmware-modules/files/238-2.6.39.patch243
-rw-r--r--app-emulation/vmware-modules/vmware-modules-238.4-r1.ebuild79
4 files changed, 336 insertions, 6 deletions
diff --git a/app-emulation/vmware-modules/ChangeLog b/app-emulation/vmware-modules/ChangeLog
index be40efad2f2a..d3a9c78fe7ff 100644
--- a/app-emulation/vmware-modules/ChangeLog
+++ b/app-emulation/vmware-modules/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-emulation/vmware-modules
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/ChangeLog,v 1.78 2011/07/18 15:28:48 vadimk Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/ChangeLog,v 1.79 2011/09/04 17:49:06 vadimk Exp $
+
+*vmware-modules-238.4-r1 (04 Sep 2011)
+
+ 04 Sep 2011; Vadim Kuznetsov <vadimk@gentoo.org> +files/238-2.6.39.patch,
+ +vmware-modules-238.4-r1.ebuild:
+ Bug 368139
18 Jul 2011; Vadim Kuznetsov <vadimk@gentoo.org>
-vmware-modules-238.3-r8.ebuild:
diff --git a/app-emulation/vmware-modules/Manifest b/app-emulation/vmware-modules/Manifest
index c6a9bb97f4be..56855e50ac4e 100644
--- a/app-emulation/vmware-modules/Manifest
+++ b/app-emulation/vmware-modules/Manifest
@@ -10,6 +10,7 @@ AUX 1.0.0.25-unlocked_ioctl.patch 1136 RMD160 a5ae0ebd54acac07144ab1510a04ebb7ca
AUX 208-sema.patch 2963 RMD160 95c017d5bb061cd548b9db6552ed548e323286c6 SHA1 8808f4796fa5c79757fbca1612c06d9fa020b5ba SHA256 ab3c79d677f5169f5c575498fb467d94f6fb1455f9a7218b34c21bddaa4704e7
AUX 208-sk_sleep.patch 2968 RMD160 c3ef68d37bfcd877f3de0f8e9dea849e18804435 SHA1 0c52cf788c707e47fdf8ff0925c69fdca5c10155 SHA256 00ca100a8b4da48e26b663c4302a4b8f8d561c084e0bd5cee27a5874e03115f6
AUX 208-unlocked_ioctl.patch 1136 RMD160 129bf2d0d6d4580b5c25f116d9108f4dc51e08cf SHA1 570eb32de37822c8c2b06f1075306fec3df1d257 SHA256 51f9cf2eb91fd25f784ef611ef3fd1f611bb5627a32e9e9fc5c48e3b0e9aef15
+AUX 238-2.6.39.patch 8566 RMD160 1fb07e92cebba852da61b36ee10dcdb4e12d5729 SHA1 6098b91349ab7bc128fea3df27671423f5ddcd1a SHA256 31e68e9897660cc8ff898eae1d722d616205fff1efd30cd8e042a3a455bd2350
AUX 238-jobserver.patch 2899 RMD160 0a90332d966245e11f1ecee5a60e47779a746ccb SHA1 b6b36a98cf626f3fb5c7044b1c72f4ac917c5bd1 SHA256 131c606fdafe80f10151c667796270101f3b06ee70a1b872862e15bcfb4ee46d
AUX 238-makefile-include.patch 2791 RMD160 8665507d2b565931dc13a5f49eec6e33205d42fb SHA1 d48ca9316e65d536e50d07dfe945a6ff195be7cd SHA256 ac676433ca499268bd6a1f0d7d904a44095bb1a777ad31d055e8c4990eea586c
AUX 238-makefile-kernel-dir.patch 2201 RMD160 22b81e2c3c347ac6bad3afef15eea31250c34f2a SHA1 033160ded8fda76e6f016040cc4bb3f4ca0dd603 SHA256 780b79fcc6e8e836632f4542ac6c3da2d475b3ad1e2e88e1c51aea849a5172c7
@@ -23,13 +24,14 @@ DIST vmware-modules-208.2.patch.bz2 7239 RMD160 f66781709bb18dc370717c32fa72b290
EBUILD vmware-modules-1.0.0.25-r3.ebuild 2227 RMD160 eee9311501d439b63d1b657f064000c106d4e9c2 SHA1 1e3da5f429c8f04d1b3e46cb7a98171cec30d490 SHA256 3124c8b65f4245069305d5c541da8b1dd318e621f752ec8963fc285a4cae84ea
EBUILD vmware-modules-1.0.0.25-r4.ebuild 2242 RMD160 4815c0ce9280c6bb71ed8d18df9da5a5a7a2e1b9 SHA1 eccd85cb86a6cd45aa254cbada7a65557f3a72fb SHA256 f492d54e11193dfa54a0e712e3742c984c3a30f7a2a6eb68e0c82881ba55d342
EBUILD vmware-modules-208.2.ebuild 1855 RMD160 a42bdef87a95590f779272fe8037d528d9bb6a5c SHA1 83d002b0c1432baab071dcd44a41907dfeb52c70 SHA256 e8452a07897634bbb71bae4afec2c28982223727ec9246b30882705f6ce08f43
+EBUILD vmware-modules-238.4-r1.ebuild 1994 RMD160 edd160572a6ca9754cca177c29dbcd2ab7056579 SHA1 50ab416ab87a45c634d9ff222e7aa11ce8d57ff9 SHA256 cb37cec924e1f11b5ac46983b4dc423d7487ef96357872f063054f944ef799dd
EBUILD vmware-modules-238.4.ebuild 1898 RMD160 648f16020458c7fe363ca9e0209532cf7181e082 SHA1 b5aa4b9fd9ad1f19192a6a123dedff2714864267 SHA256 154b7eda4febff275b95ff5b6ca92b08bfd7f314c594f5c2acbb80aac5f68563
-MISC ChangeLog 17767 RMD160 443fc065cfc08e1b1a1ade14fbd7414083fec635 SHA1 b8e95bfb4b56474e7177b5de1dc1ae1d4e60d9a5 SHA256 977b0bc36fe27f1457460e29f6f626ef55245004b3316363bb6937f71b8a220e
+MISC ChangeLog 17932 RMD160 28837e7bd6a2e06a529e61a5ee5a2518e167a020 SHA1 57641cac111e6e14bb9fefa70f1acc8659479dc4 SHA256 80abadeeed002043cc226f5be33d91cd874df531fe39714fdee9cab37c6466fb
MISC metadata.xml 288 RMD160 da2ee1499dd87693b63592a337d8352494cb9652 SHA1 e1b50a587afb7878e21828a957a6838e7d08e4e8 SHA256 100017b3059be218965923798780ab195dafaa893f98088592fb5b299e686c37
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.17 (GNU/Linux)
+Version: GnuPG v2.0.18 (GNU/Linux)
-iEYEARECAAYFAk4kUT8ACgkQiLKviuHfItWYEQCghQDV6tNSL9VajOdT6KCOcoA+
-oDMAoKpormTkVRrCw9F81mb/3RU5/1tP
-=pMmc
+iEYEARECAAYFAk5juYkACgkQiLKviuHfItWb3wCeIeWOCN9ZbpmJsTGpwFWFjEqP
+HXwAoLjUQRE97RynEsInAmDp/kLd2yX9
+=26gE
-----END PGP SIGNATURE-----
diff --git a/app-emulation/vmware-modules/files/238-2.6.39.patch b/app-emulation/vmware-modules/files/238-2.6.39.patch
new file mode 100644
index 000000000000..88873e581400
--- /dev/null
+++ b/app-emulation/vmware-modules/files/238-2.6.39.patch
@@ -0,0 +1,243 @@
+diff --git a/vmblock-only/linux/dentry.c b/vmblock-only/linux/dentry.c
+index 66537c8..05ea95a 100644
+--- a/vmblock-only/linux/dentry.c
++++ b/vmblock-only/linux/dentry.c
+@@ -104,7 +104,7 @@ DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
+ return actualDentry->d_op->d_revalidate(actualDentry, nd);
+ }
+
+- if (path_lookup(iinfo->name, 0, &actualNd)) {
++ if (compat_path_lookup(iinfo->name, 0, &actualNd)) {
+ LOG(4, "DentryOpRevalidate: [%s] no longer exists\n", iinfo->name);
+ return 0;
+ }
+diff --git a/vmblock-only/linux/filesystem.c b/vmblock-only/linux/filesystem.c
+index 53840fd..bc117c5 100644
+--- a/vmblock-only/linux/filesystem.c
++++ b/vmblock-only/linux/filesystem.c
+@@ -66,7 +66,6 @@ static size_t fsRootLen;
+ static struct file_system_type fsType = {
+ .owner = THIS_MODULE,
+ .name = VMBLOCK_FS_NAME,
+- .get_sb = FsOpGetSb,
+ .kill_sb = kill_anon_super,
+ };
+
+@@ -553,7 +552,7 @@ FsOpReadSuper(struct super_block *sb, // OUT: Superblock object
+ *-----------------------------------------------------------------------------
+ */
+
+-static int
++/*static int
+ FsOpGetSb(struct file_system_type *fs_type, // IN: file system type of mount
+ int flags, // IN: mount flags
+ const char *dev_name, // IN: device mounting on
+@@ -561,7 +560,7 @@ FsOpGetSb(struct file_system_type *fs_type, // IN: file system type of mount
+ struct vfsmount *mnt) // IN: vfs mount
+ {
+ return get_sb_nodev(fs_type, flags, rawData, FsOpReadSuper, mnt);
+-}
++}*/
+ #else
+ /*
+ *-----------------------------------------------------------------------------
+diff --git a/vmblock-only/shared/compat_namei.h b/vmblock-only/shared/compat_namei.h
+index 28d72c8..4214247 100644
+--- a/vmblock-only/shared/compat_namei.h
++++ b/vmblock-only/shared/compat_namei.h
+@@ -40,8 +40,11 @@
+ #define compat_path_release(nd) path_release(nd)
+ #endif
+
++/* path_lookup was removed in 2.6.39 merge window VFS merge */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
++#define compat_path_lookup(name, flags, nd) kern_path(name, flags, &((nd)->path))
+ /* path_lookup was exported in 2.4.25 */
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 25)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 25)
+ #define compat_path_lookup(path, flags, nd) path_lookup(path, flags, nd)
+ #else
+ #define compat_path_lookup(path, flags, nd) \
+diff --git a/vmci-only/linux/driver.c b/vmci-only/linux/driver.c
+index a0f5498..49795e1 100644
+--- a/vmci-only/linux/driver.c
++++ b/vmci-only/linux/driver.c
+@@ -42,7 +42,6 @@ sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
+ #include <linux/miscdevice.h>
+ #include <linux/poll.h>
+ #include <linux/smp.h>
+-#include <linux/smp_lock.h>
+
+ #include "compat_file.h"
+ #include "compat_highmem.h"
+diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c
+index a33c983..89f8827 100644
+--- a/vmmon-only/linux/driver.c
++++ b/vmmon-only/linux/driver.c
+@@ -781,7 +781,7 @@ LinuxDriver_Close(struct inode *inode, // IN
+
+
+ #define POLLQUEUE_MAX_TASK 1000
+-static spinlock_t pollQueueLock __attribute__((unused)) = SPIN_LOCK_UNLOCKED;
++static DEFINE_SPINLOCK(pollQueueLock);
+ static void *pollQueue[POLLQUEUE_MAX_TASK];
+ static unsigned int pollQueueCount = 0;
+
+@@ -1042,7 +1042,8 @@ LinuxDriverPoll(struct file *filp,
+ * but unfortunately there is no way how to detect that
+ * we are building for RedHat's kernel...
+ */
+- static spinlock_t timerLock = SPIN_LOCK_UNLOCKED;
++
++ static DEFINE_SPINLOCK(timerLock);
+
+ spin_lock(&timerLock);
+ mod_timer(&linuxState.pollTimer, jiffies + 1);
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index 6c7b34d..fabb44d 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -46,7 +46,6 @@
+ #include <linux/mman.h>
+
+ #include <linux/smp.h>
+-#include <linux/smp_lock.h>
+
+ #include <asm/io.h>
+ #include <linux/mc146818rtc.h>
+diff --git a/vmmon-only/linux/iommu.c b/vmmon-only/linux/iommu.c
+index f64e80a..b0ee013 100644
+--- a/vmmon-only/linux/iommu.c
++++ b/vmmon-only/linux/iommu.c
+@@ -44,7 +44,7 @@ typedef struct PassthruDevice {
+
+
+ static LIST_HEAD(passthruDeviceList);
+-static spinlock_t passthruDeviceListLock = SPIN_LOCK_UNLOCKED;
++static DEFINE_SPINLOCK(passthruDeviceListLock);
+ static void *pciHolePage = NULL;
+
+ /*
+diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c
+index c91a1dc..4c195e1 100644
+--- a/vmnet-only/driver.c
++++ b/vmnet-only/driver.c
+@@ -28,7 +28,6 @@
+ #include <linux/poll.h>
+
+ #include <linux/smp.h>
+-#include <linux/smp_lock.h>
+
+ #include <linux/netdevice.h>
+ #include <linux/etherdevice.h>
+@@ -105,7 +104,7 @@ const uint8 broadcast[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+ * not have vnetStructureMutex already acquired,
+ * it is most certainly a bug.
+ */
+-static rwlock_t vnetPeerLock = RW_LOCK_UNLOCKED;
++static DEFINE_RWLOCK(vnetPeerLock);
+
+ /*
+ * All concurrent changes to the network structure are
+@@ -115,6 +114,7 @@ static rwlock_t vnetPeerLock = RW_LOCK_UNLOCKED;
+ * vnetStructureMutex and vnetPeerLock for write.
+ */
+ compat_define_mutex(vnetStructureMutex);
++compat_define_mutex(vnetMutex);
+
+ #if defined(VM_X86_64) && !defined(HAVE_COMPAT_IOCTL)
+ /*
+@@ -264,11 +264,11 @@ LinuxDriver_Ioctl32_Handler(unsigned int fd, // IN: (unused)
+ struct file * filp) // IN:
+ {
+ int ret = -ENOTTY;
+- lock_kernel();
++ compat_mutex_lock(&vnetMutex);
+ if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
+ ret = VNetFileOpIoctl(filp->f_dentry->d_inode, filp, iocmd, ioarg);
+ }
+- unlock_kernel();
++ compat_mutex_unlock(&vnetMutex);
+ return ret;
+ }
+
+@@ -1134,9 +1134,9 @@ VNetFileOpUnlockedIoctl(struct file *filp, // IN:
+ if (filp && filp->f_dentry) {
+ inode = filp->f_dentry->d_inode;
+ }
+- lock_kernel();
++ compat_mutex_lock(&vnetMutex);
+ err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
+- unlock_kernel();
++ compat_mutex_unlock(&vnetMutex);
+ return err;
+ }
+ #endif
+diff --git a/vmnet-only/filter.c b/vmnet-only/filter.c
+index 34b7d3d..b0017d7 100644
+--- a/vmnet-only/filter.c
++++ b/vmnet-only/filter.c
+@@ -85,7 +85,7 @@ static compat_define_mutex(filterIoctlMutex); /* serialize ioctl()s from user sp
+ * callbacks can be concurrently executing on multiple threads on multiple
+ * CPUs, so we should revisit locking for allowing for that in the future.
+ */
+-spinlock_t activeRuleLock = SPIN_LOCK_UNLOCKED;
++DEFINE_SPINLOCK(activeRuleLock);
+
+ /*
+ * Logging.
+diff --git a/vmnet-only/hub.c b/vmnet-only/hub.c
+index b05efea..38d9aef 100644
+--- a/vmnet-only/hub.c
++++ b/vmnet-only/hub.c
+@@ -81,7 +81,7 @@ static VNetHub *vnetHub = NULL;
+ * so we use __attribute__((unused)) to quiet the compiler.
+ */
+
+-static spinlock_t vnetHubLock __attribute__((unused)) = SPIN_LOCK_UNLOCKED;
++static DEFINE_SPINLOCK(vnetHubLock);
+
+
+ /*
+diff --git a/vsock-only/linux/af_vsock.c b/vsock-only/linux/af_vsock.c
+index ecd057e..d565ec0 100644
+--- a/vsock-only/linux/af_vsock.c
++++ b/vsock-only/linux/af_vsock.c
+@@ -102,7 +102,6 @@
+ #include <linux/miscdevice.h>
+ #include <linux/poll.h>
+ #include <linux/smp.h>
+-#include <linux/smp_lock.h>
+ #include <asm/io.h>
+ #if defined(__x86_64__) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 12)
+ # if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+diff --git a/vsock-only/linux/util.c b/vsock-only/linux/util.c
+index 53f2edb..32a7da7 100644
+--- a/vsock-only/linux/util.c
++++ b/vsock-only/linux/util.c
+@@ -34,7 +34,7 @@
+ struct list_head vsockBindTable[VSOCK_HASH_SIZE + 1];
+ struct list_head vsockConnectedTable[VSOCK_HASH_SIZE];
+
+-spinlock_t vsockTableLock = SPIN_LOCK_UNLOCKED;
++DEFINE_SPINLOCK(vsockTableLock);
+
+ /*
+ * snprintf() wasn't exported until 2.4.10: fall back on sprintf in those
+diff --git a/vsock-only/shared/compat_namei.h b/vsock-only/shared/compat_namei.h
+index 28d72c8..4214247 100644
+--- a/vsock-only/shared/compat_namei.h
++++ b/vsock-only/shared/compat_namei.h
+@@ -40,8 +40,11 @@
+ #define compat_path_release(nd) path_release(nd)
+ #endif
+
++/* path_lookup was removed in 2.6.39 merge window VFS merge */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
++#define compat_path_lookup(name, flags, nd) kern_path(name, flags, &((nd)->path))
+ /* path_lookup was exported in 2.4.25 */
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 25)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 25)
+ #define compat_path_lookup(path, flags, nd) path_lookup(path, flags, nd)
+ #else
+ #define compat_path_lookup(path, flags, nd) \
diff --git a/app-emulation/vmware-modules/vmware-modules-238.4-r1.ebuild b/app-emulation/vmware-modules/vmware-modules-238.4-r1.ebuild
new file mode 100644
index 000000000000..83ead48090da
--- /dev/null
+++ b/app-emulation/vmware-modules/vmware-modules-238.4-r1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-238.4-r1.ebuild,v 1.1 2011/09/04 17:49:06 vadimk Exp $
+
+EAPI="2"
+
+inherit eutils flag-o-matic linux-info linux-mod versionator
+
+PV_MAJOR=$(get_major_version)
+PV_MINOR=$(get_version_component_range 2)
+
+DESCRIPTION="VMware kernel modules"
+HOMEPAGE="http://www.vmware.com/"
+
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ || ( =app-emulation/vmware-player-3.1.${PV_MINOR}*
+ =app-emulation/vmware-workstation-7.1.${PV_MINOR}* )"
+
+S=${WORKDIR}
+
+pkg_setup() {
+ CONFIG_CHECK="~HIGH_RES_TIMERS"
+ if kernel_is ge 2 6 37 && kernel_is lt 2 6 39; then
+ CONFIG_CHECK="${CONFIG_CHECK} BKL"
+ fi
+
+ linux-info_pkg_setup
+
+ linux-mod_pkg_setup
+
+ VMWARE_GROUP=${VMWARE_GROUP:-vmware}
+
+ VMWARE_MODULE_LIST="vmblock vmci vmmon vmnet vsock"
+ VMWARE_MOD_DIR="${PN}-${PVR}"
+
+ BUILD_TARGETS="auto-build KERNEL_DIR=${KERNEL_DIR} KBUILD_OUTPUT=${KV_OUT_DIR}"
+
+ enewgroup "${VMWARE_GROUP}"
+ filter-flags -mfpmath=sse
+
+ for mod in ${VMWARE_MODULE_LIST}; do
+ MODULE_NAMES="${MODULE_NAMES} ${mod}(misc:${S}/${mod}-only)"
+ done
+}
+
+src_unpack() {
+ cd "${S}"
+ for mod in ${VMWARE_MODULE_LIST}; do
+ tar -xf /opt/vmware/lib/vmware/modules/source/${mod}.tar
+ done
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PV_MAJOR}-makefile-kernel-dir.patch"
+ epatch "${FILESDIR}/${PV_MAJOR}-makefile-include.patch"
+ epatch "${FILESDIR}/${PV_MAJOR}-jobserver.patch"
+ kernel_is ge 2 6 37 && epatch "${FILESDIR}/${PV_MAJOR}-sema.patch"
+ kernel_is ge 2 6 39 && epatch "${FILESDIR}/${PV_MAJOR}-2.6.39.patch"
+}
+
+src_install() {
+ linux-mod_src_install
+ local udevrules="${T}/60-vmware.rules"
+ cat > "${udevrules}" <<-EOF
+ KERNEL=="vmci", GROUP="vmware", MODE=660
+ KERNEL=="vmmon", GROUP="vmware", MODE=660
+ KERNEL=="vsock", GROUP="vmware", MODE=660
+ EOF
+ insinto /etc/udev/rules.d/
+ doins "${udevrules}"
+}