summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Labedan <plabedan@gmail.com>2014-04-26 15:44:13 +0200
committerPaul Labedan <plabedan@gmail.com>2014-04-26 15:44:13 +0200
commit2407c758f2195a5c718c6fa16c287a5bd93ed410 (patch)
treed9d74821dafb89eb46d19ccffb63cdf1705584a7 /app-emulation
parentfix grive ebuild (diff)
downloadplab-2407c758f2195a5c718c6fa16c287a5bd93ed410.tar.gz
plab-2407c758f2195a5c718c6fa16c287a5bd93ed410.tar.bz2
plab-2407c758f2195a5c718c6fa16c287a5bd93ed410.zip
add vmware-modules for linux kernel 3.14
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/vmware-modules/ChangeLog671
-rw-r--r--app-emulation/vmware-modules/Manifest51
-rw-r--r--app-emulation/vmware-modules/files/264-3.10.0.patch828
-rw-r--r--app-emulation/vmware-modules/files/264-3.2.0.patch86
-rw-r--r--app-emulation/vmware-modules/files/264-3.8.0.patch33
-rw-r--r--app-emulation/vmware-modules/files/264-apic.patch12
-rw-r--r--app-emulation/vmware-modules/files/264-d-make-root.patch16
-rw-r--r--app-emulation/vmware-modules/files/264-jobserver.patch75
-rw-r--r--app-emulation/vmware-modules/files/264-makefile-include.patch65
-rw-r--r--app-emulation/vmware-modules/files/264-makefile-kernel-dir.patch80
-rw-r--r--app-emulation/vmware-modules/files/264-netdevice.patch24
-rw-r--r--app-emulation/vmware-modules/files/264-newline.patch11
-rw-r--r--app-emulation/vmware-modules/files/264-putname.patch13
-rw-r--r--app-emulation/vmware-modules/files/271-3.10.0.patch809
-rw-r--r--app-emulation/vmware-modules/files/271-apic.patch12
-rw-r--r--app-emulation/vmware-modules/files/271-makefile-include.patch65
-rw-r--r--app-emulation/vmware-modules/files/271-makefile-kernel-dir.patch85
-rw-r--r--app-emulation/vmware-modules/files/271-netdevice.patch24
-rw-r--r--app-emulation/vmware-modules/files/271-putname.patch13
-rw-r--r--app-emulation/vmware-modules/files/271-vmmon.patch44
-rw-r--r--app-emulation/vmware-modules/files/279-apic.patch12
-rw-r--r--app-emulation/vmware-modules/files/279-hardened.patch113
-rw-r--r--app-emulation/vmware-modules/files/279-linux-3.14.patch105
-rw-r--r--app-emulation/vmware-modules/files/279-makefile-include.patch65
-rw-r--r--app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch85
-rw-r--r--app-emulation/vmware-modules/files/279-netdevice.patch24
-rw-r--r--app-emulation/vmware-modules/files/279-putname.patch13
-rw-r--r--app-emulation/vmware-modules/files/279-vmblock-3.11.patch89
-rw-r--r--app-emulation/vmware-modules/files/279-vmblock-3.12.patch69
-rw-r--r--app-emulation/vmware-modules/files/279-vmblock.patch23
-rw-r--r--app-emulation/vmware-modules/files/hardened.patch170
-rw-r--r--app-emulation/vmware-modules/metadata.xml13
-rw-r--r--app-emulation/vmware-modules/vmware-modules-271.3.ebuild83
-rw-r--r--app-emulation/vmware-modules/vmware-modules-279.1-r1.ebuild98
-rw-r--r--app-emulation/vmware-modules/vmware-modules-279.2.ebuild100
35 files changed, 4079 insertions, 0 deletions
diff --git a/app-emulation/vmware-modules/ChangeLog b/app-emulation/vmware-modules/ChangeLog
new file mode 100644
index 0000000..dd5e3e4
--- /dev/null
+++ b/app-emulation/vmware-modules/ChangeLog
@@ -0,0 +1,671 @@
+# ChangeLog for app-emulation/vmware-modules
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/ChangeLog,v 1.117 2014/04/19 10:10:25 dilfridge Exp $
+
+*vmware-modules-279.2 (19 Apr 2014)
+
+ 19 Apr 2014; Andreas K. Huettel <dilfridge@gentoo.org>
+ -vmware-modules-279.0.ebuild, -vmware-modules-279.1.ebuild,
+ +vmware-modules-279.2.ebuild:
+ Version bump; remove old
+
+*vmware-modules-279.1-r1 (12 Apr 2014)
+
+ 12 Apr 2014; Andreas K. Huettel <dilfridge@gentoo.org>
+ +vmware-modules-279.1-r1.ebuild, metadata.xml:
+ Version bump to make some modules optional, bug 501536
+
+*vmware-modules-271.3 (12 Apr 2014)
+
+ 12 Apr 2014; Andreas K. Huettel <dilfridge@gentoo.org>
+ -vmware-modules-264.5.ebuild, -vmware-modules-271.2.ebuild,
+ +vmware-modules-271.3.ebuild:
+ Version bump, bug 497816; remove old
+
+ 27 Dec 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ +files/264-newline.patch, vmware-modules-264.5.ebuild:
+ Add cosmetic patch for bug 439280
+
+ 23 Nov 2013; Magnus Granberg <zorry@gentoo.org> vmware-modules-279.0.ebuild,
+ vmware-modules-279.1.ebuild, +files/279-hardened.patch:
+ Update hardned patch for 279.X #491342
+
+*vmware-modules-279.1 (06 Nov 2013)
+
+ 06 Nov 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ +vmware-modules-279.1.ebuild:
+ Version bump
+
+ 02 Nov 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ -files/279-3.10.0.patch, vmware-modules-279.0.ebuild:
+ Re-add keywords after testing
+
+ 02 Nov 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ files/279-vmblock.patch, vmware-modules-279.0.ebuild:
+ Apply proper patches. Tested with 3.10.7-gentoo-r1.
+
+ 22 Oct 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ -files/238-2.6.39.patch, -files/238-makefile-kernel-dir.patch,
+ -files/238-3.2.0.patch, -files/238-d-make-root.patch,
+ -files/238-jobserver.patch, -files/238-makefile-include.patch,
+ -files/238-netdevice.patch, -files/238-sema.patch,
+ -files/238-unlocked_ioctl.patch, -vmware-modules-238.6.ebuild:
+ Drop old
+
+*vmware-modules-279.0 (19 Oct 2013)
+
+ 19 Oct 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ +files/279-3.10.0.patch, +files/279-apic.patch,
+ +files/279-makefile-include.patch, +files/279-makefile-kernel-dir.patch,
+ +files/279-netdevice.patch, +files/279-putname.patch,
+ +files/279-vmblock.patch, +vmware-modules-279.0.ebuild:
+ Version bump, added without keywords for testing. Bug 484098. Thanks to Billy
+ DeVincentis for the files.
+
+ 11 Aug 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ +files/264-3.10.0.patch, +files/271-3.10.0.patch,
+ vmware-modules-264.5.ebuild, vmware-modules-271.2.ebuild:
+ Add contributed patches for kernel 3.10.0, see bug 470896
+
+ 23 Jun 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ +files/264-3.8.0.patch, -vmware-modules-264.4.ebuild,
+ vmware-modules-264.5.ebuild:
+ Remove old; add patch to build 264 with kernel 3.8, bug 458228
+
+ 21 Jun 2013; Andreas K. Huettel <dilfridge@gentoo.org>
+ vmware-modules-238.6.ebuild, vmware-modules-264.5.ebuild,
+ vmware-modules-271.2.ebuild:
+ Add support for epatch_user, bug 459182
+
+ 16 Jun 2013; Vadim Kuznetsov vadimk@gentoo.org metadata.xml:
+ dropped myself as a maintainer. maintainer needed
+
+*vmware-modules-271.2 (10 Mar 2013)
+
+ 10 Mar 2013; Vadim Kuznetsov vadimk@gentoo.org +vmware-modules-271.2.ebuild,
+ -vmware-modules-271.1-r1.ebuild, -vmware-modules-271.1.ebuild:
+ vmware desktop 9.0.2 version bump. Bugs 459566, 458228, 460908.
+
+*vmware-modules-264.5 (07 Jan 2013)
+
+ 07 Jan 2013; Vadim Kuznetsov vadimk@gentoo.org +files/264-putname.patch,
+ +vmware-modules-264.5.ebuild:
+ vmware desktop 8.0.5 version bump
+
+ 22 Dec 2012; Vadim Kuznetsov vadimk@gentoo.org vmware-modules-271.1-r1.ebuild:
+ apply patch to kernel gte 3.7.0
+
+*vmware-modules-271.1-r1 (16 Dec 2012)
+
+ 16 Dec 2012; Vadim Kuznetsov vadimk@gentoo.org +files/271-putname.patch,
+ +vmware-modules-271.1-r1.ebuild:
+ putname patch. Bug 447154.
+
+ 12 Dec 2012; Samuli Suominen <ssuominen@gentoo.org>
+ vmware-modules-238.6.ebuild, vmware-modules-264.4.ebuild,
+ vmware-modules-271.1.ebuild:
+ Use udev.eclass and udev_dorules to install rules into correct directory wrt
+ #433912 by Martin von Gagern
+
+*vmware-modules-271.1 (09 Dec 2012)
+
+ 09 Dec 2012; Vadim Kuznetsov vadimk@gentoo.org +files/271-apic.patch,
+ +files/271-makefile-include.patch, +files/271-makefile-kernel-dir.patch,
+ +files/271-netdevice.patch, +files/271-vmmon.patch,
+ +vmware-modules-271.1.ebuild:
+ vmware desktop 9.0.1 version bump.bugs 432918, 443022
+
+*vmware-modules-238.6 (17 Jun 2012)
+*vmware-modules-264.4 (17 Jun 2012)
+
+ 17 Jun 2012; Vadim Kuznetsov vadimk@gentoo.org +vmware-modules-238.6.ebuild,
+ +vmware-modules-264.4.ebuild, -vmware-modules-238.5-r1.ebuild,
+ -vmware-modules-264.3.ebuild:
+ bump vmware desktop. bug 421269
+
+ 01 Jun 2012; Zac Medico <zmedico@gentoo.org> vmware-modules-238.5-r1.ebuild,
+ vmware-modules-264.3.ebuild:
+ inherit user for enewgroup
+
+ 24 May 2012; Vadim Kuznetsov vadimk@gentoo.org +files/238-d-make-root.patch,
+ vmware-modules-238.5-r1.ebuild:
+ Andrew Dean's patch of 238 vmware modules for 3.4.0 kernel. Bug 411853
+
+ 22 May 2012; Vadim Kuznetsov vadimk@gentoo.org +files/264-d-make-root.patch,
+ vmware-modules-264.3.ebuild:
+ d_make_root patch for 3.4 kernel. Bug 411853.
+
+ 07 May 2012; Vadim Kuznetsov vadimk@gentoo.org +files/264-apic.patch:
+ missing patch. Bug 414831
+
+*vmware-modules-264.3 (05 May 2012)
+
+ 05 May 2012; Vadim Kuznetsov vadimk@gentoo.org +vmware-modules-264.3.ebuild,
+ -files/264.2-3.2.0.patch, -vmware-modules-264.2-r1.ebuild,
+ files/264-3.2.0.patch, metadata.xml:
+ VMware desktop build 703057
+
+*vmware-modules-264.2-r1 (26 Mar 2012)
+*vmware-modules-238.5-r1 (26 Mar 2012)
+
+ 26 Mar 2012; Vadim Kuznetsov vadimk@gentoo.org
+ +vmware-modules-238.5-r1.ebuild, +vmware-modules-264.2-r1.ebuild,
+ -vmware-modules-238.5.ebuild, -vmware-modules-264.2.ebuild:
+ udev rules moved to /lib/udev/rules.d
+
+ 24 Mar 2012; Vadim Kuznetsov <vadimk@gentoo.org> +files/hardened.patch,
+ -vmware-modules-264.1.ebuild, vmware-modules-264.2.ebuild:
+ patch for hardened
+
+ 12 Mar 2012; Vadim Kuznetsov <vadimk@gentoo.org> +files/264.2-3.2.0.patch:
+ missing patch
+
+*vmware-modules-264.2 (10 Mar 2012)
+
+ 10 Mar 2012; Vadim Kuznetsov <vadimk@gentoo.org> +vmware-modules-264.2.ebuild:
+ vmware desktop version bump
+
+ 10 Jan 2012; Vadim Kuznetsov <vadimk@gentoo.org> +files/238-3.2.0.patch,
+ +files/238-netdevice.patch, vmware-modules-238.5.ebuild:
+ patches for 3.1.x and 3.2 kernels. Bug 395305
+
+ 06 Jan 2012; Vadim Kuznetsov <vadimk@gentoo.org> files/264-3.2.0.patch:
+ fixed patch for 3.2.0 kernel . Bug 397733.
+
+ 06 Jan 2012; Vadim Kuznetsov <vadimk@gentoo.org> +files/264-3.2.0.patch,
+ vmware-modules-264.1.ebuild:
+ added patch for 3.2 kernel
+
+ 05 Dec 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ -files/1.0.0.25-autoconf-generated.patch,
+ -files/1.0.0.25-makefile-include.patch,
+ -files/1.0.0.25-makefile-kernel-dir.patch, -files/1.0.0.25-sema.patch,
+ -vmware-modules-1.0.0.25-r3.ebuild, -files/1.0.0.25-sk_sleep.patch,
+ -vmware-modules-1.0.0.25-r4.ebuild, -files/1.0.0.25-unlocked_ioctl.patch,
+ -files/sched_h-2.6.32.patch, -files/apic.patch:
+ removed old version. bug 385727.
+
+*vmware-modules-264.1 (03 Dec 2011)
+
+ 03 Dec 2011; Vadim Kuznetsov <vadimk@gentoo.org> +files/264-jobserver.patch,
+ +files/264-makefile-include.patch, +files/264-netdevice.patch,
+ +vmware-modules-264.1.ebuild, +files/264-makefile-kernel-dir.patch:
+ vmware desktop version bump
+
+ 19 Oct 2011; Vadim Kuznetsov <vadimk@gentoo.org> -files/208-sema.patch,
+ -files/208-sk_sleep.patch, -files/208-unlocked_ioctl.patch,
+ -vmware-modules-208.2.ebuild:
+ 208 vmware modules removed
+
+ 17 Oct 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ -vmware-modules-238.4.ebuild, -vmware-modules-238.4-r1.ebuild:
+ cleanup
+
+*vmware-modules-238.5 (08 Oct 2011)
+
+ 08 Oct 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ +vmware-modules-238.5.ebuild:
+ version bump
+
+*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:
+ bug 374599
+
+*vmware-modules-238.4 (15 Apr 2011)
+
+ 15 Apr 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ +vmware-modules-238.4.ebuild:
+ version bump
+
+ 09 Apr 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ -files/1.0.0.24-autoconf-generated.patch,
+ -files/1.0.0.24-kernel-2.6.29.patch, -files/1.0.0.24-kernel-2.6.30.patch,
+ -files/1.0.0.24-makefile-kernel-dir.patch, -files/1.0.0.24-sema.patch,
+ -files/1.0.0.24-sk_sleep.patch, -files/1.0.0.24-vmnet-2.6.31.patch,
+ -files/1.0.0.24-unlocked_ioctl.patch, -vmware-modules-1.0.0.24-r3.ebuild:
+ 1.0.0.24 is replaced by 208.2
+
+ 30 Mar 2011; Vadim Kuznetsov <vadimk@gentoo.org> files/208-sema.patch:
+ corrected sema patch
+
+*vmware-modules-208.2 (27 Mar 2011)
+
+ 27 Mar 2011; Vadim Kuznetsov <vadimk@gentoo.org> +files/208-sema.patch,
+ +files/208-sk_sleep.patch, +files/208-unlocked_ioctl.patch,
+ +vmware-modules-208.2.ebuild:
+ vmware kernel modules for vmware server 2 host
+
+*vmware-modules-238.3-r8 (27 Mar 2011)
+
+ 27 Mar 2011; Vadim Kuznetsov <vadimk@gentoo.org> +files/238-jobserver.patch,
+ +files/238-makefile-include.patch, +files/238-makefile-kernel-dir.patch,
+ +files/238-sema.patch, +files/238-unlocked_ioctl.patch,
+ +vmware-modules-238.3-r8.ebuild:
+ vmware kernel modules of the vmware player 3.1.3 or workstation 7.1.3 host
+
+*vmware-modules-1.0.0.25-r4 (18 Mar 2011)
+
+ 18 Mar 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ +vmware-modules-1.0.0.25-r4.ebuild:
+ BKL check, updated udev rules, better sed
+
+ 16 Mar 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ vmware-modules-1.0.0.24-r3.ebuild, vmware-modules-1.0.0.25-r3.ebuild:
+ patched for 2.6.38
+
+ 16 Mar 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ -vmware-modules-1.0.0.25-r1.ebuild,
+ cleanup
+
+ 16 Mar 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ -files/patches/000_all_makefile-include-directory.patch,
+ -files/patches/020_all_epoll-def-warnings.patch,
+ -vmware-modules-1.0.0.15-r2.ebuild,
+ -files/patches/vmmon/035_all_kernel-2.6.25.patch,
+ -files/patches/vmmon/040_all_kernel-2.6.27.patch,
+ -files/patches/vmnet/021_all_wireless_fix.patch,
+ -files/patches/vmblock/010_all_kernel-2.6.25.patch,
+ -files/patches/vmnet/025_all_kernel-2.6.25.patch,
+ -files/patches/vmnet/030_all_kernel-2.6.27.patch,
+ -files/patches/vmmon/030_all_fix-linux-headers.patch:
+ Bug 354383
+
+ 17 Feb 2011; Thomas Kahle <tomka@gentoo.org>
+ vmware-modules-1.0.0.25-r3.ebuild:
+ x86 stable per bug 352421
+
+ 11 Feb 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ vmware-modules-1.0.0.15-r2.ebuild:
+ back to testing
+
+ 11 Feb 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ -vmware-modules-1.0.0.24-r1.ebuild, -vmware-modules-1.0.0.24-r2.ebuild,
+ -vmware-modules-1.0.0.25-r2.ebuild:
+ clean up
+
+ 11 Feb 2011; Vadim Kuznetsov <vadimk@gentoo.org>
+ -vmware-modules-1.0.0.15-r1.ebuild:
+ clean up
+
+ 25 Jan 2011; Markos Chandras <hwoarang@gentoo.org>
+ vmware-modules-1.0.0.25-r3.ebuild:
+ Stable on amd64 wrt bug #352421
+
+*vmware-modules-1.0.0.24-r3 (15 Jan 2011)
+
+ 15 Jan 2011; Vadim Kuznetsov <vadimk@gentoo.org> +files/1.0.0.24-sema.patch,
+ +vmware-modules-1.0.0.24-r3.ebuild:
+ Bugs 345145, 351592.
+ Thanks Mateusz Dziadko, c1pher.
+
+*vmware-modules-1.0.0.25-r3 (13 Jan 2011)
+
+ 13 Jan 2011; Vadim Kuznetsov <vadimk@gentoo.org> +files/1.0.0.25-sema.patch,
+ +vmware-modules-1.0.0.25-r3.ebuild:
+ Bug 345145 and 349649 and 351592
+ Thanks to Mateusz Dziadko, Dane Smith and bugs et al.
+
+*vmware-modules-1.0.0.24-r2 (21 Nov 2010)
+
+ 21 Nov 2010; Vadim Kuznetsov <vadimk@gentoo.org>
+ +files/1.0.0.24-unlocked_ioctl.patch, +vmware-modules-1.0.0.24-r2.ebuild,
+ vmware-modules-1.0.0.25-r2.ebuild:
+ unlocked_ioctl patch
+
+*vmware-modules-1.0.0.25-r2 (21 Nov 2010)
+
+ 21 Nov 2010; Vadim Kuznetsov <vadimk@gentoo.org>
+ +files/1.0.0.25-unlocked_ioctl.patch, +vmware-modules-1.0.0.25-r2.ebuild:
+ updated unlocked_ioctl patch
+
+ 21 Nov 2010; Vadim Kuznetsov <vadimk@gentoo.org>
+ -files/1.0.0.26-ioctl-2.6.36.patch, -files/1.0.0.26-iommu_map.patch,
+ -files/1.0.0.26-makefile-include.patch,
+ -files/1.0.0.26-makefile-kernel-dir.patch, -files/1.0.0.26-sk_sleep.patch,
+ -vmware-modules-1.0.0.26.ebuild:
+ replaced by vmware-modules-235 (in overlay)
+
+ 05 Nov 2010; Fabio Erculiani <lxnay@gentoo.org>
+ vmware-modules-1.0.0.25-r1.ebuild, vmware-modules-1.0.0.26.ebuild,
+ +files/1.0.0.26-ioctl-2.6.36.patch:
+ add 2.6.36 Linux kernel support
+
+ 04 Aug 2010; Vadim Kuznetsov <vadimk@gentoo.org>
+ +files/1.0.0.24-sk_sleep.patch, vmware-modules-1.0.0.24-r1.ebuild,
+ +files/1.0.0.25-sk_sleep.patch, vmware-modules-1.0.0.25-r1.ebuild,
+ +files/1.0.0.26-iommu_map.patch, vmware-modules-1.0.0.26.ebuild,
+ +files/1.0.0.26-sk_sleep.patch:
+ patches for 2.6.35 kernel. Bug 322245, Bug 330019
+
+ 03 May 2010; Vadim Kuznetsov <vadimk@gentoo.org>
+ vmware-modules-1.0.0.25-r1.ebuild, vmware-modules-1.0.0.26.ebuild,
+ +files/apic.patch:
+ Bugs 274529, 317583
+ Thanks to Mikhail Zolotaryov for the patch.
+
+*vmware-modules-1.0.0.26 (28 Feb 2010)
+
+ 28 Feb 2010; Vadim Kuznetsov <vadimk@gentoo.org>
+ +files/1.0.0.26-makefile-include.patch, -vmware-modules-1.0.0.25.ebuild,
+ +files/1.0.0.26-makefile-kernel-dir.patch,
+ +vmware-modules-1.0.0.26.ebuild:
+ vmware-modules for VMware Workstation 7.0.x and Player 3.0.x
+
+ 26 Feb 2010; Vadim Kuznetsov <vadimk@gentoo.org>
+ +files/1.0.0.24-autoconf-generated.patch,
+ vmware-modules-1.0.0.24-r1.ebuild,
+ +files/1.0.0.25-autoconf-generated.patch,
+ vmware-modules-1.0.0.25-r1.ebuild:
+ Bug 301320
+
+*vmware-modules-1.0.0.25-r1 (13 Feb 2010)
+
+ 13 Feb 2010; Patrick Lauer <patrick@gentoo.org>
+ +vmware-modules-1.0.0.25-r1.ebuild:
+ Small fix for header changes in 2.6.33 and later
+
+ 02 Jan 2010; Vadim Kuznetsov <vadimk@gentoo.org>
+ -vmware-modules-1.0.0.24.ebuild, vmware-modules-1.0.0.24-r1.ebuild,
+ vmware-modules-1.0.0.25.ebuild, +files/sched_h-2.6.32.patch:
+ Bug 295955
+
+ 30 Oct 2009; Vadim Kuznetsov vadimk@gentoo.org
+ -files/1.0.0.23-makefile-kernel-dir.patch,
+ -vmware-modules-1.0.0.23.ebuild, -vmware-modules-1.0.0.23-r1.ebuild,
+ -files/1.0.0.23-r1-kernel-2.6.29.patch:
+ cleanup
+
+ 25 Sep 2009; Markus Meier <maekke@gentoo.org>
+ vmware-modules-1.0.0.25.ebuild:
+ amd64 stable, bug #282213
+
+*vmware-modules-1.0.0.24-r1 (22 Sep 2009)
+
+ 22 Sep 2009; Vadim Kuznetsov vadimk@gentoo.org
+ +vmware-modules-1.0.0.24-r1.ebuild, +files/1.0.0.24-vmnet-2.6.31.patch:
+ vmnet patch for 2.6.31 kernel. Bug 274173, comment 15.
+
+ 02 Sep 2009; Vadim Kuznetsov vadimk@gentoo.org
+ -files/patches/vmmon/050_all_kernel-2.6.29.patch,
+ -files/patches/vmnet/040_all_kernel-2.6.29.patch:
+ revert previous commit. Bug 273173
+
+ 28 Aug 2009; Vadim Kuznetsov vadimk@gentoo.org
+ +files/patches/vmmon/050_all_kernel-2.6.29.patch,
+ +files/patches/vmnet/040_all_kernel-2.6.29.patch:
+ bugs 264098, 273173. 1.0.0.15-r2 patches suggested in 272173
+
+ 25 Aug 2009; Christian Faulhammer <fauli@gentoo.org>
+ vmware-modules-1.0.0.25.ebuild:
+ stable x86, security bug 282213
+
+*vmware-modules-1.0.0.25 (22 Aug 2009)
+
+ 22 Aug 2009; Vadim Kuznetsov vadimk@gentoo.org
+ +files/1.0.0.25-makefile-include.patch, +vmware-modules-1.0.0.25.ebuild,
+ +files/1.0.0.25-makefile-kernel-dir.patch:
+ Version bump. modules for vmware-{workstation,player}-{6.2}.5.3
+
+ 03 Jul 2009; Jeroen Roovers <jer@gentoo.org> metadata.xml:
+ Fix e-mail address.
+
+*vmware-modules-1.0.0.24 (14 Jun 2009)
+
+ 14 Jun 2009; Vadim Kuznetsov vadimk@gentoo.org
+ +vmware-modules-1.0.0.24.ebuild, +files/1.0.0.24-kernel-2.6.29.patch,
+ +files/1.0.0.24-kernel-2.6.30.patch,
+ +files/1.0.0.24-makefile-kernel-dir.patch, metadata.xml:
+ Bugs 268099, 270150, 273750. New ebuild without vmware-mod eclass.
+
+*vmware-modules-1.0.0.23-r1 (16 May 2009)
+
+ 16 May 2009; Mike Auty <ikelos@gentoo.org>
+ +vmware-modules-1.0.0.23-r1.ebuild,
+ +files/1.0.0.23-r1-kernel-2.6.29.patch:
+ Version bump vmware-modules for 2.6.29 support.
+
+ 22 Feb 2009; Mike Auty <ikelos@gentoo.org>
+ -files/1.0.0.20-vmblock-2.6.26-2.patch,
+ -files/1.0.0.20-makefile-kernel-dir.patch,
+ -files/1.0.0.20-vmblock-2.6.26-1.patch,
+ -files/1.0.0.20-vmmon-2.6.26.patch, -files/1.0.0.20-vmnet-2.6.26.patch,
+ -files/1.0.0.22-makefile-kernel-dir.patch,
+ -vmware-modules-1.0.0.20.ebuild, -vmware-modules-1.0.0.22.ebuild:
+ Clear out old versions of vmware-modules that are no longer needed due to
+ the removal of insecure versions of vmware products (bug 245941).
+
+ 14 Jan 2009; Mike Auty <ikelos@gentoo.org>
+ files/patches/vmnet/030_all_kernel-2.6.27.patch:
+ Third time lucky, more patches for < 2.6.26 kernels.
+
+ 14 Jan 2009; Mike Auty <ikelos@gentoo.org>
+ files/patches/vmnet/030_all_kernel-2.6.27.patch:
+ Add patch to try and fix bug 254768.
+
+ 12 Jan 2009; Mike Auty <ikelos@gentoo.org> Manifest:
+ Fix up vmware-modules-1.0.0.15 patches for kernels older than 2.6.27.
+
+ 12 Jan 2009; Markus Meier <maekke@gentoo.org>
+ vmware-modules-1.0.0.23.ebuild:
+ amd64/x86 stable, bug #245941
+
+ 11 Jan 2009; Markus Meier <maekke@gentoo.org>
+ vmware-modules-1.0.0.15-r2.ebuild:
+ amd64/x86 stable, bug #236167
+
+ 10 Jan 2009; Mike Auty <ikelos@gentoo.org>
+ -files/1.0.0.17-update115-nasty-hack.patch,
+ -vmware-modules-1.0.0.16-r1.ebuild, -vmware-modules-1.0.0.17.ebuild,
+ -vmware-modules-1.0.0.17-r1.ebuild:
+ Clear out old modules for products no longer in the tree.
+
+*vmware-modules-1.0.0.15-r2 (10 Jan 2009)
+
+ 10 Jan 2009; Mike Auty <ikelos@gentoo.org>
+ +files/patches/vmmon/040_all_kernel-2.6.27.patch,
+ +files/patches/vmnet/030_all_kernel-2.6.27.patch,
+ +vmware-modules-1.0.0.15-r2.ebuild:
+ Add in vmware-modules-1.0.0.15-r2. Should compile on kernels up to and
+ including 2.6.28, big thanks go to Tim Yamin for help with the patches.
+
+*vmware-modules-1.0.0.23 (09 Nov 2008)
+
+ 09 Nov 2008; Mike Auty <ikelos@gentoo.org>
+ +files/1.0.0.23-makefile-kernel-dir.patch, vmware-modules-1.0.0.20.ebuild,
+ vmware-modules-1.0.0.22.ebuild, +vmware-modules-1.0.0.23.ebuild:
+ Add in vmware-modules-1.0.0.23 for vmware-workstation-6.5 and
+ vmware-player-2.5.
+
+*vmware-modules-1.0.0.22 (30 Sep 2008)
+
+ 30 Sep 2008; Mike Auty <ikelos@gentoo.org>
+ +files/1.0.0.20-vmblock-2.6.26-1.patch,
+ +files/1.0.0.20-vmblock-2.6.26-2.patch,
+ +files/1.0.0.20-vmmon-2.6.26.patch,
+ +files/1.0.0.22-makefile-kernel-dir.patch,
+ +files/1.0.0.20-vmnet-2.6.26.patch, -vmware-modules-1.0.0.11-r1.ebuild,
+ -vmware-modules-1.0.0.13-r1.ebuild, vmware-modules-1.0.0.20.ebuild,
+ +vmware-modules-1.0.0.22.ebuild:
+ Remove old unused versions, fix up 1.0.0.20 bugs and put in a new version
+ for workstation 6.0.5 and player 2.0.5.
+
+ 18 Jun 2008; Mike Auty <ikelos@gentoo.org>
+ +files/1.0.0.20-makefile-kernel-dir.patch, vmware-modules-1.0.0.20.ebuild:
+ Fix kernel build directories (bug 227941).
+
+*vmware-modules-1.0.0.20 (14 Jun 2008)
+
+ 14 Jun 2008; Mike Auty <ikelos@gentoo.org> +vmware-modules-1.0.0.20.ebuild:
+ Add in vmware-modules-1.0.0.20 for workstation 6.0.4 and player 2.0.4.
+
+ 26 Apr 2008; Mike Auty <ikelos@gentoo.org>
+ +files/patches/vmblock/010_all_kernel-2.6.25.patch,
+ +files/patches/vmmon/035_all_kernel-2.6.25.patch,
+ +files/patches/vmnet/025_all_kernel-2.6.25.patch:
+ Add patches for -r1 ebuilds to ensure they work on 2.6.25 and older
+ kernels.
+
+ 31 Jan 2008; Mike Auty <ikelos@gentoo.org> ChangeLog:
+ Re-sign digestless manifest.
+
+*vmware-modules-1.0.0.17-r1 (26 Jan 2008)
+
+ 26 Jan 2008; Mike Auty <ikelos@gentoo.org>
+ +files/1.0.0.17-update115-nasty-hack.patch,
+ +files/patches/vmmon/030_all_fix-linux-headers.patch,
+ +files/patches/vmnet/021_all_wireless_fix.patch,
+ +vmware-modules-1.0.0.17-r1.ebuild:
+ Bump vmware-modules to any-any115, and apply fixes for wireless and 2.6.24.
+
+ 25 Nov 2007; Mike Auty <ikelos@gentoo.org>
+ -files/1.0.0.16-kernel-2.6.22.patch, -vmware-modules-1.0.0.16.ebuild,
+ vmware-modules-1.0.0.17.ebuild:
+ Bump to vmware-any-any-update114. Also update 1.0.0.17 to use the latest
+ vmware-player package.
+
+ 14 Oct 2007; Mike Auty <ikelos@gentoo.org>
+ vmware-modules-1.0.0.16-r1.ebuild:
+ Add vmblock module building to vmware-modules-1.0.0.16-r1
+
+*vmware-modules-1.0.0.17 (14 Oct 2007)
+
+ 14 Oct 2007; Mike Auty <ikelos@gentoo.org> vmware-modules-1.0.0.16.ebuild,
+ +vmware-modules-1.0.0.17.ebuild:
+ Add the latest modules for vmware-workstation-6.0.1
+
+*vmware-modules-1.0.0.16-r1 (16 Sep 2007)
+
+ 16 Sep 2007; Mike Auty <ikelos@gentoo.org>
+ -files/1.0.0.15-gcc4-ignore-pedantic-errors.patch,
+ +vmware-modules-1.0.0.16-r1.ebuild:
+ Adding in vmware-modules-1.0.0.16-r1, now that vmware-any-any-update can
+ handle workstation 6. Also cleaned out an old patch for 1.0.0.15.
+
+ 28 Jul 2007; Mike Auty <ikelos@gentoo.org>
+ +files/1.0.0.16-kernel-2.6.22.patch, vmware-modules-1.0.0.16.ebuild:
+ Redigest for vmware-any-any-update112.
+
+ 12 Jul 2007; Chris Gianelloni <wolf31o2@gentoo.org>
+ -vmware-modules-1.0.0.11.ebuild, vmware-modules-1.0.0.11-r1.ebuild,
+ -vmware-modules-1.0.0.13.ebuild, vmware-modules-1.0.0.13-r1.ebuild:
+ Marking 1.0.0.11-r1 and 1.0.0.13-r1 stable on amd64/x86 since the changes
+ from the previous ebuilds is just the placement of a variable, and the
+ current stable versions didn't work properly.
+
+*vmware-modules-1.0.0.16 (24 Jun 2007)
+
+ 24 Jun 2007; Mike Auty <ikelos@gentoo.org>
+ +vmware-modules-1.0.0.16.ebuild:
+ Add in the latest modules for vmware-player-2 and vmware-workstation-6.
+
+ 28 Apr 2007; Mike Auty <ikelos@gentoo.org>
+ -files/patches/010_all_makefile-vm-build-no-unused-warnings.patch:
+ Remove unnecessary patch, that's now part of any-any109.
+
+ 28 Apr 2007; Mike Auty <ikelos@gentoo.org>
+ files/digest-vmware-modules-1.0.0.11,
+ files/digest-vmware-modules-1.0.0.11-r1,
+ files/digest-vmware-modules-1.0.0.13,
+ files/digest-vmware-modules-1.0.0.13-r1,
+ files/digest-vmware-modules-1.0.0.15-r1, Manifest:
+ Redigest for vmware-any-any109.
+
+ 04 Mar 2007; Mike Auty <ikelos@gentoo.org>
+ -vmware-modules-1.0.0.15.ebuild:
+ Bump vmware-any-any to 108. Remove old vmware-server module ebuild.
+
+ 05 Feb 2007; Mike Auty <ikelos@gentoo.org>
+ vmware-modules-1.0.0.15-r1.ebuild:
+ Vmware-any-any bump to support 2.6.20 and fix a copyright date.
+
+ 17 Dec 2006; Mike Frysinger <vapier@gentoo.org>
+ +files/patches/010_all_makefile-vm-build-no-unused-warnings.patch,
+ +files/patches/020_all_epoll-def-warnings.patch:
+ Fix building with newer kernels #146004.
+
+ 01 Dec 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ vmware-modules-1.0.0.15-r1.ebuild:
+ Stable on amd64/x86 for vmware-workstation-5.5.3.
+
+ 01 Dec 2006; Mike Auty <ikelos@gentoo.org>
+ files/digest-vmware-modules-1.0.0.11,
+ files/digest-vmware-modules-1.0.0.11-r1,
+ files/digest-vmware-modules-1.0.0.13,
+ files/digest-vmware-modules-1.0.0.13-r1,
+ files/digest-vmware-modules-1.0.0.15-r1, Manifest:
+ Redigest for vmware-any-any105.
+
+ 30 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ -vmware-modules-1.0.0.8.ebuild:
+ Removed verion 0.0.8 since we have removed the only VMware product (VMware
+ Workstation 3.2.1) that used it.
+
+*vmware-modules-1.0.0.15-r1 (17 Oct 2006)
+*vmware-modules-1.0.0.13-r1 (17 Oct 2006)
+*vmware-modules-1.0.0.11-r1 (17 Oct 2006)
+
+ 17 Oct 2006; Mike Auty <ikelos@gentoo.org>
+ +vmware-modules-1.0.0.11-r1.ebuild, +vmware-modules-1.0.0.13-r1.ebuild,
+ +vmware-modules-1.0.0.15-r1.ebuild:
+ Version bump for all vmware-modules to fix for bug 149679, thanks to Jason
+ Urbank.
+
+ 22 Sep 2006; Mike Auty <ikelos@gentoo.org>
+ files/patches/000_all_makefile-include-directory.patch:
+ Updated patch fixing bug #148613, thanks to Alon Bar-Lev.
+
+ 13 Sep 2006; Mike Auty <ikelos@gentoo.org>
+ +files/1.0.0.15-gcc4-ignore-pedantic-errors.patch,
+ vmware-modules-1.0.0.15.ebuild:
+ Add a patch to fix compilation against kernels <= 2.6.16 with gcc-4.1.
+ Closes bug #146004.
+
+ 28 Aug 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ vmware-modules-1.0.0.8.ebuild:
+ Stable on x86 for vmware-workstation.
+
+ 27 Aug 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ vmware-modules-1.0.0.11.ebuild:
+ Stable on amd64 and x86 for vmware-workstation.
+
+ 25 Aug 2006; Mike Auty <ikelos@gentoo.org>
+ files/digest-vmware-modules-1.0.0.8, files/digest-vmware-modules-1.0.0.11,
+ files/digest-vmware-modules-1.0.0.13, Manifest:
+ Redigested for vmware-any-any-update104.
+
+ 22 Aug 2006; Chris Gianelloni <wolf31o2@gentoo.org>
+ vmware-modules-1.0.0.13.ebuild:
+ Stable on amd64 and x86 for vmware-workstation and vmware-player.
+
+ 19 Aug 2006; Mike Auty <ikelos@gentoo.org> vmware-modules-1.0.0.15.ebuild:
+ Update vmware-modules to use the latest vmware-server package.
+
+ 08 Aug 2006; Mike Auty <ikelos@gentoo.org>
+ files/digest-vmware-modules-1.0.0.8, files/digest-vmware-modules-1.0.0.11,
+ files/digest-vmware-modules-1.0.0.13, Manifest:
+ Make use of vmware-any-any103, which fixes kernel problems on 2.6.18, and
+ also two patches for problems with the kernel build system, thanks to Georgi
+ Georgiev <chutz (at) gg3.net> and Alon Bar-Lev <alon.barlev (at) gmail.com>.
+ Closes bug #142855.
+
+*vmware-modules-1.0.0.13 (31 Jul 2006)
+*vmware-modules-1.0.0.11 (31 Jul 2006)
+*vmware-modules-1.0.0.8 (31 Jul 2006)
+
+ 31 Jul 2006; Mike Auty <ikelos@gentoo.org> +vmware-modules-1.0.0.8.ebuild,
+ +vmware-modules-1.0.0.11.ebuild, +vmware-modules-1.0.0.13.ebuild,
+ vmware-modules-1.0.0.15.ebuild:
+ Add in vmware-modules for workstation and player products.
+
+*vmware-modules-1.0.0.15 (31 Jul 2006)
+
+ 31 Jul 2006; Mike Auty <ikelos@gentoo.org>
+ +files/patches/000_all_makefile-include-directory.patch, +metadata.xml,
+ +vmware-modules-1.0.0.15.ebuild:
+ Initial commit of vmware-modules, as used by several vmware-packages.
diff --git a/app-emulation/vmware-modules/Manifest b/app-emulation/vmware-modules/Manifest
new file mode 100644
index 0000000..145c3e6
--- /dev/null
+++ b/app-emulation/vmware-modules/Manifest
@@ -0,0 +1,51 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+AUX 264-3.10.0.patch 24201 SHA256 be0dbd21542475780bd391566ffd213b9ba9b3ce7a2383f10306ad0f7927b62e SHA512 7a5f6b0247db63894bcaa7718dc5d4cd7203bc42e1f5a3b5029ca92b25d19ac34f837a7f21661801a9c42f3f4ef84f8151afce4a0d1aab91c5e3e6122374537b WHIRLPOOL 2d9b3a0ce80d51ee79991c13d979d01ba8c6ecea8c3f04c5b991e5c5276c2b5f9f88b5f39d47c44d30ad6de5fbbb518a76d4405bcc47615eab23fc9918773b32
+AUX 264-3.2.0.patch 2949 SHA256 4105952362a9bf8a054df1c23f2562e86f79b3bef70696422548c01db248c1b0 SHA512 d3b9f2ad688c7ad0922f9b036f3b2fb0e7209cf4814e34431dccb72f11d239ac8bf9cf16f7e6e8ddfbcf839ad043bbc45233fe488564665bb782b8e296e6facf WHIRLPOOL 4041bfbbb472c6eb7372ca8883ee037c0facc0d1b1c85fab3adb01783291e5c1f2b1685a9cfa41e4433d4255e495af735e0d8af0726c0bc31d15564c96abb0bc
+AUX 264-3.8.0.patch 1243 SHA256 75bca77a37dec85288c28805799690cbd39ef4dc87da9c7ee1486d7872a1e669 SHA512 4c6e437e7198cc24c344116410f175a460e81f5ec33e165dca80851c833925c722d0d0147b2df50aa5101afa16b9145538bf889a6d788b1265419bef04d40d49 WHIRLPOOL 0a4caf5729d1dfb05a0cc84176bc904383aaf184007fdc8fd953d9ba0c4234dc4fc49a99f5c1e1c1431dadff2a3d3bc8ce925a528306fa9ca5459e93321fd678
+AUX 264-apic.patch 302 SHA256 60e7df881281fedcabe9ea4427b324b5e1142a1a2b6ab5236ac0843bd1051048 SHA512 003240043e5875d8c6425c146e708eb3c3d8be7fa48a2ac42b3071f00dafdbd51f7796d6f884298b135adccaf8a3eac32fd82b34a436a724da125dac5f6261d7 WHIRLPOOL 4707d0ddd532d5ec27ee2ba3d0fb25c1972bbc9f958b4b89f2f5cceffdf955ba88cd1be0cde046aa5fa688d52faeab5ccf3f03bbccb3e9b088abc37ad579e8e0
+AUX 264-d-make-root.patch 519 SHA256 aad9819961203f4d2e65532567b4f5b485bb583f1a2f322e84919d95505ed0f1 SHA512 de192adfe94493d3e8ac405df035f9da44f9421093f2a2fc322dcf552b9ca3bea0582b1a23520ea1e31d13b8fabcabbe83ae4400172aae520fb2732f39a643da WHIRLPOOL 16f71333ac286a2ad1249bbc2ecabc07f849beaabf525d6d5d6abcd7d7fbb5e6533c723c4607145eb6d0f2463c72e3ae49f6004c942b25e593cb7da4c2601dd1
+AUX 264-jobserver.patch 2899 SHA256 131c606fdafe80f10151c667796270101f3b06ee70a1b872862e15bcfb4ee46d SHA512 cb744aaea00b6eb6970987dd62b71ee9194d8c9ee8941447f0f562af14ba342eee241a3b131de8ad96a8481a5cdf6d88149fd4d409d938ddfeb44b520c5bd790 WHIRLPOOL d7050bbb7160704a9f922a17e2aae14050f4618e9b469bcbb51ff0859be78f15374777b3e1504c87b5298b41ec8191dfa688a183a4d4c110bab8178d704562d1
+AUX 264-makefile-include.patch 2501 SHA256 208121855fe18ecb279ff40f2833463559363461c2170d32c17040211a01f169 SHA512 c498c025c7eb025f6554cee683242dd73e4a284e4b28c95b75339f4f4a912a156acc1845881fbd78bf399c2092af7413f5d6c4782cd066527ea275518b411c1d WHIRLPOOL e03a6d7139ab7b309e0ca1527cb8b52a8f84f5f5d997a510305d2a6ccdd39f33b18c7276df8ac78d92d2a17a66236f582baaa5e374069d3912090544908a0338
+AUX 264-makefile-kernel-dir.patch 2201 SHA256 780b79fcc6e8e836632f4542ac6c3da2d475b3ad1e2e88e1c51aea849a5172c7 SHA512 bb67ad9ec9152fb0192ba978566a6777bbf5d99ed8ccc6762c5af96615368d497d4183e42fbe78d8359f3d59749929742131e83e77edf649878767f0007babbf WHIRLPOOL 9932ed3ac03ead8507c348512a7a554dad28c2133347ce83dad4bc528228944559950258cb0f838bd8510d637988c2aba1105fa8fbea3a7852ed0df7af0aae49
+AUX 264-netdevice.patch 833 SHA256 8f17ce379abda45a8f94e1dcd6e43367273f97f76edd41f9941beb3b1730a751 SHA512 b4ec7c1694968a1843f10e8bfe0dbfdc99bd3b5fc1391456d91a3648b848b82df681a0748d967afa19e728c4d19b79b6a3cb9fd3e15a52a5cab048a6ac9b06a9 WHIRLPOOL b0cabe2ec1b8ca52d427c02593d6057c98d4ed00c578d006de65460138c37a5be76a7938d85f5a35eb6f49ee5e34065ce62b60a51b0ccf021639a59b27aeac8a
+AUX 264-newline.patch 448 SHA256 30a38b329ea2209c75fc20326ae6d5aef93ad6b17efba53a22ac49a7ec009727 SHA512 8aa405e985cd9faa5719210751ce9fecd198a174043a0c5976738a679dec82911bacbedb3c7af2e6f9334e5c63ef1747cdf7e3efcff83cfa1894f4af63da7d16 WHIRLPOOL 51227f28b7ce5343654f8c350be29839791a1f677d7358b239e1cfe410fb6a72351700f6bd63a3f38802d5e361a872b9356f376f65d34ad3bb5fc8ad05b763f7
+AUX 264-putname.patch 394 SHA256 b8103d3c72c24696e974e49dcdcdf2d5a2b2c2fdd5f6ca050842b840e906ba77 SHA512 86a0a0ec3ff225940190056e85d498fd7eb260bcc52882fea8921398f572bc46f56c3f2941d3f3d1587a07bc72c8885cbddacf632d2b5fed7d8c9d284399d6d8 WHIRLPOOL e1e8afcafe00131fd6d90b61e5d911da69d7c26b7fd19be085eb5cfd23c2ab19784ae5ddf18928f9cc4a178d87c6d51e8de27dfab8507e2d57fc18868fde9f45
+AUX 271-3.10.0.patch 23418 SHA256 346d1ca7705dd5f791e0d69cdbb346ebd31f2f4f11f3989c23d1a89e11e1b91b SHA512 878678f951b05137deb1656ccd7fd3185887f02649f2a223ef60ccecdedc7aeda6ca08ddd108e379734b5e04ef11d326b20e45c069c53cc52b7a6869b8db6410 WHIRLPOOL 196515870addefcd6857dd3e44a04b8a6c0da39185e7cea7826f1498f5a4c17997ebe43aada7f22a1c3fa94302576ced2a7ed36e2452de00711256c83f7fa41e
+AUX 271-apic.patch 302 SHA256 60e7df881281fedcabe9ea4427b324b5e1142a1a2b6ab5236ac0843bd1051048 SHA512 003240043e5875d8c6425c146e708eb3c3d8be7fa48a2ac42b3071f00dafdbd51f7796d6f884298b135adccaf8a3eac32fd82b34a436a724da125dac5f6261d7 WHIRLPOOL 4707d0ddd532d5ec27ee2ba3d0fb25c1972bbc9f958b4b89f2f5cceffdf955ba88cd1be0cde046aa5fa688d52faeab5ccf3f03bbccb3e9b088abc37ad579e8e0
+AUX 271-makefile-include.patch 2501 SHA256 208121855fe18ecb279ff40f2833463559363461c2170d32c17040211a01f169 SHA512 c498c025c7eb025f6554cee683242dd73e4a284e4b28c95b75339f4f4a912a156acc1845881fbd78bf399c2092af7413f5d6c4782cd066527ea275518b411c1d WHIRLPOOL e03a6d7139ab7b309e0ca1527cb8b52a8f84f5f5d997a510305d2a6ccdd39f33b18c7276df8ac78d92d2a17a66236f582baaa5e374069d3912090544908a0338
+AUX 271-makefile-kernel-dir.patch 2153 SHA256 d76b1028d21b804836e36478d243cd7914435a34f3fe014058e0a9cc7a020653 SHA512 f18339dc8ac4c864b0c2fb234ad2db8f4638a5cd28e8fd11b5593c82107925b41b42e0d0acac52232a373780d79a3e397f70886534cdf889055e86cfda718f62 WHIRLPOOL 70c869bf4efab6843856addd0c5f5a295ed2fe38f9fc2a8ab2ca55523cd39cb92018d6bd0dac75658fa0f5260962c98f0bbd001593f3f11c2d204c693061c5b6
+AUX 271-netdevice.patch 833 SHA256 8f17ce379abda45a8f94e1dcd6e43367273f97f76edd41f9941beb3b1730a751 SHA512 b4ec7c1694968a1843f10e8bfe0dbfdc99bd3b5fc1391456d91a3648b848b82df681a0748d967afa19e728c4d19b79b6a3cb9fd3e15a52a5cab048a6ac9b06a9 WHIRLPOOL b0cabe2ec1b8ca52d427c02593d6057c98d4ed00c578d006de65460138c37a5be76a7938d85f5a35eb6f49ee5e34065ce62b60a51b0ccf021639a59b27aeac8a
+AUX 271-putname.patch 394 SHA256 b8103d3c72c24696e974e49dcdcdf2d5a2b2c2fdd5f6ca050842b840e906ba77 SHA512 86a0a0ec3ff225940190056e85d498fd7eb260bcc52882fea8921398f572bc46f56c3f2941d3f3d1587a07bc72c8885cbddacf632d2b5fed7d8c9d284399d6d8 WHIRLPOOL e1e8afcafe00131fd6d90b61e5d911da69d7c26b7fd19be085eb5cfd23c2ab19784ae5ddf18928f9cc4a178d87c6d51e8de27dfab8507e2d57fc18868fde9f45
+AUX 271-vmmon.patch 1581 SHA256 a4e89766232d0fc0456bb026978dedca17fcc62e247c8d65ae747b537e62fd13 SHA512 10aca60b959647c058fa69f851892a0245acad971028876da8d0a0e6002d0e8f6f2677fd0d9b140ee8a1a68cf2cfa3f8937a992f8b0e7e163aa6bcc17b75c979 WHIRLPOOL 28d1a34e89c7a995dbde48d87d8942c6f58e61f4a24189a1463c148c843fdf16cea7df497993eb6fb8d8de228f07ae8a44233bb63e42b54ab1f762e7e24889ba
+AUX 279-apic.patch 302 SHA256 60e7df881281fedcabe9ea4427b324b5e1142a1a2b6ab5236ac0843bd1051048 SHA512 003240043e5875d8c6425c146e708eb3c3d8be7fa48a2ac42b3071f00dafdbd51f7796d6f884298b135adccaf8a3eac32fd82b34a436a724da125dac5f6261d7 WHIRLPOOL 4707d0ddd532d5ec27ee2ba3d0fb25c1972bbc9f958b4b89f2f5cceffdf955ba88cd1be0cde046aa5fa688d52faeab5ccf3f03bbccb3e9b088abc37ad579e8e0
+AUX 279-hardened.patch 3334 SHA256 198c182b626aeeb0c6e6558e6982b6d9cd2f11bf03515f72972842f5c773e52c SHA512 eb6829742c44677c6d475894a2a996a87feb1c2ab9afda6a045333fc5befb1c2551ea17ec33e665542d322fb43195b6cfcd576665a73cfc82d66a98579521cf3 WHIRLPOOL d8fde574d68978a4850f06469e5a6dfe21acd0a68b744f3f37ffeb98d5f8786eedeb9fb435e1b141044a23fb142ae44879ee09a45229f2be1c84ef744c15cb7a
+AUX 279-makefile-include.patch 2501 SHA256 208121855fe18ecb279ff40f2833463559363461c2170d32c17040211a01f169 SHA512 c498c025c7eb025f6554cee683242dd73e4a284e4b28c95b75339f4f4a912a156acc1845881fbd78bf399c2092af7413f5d6c4782cd066527ea275518b411c1d WHIRLPOOL e03a6d7139ab7b309e0ca1527cb8b52a8f84f5f5d997a510305d2a6ccdd39f33b18c7276df8ac78d92d2a17a66236f582baaa5e374069d3912090544908a0338
+AUX 279-makefile-kernel-dir.patch 2153 SHA256 d76b1028d21b804836e36478d243cd7914435a34f3fe014058e0a9cc7a020653 SHA512 f18339dc8ac4c864b0c2fb234ad2db8f4638a5cd28e8fd11b5593c82107925b41b42e0d0acac52232a373780d79a3e397f70886534cdf889055e86cfda718f62 WHIRLPOOL 70c869bf4efab6843856addd0c5f5a295ed2fe38f9fc2a8ab2ca55523cd39cb92018d6bd0dac75658fa0f5260962c98f0bbd001593f3f11c2d204c693061c5b6
+AUX 279-netdevice.patch 833 SHA256 8f17ce379abda45a8f94e1dcd6e43367273f97f76edd41f9941beb3b1730a751 SHA512 b4ec7c1694968a1843f10e8bfe0dbfdc99bd3b5fc1391456d91a3648b848b82df681a0748d967afa19e728c4d19b79b6a3cb9fd3e15a52a5cab048a6ac9b06a9 WHIRLPOOL b0cabe2ec1b8ca52d427c02593d6057c98d4ed00c578d006de65460138c37a5be76a7938d85f5a35eb6f49ee5e34065ce62b60a51b0ccf021639a59b27aeac8a
+AUX 279-putname.patch 394 SHA256 b8103d3c72c24696e974e49dcdcdf2d5a2b2c2fdd5f6ca050842b840e906ba77 SHA512 86a0a0ec3ff225940190056e85d498fd7eb260bcc52882fea8921398f572bc46f56c3f2941d3f3d1587a07bc72c8885cbddacf632d2b5fed7d8c9d284399d6d8 WHIRLPOOL e1e8afcafe00131fd6d90b61e5d911da69d7c26b7fd19be085eb5cfd23c2ab19784ae5ddf18928f9cc4a178d87c6d51e8de27dfab8507e2d57fc18868fde9f45
+AUX 279-vmblock.patch 1041 SHA256 217d27619ac782711686cffee44fbc4bbb40eb0657f335357ad1b0d064f30a35 SHA512 e8e565b677110090cb5bdb7c18d3e97c31049d846b82ee0406aa27dbfa9af8afc39512f1314d49edd6108ec576f3cbc565921de8dfdaaefe2822029ef98c303c WHIRLPOOL 769d0cffcb186d6110de049db963e20e049ef11d92b872c1a6ecfe262acad6c17f456376d219ce01e22839ddcb6a21a2d3e995d797f4c962a0838318dc6f56f9
+AUX hardened.patch 5052 SHA256 191cf892bfb9a6288d110191de824bf6243bc6f48f1e62ab49f3582c7ade5af6 SHA512 52dcca8d9f689f0a0d0ca369c0c7ce0d177de3529d2d1325330eb5a9e940a55e8930bbbe7374793bdf29cbdefac9727e9eb21d00f81ad4f5eddba3a51597b7a5 WHIRLPOOL 539731bc36f3e292403f55d74c353deeb28baa312f726b36d2a6060adf3483dfa2ed011baf93eff941fa754ef62f4d6da86868c40550ee2292c4a711e061bde0
+EBUILD vmware-modules-271.3.ebuild 2178 SHA256 82ce0ec185be017baec7cc7a76019a6a076730cdbac66a966d4c4b72ecd8c909 SHA512 99c3fb09ba095ee02bd32ad4f31ef51a57db7a6afc5699c6fe1da12efe478667072353eb9aab178feaf8dee993059b906efbbfd1ce9e423d12ae1806fc154bbf WHIRLPOOL cc3f663646f2587c580369643f5240367b34be7cf28399a5b155341b2917e9c324580b8bab902208ee54719d7e49f7dfb7dcbd984da76737ca8c255d4cc2bc78
+EBUILD vmware-modules-279.1-r1.ebuild 2682 SHA256 d696123ae38eed5a717c06d007dd71b6fd0e03e9da2e62ecc88e38a5bc874c05 SHA512 6814a7f149bc136eb8ae1d9933ab803455a72929b5aa19860c153ca1c12059bce11b09e209f4597fdcce5d7a28ca1747c47d716e83c6e0606ed52a50746603e9 WHIRLPOOL f7debc1a7911e995044ea25873cdc7a7d481e70ee2383750aa3d9fa1c531dd68f6402c56a70db015b72a0bfd3f17e4f725e69318c4d063afecd4d772fd9b714d
+EBUILD vmware-modules-279.2.ebuild 2679 SHA256 84aac19af9b1a989b2a12aa2938ff904b632cb05927e5b65c4fc78938e2203e2 SHA512 747bf0b079cb4e53d19678b24e116bfa9bd6193c0d1228ee12071e38fe026ad88e7bb5ccd6ab153152c3ce9987bffdd711af90efd87966fcb6a93843eab077d0 WHIRLPOOL 77b3b27bac491b0f1dbad52389d45ded4cf31642f5b8f0170ade9c67503ebd9fe83e4b13aa5257d6677fb79370e2bb9b6eb8f351f00d815ae06f63cf7dd3d68c
+MISC ChangeLog 25681 SHA256 d7c63ffa3f81f507a2ac7c9888ee423fc27c559a9c37f6911efec74e255238f0 SHA512 567164ed84578c52e4c1327cb8e64ff3ef54ad9534d02cd77e0ea7c10e87fdf3f61614f7d7fb6637504bf3dd6afed94bb549bc69808eff727efafef7b636e3a1 WHIRLPOOL 86444467582825ec284d6694df2b5e474439efc6129ec6631973479f5e232abf2ebabb1e090fcf7cbd798ca76b17379f0dd686b1d33f7f7535264c5732fcefe8
+MISC metadata.xml 626 SHA256 df85fe94586e898742dda5a30bf95be1c66bded72b9b679b4bda9fb3113bb94a SHA512 5c16977fa1e95f123891324b24d20161bfbfa5f4a38371374290e635bba33cbbc933761f44b826503c37e4bb2295c4026356eddc6aef091c07dc17f773f538ec WHIRLPOOL f83d377fa941fbcfe25dfc83ad276f55782c1e9bdff6dc7ae147be667d7129ae55dae6c19c18544dc27123977d3aa6273f185b4cced70ab841e87a04a4fcae82
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.22 (GNU/Linux)
+
+iQIcBAEBCAAGBQJTUkyOAAoJEJS/30SErRQvphIP/Alu3XG6Pag47/bqei/W0R65
+5ARa1z4Y1IPZMyEmVg57QfxinSXPn8DS7w0zkDh40sZXf1YF8BxojPsXxC5W7Fdx
+yLkEREp51BuElvKLlvF84AGEwhrwPCcDuPc1FVZBDO6BAJaDY3aEORMOvGv8vTPu
+xTQ91GAAXVO1TYUT9UtNUazqjefZcirz2fLWlwgNCNpJp27vz06f3eHdU1RofUwk
+G2h4+Ono3kUPvvT7otzYEZnVGHNhH9ifCgwfvA0K0vo9GdSGK3uzT3rvRmhH9jLM
+agn5srcwuSOS6bihmpiZIcn1Y2Lu+UM2mkwMa9LKlTx3YdDUzzRYv18ySPKdjaHY
+yfiES+oDu/vMW4tBvgnHWeYL8iO+EFgZfzfJjOL3Tqu4VN6RTKzji+OgF/OPV8c6
+43oIhTHhPw25r78B+8Lj48ZzEe+dfjexegB1ov4mjOxW20volaZ1bqMv9f3Y/898
+4PaAJDWt0vFZex0+7zf8dswoRW4SKrVkDbSHVKjBPQWFglrdfa12rx7KHTw7jvht
+57nGF+Q9m8eaarQokRWHk6YS7phGu7dgYwk1LGXQrbnJ51xfX8iwdg7jhHYPaHqL
+WdYbFTRdmNb68/7GCFyGWcY+Nkf3p1gvk1GHPwCTb6wa8ixBF1UxUuKhgiDvFFNm
+C/v4y6/tFCe1aJV0fZJt
+=baV5
+-----END PGP SIGNATURE-----
diff --git a/app-emulation/vmware-modules/files/264-3.10.0.patch b/app-emulation/vmware-modules/files/264-3.10.0.patch
new file mode 100644
index 0000000..cdff400
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-3.10.0.patch
@@ -0,0 +1,828 @@
+diff --git a/vmblock-only/linux/control.c b/vmblock-only/linux/control.c
+index 2dd83fe..d945749 100644
+--- a/vmblock-only/linux/control.c
++++ b/vmblock-only/linux/control.c
+@@ -208,9 +208,10 @@ SetupProcDevice(void)
+ VMBlockSetProcEntryOwner(controlProcMountpoint);
+
+ /* Create /proc/fs/vmblock/dev */
+- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
+- VMBLOCK_CONTROL_MODE,
+- controlProcDirEntry);
++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME,
++ VMBLOCK_CONTROL_MODE,
++ controlProcDirEntry,
++ &ControlFileOps);
+ if (!controlProcEntry) {
+ Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
+ remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
+@@ -218,7 +219,6 @@ SetupProcDevice(void)
+ return -EINVAL;
+ }
+
+- controlProcEntry->proc_fops = &ControlFileOps;
+ return 0;
+ }
+
+diff --git a/vmnet-only/bridge.c b/vmnet-only/bridge.c
+index 10eaa41..6fdc19e 100644
+--- a/vmnet-only/bridge.c
++++ b/vmnet-only/bridge.c
+@@ -105,8 +105,6 @@ static Bool VNetBridgeCycleDetect(VNetJack *this, int generation);
+ static Bool VNetBridgeIsDeviceWireless(struct net_device *dev);
+ static void VNetBridgePortsChanged(VNetJack *this);
+ static int VNetBridgeIsBridged(VNetJack *this);
+-static int VNetBridgeProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+ static void VNetBridgeComputeHeaderPosIPv6(struct sk_buff *skb);
+ static PacketStatus VNetCallSMACFunc(struct SMACState *state,
+ struct sk_buff **skb, void *startOfData,
+@@ -225,6 +223,53 @@ VNetBridgeDevCompatible(VNetBridge *bridge, // IN: Bridge
+ /*
+ *----------------------------------------------------------------------
+ *
++ * VNetBridgeProcShow --
++ *
++ * Callback for read operation on this bridge entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetBridgeProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data - pointer to bridge
++{
++ VNetBridge *bridge = (VNetBridge*)data;
++
++ if (!bridge) {
++ return 0;
++ }
++
++ VNetPrintPort(&bridge->port, seqf);
++
++ seq_printf(seqf, "dev %s ", bridge->name);
++
++ seq_printf(seqf, "\n");
++
++ return 0;
++}
++
++static int proc_bridge_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetBridgeProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_bridge_fops = {
++ .open = proc_bridge_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
++/*
++ *----------------------------------------------------------------------
++ *
+ * VNetBridge_Create --
+ *
+ * Creates a bridge. Allocates struct, allocates internal device,
+@@ -319,17 +364,14 @@ VNetBridge_Create(const char *devName, // IN: name of device (e.g., "eth0")
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(bridge->port.jack.name, S_IFREG,
+- &bridge->port.jack.procEntry);
++ retval = VNetProc_MakeEntryOps(bridge->port.jack.name, S_IFREG,
++ &bridge->port.jack.procEntry, &proc_bridge_fops, bridge);
+ if (retval) {
+ if (retval == -ENXIO) {
+ bridge->port.jack.procEntry = NULL;
+ } else {
+ goto out;
+ }
+- } else {
+- bridge->port.jack.procEntry->read_proc = VNetBridgeProcRead;
+- bridge->port.jack.procEntry->data = bridge;
+ }
+
+ /*
+@@ -1719,45 +1761,3 @@ VNetBridgeReceiveFromDev(struct sk_buff *skb, // IN: packet to receive
+ return 0;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetBridgeProcRead --
+- *
+- * Callback for read operation on this bridge entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetBridgeProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: (unused) offset of read into the file
+- int count, // IN: (unused) maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data - pointer to bridge
+-{
+- VNetBridge *bridge = (VNetBridge*)data;
+- int len = 0;
+-
+- if (!bridge) {
+- return len;
+- }
+-
+- len += VNetPrintPort(&bridge->port, page+len);
+-
+- len += sprintf(page+len, "dev %s ", bridge->name);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c
+index b12b982..395f5ce 100644
+--- a/vmnet-only/driver.c
++++ b/vmnet-only/driver.c
+@@ -1775,21 +1775,17 @@ VNetSetMACUnique(VNetPort *port, // IN:
+ *----------------------------------------------------------------------
+ */
+
+-int
++void
+ VNetPrintJack(const VNetJack *jack, // IN: jack
+- char *buf) // OUT: info about jack
++ struct seq_file *seqf) // OUT: info about jack
+ {
+- int len = 0;
+-
+ read_lock(&vnetPeerLock);
+ if (!jack->peer) {
+- len += sprintf(buf+len, "connected not ");
++ seq_printf(seqf, "connected not ");
+ } else {
+- len += sprintf(buf+len, "connected %s ", jack->peer->name);
++ seq_printf(seqf, "connected %s ", jack->peer->name);
+ }
+ read_unlock(&vnetPeerLock);
+-
+- return len;
+ }
+
+
+@@ -1809,52 +1805,48 @@ VNetPrintJack(const VNetJack *jack, // IN: jack
+ *----------------------------------------------------------------------
+ */
+
+-int
++void
+ VNetPrintPort(const VNetPort *port, // IN: port
+- char *buf) // OUT: info about port
++ struct seq_file *seqf) // OUT: info about port
+ {
+- int len = 0;
++ VNetPrintJack(&port->jack, seqf);
+
+- len += VNetPrintJack(&port->jack, buf+len);
+-
+- len += sprintf(buf+len, "mac %02x:%02x:%02x:%02x:%02x:%02x ",
++ seq_printf(seqf, "mac %02x:%02x:%02x:%02x:%02x:%02x ",
+ port->paddr[0], port->paddr[1], port->paddr[2],
+ port->paddr[3], port->paddr[4], port->paddr[5]);
+
+- len += sprintf(buf+len, "ladrf %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",
++ seq_printf(seqf, "ladrf %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",
+ port->ladrf[0], port->ladrf[1], port->ladrf[2],
+ port->ladrf[3], port->ladrf[4], port->ladrf[5],
+ port->ladrf[6], port->ladrf[7]);
+
+- len += sprintf(buf+len, "flags IFF_RUNNING");
++ seq_printf(seqf, "flags IFF_RUNNING");
+
+ if (port->flags & IFF_UP) {
+- len += sprintf(buf+len, ",IFF_UP");
++ seq_printf(seqf, ",IFF_UP");
+ }
+
+ if (port->flags & IFF_BROADCAST) {
+- len += sprintf(buf+len, ",IFF_BROADCAST");
++ seq_printf(seqf, ",IFF_BROADCAST");
+ }
+
+ if (port->flags & IFF_DEBUG) {
+- len += sprintf(buf+len, ",IFF_DEBUG");
++ seq_printf(seqf, ",IFF_DEBUG");
+ }
+
+ if (port->flags & IFF_PROMISC) {
+- len += sprintf(buf+len, ",IFF_PROMISC");
++ seq_printf(seqf, ",IFF_PROMISC");
+ }
+
+ if (port->flags & IFF_MULTICAST) {
+- len += sprintf(buf+len, ",IFF_MULTICAST");
++ seq_printf(seqf, ",IFF_MULTICAST");
+ }
+
+ if (port->flags & IFF_ALLMULTI) {
+- len += sprintf(buf+len, ",IFF_ALLMULTI");
++ seq_printf(seqf, ",IFF_ALLMULTI");
+ }
+
+- len += sprintf(buf+len, " ");
+-
+- return len;
++ seq_printf(seqf, " ");
+ }
+
+
+diff --git a/vmnet-only/hub.c b/vmnet-only/hub.c
+index 47f04ac..8aafb95 100644
+--- a/vmnet-only/hub.c
++++ b/vmnet-only/hub.c
+@@ -25,6 +25,7 @@
+ #include <linux/sched.h>
+ #include <linux/slab.h>
+ #include <linux/poll.h>
++#include <linux/seq_file.h>
+
+ #include <linux/netdevice.h>
+ #include <linux/etherdevice.h>
+@@ -71,8 +72,6 @@ static void VNetHubReceive(VNetJack *this, struct sk_buff *skb);
+ static Bool VNetHubCycleDetect(VNetJack *this, int generation);
+ static void VNetHubPortsChanged(VNetJack *this);
+ static int VNetHubIsBridged(VNetJack *this);
+-static int VNetHubProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+
+ static VNetHub *vnetHub;
+ static DEFINE_SPINLOCK(vnetHubLock);
+@@ -241,6 +240,53 @@ VNetHub_AllocPvn(uint8 id[]) // IN: the PVN ID to alloc on
+ /*
+ *----------------------------------------------------------------------
+ *
++ * VNetHubProcShow --
++ *
++ * Callback for read operation on hub entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetHubProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data - not used
++{
++ VNetJack *jack = (VNetJack*)data;
++ VNetHub *hub;
++
++ if (!jack || !jack->private) {
++ return 0;
++ }
++ hub = (VNetHub*)jack->private;
++
++ VNetPrintJack(jack, seqf);
++
++ seq_printf(seqf, "tx %u ", hub->stats[jack->index].tx);
++ seq_printf(seqf, "\n");
++ return 0;
++}
++
++static int proc_hub_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetHubProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_hub_fops = {
++ .open = proc_hub_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
++/*
++ *----------------------------------------------------------------------
++ *
+ * VNetHubAlloc --
+ *
+ * Allocate a jack on this hub.
+@@ -354,7 +400,7 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE for PVN, FALSE for vnet
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(jack->name, S_IFREG, &jack->procEntry);
++ retval = VNetProc_MakeEntryOps(jack->name, S_IFREG, &jack->procEntry, &proc_hub_fops, jack);
+ if (retval) {
+ if (retval == -ENXIO) {
+ jack->procEntry = NULL;
+@@ -362,9 +408,6 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE for PVN, FALSE for vnet
+ hub->used[i] = FALSE;
+ return NULL;
+ }
+- } else {
+- jack->procEntry->read_proc = VNetHubProcRead;
+- jack->procEntry->data = jack;
+ }
+
+ /*
+@@ -686,46 +729,3 @@ VNetHubIsBridged(VNetJack *this)
+ }
+
+
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetHubProcRead --
+- *
+- * Callback for read operation on hub entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetHubProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: offset of read into the file
+- int count, // IN: maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data - not used
+-{
+- VNetJack *jack = (VNetJack*)data;
+- VNetHub *hub;
+- int len = 0;
+-
+- if (!jack || !jack->private) {
+- return len;
+- }
+- hub = (VNetHub*)jack->private;
+-
+- len += VNetPrintJack(jack, page+len);
+-
+- len += sprintf(page+len, "tx %u ", hub->stats[jack->index].tx);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+diff --git a/vmnet-only/netif.c b/vmnet-only/netif.c
+index 65f3cb9..b20f56a 100644
+--- a/vmnet-only/netif.c
++++ b/vmnet-only/netif.c
+@@ -63,8 +63,6 @@ static int VNetNetifStartXmit(struct sk_buff *skb, struct net_device *dev);
+ static struct net_device_stats *VNetNetifGetStats(struct net_device *dev);
+ static int VNetNetifSetMAC(struct net_device *dev, void *addr);
+ static void VNetNetifSetMulticast(struct net_device *dev);
+-static int VNetNetIfProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+
+ /*
+ *----------------------------------------------------------------------
+@@ -117,6 +115,53 @@ VNetNetIfSetup(struct net_device *dev) // IN:
+
+ }
+
++/*
++ *----------------------------------------------------------------------
++ *
++ * VNetNetIfProcShow --
++ *
++ * Callback for read operation on this netif entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetNetIfProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data
++{
++ VNetNetIF *netIf = data;
++
++ if (!netIf) {
++ return 0;
++ }
++
++ VNetPrintPort(&netIf->port, seqf);
++
++ seq_printf(seqf, "dev %s ", netIf->dev->name);
++
++ seq_printf(seqf, "\n");
++
++ return 0;
++}
++
++static int proc_netif_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetNetIfProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_netif_fops = {
++ .open = proc_netif_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
+
+ /*
+ *----------------------------------------------------------------------
+@@ -201,9 +246,9 @@ VNetNetIf_Create(char *devName, // IN:
+ /*
+ * Make proc entry for this jack.
+ */
+-
+- retval = VNetProc_MakeEntry(netIf->port.jack.name, S_IFREG,
+- &netIf->port.jack.procEntry);
++
++ retval = VNetProc_MakeEntryOps(netIf->port.jack.name, S_IFREG,
++ &netIf->port.jack.procEntry, &proc_netif_fops, netIf);
+ if (retval) {
+ if (retval == -ENXIO) {
+ netIf->port.jack.procEntry = NULL;
+@@ -211,9 +256,6 @@ VNetNetIf_Create(char *devName, // IN:
+ netIf->port.jack.procEntry = NULL;
+ goto out;
+ }
+- } else {
+- netIf->port.jack.procEntry->read_proc = VNetNetIfProcRead;
+- netIf->port.jack.procEntry->data = netIf;
+ }
+
+ /*
+@@ -591,45 +633,3 @@ VNetNetifGetStats(struct net_device *dev) // IN:
+ return &netIf->stats;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetNetIfProcRead --
+- *
+- * Callback for read operation on this netif entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetNetIfProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: (unused) offset of read into the file
+- int count, // IN: (unused) maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data
+-{
+- VNetNetIF *netIf = (VNetNetIF*)data;
+- int len = 0;
+-
+- if (!netIf) {
+- return len;
+- }
+-
+- len += VNetPrintPort(&netIf->port, page+len);
+-
+- len += sprintf(page+len, "dev %s ", netIf->devName);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+diff --git a/vmnet-only/procfs.c b/vmnet-only/procfs.c
+index ca42ee2..fd7921e 100644
+--- a/vmnet-only/procfs.c
++++ b/vmnet-only/procfs.c
+@@ -45,10 +45,6 @@
+
+ #if defined(CONFIG_PROC_FS)
+
+-static int VNetProcMakeEntryInt(VNetProcEntry *parent, char *name, int mode,
+- VNetProcEntry **ret);
+-static void VNetProcRemoveEntryInt(VNetProcEntry *node, VNetProcEntry *parent);
+-
+ static VNetProcEntry *base = NULL;
+
+
+@@ -71,7 +67,12 @@ static VNetProcEntry *base = NULL;
+ int
+ VNetProc_Init(void)
+ {
+- return VNetProcMakeEntryInt(NULL, "vmnet", S_IFDIR, &base);
++ base = proc_mkdir("vmnet", NULL);
++ if(IS_ERR(base)) {
++ base = NULL;
++ return PTR_ERR(base);
++ }
++ return 0;
+ }
+
+
+@@ -94,14 +95,14 @@ VNetProc_Init(void)
+ void
+ VNetProc_Cleanup(void)
+ {
+- VNetProcRemoveEntryInt(base, NULL);
++ proc_remove(base);
+ base = NULL;
+ }
+
+ /*
+ *----------------------------------------------------------------------
+ *
+- * VNetProcMakeEntryInt --
++ * VNetProc_MakeEntryOps --
+ *
+ * Make an entry in the vnets proc file system.
+ *
+@@ -116,72 +117,21 @@ VNetProc_Cleanup(void)
+ */
+
+ int
+-VNetProcMakeEntryInt(VNetProcEntry *parent, // IN:
+- char *name, // IN:
++VNetProc_MakeEntryOps(char *name, // IN:
+ int mode, // IN:
+- VNetProcEntry **ret) // OUT:
++ VNetProcEntry **ret,
++ const struct file_operations *fops,
++ void *data
++ ) // OUT:
+ {
+ VNetProcEntry *ent;
+- ent = create_proc_entry(name, mode, parent);
++ ent = proc_create_data(name, mode, base, fops, data);
+ *ret = ent;
+ if (!ent)
+ return -ENOMEM;
+ return 0;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProcRemoveEntryInt --
+- *
+- * Remove a previously installed proc entry.
+- *
+- * Results:
+- * None.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-void
+-VNetProcRemoveEntryInt(VNetProcEntry *node,
+- VNetProcEntry *parent)
+-{
+- if (node) {
+- remove_proc_entry(node->name, parent);
+- }
+-}
+-
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProc_MakeEntry --
+- *
+- * Make an entry in the vnets proc file system.
+- *
+- * Results:
+- * errno. If errno is 0 and ret is non NULL then ret is filled
+- * in with the resulting proc entry.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetProc_MakeEntry(char *name, // IN:
+- int mode, // IN:
+- VNetProcEntry **ret) // OUT:
+-{
+- return VNetProcMakeEntryInt(base, name, mode, ret);
+-}
+-
+-
+ /*
+ *----------------------------------------------------------------------
+ *
+@@ -201,7 +151,8 @@ VNetProc_MakeEntry(char *name, // IN:
+ void
+ VNetProc_RemoveEntry(VNetProcEntry *node)
+ {
+- VNetProcRemoveEntryInt(node, base);
++ if(node)
++ proc_remove(node);
+ }
+
+
+@@ -253,31 +204,6 @@ VNetProc_Cleanup(void)
+ }
+
+
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProc_MakeEntry --
+- *
+- * Make an entry in the vnets proc file system.
+- *
+- * Results:
+- * errno. If errno is 0 and ret is non NULL then ret is filled
+- * in with the resulting proc entry.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetProc_MakeEntry(char *name,
+- int mode,
+- VNetProcEntry **ret)
+-{
+- return -ENXIO;
+-}
+-
+
+ /*
+ *----------------------------------------------------------------------
+diff --git a/vmnet-only/userif.c b/vmnet-only/userif.c
+index 17b49e0..b01004a 100644
+--- a/vmnet-only/userif.c
++++ b/vmnet-only/userif.c
+@@ -387,7 +387,7 @@ VNetUserIfReceive(VNetJack *this, // IN
+ /*
+ *----------------------------------------------------------------------
+ *
+- * VNetUserIfProcRead --
++ * VNetUserIfProcShow --
+ *
+ * Callback for read operation on this userif entry in vnets proc fs.
+ *
+@@ -401,30 +401,23 @@ VNetUserIfReceive(VNetJack *this, // IN
+ */
+
+ static int
+-VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into
+- // page
+- off_t off, // IN: offset of read into the file
+- int count, // IN: maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to
+- // read
++VNetUserIfProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
+ void *data) // IN: client data - not used
+ {
+ VNetUserIF *userIf = (VNetUserIF*)data;
+- int len = 0;
+
+ if (!userIf) {
+- return len;
++ return 0;
+ }
+
+- len += VNetPrintPort(&userIf->port, page+len);
++ VNetPrintPort(&userIf->port, seqf);
+
+- len += sprintf(page+len, "read %u written %u queued %u ",
++ seq_printf(seqf, "read %u written %u queued %u ",
+ userIf->stats.read,
+ userIf->stats.written,
+ userIf->stats.queued);
+
+- len += sprintf(page+len,
++ seq_printf(seqf,
+ "dropped.down %u dropped.mismatch %u "
+ "dropped.overflow %u dropped.largePacket %u",
+ userIf->stats.droppedDown,
+@@ -432,13 +425,23 @@ VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+ userIf->stats.droppedOverflow,
+ userIf->stats.droppedLargePacket);
+
+- len += sprintf(page+len, "\n");
++ seq_printf(seqf, "\n");
+
+- *start = 0;
+- *eof = 1;
+- return len;
++ return 0;
++}
++
++static int proc_userif_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetUserIfProcShow, PDE_DATA(inode));
+ }
+
++static const struct file_operations proc_userif_fops = {
++ .open = proc_userif_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
+
+ /*
+ *----------------------------------------------------------------------
+@@ -1034,8 +1037,8 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(userIf->port.jack.name, S_IFREG,
+- &userIf->port.jack.procEntry);
++ retval = VNetProc_MakeEntryOps(userIf->port.jack.name, S_IFREG,
++ &userIf->port.jack.procEntry, &proc_userif_fops, userIf);
+ if (retval) {
+ if (retval == -ENXIO) {
+ userIf->port.jack.procEntry = NULL;
+@@ -1043,9 +1046,6 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+ kfree(userIf);
+ return retval;
+ }
+- } else {
+- userIf->port.jack.procEntry->read_proc = VNetUserIfProcRead;
+- userIf->port.jack.procEntry->data = userIf;
+ }
+
+ /*
+diff --git a/vmnet-only/vnetInt.h b/vmnet-only/vnetInt.h
+index c615395..d90a1ef 100644
+--- a/vmnet-only/vnetInt.h
++++ b/vmnet-only/vnetInt.h
+@@ -171,12 +171,14 @@ VNetJack *VNetDisconnect(VNetJack *jack);
+
+ void VNetSend(const VNetJack *jack, struct sk_buff *skb);
+
+-int VNetProc_MakeEntry(char *name, int mode,
+- VNetProcEntry **ret);
++int VNetProc_MakeEntryOps(char *name, int mode,
++ VNetProcEntry **ret,
++ const struct file_operations *fops,
++ void *data);
+
+ void VNetProc_RemoveEntry(VNetProcEntry *node);
+
+-int VNetPrintJack(const VNetJack *jack, char *buf);
++void VNetPrintJack(const VNetJack *jack, struct seq_file *seqf);
+
+ int VNet_MakeMACAddress(VNetPort *port);
+
+@@ -196,7 +198,7 @@ Bool VNetPacketMatch(const uint8 *destAddr, const uint8 *ifAddr,
+
+ Bool VNetCycleDetectIf(const char *name, int generation);
+
+-int VNetPrintPort(const VNetPort *port, char *buf);
++void VNetPrintPort(const VNetPort *port, struct seq_file *seqf);
+
+ int VNetSnprintf(char *str, size_t size, const char *format, ...);
+
diff --git a/app-emulation/vmware-modules/files/264-3.2.0.patch b/app-emulation/vmware-modules/files/264-3.2.0.patch
new file mode 100644
index 0000000..87f8914
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-3.2.0.patch
@@ -0,0 +1,86 @@
+diff --git a/vmnet-only/filter.c b/vmnet-only/filter.c
+index 491add5..74f7a3b 100644
+--- a/vmnet-only/filter.c
++++ b/vmnet-only/filter.c
+@@ -40,6 +40,10 @@
+ #include "vnetInt.h"
+ #include "vmnetInt.h"
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
++#include <linux/export.h>
++#endif
++
+ // VNet_FilterLogPacket.action for dropped packets
+ #define VNET_FILTER_ACTION_DRP (1)
+ #define VNET_FILTER_ACTION_DRP_SHORT (2)
+diff --git a/vmnet-only/netif.c b/vmnet-only/netif.c
+index 4bdb643..5b71339 100644
+--- a/vmnet-only/netif.c
++++ b/vmnet-only/netif.c
+@@ -62,7 +62,9 @@ static int VNetNetifClose(struct net_device *dev);
+ static int VNetNetifStartXmit(struct sk_buff *skb, struct net_device *dev);
+ static struct net_device_stats *VNetNetifGetStats(struct net_device *dev);
+ static int VNetNetifSetMAC(struct net_device *dev, void *addr);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
+ static void VNetNetifSetMulticast(struct net_device *dev);
++#endif
+ #if 0
+ static void VNetNetifTxTimeout(struct net_device *dev);
+ #endif
+@@ -131,7 +133,9 @@ VNetNetIfSetup(struct net_device *dev) // IN:
+ .ndo_stop = VNetNetifClose,
+ .ndo_get_stats = VNetNetifGetStats,
+ .ndo_set_mac_address = VNetNetifSetMAC,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
+ .ndo_set_multicast_list = VNetNetifSetMulticast,
++#endif
+ /*
+ * We cannot stuck... If someone will report problems under
+ * low memory conditions or some such, we should enable it.
+@@ -152,7 +156,9 @@ VNetNetIfSetup(struct net_device *dev) // IN:
+ dev->stop = VNetNetifClose;
+ dev->get_stats = VNetNetifGetStats;
+ dev->set_mac_address = VNetNetifSetMAC;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
+ dev->set_multicast_list = VNetNetifSetMulticast;
++#endif
+ /*
+ * We cannot stuck... If someone will report problems under
+ * low memory conditions or some such, we should enable it.
+@@ -612,11 +618,12 @@ VNetNetifSetMAC(struct net_device *dev, // IN:
+ *----------------------------------------------------------------------
+ */
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
+ void
+ VNetNetifSetMulticast(struct net_device *dev) // IN: unused
+ {
+ }
+-
++#endif
+
+ /*
+ *----------------------------------------------------------------------
+diff --git a/vmnet-only/userif.c b/vmnet-only/userif.c
+index 541187b..77e0089 100644
+--- a/vmnet-only/userif.c
++++ b/vmnet-only/userif.c
+@@ -517,10 +517,18 @@ VNetCsumCopyDatagram(const struct sk_buff *skb, // IN: skb to copy
+ unsigned int tmpCsum;
+ const void *vaddr;
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
++ vaddr = kmap(skb_frag_page(frag));
++#else
+ vaddr = kmap(frag->page);
++#endif
+ tmpCsum = csum_and_copy_to_user(vaddr + frag->page_offset,
+ curr, frag->size, 0, &err);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
++ kunmap(skb_frag_page(frag));
++#else
+ kunmap(frag->page);
++#endif
+ if (err) {
+ return err;
+ }
diff --git a/app-emulation/vmware-modules/files/264-3.8.0.patch b/app-emulation/vmware-modules/files/264-3.8.0.patch
new file mode 100644
index 0000000..e1a97d8
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-3.8.0.patch
@@ -0,0 +1,33 @@
+[patch] Vmware 9 on Linux Kernel 3.8rc4 and later
+source: http://communities.vmware.com/thread/432897 and bug 458228
+
+diff -rupN a/work/vmci-only/linux/driver.c b/work/vmci-only/linux/driver.c
+--- a/work/vmci-only/linux/driver.c 2012-10-31 23:28:45.000000000 -0400
++++ b/work/vmci-only/linux/driver.c 2013-03-18 15:23:52.488752357 -0400
+@@ -124,7 +124,7 @@ static struct pci_driver vmci_driver = {
+ .name = "vmci",
+ .id_table = vmci_ids,
+ .probe = vmci_probe_device,
+- .remove = __devexit_p(vmci_remove_device),
++ .remove = vmci_remove_device,
+ };
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+@@ -1741,7 +1741,7 @@ vmci_enable_msix(struct pci_dev *pdev) /
+ *-----------------------------------------------------------------------------
+ */
+
+-static int __devinit
++static int
+ vmci_probe_device(struct pci_dev *pdev, // IN: vmci PCI device
+ const struct pci_device_id *id) // IN: matching device ID
+ {
+@@ -1969,7 +1969,7 @@ vmci_probe_device(struct pci_dev *pdev,
+ *-----------------------------------------------------------------------------
+ */
+
+-static void __devexit
++static void
+ vmci_remove_device(struct pci_dev* pdev)
+ {
+ struct vmci_device *dev = pci_get_drvdata(pdev);
diff --git a/app-emulation/vmware-modules/files/264-apic.patch b/app-emulation/vmware-modules/files/264-apic.patch
new file mode 100644
index 0000000..66cd459
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-apic.patch
@@ -0,0 +1,12 @@
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index f1f4b10..c43242f 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -55,6 +55,7 @@
+ #include <linux/kthread.h>
+ #include <linux/wait.h>
+
++#include <asm/apic.h>
+
+ #include "vmware.h"
+ #include "x86apic.h"
diff --git a/app-emulation/vmware-modules/files/264-d-make-root.patch b/app-emulation/vmware-modules/files/264-d-make-root.patch
new file mode 100644
index 0000000..a02e4ce
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-d-make-root.patch
@@ -0,0 +1,16 @@
+diff --git a/vmblock-only/linux/filesystem.c b/vmblock-only/linux/filesystem.c
+index b7c535e..a36a01e 100644
+--- a/vmblock-only/linux/filesystem.c
++++ b/vmblock-only/linux/filesystem.c
+@@ -525,7 +525,11 @@ FsOpReadSuper(struct super_block *sb, // OUT: Superblock object
+ return -EINVAL;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)
+ rootDentry = d_alloc_root(rootInode);
++#else
++ rootDentry = d_make_root(rootInode);
++#endif
+ if (!rootDentry) {
+ iput(rootInode);
+ return -ENOMEM;
diff --git a/app-emulation/vmware-modules/files/264-jobserver.patch b/app-emulation/vmware-modules/files/264-jobserver.patch
new file mode 100644
index 0000000..59a6ccc
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-jobserver.patch
@@ -0,0 +1,75 @@
+diff -ru a/work/vmblock-only/Makefile b/work/vmblock-only/Makefile
+--- a/work/vmblock-only/Makefile 2011-01-22 08:59:15.907152002 -0500
++++ b/work/vmblock-only/Makefile 2011-01-22 09:13:55.894938002 -0500
+@@ -123,9 +123,9 @@
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- make -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+- make -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+ endif
+
+diff -ru a/work/vmci-only/Makefile b/work/vmci-only/Makefile
+--- a/work/vmci-only/Makefile 2011-01-22 08:59:15.907152002 -0500
++++ b/work/vmci-only/Makefile 2011-01-22 09:13:55.898936002 -0500
+@@ -123,9 +123,9 @@
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- make -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+- make -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+ endif
+
+diff -ru a/work/vmmon-only/Makefile b/work/vmmon-only/Makefile
+--- a/work/vmmon-only/Makefile 2011-01-22 08:59:15.907152002 -0500
++++ b/work/vmmon-only/Makefile 2011-01-22 09:13:55.894938002 -0500
+@@ -123,9 +123,9 @@
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- make -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+- make -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+ endif
+
+diff -ru a/work/vmnet-only/Makefile b/work/vmnet-only/Makefile
+--- a/work/vmnet-only/Makefile 2011-01-22 08:59:15.911150002 -0500
++++ b/work/vmnet-only/Makefile 2011-01-22 09:13:55.898936002 -0500
+@@ -123,9 +123,9 @@
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- make -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+- make -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+ endif
+
+diff -ru a/work/vsock-only/Makefile b/work/vsock-only/Makefile
+--- a/work/vsock-only/Makefile 2011-01-22 08:59:15.911150002 -0500
++++ b/work/vsock-only/Makefile 2011-01-22 09:13:55.894938002 -0500
+@@ -123,9 +123,9 @@
+ postbuild:: ;
+
+ $(DRIVER_KO): prebuild
+- make -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $(BUILD_DIR) SUBDIRS=$$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) modules
+- make -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
++ $(MAKE) -C $$PWD SRCROOT=$$PWD/$(SRCROOT) \
+ MODULEBUILDDIR=$(MODULEBUILDDIR) postbuild
+ endif
+
diff --git a/app-emulation/vmware-modules/files/264-makefile-include.patch b/app-emulation/vmware-modules/files/264-makefile-include.patch
new file mode 100644
index 0000000..39c3000
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-makefile-include.patch
@@ -0,0 +1,65 @@
+diff --git a/vmblock-only/Makefile.kernel b/vmblock-only/Makefile.kernel
+index ab7a727..e3ec9d2 100644
+--- a/vmblock-only/Makefile.kernel
++++ b/vmblock-only/Makefile.kernel
+@@ -19,7 +19,7 @@
+
+ INCLUDE += -I$(SRCROOT)/include
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachector.c, -DVMW_KMEMCR_CTOR_HAS_3_ARGS, )
+diff --git a/vmci-only/Makefile.kernel b/vmci-only/Makefile.kernel
+index ba343ee..861ea83 100644
+--- a/vmci-only/Makefile.kernel
++++ b/vmci-only/Makefile.kernel
+@@ -21,7 +21,7 @@ CC_OPTS += -DVMCI
+
+ INCLUDE += -I$(SRCROOT)/shared -I$(SRCROOT)/common -I$(SRCROOT)/linux
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ obj-m += $(DRIVER).o
+
+diff --git a/vmmon-only/Makefile.kernel b/vmmon-only/Makefile.kernel
+index 8770d1d..c4746c3 100644
+--- a/vmmon-only/Makefile.kernel
++++ b/vmmon-only/Makefile.kernel
+@@ -22,7 +22,7 @@ CC_OPTS += -DVMMON -DVMCORE
+ INCLUDE := -I$(SRCROOT)/include -I$(SRCROOT)/common -I$(SRCROOT)/linux \
+ -I$(SRCROOT)/vmcore
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/smpcall.c, -DVMW_HAVE_SMP_CALL_3ARG, )
+
+diff --git a/vmnet-only/Makefile.kernel b/vmnet-only/Makefile.kernel
+index d1e3133..665d428 100644
+--- a/vmnet-only/Makefile.kernel
++++ b/vmnet-only/Makefile.kernel
+@@ -19,7 +19,7 @@
+
+ INCLUDE := -I$(SRCROOT)
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_net.c,-DVMW_NETDEV_HAS_NET, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_dev_net.c,-DVMW_NETDEV_HAS_DEV_NET, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/nfhook_uses_skb.c,-DVMW_NFHOOK_USES_SKB, )
+diff --git a/vsock-only/Makefile.kernel b/vsock-only/Makefile.kernel
+index b4629ee..264b8cb 100644
+--- a/vsock-only/Makefile.kernel
++++ b/vsock-only/Makefile.kernel
+@@ -25,7 +25,7 @@ INCLUDE += -I$(SRCROOT)/include
+ INCLUDE += -I$(SRCROOT)/linux
+ INCLUDE += -I$(SRCROOT)/common
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/netcreate_num_params.c, -DVMW_NETCREATE_KERNARG, )
+
+
diff --git a/app-emulation/vmware-modules/files/264-makefile-kernel-dir.patch b/app-emulation/vmware-modules/files/264-makefile-kernel-dir.patch
new file mode 100644
index 0000000..d4bd6d1
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-makefile-kernel-dir.patch
@@ -0,0 +1,80 @@
+diff --git a/work/vmblock-only/Makefile b/work/vmblock-only/Makefile
+index 0bd0e74..27c3ede 100644
+--- a/work/vmblock-only/Makefile
++++ b/work/vmblock-only/Makefile
+@@ -46,9 +46,9 @@ endif
+ VM_UNAME = $(shell uname -r)
+
+ # Header directory for the running kernel
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmblock
+ PRODUCT := tools
+diff --git a/work/vmci-only/Makefile b/work/vmci-only/Makefile
+index 7babb8a..fbc5878 100644
+--- a/work/vmci-only/Makefile
++++ b/work/vmci-only/Makefile
+@@ -46,9 +46,9 @@ endif
+ VM_UNAME = $(shell uname -r)
+
+ # Header directory for the running kernel
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmci
+ PRODUCT := @@PRODUCT@@
+diff --git a/work/vmmon-only/Makefile b/work/vmmon-only/Makefile
+index 4b4eb3e..1bb35ef 100644
+--- a/work/vmmon-only/Makefile
++++ b/work/vmmon-only/Makefile
+@@ -46,9 +46,9 @@ endif
+ VM_UNAME = $(shell uname -r)
+
+ # Header directory for the running kernel
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmmon
+ PRODUCT := @@PRODUCT@@
+diff --git a/work/vmnet-only/Makefile b/work/vmnet-only/Makefile
+index 06856e7..fd53bf8 100644
+--- a/work/vmnet-only/Makefile
++++ b/work/vmnet-only/Makefile
+@@ -46,9 +46,9 @@ endif
+ VM_UNAME = $(shell uname -r)
+
+ # Header directory for the running kernel
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmnet
+ PRODUCT := @@PRODUCT@@
+diff --git a/work/vsock-only/Makefile b/work/vsock-only/Makefile
+index e02adb0..210e502 100644
+--- a/work/vsock-only/Makefile
++++ b/work/vsock-only/Makefile
+@@ -46,9 +46,9 @@ endif
+ VM_UNAME = $(shell uname -r)
+
+ # Header directory for the running kernel
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vsock
+ PRODUCT := ws
diff --git a/app-emulation/vmware-modules/files/264-netdevice.patch b/app-emulation/vmware-modules/files/264-netdevice.patch
new file mode 100644
index 0000000..35231a3
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-netdevice.patch
@@ -0,0 +1,24 @@
+diff --git a/vmnet-only/compat_netdevice.h b/vmnet-only/compat_netdevice.h
+index 7a56304..9ff4548 100644
+--- a/vmnet-only/compat_netdevice.h
++++ b/vmnet-only/compat_netdevice.h
+@@ -47,6 +47,19 @@
+ # define net_device device
+ #endif
+
++/* it looks like these have been removed from the kernel 3.1
++ * probably because the "transition" is considered complete.
++ * so to keep this source compatible we just redefine them like they were
++ * previously
++ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0)
++#define HAVE_ALLOC_NETDEV /* feature macro: alloc_xxxdev
++ functions are available. */
++#define HAVE_FREE_NETDEV /* free_netdev() */
++#define HAVE_NETDEV_PRIV /* netdev_priv() */
++#define HAVE_NETIF_QUEUE
++#define HAVE_NET_DEVICE_OPS
++#endif
+
+ /*
+ * SET_MODULE_OWNER appeared sometime during 2.3.x. It was setting
diff --git a/app-emulation/vmware-modules/files/264-newline.patch b/app-emulation/vmware-modules/files/264-newline.patch
new file mode 100644
index 0000000..b406d81
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-newline.patch
@@ -0,0 +1,11 @@
+--- vmnet-only/userif.c 2012-06-09 04:26:32.000000000 -0400
++++ vmnet-only.new/userif.c 2012-10-22 12:14:34.275953107 -0400
+@@ -956,7 +956,7 @@ VNetUserIfSetUplinkState(VNetPort *port,
+ "failed (%d)\n", userIf->port.id, retval));
+ }
+
+- LOG(0, (KERN_NOTICE "userif-%d: sent link %s event.",
++ LOG(0, (KERN_NOTICE "userif-%d: sent link %s event.\n",
+ userIf->port.id, linkUp?"up":"down"));
+
+ return retval;
diff --git a/app-emulation/vmware-modules/files/264-putname.patch b/app-emulation/vmware-modules/files/264-putname.patch
new file mode 100644
index 0000000..6e76130
--- /dev/null
+++ b/app-emulation/vmware-modules/files/264-putname.patch
@@ -0,0 +1,13 @@
+diff --git a/vmblock-only/linux/control.c b/vmblock-only/linux/control.c
+index 79716bd..2dd83fe 100644
+--- a/vmblock-only/linux/control.c
++++ b/vmblock-only/linux/control.c
+@@ -293,7 +293,7 @@ ExecuteBlockOp(const char __user *buf, // IN: buffer with name
+
+ retval = i < 0 ? -EINVAL : blockOp(name, blocker);
+
+- putname(name);
++ __putname(name);
+
+ return retval;
+ }
diff --git a/app-emulation/vmware-modules/files/271-3.10.0.patch b/app-emulation/vmware-modules/files/271-3.10.0.patch
new file mode 100644
index 0000000..7795b18
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-3.10.0.patch
@@ -0,0 +1,809 @@
+--- a/vmnet-only/bridge.c
++++ b/vmnet-only/bridge.c
+@@ -105,8 +105,6 @@ static Bool VNetBridgeCycleDetect(VNetJack *this, int generation);
+ static Bool VNetBridgeIsDeviceWireless(struct net_device *dev);
+ static void VNetBridgePortsChanged(VNetJack *this);
+ static int VNetBridgeIsBridged(VNetJack *this);
+-static int VNetBridgeProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+ static void VNetBridgeComputeHeaderPosIPv6(struct sk_buff *skb);
+ static PacketStatus VNetCallSMACFunc(struct SMACState *state,
+ struct sk_buff **skb, void *startOfData,
+@@ -225,6 +223,53 @@ VNetBridgeDevCompatible(VNetBridge *bridge, // IN: Bridge
+ /*
+ *----------------------------------------------------------------------
+ *
++ * VNetBridgeProcShow --
++ *
++ * Callback for read operation on this bridge entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetBridgeProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data - pointer to bridge
++{
++ VNetBridge *bridge = (VNetBridge*)data;
++
++ if (!bridge) {
++ return 0;
++ }
++
++ VNetPrintPort(&bridge->port, seqf);
++
++ seq_printf(seqf, "dev %s ", bridge->name);
++
++ seq_printf(seqf, "\n");
++
++ return 0;
++}
++
++static int proc_bridge_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetBridgeProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_bridge_fops = {
++ .open = proc_bridge_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
++/*
++ *----------------------------------------------------------------------
++ *
+ * VNetBridge_Create --
+ *
+ * Creates a bridge. Allocates struct, allocates internal device,
+@@ -319,17 +364,14 @@ VNetBridge_Create(const char *devName, // IN: name of device (e.g., "eth0")
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(bridge->port.jack.name, S_IFREG,
+- &bridge->port.jack.procEntry);
++ retval = VNetProc_MakeEntryOps(bridge->port.jack.name, S_IFREG,
++ &bridge->port.jack.procEntry, &proc_bridge_fops, bridge);
+ if (retval) {
+ if (retval == -ENXIO) {
+ bridge->port.jack.procEntry = NULL;
+ } else {
+ goto out;
+ }
+- } else {
+- bridge->port.jack.procEntry->read_proc = VNetBridgeProcRead;
+- bridge->port.jack.procEntry->data = bridge;
+ }
+
+ /*
+@@ -1719,45 +1761,3 @@ VNetBridgeReceiveFromDev(struct sk_buff *skb, // IN: packet to receive
+ return 0;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetBridgeProcRead --
+- *
+- * Callback for read operation on this bridge entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetBridgeProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: (unused) offset of read into the file
+- int count, // IN: (unused) maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data - pointer to bridge
+-{
+- VNetBridge *bridge = (VNetBridge*)data;
+- int len = 0;
+-
+- if (!bridge) {
+- return len;
+- }
+-
+- len += VNetPrintPort(&bridge->port, page+len);
+-
+- len += sprintf(page+len, "dev %s ", bridge->name);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+--- a/vmnet-only/driver.c
++++ b/vmnet-only/driver.c
+@@ -1785,21 +1785,17 @@ VNetSetMACUnique(VNetPort *port, // IN:
+ *----------------------------------------------------------------------
+ */
+
+-int
++void
+ VNetPrintJack(const VNetJack *jack, // IN: jack
+- char *buf) // OUT: info about jack
++ struct seq_file *seqf) // OUT: info about jack
+ {
+- int len = 0;
+-
+ read_lock(&vnetPeerLock);
+ if (!jack->peer) {
+- len += sprintf(buf+len, "connected not ");
++ seq_printf(seqf, "connected not ");
+ } else {
+- len += sprintf(buf+len, "connected %s ", jack->peer->name);
++ seq_printf(seqf, "connected %s ", jack->peer->name);
+ }
+ read_unlock(&vnetPeerLock);
+-
+- return len;
+ }
+
+
+@@ -1819,52 +1815,48 @@ VNetPrintJack(const VNetJack *jack, // IN: jack
+ *----------------------------------------------------------------------
+ */
+
+-int
++void
+ VNetPrintPort(const VNetPort *port, // IN: port
+- char *buf) // OUT: info about port
++ struct seq_file *seqf) // OUT: info about port
+ {
+- int len = 0;
++ VNetPrintJack(&port->jack, seqf);
+
+- len += VNetPrintJack(&port->jack, buf+len);
+-
+- len += sprintf(buf+len, "mac %02x:%02x:%02x:%02x:%02x:%02x ",
++ seq_printf(seqf, "mac %02x:%02x:%02x:%02x:%02x:%02x ",
+ port->paddr[0], port->paddr[1], port->paddr[2],
+ port->paddr[3], port->paddr[4], port->paddr[5]);
+
+- len += sprintf(buf+len, "ladrf %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",
++ seq_printf(seqf, "ladrf %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ",
+ port->ladrf[0], port->ladrf[1], port->ladrf[2],
+ port->ladrf[3], port->ladrf[4], port->ladrf[5],
+ port->ladrf[6], port->ladrf[7]);
+
+- len += sprintf(buf+len, "flags IFF_RUNNING");
++ seq_printf(seqf, "flags IFF_RUNNING");
+
+ if (port->flags & IFF_UP) {
+- len += sprintf(buf+len, ",IFF_UP");
++ seq_printf(seqf, ",IFF_UP");
+ }
+
+ if (port->flags & IFF_BROADCAST) {
+- len += sprintf(buf+len, ",IFF_BROADCAST");
++ seq_printf(seqf, ",IFF_BROADCAST");
+ }
+
+ if (port->flags & IFF_DEBUG) {
+- len += sprintf(buf+len, ",IFF_DEBUG");
++ seq_printf(seqf, ",IFF_DEBUG");
+ }
+
+ if (port->flags & IFF_PROMISC) {
+- len += sprintf(buf+len, ",IFF_PROMISC");
++ seq_printf(seqf, ",IFF_PROMISC");
+ }
+
+ if (port->flags & IFF_MULTICAST) {
+- len += sprintf(buf+len, ",IFF_MULTICAST");
++ seq_printf(seqf, ",IFF_MULTICAST");
+ }
+
+ if (port->flags & IFF_ALLMULTI) {
+- len += sprintf(buf+len, ",IFF_ALLMULTI");
++ seq_printf(seqf, ",IFF_ALLMULTI");
+ }
+
+- len += sprintf(buf+len, " ");
+-
+- return len;
++ seq_printf(seqf, " ");
+ }
+
+
+--- a/vmnet-only/hub.c
++++ b/vmnet-only/hub.c
+@@ -25,6 +25,7 @@
+ #include <linux/sched.h>
+ #include <linux/slab.h>
+ #include <linux/poll.h>
++#include <linux/seq_file.h>
+
+ #include <linux/netdevice.h>
+ #include <linux/etherdevice.h>
+@@ -71,8 +72,6 @@ static void VNetHubReceive(VNetJack *this, struct sk_buff *skb);
+ static Bool VNetHubCycleDetect(VNetJack *this, int generation);
+ static void VNetHubPortsChanged(VNetJack *this);
+ static int VNetHubIsBridged(VNetJack *this);
+-static int VNetHubProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+
+ static VNetHub *vnetHub;
+ static DEFINE_SPINLOCK(vnetHubLock);
+@@ -241,6 +240,53 @@ VNetHub_AllocPvn(uint8 id[]) // IN: the PVN ID to alloc on
+ /*
+ *----------------------------------------------------------------------
+ *
++ * VNetHubProcShow --
++ *
++ * Callback for read operation on hub entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetHubProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data - not used
++{
++ VNetJack *jack = (VNetJack*)data;
++ VNetHub *hub;
++
++ if (!jack || !jack->private) {
++ return 0;
++ }
++ hub = (VNetHub*)jack->private;
++
++ VNetPrintJack(jack, seqf);
++
++ seq_printf(seqf, "tx %u ", hub->stats[jack->index].tx);
++ seq_printf(seqf, "\n");
++ return 0;
++}
++
++static int proc_hub_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetHubProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_hub_fops = {
++ .open = proc_hub_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
++/*
++ *----------------------------------------------------------------------
++ *
+ * VNetHubAlloc --
+ *
+ * Allocate a jack on this hub.
+@@ -354,7 +400,7 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE for PVN, FALSE for vnet
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(jack->name, S_IFREG, &jack->procEntry);
++ retval = VNetProc_MakeEntryOps(jack->name, S_IFREG, &jack->procEntry, &proc_hub_fops, jack);
+ if (retval) {
+ if (retval == -ENXIO) {
+ jack->procEntry = NULL;
+@@ -362,9 +408,6 @@ VNetHubAlloc(Bool allocPvn, // IN: TRUE for PVN, FALSE for vnet
+ hub->used[i] = FALSE;
+ return NULL;
+ }
+- } else {
+- jack->procEntry->read_proc = VNetHubProcRead;
+- jack->procEntry->data = jack;
+ }
+
+ /*
+@@ -686,46 +729,3 @@ VNetHubIsBridged(VNetJack *this)
+ }
+
+
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetHubProcRead --
+- *
+- * Callback for read operation on hub entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetHubProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: offset of read into the file
+- int count, // IN: maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data - not used
+-{
+- VNetJack *jack = (VNetJack*)data;
+- VNetHub *hub;
+- int len = 0;
+-
+- if (!jack || !jack->private) {
+- return len;
+- }
+- hub = (VNetHub*)jack->private;
+-
+- len += VNetPrintJack(jack, page+len);
+-
+- len += sprintf(page+len, "tx %u ", hub->stats[jack->index].tx);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+--- a/vmnet-only/netif.c
++++ b/vmnet-only/netif.c
+@@ -62,8 +62,6 @@ static int VNetNetifStartXmit(struct sk_buff *skb, struct net_device *dev);
+ static struct net_device_stats *VNetNetifGetStats(struct net_device *dev);
+ static int VNetNetifSetMAC(struct net_device *dev, void *addr);
+ static void VNetNetifSetMulticast(struct net_device *dev);
+-static int VNetNetIfProcRead(char *page, char **start, off_t off,
+- int count, int *eof, void *data);
+
+ /*
+ *----------------------------------------------------------------------
+@@ -116,6 +114,53 @@ VNetNetIfSetup(struct net_device *dev) // IN:
+
+ }
+
++/*
++ *----------------------------------------------------------------------
++ *
++ * VNetNetIfProcShow --
++ *
++ * Callback for read operation on this netif entry in vnets proc fs.
++ *
++ * Results:
++ * Length of read operation.
++ *
++ * Side effects:
++ * None.
++ *
++ *----------------------------------------------------------------------
++ */
++
++int
++VNetNetIfProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
++ void *data) // IN: client data
++{
++ VNetNetIF *netIf = data;
++
++ if (!netIf) {
++ return 0;
++ }
++
++ VNetPrintPort(&netIf->port, seqf);
++
++ seq_printf(seqf, "dev %s ", netIf->dev->name);
++
++ seq_printf(seqf, "\n");
++
++ return 0;
++}
++
++static int proc_netif_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetNetIfProcShow, PDE_DATA(inode));
++}
++
++static const struct file_operations proc_netif_fops = {
++ .open = proc_netif_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
+
+ /*
+ *----------------------------------------------------------------------
+@@ -180,16 +225,13 @@ VNetNetIf_Create(char *devName, // IN:
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(netIf->port.jack.name, S_IFREG,
+- &netIf->port.jack.procEntry);
++ retval = VNetProc_MakeEntryOps(netIf->port.jack.name, S_IFREG,
++ &netIf->port.jack.procEntry, &proc_netif_fops, netIf);
+ if (retval) {
+ netIf->port.jack.procEntry = NULL;
+ if (retval != -ENXIO) {
+ goto outFreeDev;
+ }
+- } else {
+- netIf->port.jack.procEntry->read_proc = VNetNetIfProcRead;
+- netIf->port.jack.procEntry->data = netIf;
+ }
+
+ /*
+@@ -553,45 +595,3 @@ VNetNetifGetStats(struct net_device *dev) // IN:
+ return &netIf->stats;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetNetIfProcRead --
+- *
+- * Callback for read operation on this netif entry in vnets proc fs.
+- *
+- * Results:
+- * Length of read operation.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetNetIfProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into page
+- off_t off, // IN: (unused) offset of read into the file
+- int count, // IN: (unused) maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to read
+- void *data) // IN: client data
+-{
+- VNetNetIF *netIf = data;
+- int len = 0;
+-
+- if (!netIf) {
+- return len;
+- }
+-
+- len += VNetPrintPort(&netIf->port, page+len);
+-
+- len += sprintf(page+len, "dev %s ", netIf->dev->name);
+-
+- len += sprintf(page+len, "\n");
+-
+- *start = 0;
+- *eof = 1;
+- return len;
+-}
+--- a/vmnet-only/procfs.c
++++ b/vmnet-only/procfs.c
+@@ -45,10 +45,6 @@
+
+ #if defined(CONFIG_PROC_FS)
+
+-static int VNetProcMakeEntryInt(VNetProcEntry *parent, char *name, int mode,
+- VNetProcEntry **ret);
+-static void VNetProcRemoveEntryInt(VNetProcEntry *node, VNetProcEntry *parent);
+-
+ static VNetProcEntry *base = NULL;
+
+
+@@ -71,7 +67,12 @@ static VNetProcEntry *base = NULL;
+ int
+ VNetProc_Init(void)
+ {
+- return VNetProcMakeEntryInt(NULL, "vmnet", S_IFDIR, &base);
++ base = proc_mkdir("vmnet", NULL);
++ if(IS_ERR(base)) {
++ base = NULL;
++ return PTR_ERR(base);
++ }
++ return 0;
+ }
+
+
+@@ -94,14 +95,14 @@ VNetProc_Init(void)
+ void
+ VNetProc_Cleanup(void)
+ {
+- VNetProcRemoveEntryInt(base, NULL);
++ proc_remove(base);
+ base = NULL;
+ }
+
+ /*
+ *----------------------------------------------------------------------
+ *
+- * VNetProcMakeEntryInt --
++ * VNetProc_MakeEntryOps --
+ *
+ * Make an entry in the vnets proc file system.
+ *
+@@ -116,72 +117,21 @@ VNetProc_Cleanup(void)
+ */
+
+ int
+-VNetProcMakeEntryInt(VNetProcEntry *parent, // IN:
+- char *name, // IN:
++VNetProc_MakeEntryOps(char *name, // IN:
+ int mode, // IN:
+- VNetProcEntry **ret) // OUT:
++ VNetProcEntry **ret,
++ const struct file_operations *fops,
++ void *data
++ ) // OUT:
+ {
+ VNetProcEntry *ent;
+- ent = create_proc_entry(name, mode, parent);
++ ent = proc_create_data(name, mode, base, fops, data);
+ *ret = ent;
+ if (!ent)
+ return -ENOMEM;
+ return 0;
+ }
+
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProcRemoveEntryInt --
+- *
+- * Remove a previously installed proc entry.
+- *
+- * Results:
+- * None.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-void
+-VNetProcRemoveEntryInt(VNetProcEntry *node,
+- VNetProcEntry *parent)
+-{
+- if (node) {
+- remove_proc_entry(node->name, parent);
+- }
+-}
+-
+-
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProc_MakeEntry --
+- *
+- * Make an entry in the vnets proc file system.
+- *
+- * Results:
+- * errno. If errno is 0 and ret is non NULL then ret is filled
+- * in with the resulting proc entry.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetProc_MakeEntry(char *name, // IN:
+- int mode, // IN:
+- VNetProcEntry **ret) // OUT:
+-{
+- return VNetProcMakeEntryInt(base, name, mode, ret);
+-}
+-
+-
+ /*
+ *----------------------------------------------------------------------
+ *
+@@ -201,7 +151,8 @@ VNetProc_MakeEntry(char *name, // IN:
+ void
+ VNetProc_RemoveEntry(VNetProcEntry *node)
+ {
+- VNetProcRemoveEntryInt(node, base);
++ if(node)
++ proc_remove(node);
+ }
+
+
+@@ -253,31 +204,6 @@ VNetProc_Cleanup(void)
+ }
+
+
+-/*
+- *----------------------------------------------------------------------
+- *
+- * VNetProc_MakeEntry --
+- *
+- * Make an entry in the vnets proc file system.
+- *
+- * Results:
+- * errno. If errno is 0 and ret is non NULL then ret is filled
+- * in with the resulting proc entry.
+- *
+- * Side effects:
+- * None.
+- *
+- *----------------------------------------------------------------------
+- */
+-
+-int
+-VNetProc_MakeEntry(char *name,
+- int mode,
+- VNetProcEntry **ret)
+-{
+- return -ENXIO;
+-}
+-
+
+ /*
+ *----------------------------------------------------------------------
+--- a/vmnet-only/userif.c
++++ b/vmnet-only/userif.c
+@@ -389,7 +389,7 @@ VNetUserIfReceive(VNetJack *this, // IN
+ /*
+ *----------------------------------------------------------------------
+ *
+- * VNetUserIfProcRead --
++ * VNetUserIfProcShow --
+ *
+ * Callback for read operation on this userif entry in vnets proc fs.
+ *
+@@ -403,30 +403,23 @@ VNetUserIfReceive(VNetJack *this, // IN
+ */
+
+ static int
+-VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+- char **start, // OUT: 0 if file < 4k, else offset into
+- // page
+- off_t off, // IN: offset of read into the file
+- int count, // IN: maximum number of bytes to read
+- int *eof, // OUT: TRUE if there is nothing more to
+- // read
++VNetUserIfProcShow(struct seq_file *seqf, // IN/OUT: buffer to write into
+ void *data) // IN: client data - not used
+ {
+ VNetUserIF *userIf = (VNetUserIF*)data;
+- int len = 0;
+
+ if (!userIf) {
+- return len;
++ return 0;
+ }
+
+- len += VNetPrintPort(&userIf->port, page+len);
++ VNetPrintPort(&userIf->port, seqf);
+
+- len += sprintf(page+len, "read %u written %u queued %u ",
++ seq_printf(seqf, "read %u written %u queued %u ",
+ userIf->stats.read,
+ userIf->stats.written,
+ userIf->stats.queued);
+
+- len += sprintf(page+len,
++ seq_printf(seqf,
+ "dropped.down %u dropped.mismatch %u "
+ "dropped.overflow %u dropped.largePacket %u",
+ userIf->stats.droppedDown,
+@@ -434,13 +427,23 @@ VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+ userIf->stats.droppedOverflow,
+ userIf->stats.droppedLargePacket);
+
+- len += sprintf(page+len, "\n");
++ seq_printf(seqf, "\n");
+
+- *start = 0;
+- *eof = 1;
+- return len;
++ return 0;
++}
++
++static int proc_userif_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, VNetUserIfProcShow, PDE_DATA(inode));
+ }
+
++static const struct file_operations proc_userif_fops = {
++ .open = proc_userif_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = seq_release,
++};
++
+
+ /*
+ *----------------------------------------------------------------------
+@@ -1036,8 +1039,8 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+ * Make proc entry for this jack.
+ */
+
+- retval = VNetProc_MakeEntry(userIf->port.jack.name, S_IFREG,
+- &userIf->port.jack.procEntry);
++ retval = VNetProc_MakeEntryOps(userIf->port.jack.name, S_IFREG,
++ &userIf->port.jack.procEntry, &proc_userif_fops, userIf);
+ if (retval) {
+ if (retval == -ENXIO) {
+ userIf->port.jack.procEntry = NULL;
+@@ -1045,9 +1048,6 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+ kfree(userIf);
+ return retval;
+ }
+- } else {
+- userIf->port.jack.procEntry->read_proc = VNetUserIfProcRead;
+- userIf->port.jack.procEntry->data = userIf;
+ }
+
+ /*
+--- a/vmnet-only/vnetInt.h
++++ b/vmnet-only/vnetInt.h
+@@ -171,12 +171,14 @@ VNetJack *VNetDisconnect(VNetJack *jack);
+
+ void VNetSend(const VNetJack *jack, struct sk_buff *skb);
+
+-int VNetProc_MakeEntry(char *name, int mode,
+- VNetProcEntry **ret);
++int VNetProc_MakeEntryOps(char *name, int mode,
++ VNetProcEntry **ret,
++ const struct file_operations *fops,
++ void *data);
+
+ void VNetProc_RemoveEntry(VNetProcEntry *node);
+
+-int VNetPrintJack(const VNetJack *jack, char *buf);
++void VNetPrintJack(const VNetJack *jack, struct seq_file *seqf);
+
+ int VNet_MakeMACAddress(VNetPort *port);
+
+@@ -196,7 +198,7 @@ Bool VNetPacketMatch(const uint8 *destAddr, const uint8 *ifAddr,
+
+ Bool VNetCycleDetectIf(const char *name, int generation);
+
+-int VNetPrintPort(const VNetPort *port, char *buf);
++void VNetPrintPort(const VNetPort *port, struct seq_file *seqf);
+
+ int VNetSnprintf(char *str, size_t size, const char *format, ...);
+
+--
+--- a/vmblock-only/linux/control.c 2013-05-21 19:21:19.165750556 +0200
++++ b/vmblock-only/linux/control.c 2013-05-21 19:22:18.363747723 +0200
+@@ -208,9 +208,10 @@
+ VMBlockSetProcEntryOwner(controlProcMountpoint);
+
+ /* Create /proc/fs/vmblock/dev */
+- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
+- VMBLOCK_CONTROL_MODE,
+- controlProcDirEntry);
++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME,
++ VMBLOCK_CONTROL_MODE,
++ controlProcDirEntry,
++ &ControlFileOps);
+ if (!controlProcEntry) {
+ Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
+ remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
+@@ -218,7 +219,6 @@
+ return -EINVAL;
+ }
+
+- controlProcEntry->proc_fops = &ControlFileOps;
+ return 0;
+ }
+
diff --git a/app-emulation/vmware-modules/files/271-apic.patch b/app-emulation/vmware-modules/files/271-apic.patch
new file mode 100644
index 0000000..66cd459
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-apic.patch
@@ -0,0 +1,12 @@
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index f1f4b10..c43242f 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -55,6 +55,7 @@
+ #include <linux/kthread.h>
+ #include <linux/wait.h>
+
++#include <asm/apic.h>
+
+ #include "vmware.h"
+ #include "x86apic.h"
diff --git a/app-emulation/vmware-modules/files/271-makefile-include.patch b/app-emulation/vmware-modules/files/271-makefile-include.patch
new file mode 100644
index 0000000..39c3000
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-makefile-include.patch
@@ -0,0 +1,65 @@
+diff --git a/vmblock-only/Makefile.kernel b/vmblock-only/Makefile.kernel
+index ab7a727..e3ec9d2 100644
+--- a/vmblock-only/Makefile.kernel
++++ b/vmblock-only/Makefile.kernel
+@@ -19,7 +19,7 @@
+
+ INCLUDE += -I$(SRCROOT)/include
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachector.c, -DVMW_KMEMCR_CTOR_HAS_3_ARGS, )
+diff --git a/vmci-only/Makefile.kernel b/vmci-only/Makefile.kernel
+index ba343ee..861ea83 100644
+--- a/vmci-only/Makefile.kernel
++++ b/vmci-only/Makefile.kernel
+@@ -21,7 +21,7 @@ CC_OPTS += -DVMCI
+
+ INCLUDE += -I$(SRCROOT)/shared -I$(SRCROOT)/common -I$(SRCROOT)/linux
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ obj-m += $(DRIVER).o
+
+diff --git a/vmmon-only/Makefile.kernel b/vmmon-only/Makefile.kernel
+index 8770d1d..c4746c3 100644
+--- a/vmmon-only/Makefile.kernel
++++ b/vmmon-only/Makefile.kernel
+@@ -22,7 +22,7 @@ CC_OPTS += -DVMMON -DVMCORE
+ INCLUDE := -I$(SRCROOT)/include -I$(SRCROOT)/common -I$(SRCROOT)/linux \
+ -I$(SRCROOT)/vmcore
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/smpcall.c, -DVMW_HAVE_SMP_CALL_3ARG, )
+
+diff --git a/vmnet-only/Makefile.kernel b/vmnet-only/Makefile.kernel
+index d1e3133..665d428 100644
+--- a/vmnet-only/Makefile.kernel
++++ b/vmnet-only/Makefile.kernel
+@@ -19,7 +19,7 @@
+
+ INCLUDE := -I$(SRCROOT)
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_net.c,-DVMW_NETDEV_HAS_NET, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_dev_net.c,-DVMW_NETDEV_HAS_DEV_NET, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/nfhook_uses_skb.c,-DVMW_NFHOOK_USES_SKB, )
+diff --git a/vsock-only/Makefile.kernel b/vsock-only/Makefile.kernel
+index b4629ee..264b8cb 100644
+--- a/vsock-only/Makefile.kernel
++++ b/vsock-only/Makefile.kernel
+@@ -25,7 +25,7 @@ INCLUDE += -I$(SRCROOT)/include
+ INCLUDE += -I$(SRCROOT)/linux
+ INCLUDE += -I$(SRCROOT)/common
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/netcreate_num_params.c, -DVMW_NETCREATE_KERNARG, )
+
+
diff --git a/app-emulation/vmware-modules/files/271-makefile-kernel-dir.patch b/app-emulation/vmware-modules/files/271-makefile-kernel-dir.patch
new file mode 100644
index 0000000..1a647a3
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-makefile-kernel-dir.patch
@@ -0,0 +1,85 @@
+diff --git a/vmblock-only/Makefile b/vmblock-only/Makefile
+index 2b81323..746c8b8 100644
+--- a/vmblock-only/Makefile
++++ b/vmblock-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmblock
+ PRODUCT := ws
+diff --git a/vmci-only/Makefile b/vmci-only/Makefile
+index 8e9c5be..6ec828b 100644
+--- a/vmci-only/Makefile
++++ b/vmci-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmci
+ PRODUCT := ws
+diff --git a/vmmon-only/Makefile b/vmmon-only/Makefile
+index 5bd867b..91a83d4 100644
+--- a/vmmon-only/Makefile
++++ b/vmmon-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmmon
+ PRODUCT := @@PRODUCT@@
+diff --git a/vmnet-only/Makefile b/vmnet-only/Makefile
+index d4eb73c..c7c6d38 100644
+--- a/vmnet-only/Makefile
++++ b/vmnet-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmnet
+ PRODUCT := @@PRODUCT@@
+diff --git a/vsock-only/Makefile b/vsock-only/Makefile
+index 93dd61d..9765696 100644
+--- a/vsock-only/Makefile
++++ b/vsock-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vsock
+ PRODUCT := ws
diff --git a/app-emulation/vmware-modules/files/271-netdevice.patch b/app-emulation/vmware-modules/files/271-netdevice.patch
new file mode 100644
index 0000000..35231a3
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-netdevice.patch
@@ -0,0 +1,24 @@
+diff --git a/vmnet-only/compat_netdevice.h b/vmnet-only/compat_netdevice.h
+index 7a56304..9ff4548 100644
+--- a/vmnet-only/compat_netdevice.h
++++ b/vmnet-only/compat_netdevice.h
+@@ -47,6 +47,19 @@
+ # define net_device device
+ #endif
+
++/* it looks like these have been removed from the kernel 3.1
++ * probably because the "transition" is considered complete.
++ * so to keep this source compatible we just redefine them like they were
++ * previously
++ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0)
++#define HAVE_ALLOC_NETDEV /* feature macro: alloc_xxxdev
++ functions are available. */
++#define HAVE_FREE_NETDEV /* free_netdev() */
++#define HAVE_NETDEV_PRIV /* netdev_priv() */
++#define HAVE_NETIF_QUEUE
++#define HAVE_NET_DEVICE_OPS
++#endif
+
+ /*
+ * SET_MODULE_OWNER appeared sometime during 2.3.x. It was setting
diff --git a/app-emulation/vmware-modules/files/271-putname.patch b/app-emulation/vmware-modules/files/271-putname.patch
new file mode 100644
index 0000000..6e76130
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-putname.patch
@@ -0,0 +1,13 @@
+diff --git a/vmblock-only/linux/control.c b/vmblock-only/linux/control.c
+index 79716bd..2dd83fe 100644
+--- a/vmblock-only/linux/control.c
++++ b/vmblock-only/linux/control.c
+@@ -293,7 +293,7 @@ ExecuteBlockOp(const char __user *buf, // IN: buffer with name
+
+ retval = i < 0 ? -EINVAL : blockOp(name, blocker);
+
+- putname(name);
++ __putname(name);
+
+ return retval;
+ }
diff --git a/app-emulation/vmware-modules/files/271-vmmon.patch b/app-emulation/vmware-modules/files/271-vmmon.patch
new file mode 100644
index 0000000..f197964
--- /dev/null
+++ b/app-emulation/vmware-modules/files/271-vmmon.patch
@@ -0,0 +1,44 @@
+diff -ru source900/vmmon-only/linux/hostif.c source/vmmon-only/linux/hostif.c
+--- source900/vmmon-only/linux/hostif.c 2012-07-23 18:18:55.000000000 +0900
++++ source/vmmon-only/linux/hostif.c 2012-08-03 16:20:23.200420885 +0900
+@@ -48,6 +48,7 @@
+ #include <linux/smp_lock.h>
+ #endif
+
++#include <asm/asm.h>
+ #include <asm/io.h>
+ #include <asm/uaccess.h>
+ #include <linux/mc146818rtc.h>
+@@ -3586,31 +3587,14 @@
+ {
+ int ret;
+ unsigned low, high;
+-#if defined(VM_X86_64)
+ asm volatile("2: rdmsr ; xor %0,%0\n"
+ "1:\n\t"
+ ".section .fixup,\"ax\"\n\t"
+ "3: mov %4,%0 ; jmp 1b\n\t"
+ ".previous\n\t"
+- ".section __ex_table,\"a\"\n\t"
+- ".balign 8\n"
+- ".quad 2b,3b\n"
+- ".previous\n"
++ _ASM_EXTABLE(2b,3b)
+ : "=r"(ret), "=a"(low), "=d"(high)
+ : "c"(msr), "i"(-EFAULT), "1"(0), "2"(0)); // init eax/edx to 0
+-#else
+- asm volatile("2: rdmsr ; xor %0,%0\n"
+- "1:\n\t"
+- ".section .fixup,\"ax\"\n\t"
+- "3: mov %4,%0 ; jmp 1b\n\t"
+- ".previous\n\t"
+- ".section __ex_table,\"a\"\n"
+- ".balign 4\n"
+- ".long 2b,3b\n"
+- ".previous\n"
+- : "=r"(ret), "=a"(low), "=d"(high)
+- : "c"(msr), "i"(-EFAULT), "1"(0), "2"(0)); // init eax/edx to 0
+-#endif // VM_X86_64
+ *val = (low | ((u64)(high) << 32));
+
+ return ret;
diff --git a/app-emulation/vmware-modules/files/279-apic.patch b/app-emulation/vmware-modules/files/279-apic.patch
new file mode 100644
index 0000000..66cd459
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-apic.patch
@@ -0,0 +1,12 @@
+diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
+index f1f4b10..c43242f 100644
+--- a/vmmon-only/linux/hostif.c
++++ b/vmmon-only/linux/hostif.c
+@@ -55,6 +55,7 @@
+ #include <linux/kthread.h>
+ #include <linux/wait.h>
+
++#include <asm/apic.h>
+
+ #include "vmware.h"
+ #include "x86apic.h"
diff --git a/app-emulation/vmware-modules/files/279-hardened.patch b/app-emulation/vmware-modules/files/279-hardened.patch
new file mode 100644
index 0000000..cc3e041
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-hardened.patch
@@ -0,0 +1,113 @@
+diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c
+index b21dd44..960c2aa 100644
+--- a/vmmon-only/linux/driver.c
++++ b/vmmon-only/linux/driver.c
+@@ -178,7 +178,22 @@ static struct vm_operations_struct vmuser_mops = {
+ #endif
+ };
+
+-static struct file_operations vmuser_fops;
++static struct file_operations vmuser_fops = {
++ .owner = THIS_MODULE,
++ .poll = LinuxDriverPoll,
++#ifdef HAVE_UNLOCKED_IOCTL
++ .unlocked_ioctl = LinuxDriver_UnlockedIoctl,
++#else
++ .ioctl = LinuxDriver_Ioctl,
++#endif
++#ifdef HAVE_COMPAT_IOCTL
++ .compat_ioctl = LinuxDriver_UnlockedIoctl,
++#endif
++ .open = LinuxDriver_Open,
++ .release = LinuxDriver_Close,
++ .mmap = LinuxDriverMmap
++};
++
+ static struct timer_list tscTimer;
+
+ /*
+@@ -357,27 +372,6 @@ init_module(void)
+ spin_lock_init(&linuxState.pollListLock);
+ #endif
+
+- /*
+- * Initialize the file_operations structure. Because this code is always
+- * compiled as a module, this is fine to do it here and not in a static
+- * initializer.
+- */
+-
+- memset(&vmuser_fops, 0, sizeof vmuser_fops);
+- vmuser_fops.owner = THIS_MODULE;
+- vmuser_fops.poll = LinuxDriverPoll;
+-#ifdef HAVE_UNLOCKED_IOCTL
+- vmuser_fops.unlocked_ioctl = LinuxDriver_UnlockedIoctl;
+-#else
+- vmuser_fops.ioctl = LinuxDriver_Ioctl;
+-#endif
+-#ifdef HAVE_COMPAT_IOCTL
+- vmuser_fops.compat_ioctl = LinuxDriver_UnlockedIoctl;
+-#endif
+- vmuser_fops.open = LinuxDriver_Open;
+- vmuser_fops.release = LinuxDriver_Close;
+- vmuser_fops.mmap = LinuxDriverMmap;
+-
+ #ifdef VMX86_DEVEL
+ devel_init_module();
+ linuxState.minor = 0;
+diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c
+index b12b982..40bd4cf 100644
+--- a/vmnet-only/driver.c
++++ b/vmnet-only/driver.c
+@@ -165,7 +165,22 @@ static long VNetFileOpUnlockedIoctl(struct file * filp,
+ unsigned int iocmd, unsigned long ioarg);
+ #endif
+
+-static struct file_operations vnetFileOps;
++static struct file_operations vnetFileOps = {
++ .owner = THIS_MODULE,
++ .read = VNetFileOpRead,
++ .write = VNetFileOpWrite,
++ .poll = VNetFileOpPoll,
++#ifdef HAVE_UNLOCKED_IOCTL
++ .unlocked_ioctl = VNetFileOpUnlockedIoctl,
++#else
++ .ioctl = VNetFileOpIoctl,
++#endif
++#ifdef HAVE_COMPAT_IOCTL
++ .compat_ioctl = VNetFileOpUnlockedIoctl,
++#endif
++ .open = VNetFileOpOpen,
++ .release = VNetFileOpClose
++};
+
+ /*
+ * Utility functions
+@@ -476,28 +491,6 @@ init_module(void)
+ goto err_proto;
+ }
+
+- /*
+- * Initialize the file_operations structure. Because this code is always
+- * compiled as a module, this is fine to do it here and not in a static
+- * initializer.
+- */
+-
+- memset(&vnetFileOps, 0, sizeof vnetFileOps);
+- vnetFileOps.owner = THIS_MODULE;
+- vnetFileOps.read = VNetFileOpRead;
+- vnetFileOps.write = VNetFileOpWrite;
+- vnetFileOps.poll = VNetFileOpPoll;
+-#ifdef HAVE_UNLOCKED_IOCTL
+- vnetFileOps.unlocked_ioctl = VNetFileOpUnlockedIoctl;
+-#else
+- vnetFileOps.ioctl = VNetFileOpIoctl;
+-#endif
+-#ifdef HAVE_COMPAT_IOCTL
+- vnetFileOps.compat_ioctl = VNetFileOpUnlockedIoctl;
+-#endif
+- vnetFileOps.open = VNetFileOpOpen;
+- vnetFileOps.release = VNetFileOpClose;
+-
+ retval = register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps);
+ if (retval) {
+ LOG(0, (KERN_NOTICE "/dev/vmnet: could not register major device %d\n",
diff --git a/app-emulation/vmware-modules/files/279-linux-3.14.patch b/app-emulation/vmware-modules/files/279-linux-3.14.patch
new file mode 100644
index 0000000..67749c1
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-linux-3.14.patch
@@ -0,0 +1,105 @@
+diff -rupN a/vmblock-only/linux/inode.c b/vmblock-only/linux/inode.c
+--- a/vmblock-only/linux/inode.c 2014-03-31 18:49:14.843009422 +0100
++++ b/vmblock-only/linux/inode.c 2014-03-31 18:50:52.617009677 +0100
+@@ -135,7 +135,8 @@ InodeOpLookup(struct inode *dir, //
+ inode->i_size = INODE_TO_IINFO(inode)->nameLen;
+ inode->i_version = 1;
+ inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
+- inode->i_uid = inode->i_gid = 0;
++ inode->i_uid = GLOBAL_ROOT_UID;
++ inode->i_gid = GLOBAL_ROOT_GID;
+ inode->i_op = &LinkInodeOps;
+
+ d_add(dentry, inode);
+diff -rupN a/vmblock-only/shared/vm_assert.h b/vmblock-only/shared/vm_assert.h
+--- a/vmblock-only/shared/vm_assert.h 2014-03-31 18:49:14.843009422 +0100
++++ b/vmblock-only/shared/vm_assert.h 2014-03-31 18:49:21.388009439 +0100
+@@ -256,6 +256,7 @@ void WarningThrottled(uint32 *count, con
+ __FILE__, __LINE__, __FUNCTION__, \
+ _fix))
+ #else
++ #undef DEPRECATED /* in <linux/printk.h> since 3.14.0 */
+ #define DEPRECATED(_fix) do {} while (0)
+ #endif
+
+diff -rupN a/vmci-only/linux/driver.c b/vmci-only/linux/driver.c
+--- a/vmci-only/linux/driver.c 2014-03-31 18:49:14.840009422 +0100
++++ b/vmci-only/linux/driver.c 2014-03-31 18:49:21.385009439 +0100
+@@ -737,7 +737,7 @@ LinuxDriver_Ioctl(struct inode *inode,
+ goto init_release;
+ }
+
+- user = current_uid();
++ user = from_kuid(current_user_ns(), current_uid());
+ retval = VMCIContext_InitContext(initBlock.cid, initBlock.flags,
+ 0 /* Unused */, vmciLinux->userVersion,
+ &user, &vmciLinux->context);
+diff -rupN a/vmci-only/shared/vm_assert.h b/vmci-only/shared/vm_assert.h
+--- a/vmci-only/shared/vm_assert.h 2014-03-31 18:49:14.841009422 +0100
++++ b/vmci-only/shared/vm_assert.h 2014-03-31 18:49:21.385009439 +0100
+@@ -256,6 +256,7 @@ void WarningThrottled(uint32 *count, con
+ __FILE__, __LINE__, __FUNCTION__, \
+ _fix))
+ #else
++ #undef DEPRECATED /* in <linux/printk.h> since 3.14.0 */
+ #define DEPRECATED(_fix) do {} while (0)
+ #endif
+
+diff -rupN a/vmmon-only/include/vm_assert.h b/vmmon-only/include/vm_assert.h
+--- a/vmmon-only/include/vm_assert.h 2014-03-31 18:49:14.835009422 +0100
++++ b/vmmon-only/include/vm_assert.h 2014-03-31 18:49:21.380009439 +0100
+@@ -256,6 +256,7 @@ void WarningThrottled(uint32 *count, con
+ __FILE__, __LINE__, __FUNCTION__, \
+ _fix))
+ #else
++ #undef DEPRECATED /* in <linux/printk.h> since 3.14.0 */
+ #define DEPRECATED(_fix) do {} while (0)
+ #endif
+
+diff -rupN a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c
+--- a/vmmon-only/linux/driver.c 2014-03-31 18:49:14.834009422 +0100
++++ b/vmmon-only/linux/driver.c 2014-03-31 18:49:21.379009439 +0100
+@@ -1338,7 +1338,9 @@ LinuxDriverReadTSC(void *data, // OUT:
+ *-----------------------------------------------------------------------------
+ */
+
+-__attribute__((always_inline)) static Bool
++#include <linux/compiler-gcc.h>
++
++__always_inline static Bool
+ LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
+ {
+ TSCDelta tscDelta;
+diff -rupN a/vmnet-only/vm_assert.h b/vmnet-only/vm_assert.h
+--- a/vmnet-only/vm_assert.h 2014-03-31 18:49:14.845009422 +0100
++++ b/vmnet-only/vm_assert.h 2014-03-31 18:49:21.390009439 +0100
+@@ -256,6 +256,7 @@ void WarningThrottled(uint32 *count, con
+ __FILE__, __LINE__, __FUNCTION__, \
+ _fix))
+ #else
++ #undef DEPRECATED /* in <linux/printk.h> since 3.14.0 */
+ #define DEPRECATED(_fix) do {} while (0)
+ #endif
+
+diff -rupN a/vsock-only/linux/af_vsock.c b/vsock-only/linux/af_vsock.c
+--- a/vsock-only/linux/af_vsock.c 2014-03-31 18:49:14.837009422 +0100
++++ b/vsock-only/linux/af_vsock.c 2014-03-31 18:49:21.381009439 +0100
+@@ -2869,7 +2869,7 @@ __VSockVmciCreate(struct net *net,
+ vsk->connectTimeout = psk->connectTimeout;
+ } else {
+ vsk->trusted = capable(CAP_NET_ADMIN);
+- vsk->owner = current_uid();
++ vsk->owner = from_kuid(current_user_ns(), current_uid());
+ vsk->queuePairSize = VSOCK_DEFAULT_QP_SIZE;
+ vsk->queuePairMinSize = VSOCK_DEFAULT_QP_SIZE_MIN;
+ vsk->queuePairMaxSize = VSOCK_DEFAULT_QP_SIZE_MAX;
+diff -rupN a/vsock-only/shared/vm_assert.h b/vsock-only/shared/vm_assert.h
+--- a/vsock-only/shared/vm_assert.h 2014-03-31 18:49:14.839009422 +0100
++++ b/vsock-only/shared/vm_assert.h 2014-03-31 18:49:21.382009439 +0100
+@@ -256,6 +256,7 @@ void WarningThrottled(uint32 *count, con
+ __FILE__, __LINE__, __FUNCTION__, \
+ _fix))
+ #else
++ #undef DEPRECATED /* in <linux/printk.h> since 3.14.0 */
+ #define DEPRECATED(_fix) do {} while (0)
+ #endif \ No newline at end of file
diff --git a/app-emulation/vmware-modules/files/279-makefile-include.patch b/app-emulation/vmware-modules/files/279-makefile-include.patch
new file mode 100644
index 0000000..39c3000
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-makefile-include.patch
@@ -0,0 +1,65 @@
+diff --git a/vmblock-only/Makefile.kernel b/vmblock-only/Makefile.kernel
+index ab7a727..e3ec9d2 100644
+--- a/vmblock-only/Makefile.kernel
++++ b/vmblock-only/Makefile.kernel
+@@ -19,7 +19,7 @@
+
+ INCLUDE += -I$(SRCROOT)/include
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachector.c, -DVMW_KMEMCR_CTOR_HAS_3_ARGS, )
+diff --git a/vmci-only/Makefile.kernel b/vmci-only/Makefile.kernel
+index ba343ee..861ea83 100644
+--- a/vmci-only/Makefile.kernel
++++ b/vmci-only/Makefile.kernel
+@@ -21,7 +21,7 @@ CC_OPTS += -DVMCI
+
+ INCLUDE += -I$(SRCROOT)/shared -I$(SRCROOT)/common -I$(SRCROOT)/linux
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ obj-m += $(DRIVER).o
+
+diff --git a/vmmon-only/Makefile.kernel b/vmmon-only/Makefile.kernel
+index 8770d1d..c4746c3 100644
+--- a/vmmon-only/Makefile.kernel
++++ b/vmmon-only/Makefile.kernel
+@@ -22,7 +22,7 @@ CC_OPTS += -DVMMON -DVMCORE
+ INCLUDE := -I$(SRCROOT)/include -I$(SRCROOT)/common -I$(SRCROOT)/linux \
+ -I$(SRCROOT)/vmcore
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/smpcall.c, -DVMW_HAVE_SMP_CALL_3ARG, )
+
+diff --git a/vmnet-only/Makefile.kernel b/vmnet-only/Makefile.kernel
+index d1e3133..665d428 100644
+--- a/vmnet-only/Makefile.kernel
++++ b/vmnet-only/Makefile.kernel
+@@ -19,7 +19,7 @@
+
+ INCLUDE := -I$(SRCROOT)
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_net.c,-DVMW_NETDEV_HAS_NET, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_dev_net.c,-DVMW_NETDEV_HAS_DEV_NET, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/nfhook_uses_skb.c,-DVMW_NFHOOK_USES_SKB, )
+diff --git a/vsock-only/Makefile.kernel b/vsock-only/Makefile.kernel
+index b4629ee..264b8cb 100644
+--- a/vsock-only/Makefile.kernel
++++ b/vsock-only/Makefile.kernel
+@@ -25,7 +25,7 @@ INCLUDE += -I$(SRCROOT)/include
+ INCLUDE += -I$(SRCROOT)/linux
+ INCLUDE += -I$(SRCROOT)/common
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+ EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/netcreate_num_params.c, -DVMW_NETCREATE_KERNARG, )
+
+
diff --git a/app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch b/app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch
new file mode 100644
index 0000000..1a647a3
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-makefile-kernel-dir.patch
@@ -0,0 +1,85 @@
+diff --git a/vmblock-only/Makefile b/vmblock-only/Makefile
+index 2b81323..746c8b8 100644
+--- a/vmblock-only/Makefile
++++ b/vmblock-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmblock
+ PRODUCT := ws
+diff --git a/vmci-only/Makefile b/vmci-only/Makefile
+index 8e9c5be..6ec828b 100644
+--- a/vmci-only/Makefile
++++ b/vmci-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmci
+ PRODUCT := ws
+diff --git a/vmmon-only/Makefile b/vmmon-only/Makefile
+index 5bd867b..91a83d4 100644
+--- a/vmmon-only/Makefile
++++ b/vmmon-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmmon
+ PRODUCT := @@PRODUCT@@
+diff --git a/vmnet-only/Makefile b/vmnet-only/Makefile
+index d4eb73c..c7c6d38 100644
+--- a/vmnet-only/Makefile
++++ b/vmnet-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vmnet
+ PRODUCT := @@PRODUCT@@
+diff --git a/vsock-only/Makefile b/vsock-only/Makefile
+index 93dd61d..9765696 100644
+--- a/vsock-only/Makefile
++++ b/vsock-only/Makefile
+@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
+ ifdef LINUXINCLUDE
+ HEADER_DIR = $(LINUXINCLUDE)
+ else
+-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
++HEADER_DIR = $(KERNEL_DIR)
+ endif
+
+-BUILD_DIR = $(HEADER_DIR)/..
++BUILD_DIR = $(KBUILD_OUTPUT)
+
+ DRIVER := vsock
+ PRODUCT := ws
diff --git a/app-emulation/vmware-modules/files/279-netdevice.patch b/app-emulation/vmware-modules/files/279-netdevice.patch
new file mode 100644
index 0000000..35231a3
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-netdevice.patch
@@ -0,0 +1,24 @@
+diff --git a/vmnet-only/compat_netdevice.h b/vmnet-only/compat_netdevice.h
+index 7a56304..9ff4548 100644
+--- a/vmnet-only/compat_netdevice.h
++++ b/vmnet-only/compat_netdevice.h
+@@ -47,6 +47,19 @@
+ # define net_device device
+ #endif
+
++/* it looks like these have been removed from the kernel 3.1
++ * probably because the "transition" is considered complete.
++ * so to keep this source compatible we just redefine them like they were
++ * previously
++ */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0)
++#define HAVE_ALLOC_NETDEV /* feature macro: alloc_xxxdev
++ functions are available. */
++#define HAVE_FREE_NETDEV /* free_netdev() */
++#define HAVE_NETDEV_PRIV /* netdev_priv() */
++#define HAVE_NETIF_QUEUE
++#define HAVE_NET_DEVICE_OPS
++#endif
+
+ /*
+ * SET_MODULE_OWNER appeared sometime during 2.3.x. It was setting
diff --git a/app-emulation/vmware-modules/files/279-putname.patch b/app-emulation/vmware-modules/files/279-putname.patch
new file mode 100644
index 0000000..6e76130
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-putname.patch
@@ -0,0 +1,13 @@
+diff --git a/vmblock-only/linux/control.c b/vmblock-only/linux/control.c
+index 79716bd..2dd83fe 100644
+--- a/vmblock-only/linux/control.c
++++ b/vmblock-only/linux/control.c
+@@ -293,7 +293,7 @@ ExecuteBlockOp(const char __user *buf, // IN: buffer with name
+
+ retval = i < 0 ? -EINVAL : blockOp(name, blocker);
+
+- putname(name);
++ __putname(name);
+
+ return retval;
+ }
diff --git a/app-emulation/vmware-modules/files/279-vmblock-3.11.patch b/app-emulation/vmware-modules/files/279-vmblock-3.11.patch
new file mode 100644
index 0000000..1f7b869
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-vmblock-3.11.patch
@@ -0,0 +1,89 @@
+--- a/vmblock-only/linux/file.c
++++ b/vmblock-only/linux/file.c
+@@ -38,46 +38,6 @@ typedef u64 inode_num_t;
+ typedef ino_t inode_num_t;
+ #endif
+
+-/* Specifically for our filldir_t callback */
+-typedef struct FilldirInfo {
+- filldir_t filldir;
+- void *dirent;
+-} FilldirInfo;
+-
+-
+-/*
+- *----------------------------------------------------------------------------
+- *
+- * Filldir --
+- *
+- * Callback function for readdir that we use in place of the one provided.
+- * This allows us to specify that each dentry is a symlink, but pass through
+- * everything else to the original filldir function.
+- *
+- * Results:
+- * Original filldir's return value.
+- *
+- * Side effects:
+- * Directory information gets copied to user's buffer.
+- *
+- *----------------------------------------------------------------------------
+- */
+-
+-static int
+-Filldir(void *buf, // IN: Dirent buffer passed from FileOpReaddir
+- const char *name, // IN: Dirent name
+- int namelen, // IN: len of dirent's name
+- loff_t offset, // IN: Offset
+- inode_num_t ino, // IN: Inode number of dirent
+- unsigned int d_type) // IN: Type of file
+-{
+- FilldirInfo *info = buf;
+-
+- /* Specify DT_LNK regardless */
+- return info->filldir(info->dirent, name, namelen, offset, ino, DT_LNK);
+-}
+-
+-
+ /* File operations */
+
+ /*
+@@ -166,11 +126,10 @@ FileOpOpen(struct inode *inode, // IN
+
+ static int
+ FileOpReaddir(struct file *file, // IN
+- void *dirent, // IN
+- filldir_t filldir) // IN
++ struct dir_context *ctx) // IN
+ {
+ int ret;
+- FilldirInfo info;
++
+ struct file *actualFile;
+
+ if (!file) {
+@@ -184,12 +143,10 @@ FileOpReaddir(struct file *file, // IN
+ return -EINVAL;
+ }
+
+- info.filldir = filldir;
+- info.dirent = dirent;
+-
+- actualFile->f_pos = file->f_pos;
+- ret = vfs_readdir(actualFile, Filldir, &info);
+- file->f_pos = actualFile->f_pos;
++ /* Ricky Wong Yung Fei:
++ * Manipulation of pos is now handled internally by iterate_dir().
++ */
++ ret = iterate_dir(actualFile, ctx);
+
+ return ret;
+ }
+@@ -237,7 +194,7 @@ FileOpRelease(struct inode *inode, // IN
+
+
+ struct file_operations RootFileOps = {
+- .readdir = FileOpReaddir,
++ .iterate = FileOpReaddir,
+ .open = FileOpOpen,
+ .release = FileOpRelease,
+ }; \ No newline at end of file
diff --git a/app-emulation/vmware-modules/files/279-vmblock-3.12.patch b/app-emulation/vmware-modules/files/279-vmblock-3.12.patch
new file mode 100644
index 0000000..33ce462
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-vmblock-3.12.patch
@@ -0,0 +1,69 @@
+--- a/vmblock-only/linux/control.c 2013-10-03 04:29:47.471339204 -0400
++++ b/vmblock-only/linux/control.c 2013-10-03 04:31:56.607334636 -0400
+@@ -283,7 +283,7 @@
+ int i;
+ int retval;
+
+- name = getname(buf);
++ name = (char*)getname(buf)->name;
+ if (IS_ERR(name)) {
+ return PTR_ERR(name);
+ }
+--- a/vmblock-only/linux/dentry.c 2013-10-03 04:29:47.471339204 -0400
++++ b/vmblock-only/linux/dentry.c 2013-10-03 04:31:56.607334636 -0400
+@@ -32,7 +32,7 @@
+ #include "block.h"
+
+
+-static int DentryOpRevalidate(struct dentry *dentry, struct nameidata *nd);
++static int DentryOpRevalidate(struct dentry *dentry, unsigned int flags);
+
+ struct dentry_operations LinkDentryOps = {
+ .d_revalidate = DentryOpRevalidate,
+@@ -60,7 +60,7 @@
+
+ static int
+ DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
+- struct nameidata *nd) // IN: lookup flags & intent
++ unsigned int flags) // IN: lookup flags & intent
+ {
+ VMBlockInodeInfo *iinfo;
+ struct nameidata actualNd;
+@@ -101,7 +101,7 @@
+ if (actualDentry &&
+ actualDentry->d_op &&
+ actualDentry->d_op->d_revalidate) {
+- return actualDentry->d_op->d_revalidate(actualDentry, nd);
++ return actualDentry->d_op->d_revalidate(actualDentry, flags);
+ }
+
+ if (compat_path_lookup(iinfo->name, 0, &actualNd)) {
+--- a/vmblock-only/linux/inode.c 2013-10-03 04:29:47.471339204 -0400
++++ b/vmblock-only/linux/inode.c 2013-10-03 04:31:56.607334636 -0400
+@@ -36,7 +36,7 @@
+
+ /* Inode operations */
+ static struct dentry *InodeOpLookup(struct inode *dir,
+- struct dentry *dentry, struct nameidata *nd);
++ struct dentry *dentry, unsigned int flags);
+ static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int buflen);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
+ static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
+@@ -75,7 +75,7 @@
+ static struct dentry *
+ InodeOpLookup(struct inode *dir, // IN: parent directory's inode
+ struct dentry *dentry, // IN: dentry to lookup
+- struct nameidata *nd) // IN: lookup intent and information
++ unsigned int flags) // IN: lookup intent and information
+ {
+ char *filename;
+ struct inode *inode;
+@@ -221,7 +221,7 @@
+ goto out;
+ }
+
+- ret = vfs_follow_link(nd, iinfo->name);
++ nd_set_link(nd, iinfo->name);
+
+ out:
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13) \ No newline at end of file
diff --git a/app-emulation/vmware-modules/files/279-vmblock.patch b/app-emulation/vmware-modules/files/279-vmblock.patch
new file mode 100644
index 0000000..0daf603
--- /dev/null
+++ b/app-emulation/vmware-modules/files/279-vmblock.patch
@@ -0,0 +1,23 @@
+diff -ruN work.orig/vmblock-only/linux/control.c work/vmblock-only/linux/control.c
+--- work.orig/vmblock-only/linux/control.c 2013-11-02 18:05:39.960226399 +0100
++++ work/vmblock-only/linux/control.c 2013-11-02 18:09:11.760231432 +0100
+@@ -208,17 +208,14 @@
+ VMBlockSetProcEntryOwner(controlProcMountpoint);
+
+ /* Create /proc/fs/vmblock/dev */
+- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
+- VMBLOCK_CONTROL_MODE,
+- controlProcDirEntry);
+- if (!controlProcEntry) {
++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME, VMBLOCK_CONTROL_MODE, controlProcDirEntry, &ControlFileOps);
++ if (controlProcEntry == NULL) {
+ Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
+ remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
+ remove_proc_entry(VMBLOCK_CONTROL_PROC_DIRNAME, NULL);
+ return -EINVAL;
+ }
+
+- controlProcEntry->proc_fops = &ControlFileOps;
+ return 0;
+ }
+
diff --git a/app-emulation/vmware-modules/files/hardened.patch b/app-emulation/vmware-modules/files/hardened.patch
new file mode 100644
index 0000000..ea1b0f3
--- /dev/null
+++ b/app-emulation/vmware-modules/files/hardened.patch
@@ -0,0 +1,170 @@
+diff --git a/vmci-only/linux/driver.c b/vmci-only/linux/driver.c
+index 921f25c..41a39e3 100644
+--- a/vmci-only/linux/driver.c
++++ b/vmci-only/linux/driver.c
+@@ -241,7 +241,24 @@ static unsigned int LinuxDriverPoll(struct file *file, poll_table *wait);
+ #define LinuxDriverUnlockIoctlPerFD(mutex) do {} while (0)
+ #endif
+
+-static struct file_operations vmuser_fops;
++/*
++ * Moved file operations initialize here because of incompatibilites
++ * with Gentoo hardened profile/hardend Linux 3.
++ */
++static struct file_operations vmuser_fops = {
++ .owner = THIS_MODULE,
++ .poll = LinuxDriverPoll,
++#ifdef HAVE_UNLOCKED_IOCTL
++ .unlocked_ioctl = LinuxDriver_UnlockedIoctl,
++#else
++ .ioctl = LinuxDriver_Ioctl,
++#endif
++#ifdef HAVE_COMPAT_IOCTL
++ .compat_ioctl = LinuxDriver_UnlockedIoctl,
++#endif
++ .open = LinuxDriver_Open,
++ .release = LinuxDriver_Close
++};
+
+
+ /*
+@@ -378,26 +395,6 @@ vmci_host_init(void)
+ return -ENOMEM;
+ }
+
+- /*
+- * Initialize the file_operations structure. Because this code is always
+- * compiled as a module, this is fine to do it here and not in a static
+- * initializer.
+- */
+-
+- memset(&vmuser_fops, 0, sizeof vmuser_fops);
+- vmuser_fops.owner = THIS_MODULE;
+- vmuser_fops.poll = LinuxDriverPoll;
+-#ifdef HAVE_UNLOCKED_IOCTL
+- vmuser_fops.unlocked_ioctl = LinuxDriver_UnlockedIoctl;
+-#else
+- vmuser_fops.ioctl = LinuxDriver_Ioctl;
+-#endif
+-#ifdef HAVE_COMPAT_IOCTL
+- vmuser_fops.compat_ioctl = LinuxDriver_UnlockedIoctl;
+-#endif
+- vmuser_fops.open = LinuxDriver_Open;
+- vmuser_fops.release = LinuxDriver_Close;
+-
+ sprintf(linuxState.deviceName, "vmci");
+ linuxState.major = 10;
+ linuxState.misc.minor = MISC_DYNAMIC_MINOR;
+diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c
+index b21dd44..960c2aa 100644
+--- a/vmmon-only/linux/driver.c
++++ b/vmmon-only/linux/driver.c
+@@ -178,7 +178,22 @@ static struct vm_operations_struct vmuser_mops = {
+ #endif
+ };
+
+-static struct file_operations vmuser_fops;
++static struct file_operations vmuser_fops = {
++ .owner = THIS_MODULE,
++ .poll = LinuxDriverPoll,
++#ifdef HAVE_UNLOCKED_IOCTL
++ .unlocked_ioctl = LinuxDriver_UnlockedIoctl,
++#else
++ .ioctl = LinuxDriver_Ioctl,
++#endif
++#ifdef HAVE_COMPAT_IOCTL
++ .compat_ioctl = LinuxDriver_UnlockedIoctl,
++#endif
++ .open = LinuxDriver_Open,
++ .release = LinuxDriver_Close,
++ .mmap = LinuxDriverMmap
++};
++
+ static struct timer_list tscTimer;
+
+ /*
+@@ -357,27 +372,6 @@ init_module(void)
+ spin_lock_init(&linuxState.pollListLock);
+ #endif
+
+- /*
+- * Initialize the file_operations structure. Because this code is always
+- * compiled as a module, this is fine to do it here and not in a static
+- * initializer.
+- */
+-
+- memset(&vmuser_fops, 0, sizeof vmuser_fops);
+- vmuser_fops.owner = THIS_MODULE;
+- vmuser_fops.poll = LinuxDriverPoll;
+-#ifdef HAVE_UNLOCKED_IOCTL
+- vmuser_fops.unlocked_ioctl = LinuxDriver_UnlockedIoctl;
+-#else
+- vmuser_fops.ioctl = LinuxDriver_Ioctl;
+-#endif
+-#ifdef HAVE_COMPAT_IOCTL
+- vmuser_fops.compat_ioctl = LinuxDriver_UnlockedIoctl;
+-#endif
+- vmuser_fops.open = LinuxDriver_Open;
+- vmuser_fops.release = LinuxDriver_Close;
+- vmuser_fops.mmap = LinuxDriverMmap;
+-
+ #ifdef VMX86_DEVEL
+ devel_init_module();
+ linuxState.minor = 0;
+diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c
+index b12b982..40bd4cf 100644
+--- a/vmnet-only/driver.c
++++ b/vmnet-only/driver.c
+@@ -165,7 +165,22 @@ static long VNetFileOpUnlockedIoctl(struct file * filp,
+ unsigned int iocmd, unsigned long ioarg);
+ #endif
+
+-static struct file_operations vnetFileOps;
++static struct file_operations vnetFileOps = {
++ .owner = THIS_MODULE,
++ .read = VNetFileOpRead,
++ .write = VNetFileOpWrite,
++ .poll = VNetFileOpPoll,
++#ifdef HAVE_UNLOCKED_IOCTL
++ .unlocked_ioctl = VNetFileOpUnlockedIoctl,
++#else
++ .ioctl = VNetFileOpIoctl,
++#endif
++#ifdef HAVE_COMPAT_IOCTL
++ .compat_ioctl = VNetFileOpUnlockedIoctl,
++#endif
++ .open = VNetFileOpOpen,
++ .release = VNetFileOpClose
++};
+
+ /*
+ * Utility functions
+@@ -476,28 +491,6 @@ init_module(void)
+ goto err_proto;
+ }
+
+- /*
+- * Initialize the file_operations structure. Because this code is always
+- * compiled as a module, this is fine to do it here and not in a static
+- * initializer.
+- */
+-
+- memset(&vnetFileOps, 0, sizeof vnetFileOps);
+- vnetFileOps.owner = THIS_MODULE;
+- vnetFileOps.read = VNetFileOpRead;
+- vnetFileOps.write = VNetFileOpWrite;
+- vnetFileOps.poll = VNetFileOpPoll;
+-#ifdef HAVE_UNLOCKED_IOCTL
+- vnetFileOps.unlocked_ioctl = VNetFileOpUnlockedIoctl;
+-#else
+- vnetFileOps.ioctl = VNetFileOpIoctl;
+-#endif
+-#ifdef HAVE_COMPAT_IOCTL
+- vnetFileOps.compat_ioctl = VNetFileOpUnlockedIoctl;
+-#endif
+- vnetFileOps.open = VNetFileOpOpen;
+- vnetFileOps.release = VNetFileOpClose;
+-
+ retval = register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps);
+ if (retval) {
+ LOG(0, (KERN_NOTICE "/dev/vmnet: could not register major device %d\n",
diff --git a/app-emulation/vmware-modules/metadata.xml b/app-emulation/vmware-modules/metadata.xml
new file mode 100644
index 0000000..313c162
--- /dev/null
+++ b/app-emulation/vmware-modules/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>vmware</herd>
+ <longdescription>
+ VMware kernel modules.
+ </longdescription>
+ <use>
+ <flag name="pax_kernel">Apply patch needed for pax enabled kernels</flag>
+ <flag name="vmci">Build the Virtual Machine Communication Interface module; disable this if you want to use the module from the mainline kernel</flag>
+ <flag name="vsock">Build the VMware VMCI transport for Virtual Sockets; disable this if you want to use the module from the mainline kernel</flag>
+ </use>
+</pkgmetadata>
diff --git a/app-emulation/vmware-modules/vmware-modules-271.3.ebuild b/app-emulation/vmware-modules/vmware-modules-271.3.ebuild
new file mode 100644
index 0000000..6e1afea
--- /dev/null
+++ b/app-emulation/vmware-modules/vmware-modules-271.3.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-271.3.ebuild,v 1.1 2014/04/12 18:28:49 dilfridge Exp $
+
+EAPI="4"
+
+inherit eutils flag-o-matic linux-info linux-mod user versionator udev
+
+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="pax_kernel"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ || ( =app-emulation/vmware-player-5.0.${PV_MINOR}*
+ =app-emulation/vmware-workstation-9.0.${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}-netdevice.patch"
+ use pax_kernel && epatch "${FILESDIR}/hardened.patch"
+ epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
+ kernel_is ge 3 7 0 && epatch "${FILESDIR}/${PV_MAJOR}-putname.patch"
+ kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-3.10.0.patch"
+
+ # Allow user patches so they can support RC kernels and whatever else
+ epatch_user
+}
+
+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
+ udev_dorules "${udevrules}"
+}
diff --git a/app-emulation/vmware-modules/vmware-modules-279.1-r1.ebuild b/app-emulation/vmware-modules/vmware-modules-279.1-r1.ebuild
new file mode 100644
index 0000000..b15e0e8
--- /dev/null
+++ b/app-emulation/vmware-modules/vmware-modules-279.1-r1.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-279.1-r1.ebuild,v 1.1 2014/04/12 20:13:46 dilfridge Exp $
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info linux-mod user versionator udev
+
+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="pax_kernel +vmci +vsock"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ || ( =app-emulation/vmware-player-6.0.${PV_MINOR}*
+ =app-emulation/vmware-workstation-10.0.${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
+ if use vmci ; then
+ CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI"
+ fi
+ if use vsock ; then
+ CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI_VSOCKETS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI_VSOCKETS"
+ fi
+
+ linux-info_pkg_setup
+
+ linux-mod_pkg_setup
+
+ VMWARE_GROUP=${VMWARE_GROUP:-vmware}
+
+ VMWARE_MODULE_LIST_ALL="vmblock vmmon vmnet vmci vsock"
+ VMWARE_MODULE_LIST="vmblock vmmon vmnet"
+ use vmci && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmci"
+ use vsock && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} 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_ALL}; 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}-netdevice.patch"
+ use pax_kernel && epatch "${FILESDIR}/279-hardened.patch"
+ epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
+ kernel_is ge 3 7 0 && epatch "${FILESDIR}/${PV_MAJOR}-putname.patch"
+ kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock.patch"
+
+ # Allow user patches so they can support RC kernels and whatever else
+ epatch_user
+}
+
+src_install() {
+ linux-mod_src_install
+ local udevrules="${T}/60-vmware.rules"
+ cat > "${udevrules}" <<-EOF
+ KERNEL=="vmci", GROUP="vmware", MODE=660
+ KERNEL=="vmw_vmci", GROUP="vmware", MODE=660
+ KERNEL=="vmmon", GROUP="vmware", MODE=660
+ KERNEL=="vsock", GROUP="vmware", MODE=660
+ EOF
+ udev_dorules "${udevrules}"
+}
diff --git a/app-emulation/vmware-modules/vmware-modules-279.2.ebuild b/app-emulation/vmware-modules/vmware-modules-279.2.ebuild
new file mode 100644
index 0000000..b3de38e
--- /dev/null
+++ b/app-emulation/vmware-modules/vmware-modules-279.2.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-279.2.ebuild,v 1.1 2014/04/19 10:10:25 dilfridge Exp $
+
+EAPI=5
+
+inherit eutils flag-o-matic linux-info linux-mod user versionator udev
+
+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="pax_kernel +vmci +vsock"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ || ( =app-emulation/vmware-player-6.0.${PV_MINOR}*
+ =app-emulation/vmware-workstation-10.0.${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
+ if use vmci ; then
+ CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI"
+ fi
+ if use vsock ; then
+ CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI_VSOCKETS"
+ else
+ CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI_VSOCKETS"
+ fi
+
+ linux-info_pkg_setup
+
+ linux-mod_pkg_setup
+
+ VMWARE_GROUP=${VMWARE_GROUP:-vmware}
+
+ VMWARE_MODULE_LIST_ALL="vmblock vmmon vmnet vmci vsock"
+ VMWARE_MODULE_LIST="vmblock vmmon vmnet"
+ use vmci && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmci"
+ use vsock && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} 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_ALL}; 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}-netdevice.patch"
+ use pax_kernel && epatch "${FILESDIR}/279-hardened.patch"
+ epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
+ kernel_is ge 3 7 0 && epatch "${FILESDIR}/${PV_MAJOR}-putname.patch"
+ kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock.patch"
+ kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock-3.11.patch"
+ kernel_is ge 3 12 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock-3.12.patch"
+ kernel_is ge 3 14 0 && epatch "${FILESDIR}/${PV_MAJOR}-linux-3.14.patch"
+ # Allow user patches so they can support RC kernels and whatever else
+ epatch_user
+}
+
+src_install() {
+ linux-mod_src_install
+ local udevrules="${T}/60-vmware.rules"
+ cat > "${udevrules}" <<-EOF
+ KERNEL=="vmci", GROUP="vmware", MODE=660
+ KERNEL=="vmw_vmci", GROUP="vmware", MODE=660
+ KERNEL=="vmmon", GROUP="vmware", MODE=660
+ KERNEL=="vsock", GROUP="vmware", MODE=660
+ EOF
+ udev_dorules "${udevrules}"
+} \ No newline at end of file