diff options
author | Vadim Kuznetsov <vadimk@gentoo.org> | 2009-06-14 15:27:10 +0000 |
---|---|---|
committer | Vadim Kuznetsov <vadimk@gentoo.org> | 2009-06-14 15:27:10 +0000 |
commit | df690027a3d2b70cec728f6eaeae21699f4176a4 (patch) | |
tree | c18ebabbc6ecfa7889e708aebecd760655aa9abf /app-emulation | |
parent | Remove no longer needed sed. Add configure phase with new QT_ONLY cmake flag.... (diff) | |
download | gentoo-2-df690027a3d2b70cec728f6eaeae21699f4176a4.tar.gz gentoo-2-df690027a3d2b70cec728f6eaeae21699f4176a4.tar.bz2 gentoo-2-df690027a3d2b70cec728f6eaeae21699f4176a4.zip |
Bugs 268099, 270150, 273750. New ebuild without vmware-mod eclass.
(Portage version: 2.2_rc33/cvs/Linux x86_64)
Diffstat (limited to 'app-emulation')
6 files changed, 493 insertions, 2 deletions
diff --git a/app-emulation/vmware-modules/ChangeLog b/app-emulation/vmware-modules/ChangeLog index 6ddd8f4f69ae..1309acc1b508 100644 --- a/app-emulation/vmware-modules/ChangeLog +++ b/app-emulation/vmware-modules/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for app-emulation/vmware-modules # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/ChangeLog,v 1.43 2009/05/16 07:33:20 ikelos Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/ChangeLog,v 1.44 2009/06/14 15:27:10 vadimk Exp $ + +*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) diff --git a/app-emulation/vmware-modules/files/1.0.0.24-kernel-2.6.29.patch b/app-emulation/vmware-modules/files/1.0.0.24-kernel-2.6.29.patch new file mode 100644 index 000000000000..cd8aeb9eb247 --- /dev/null +++ b/app-emulation/vmware-modules/files/1.0.0.24-kernel-2.6.29.patch @@ -0,0 +1,288 @@ +diff -ur vmware-modules-1.0.0.24.0/work/vmblock-only/Makefile.kernel vmware-modules-1.0.0.24/work/vmblock-only/Makefile.kernel +--- vmware-modules-1.0.0.24.0/work/vmblock-only/Makefile.kernel 2009-03-27 08:05:21.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vmblock-only/Makefile.kernel 2009-04-07 16:14:55.000000000 +0400 +@@ -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, $(SRCROOT)/autoconf/setnice.c, -DVMW_HAVE_SET_USER_NICE, ) + EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/epoll.c, -DVMW_HAVE_EPOLL, ) +diff -ur vmware-modules-1.0.0.24.0/work/vmci-only/Makefile.kernel vmware-modules-1.0.0.24/work/vmci-only/Makefile.kernel +--- vmware-modules-1.0.0.24.0/work/vmci-only/Makefile.kernel 2009-03-27 08:05:22.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vmci-only/Makefile.kernel 2009-04-07 16:14:55.000000000 +0400 +@@ -21,7 +21,7 @@ + + INCLUDE := -I$(SRCROOT)/include -I$(SRCROOT)/common -I$(SRCROOT)/linux + +-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) ++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE) + + EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/epoll.c, -DVMW_HAVE_EPOLL, ) + +diff -ur vmware-modules-1.0.0.24.0/work/vmmon-only/linux/driver.c vmware-modules-1.0.0.24/work/vmmon-only/linux/driver.c +--- vmware-modules-1.0.0.24.0/work/vmmon-only/linux/driver.c 2009-03-27 08:05:19.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vmmon-only/linux/driver.c 2009-04-07 16:15:11.000000000 +0400 +@@ -1984,10 +1984,10 @@ + } + + case IOCTL_VMX86_ALLOW_CORE_DUMP: +- if (current->euid == current->uid && +- current->fsuid == current->uid && +- current->egid == current->gid && +- current->fsgid == current->gid) { ++ if (current_euid() == current_uid() && ++ current_fsuid() == current_uid() && ++ current_egid() == current_gid() && ++ current_fsgid() == current_gid()) { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) || defined(MMF_DUMPABLE) + /* Dump core, readable by user. */ + set_bit(MMF_DUMPABLE, ¤t->mm->flags); +diff -ur vmware-modules-1.0.0.24.0/work/vmmon-only/linux/hostif.c vmware-modules-1.0.0.24/work/vmmon-only/linux/hostif.c +--- vmware-modules-1.0.0.24.0/work/vmmon-only/linux/hostif.c 2009-03-27 08:05:18.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vmmon-only/linux/hostif.c 2009-04-07 16:19:05.000000000 +0400 +@@ -3424,6 +3424,82 @@ + } + + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) ++static inline ++void compat_cap_raise(int cap) ++{ ++ cap_raise(current->cap_effective, cap); ++} ++#else ++static ++void compat_cap_raise(int cap) ++{ ++ struct cred *new_cred; ++ ++ new_cred = prepare_creds(); ++ if (new_cred != NULL) ++ { ++ cap_raise(new_cred->cap_effective, cap); ++ commit_creds(new_cred); ++ } ++ else ++ { ++ Log("compat_cap_raise(%d) prepare_creds(): Out of memory\n", cap); ++ } ++} ++#endif ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) ++static inline ++void compat_cap_lower(int cap) ++{ ++ cap_lower(current->cap_effective, cap); ++} ++#else ++static ++void compat_cap_lower(int cap) ++{ ++ struct cred *new_cred; ++ ++ new_cred = prepare_creds(); ++ if (new_cred != NULL) ++ { ++ cap_lower(new_cred->cap_effective, cap); ++ commit_creds(new_cred); ++ } ++ else ++ { ++ Log("compat_cap_lower(%d) prepare_creds(): Out of memory\n", cap); ++ } ++} ++#endif ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) ++static inline ++void compat_set_fsuid(int fsuid) ++{ ++ current->fsuid = fsuid; ++} ++#else ++static ++void compat_set_fsuid(int fsuid) ++{ ++ struct cred *new_cred; ++ ++ new_cred = prepare_creds(); ++ if (new_cred != NULL) ++ { ++ new_cred->fsuid = fsuid; ++ commit_creds(new_cred); ++ } ++ else ++ { ++ Log("compat_set_fsuid(%d) prepare_creds(): Out of memory\n", fsuid); ++ } ++} ++#endif ++ ++ + /* + *---------------------------------------------------------------------- + * +@@ -3456,7 +3532,7 @@ + oldFS = get_fs(); + set_fs(KERNEL_DS); + compat_allow_signal(SIGKILL); +- cap_raise(current->cap_effective, CAP_SYS_RESOURCE); ++ compat_cap_raise(CAP_SYS_RESOURCE); + compat_set_user_nice(current, linuxState.fastClockPriority); + + while (linuxState.fastClockRate > HZ + HZ/16) { +@@ -3580,19 +3656,19 @@ + Bool cap; + long pid; + +- fsuid = current->fsuid; +- current->fsuid = 0; ++ fsuid = current_fsuid(); ++ compat_set_fsuid(0); + filp = filp_open("/dev/rtc", O_RDONLY, 0); +- current->fsuid = fsuid; ++ compat_set_fsuid(fsuid); + if (IS_ERR(filp)) { + Warning("/dev/rtc open failed: %d\n", (int)(VA)filp); + return -(int)(VA)filp; + } +- cap = cap_raised(current->cap_effective, CAP_SYS_RESOURCE); +- cap_raise(current->cap_effective, CAP_SYS_RESOURCE); ++ cap = cap_raised(current_cap(), CAP_SYS_RESOURCE); ++ compat_cap_raise(CAP_SYS_RESOURCE); + res = HostIFDoIoctl(filp, RTC_PIE_ON, 0); + if (!cap) { +- cap_lower(current->cap_effective, CAP_SYS_RESOURCE); ++ compat_cap_lower(CAP_SYS_RESOURCE); + } + if (res < 0) { + Warning("/dev/rtc enable interrupt failed: %d\n", res); +diff -ur vmware-modules-1.0.0.24.0/work/vmmon-only/Makefile.kernel vmware-modules-1.0.0.24/work/vmmon-only/Makefile.kernel +--- vmware-modules-1.0.0.24.0/work/vmmon-only/Makefile.kernel 2009-03-27 08:05:19.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vmmon-only/Makefile.kernel 2009-04-07 16:15:21.000000000 +0400 +@@ -22,7 +22,7 @@ + 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/nopage1.c, -DVMW_NOPAGE_261, ) + EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/skas1.c, -DVMW_SKAS_MMAP, ) +diff -ur vmware-modules-1.0.0.24.0/work/vmnet-only/Makefile.kernel vmware-modules-1.0.0.24/work/vmnet-only/Makefile.kernel +--- vmware-modules-1.0.0.24.0/work/vmnet-only/Makefile.kernel 2009-03-27 08:05:20.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vmnet-only/Makefile.kernel 2009-04-07 16:15:21.000000000 +0400 +@@ -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)/epoll.c, -DVMW_HAVE_EPOLL, ) + EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/socket.c, -DVMW_HAVE_SK_WMEM_ALLOC, ) + EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/sk_alloc.c,-DVMW_HAVE_SK_ALLOC_WITH_PROTO, ) +diff -ur vmware-modules-1.0.0.24.0/work/vmnet-only/netif.c vmware-modules-1.0.0.24/work/vmnet-only/netif.c +--- vmware-modules-1.0.0.24.0/work/vmnet-only/netif.c 2009-03-27 08:05:20.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vmnet-only/netif.c 2009-04-07 16:15:21.000000000 +0400 +@@ -55,6 +55,30 @@ + struct net_device_stats stats; + } VNetNetIF; + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) ++/* ++ Prior to KERNEL_VERSION(2, 6, 29) "struct net_device" had "void ++ *priv" field which was used as pointer to "VNetNetIF". ++*/ ++ ++#define VNetNetIF_netdev_priv_size 0 ++ ++#define VNetNetIF_netdev_netIf(dev) (*(VNetNetIF**)&((dev)->priv)) ++ ++#else ++/* ++ Since KERNEL_VERSION(2, 6, 29) pointer to "VNetNetIF" is stored in ++ explicitly allocated private area. ++*/ ++typedef struct { ++ VNetNetIF *netIf; ++} VNetNetIF_netdev_priv; ++ ++#define VNetNetIF_netdev_priv_size sizeof(VNetNetIF_netdev_priv) ++ ++#define VNetNetIF_netdev_netIf(dev) (((VNetNetIF_netdev_priv *)compat_netdev_priv(dev))->netIf) ++ ++#endif + + static void VNetNetIfFree(VNetJack *this); + static void VNetNetIfReceive(VNetJack *this, struct sk_buff *skb); +@@ -318,13 +342,13 @@ + memcpy(netIf->devName, devName, sizeof netIf->devName); + NULL_TERMINATE_STRING(netIf->devName); + +- dev = compat_alloc_netdev(0, netIf->devName, VNetNetIfSetup); ++ dev = compat_alloc_netdev(VNetNetIF_netdev_priv_size, netIf->devName, VNetNetIfSetup); + if (!dev) { + retval = -ENOMEM; + goto out; + } + +- dev->priv = netIf; ++ VNetNetIF_netdev_netIf(dev) = netIf; + netIf->dev = dev; + + memcpy(dev->dev_addr, netIf->port.paddr, sizeof netIf->port.paddr); +@@ -566,7 +590,7 @@ + VNetNetifStartXmit(struct sk_buff *skb, // IN: + struct net_device *dev) // IN: + { +- VNetNetIF *netIf = (VNetNetIF*)dev->priv; ++ VNetNetIF *netIf = VNetNetIF_netdev_netIf(dev); + + if(skb == NULL) { + return 0; +@@ -618,7 +642,7 @@ + VNetNetifSetMAC(struct net_device *dev, // IN: + void *p) // IN: + { +- VNetNetIF *netIf = (VNetNetIF*)dev->priv; ++ VNetNetIF *netIf = VNetNetIF_netdev_netIf(dev); + struct sockaddr const *addr = p; + if (!VMX86_IS_STATIC_MAC(addr->sa_data)) { + return -EINVAL; +@@ -675,7 +699,7 @@ + struct net_device_stats * + VNetNetifGetStats(struct net_device *dev) // IN: + { +- VNetNetIF *netIf = (VNetNetIF*)dev->priv; ++ VNetNetIF *netIf = VNetNetIF_netdev_netIf(dev); + return &(netIf->stats); + } + +diff -ur vmware-modules-1.0.0.24.0/work/vsock-only/linux/util.c vmware-modules-1.0.0.24/work/vsock-only/linux/util.c +--- vmware-modules-1.0.0.24.0/work/vsock-only/linux/util.c 2009-03-27 08:05:23.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vsock-only/linux/util.c 2009-04-07 16:15:21.000000000 +0400 +@@ -154,7 +154,7 @@ + goto error; + } + +- Log(buf); ++ Log("%s", buf); + + return; + +diff -ur vmware-modules-1.0.0.24.0/work/vsock-only/Makefile.kernel vmware-modules-1.0.0.24/work/vsock-only/Makefile.kernel +--- vmware-modules-1.0.0.24.0/work/vsock-only/Makefile.kernel 2009-03-27 08:05:23.000000000 +0300 ++++ vmware-modules-1.0.0.24/work/vsock-only/Makefile.kernel 2009-04-07 16:15:21.000000000 +0400 +@@ -25,7 +25,7 @@ + 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, $(SRCROOT)/autoconf/epoll.c, -DVMW_HAVE_EPOLL, ) + EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/setnice.c, -DVMW_HAVE_SET_USER_NICE, ) + diff --git a/app-emulation/vmware-modules/files/1.0.0.24-kernel-2.6.30.patch b/app-emulation/vmware-modules/files/1.0.0.24-kernel-2.6.30.patch new file mode 100644 index 000000000000..2c95e1c80ede --- /dev/null +++ b/app-emulation/vmware-modules/files/1.0.0.24-kernel-2.6.30.patch @@ -0,0 +1,33 @@ +diff -urN source-OLD/vmblock-only/linux/control.c source-NEW/vmblock-only/linux/control.c +--- source-OLD/vmblock-only/linux/control.c 2008-10-28 22:47:20.000000000 -0700 ++++ source-NEW/vmblock-only/linux/control.c 2009-05-07 12:25:33.000000000 -0700 +@@ -46,7 +46,9 @@ + + static struct proc_dir_entry *controlProcDirEntry; + struct file_operations ControlFileOps = { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 30) + .owner = THIS_MODULE, ++#endif + .write = ControlFileOpWrite, + .release = ControlFileOpRelease, + }; +@@ -156,7 +158,9 @@ + return -EINVAL; + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 30) + controlProcDirEntry->owner = THIS_MODULE; ++#endif + + /* Create /proc/fs/vmblock/mountPoint */ + controlProcMountpoint = proc_mkdir(VMBLOCK_CONTROL_MOUNTPOINT, +@@ -168,7 +172,9 @@ + return -EINVAL; + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 30) + controlProcMountpoint->owner = THIS_MODULE; ++#endif + + /* Create /proc/fs/vmblock/dev */ + controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME, diff --git a/app-emulation/vmware-modules/files/1.0.0.24-makefile-kernel-dir.patch b/app-emulation/vmware-modules/files/1.0.0.24-makefile-kernel-dir.patch new file mode 100644 index 000000000000..8df4d8694e34 --- /dev/null +++ b/app-emulation/vmware-modules/files/1.0.0.24-makefile-kernel-dir.patch @@ -0,0 +1,80 @@ +diff --git a/vmblock-only/Makefile b/vmblock-only/Makefile +index 0a9ffd6..4aa09e8 100644 +--- a/vmblock-only/Makefile ++++ b/vmblock-only/Makefile +@@ -29,9 +29,9 @@ SRCROOT = . + 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 := @PRODUCT@ +diff --git a/vmci-only/Makefile b/vmci-only/Makefile +index 0a6c9c6..6cd0b6d 100644 +--- a/vmci-only/Makefile ++++ b/vmci-only/Makefile +@@ -29,9 +29,9 @@ SRCROOT = . + 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/vmmon-only/Makefile b/vmmon-only/Makefile +index d26e58c..f8a40f4 100644 +--- a/vmmon-only/Makefile ++++ b/vmmon-only/Makefile +@@ -29,9 +29,9 @@ SRCROOT = . + 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/vmnet-only/Makefile b/vmnet-only/Makefile +index 4cabc30..568271a 100644 +--- a/vmnet-only/Makefile ++++ b/vmnet-only/Makefile +@@ -29,9 +29,9 @@ SRCROOT = . + 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/vsock-only/Makefile b/vsock-only/Makefile +index a69bc22..8a74856 100644 +--- a/vsock-only/Makefile ++++ b/vsock-only/Makefile +@@ -29,9 +29,9 @@ SRCROOT = . + 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/metadata.xml b/app-emulation/vmware-modules/metadata.xml index 3260ec55a8de..e478f760ef12 100644 --- a/app-emulation/vmware-modules/metadata.xml +++ b/app-emulation/vmware-modules/metadata.xml @@ -1,5 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<herd>vmware</herd> + <herd>vmware</herd> + <maintainer> + <email>vadimk@g.o</email> + </maintainer> + <longdescription> + VMware kernel modules. + </longdescription> </pkgmetadata> diff --git a/app-emulation/vmware-modules/vmware-modules-1.0.0.24.ebuild b/app-emulation/vmware-modules/vmware-modules-1.0.0.24.ebuild new file mode 100644 index 000000000000..d5ba57884e6e --- /dev/null +++ b/app-emulation/vmware-modules/vmware-modules-1.0.0.24.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-1.0.0.24.ebuild,v 1.1 2009/06/14 15:27:10 vadimk Exp $ + +EAPI="2" + +inherit eutils flag-o-matic linux-mod + +DESCRIPTION="VMware kernel modules" +HOMEPAGE="http://www.vmware.com/" + +SRC_URI="x86? ( + mirror://gentoo/${P}.x86.tar.bz2 + http://dev.gentoo.org/~vadimk/${P}.x86.tar.bz2 + ) + amd64? ( + mirror://gentoo/${P}.amd64.tar.bz2 + http://dev.gentoo.org/~vadimk/${P}.amd64.tar.bz2 + )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND="" +RDEPEND="${DEPEND}" + +S="${WORKDIR}" + +pkg_setup() { + linux-mod_pkg_setup + + VMWARE_VER="VME_V65" # THIS VALUE IS JUST A PLACE HOLDER +# PATCH_VER="1" + VMWARE_GROUP=${VMWARE_GROUP:-vmware} + + VMWARE_MODULE_LIST="vmblock vmci vmmon vmnet vsock" + VMWARE_MOD_DIR="${PN}-${PVR}" + + BUILD_TARGETS="auto-build VMWARE_VER=${VMWARE_VER} 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() { + unpack ${A} + cd "${S}" + for mod in ${VMWARE_MODULE_LIST}; do + unpack ./"${P}"/${mod}.tar + done +} + +src_prepare() { + epatch "${FILESDIR}/${PV}-makefile-kernel-dir.patch" + epatch "${FILESDIR}/${PV}-kernel-2.6.29.patch" + epatch "${FILESDIR}/${PV}-kernel-2.6.30.patch" +} + +src_install() { + # this adds udev rules for vmmon* + if [[ -n "`echo ${VMWARE_MODULE_LIST} | grep vmmon`" ]]; + then + dodir /etc/udev/rules.d + echo 'KERNEL=="vmmon*", GROUP="'$VMWARE_GROUP'" MODE=660' >> "${D}/etc/udev/rules.d/60-vmware.rules" || die + echo 'KERNEL=="vmnet*", GROUP="'$VMWARE_GROUP'" MODE=660' >> "${D}/etc/udev/rules.d/60-vmware.rules" || die + fi + + linux-mod_src_install +} + |