mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-05-08 20:43:38 +02:00
open-vm-tools: fork for testing purposes
This commit is contained in:
parent
44f3c07361
commit
639d3b0f56
11 changed files with 475 additions and 0 deletions
5
app-emulation/open-vm-tools-kmod/Manifest
Normal file
5
app-emulation/open-vm-tools-kmod/Manifest
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
AUX fragsize.patch 4543 SHA256 fee39ad39fb9d3d84bfa09b7a51096ffc7d1f65f78a227ab591c0c006eef9f8e SHA512 96566f82bf7b0fa78444823062d847e73a9b3020c6b873a6c838efe8ad2b1a317f7b1acaf55bb4f24d1d4974dd78f4baf2091d3dac6a4dfad6172af7a4188c82 WHIRLPOOL 762534c4b1c088df67dfc0f1ae6fdf0c3b5014bc2946a50d0571a5df14d726e25f056f9bf670142240885d307e82fe0d5b3a0b14dd41e67a6b7cc04662677a67
|
||||
AUX frozen.patch 1155 SHA256 5997f5aa4d1d2bb262b9ef24888d4706f1227af4d359862d3d49b4e6c961d193 SHA512 5dbee1a119d6abd13b8217d66b8f611fee92c863b0d48029b1c05f33a06f6a20f35eaf6f01fb268a811270c6c799a1fef26939f7bfc97a42421e7f14b4cfa46d WHIRLPOOL 34244123ac2eebe6aa9d144f2af12304c1355f455b4b04b15ff5f949ffa0b23c62d40436b16371e3c5055b94afd51b2dd9ea3f92864d4f597c9b568814e3fa48
|
||||
AUX hardened.patch 1191 SHA256 720945299cf4842e0f178c307d2dd6212aec85bc808a4ecf74956bebba921dd0 SHA512 f5ed920720f8d36e928e25e4b19b7b5557510236c6f22bd7f47adcc7a24f779df9060c890208847a74fcd5495b4db03fa3b4eead8bf03903804356085587b2b8 WHIRLPOOL b1d7d52b37319665f650e569fb6e0c6c36ba39b2d6f581f6d72bd23e0dceb29972423d04b6004ea781be2b2610e58b8e3ea0150ab6587ad6639d441960e527a2
|
||||
DIST open-vm-tools-2013.04.16-1098359.tar.gz 3737845 SHA256 fc939de4133d66c0cced8d0a7b5d87edcad3f598393b71c341e66bfec5087960 SHA512 682c25e315e3108617fd4d419f5bba8bf45f4966f13fa60944650390f63af2a7e4fcf740052106693403fcc2ec6f8b126e9911cbba044fc227f0c663e19f68e0 WHIRLPOOL eb13974f1e0a837617fad8c49f45e73570b343071c0619cc8408b5b9812e135cd9eafffc35a761740a58875c3e5583c625300398346d5863a2fa468044f6dd5f
|
||||
EBUILD open-vm-tools-kmod-2013.04.16.1098359.ebuild 1782 SHA256 37f5ed1a67c83ba8038cbd8708406d1d6731926093dc3474ebe37b48a8e2cf4c SHA512 2e8355328de5780b79815925a8c8e8ee94cc2ab920c048df73c6290efc259d6eebc442ab2152e67cc7fbb97f274ef0c50722e0a7a3ebdfbcd29da6f67f49ca0f WHIRLPOOL 165075dae08c2423359d66d0703e4b8a26471966b900aa652155f06529e9f99f996b4abdfbd051cd38616e709fa256fd142b453e2b8d2ea4d1e68e0ae543dc3c
|
||||
104
app-emulation/open-vm-tools-kmod/files/fragsize.patch
Normal file
104
app-emulation/open-vm-tools-kmod/files/fragsize.patch
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
diff --git a/modules/linux/vmxnet/vmxnet.c b/modules/linux/vmxnet/vmxnet.c
|
||||
index a6f5740..3c75bb2 100644
|
||||
--- a/modules/linux/vmxnet/vmxnet.c
|
||||
+++ b/modules/linux/vmxnet/vmxnet.c
|
||||
@@ -989,7 +989,7 @@ vmxnet_probe_device(struct pci_dev *pdev, // IN: vmxnet PCI device
|
||||
.ndo_start_xmit = &vmxnet_start_tx,
|
||||
.ndo_stop = &vmxnet_close,
|
||||
.ndo_get_stats = &vmxnet_get_stats,
|
||||
- .ndo_set_multicast_list = &vmxnet_set_multicast_list,
|
||||
+ .ndo_set_rx_mode = &vmxnet_set_multicast_list,
|
||||
.ndo_change_mtu = &vmxnet_change_mtu,
|
||||
# ifdef VMW_HAVE_POLL_CONTROLLER
|
||||
.ndo_poll_controller = vmxnet_netpoll,
|
||||
@@ -2033,21 +2033,23 @@ vmxnet_map_pkt(struct sk_buff *skb,
|
||||
offset -= skb_headlen(skb);
|
||||
|
||||
for ( ; nextFrag < skb_shinfo(skb)->nr_frags; nextFrag++){
|
||||
+ int fragSize;
|
||||
frag = &skb_shinfo(skb)->frags[nextFrag];
|
||||
+ fragSize = skb_frag_size(frag);
|
||||
|
||||
// skip those frags that are completely copied
|
||||
- if (offset >= frag->size){
|
||||
- offset -= frag->size;
|
||||
+ if (offset >= fragSize){
|
||||
+ offset -= fragSize;
|
||||
} else {
|
||||
// map the part of the frag that is not copied
|
||||
dma = pci_map_page(lp->pdev,
|
||||
- frag->page,
|
||||
+ frag->page.p,
|
||||
frag->page_offset + offset,
|
||||
- frag->size - offset,
|
||||
+ fragSize - offset,
|
||||
PCI_DMA_TODEVICE);
|
||||
- VMXNET_FILL_SG(xre->sg.sg[nextSg], dma, frag->size - offset);
|
||||
+ VMXNET_FILL_SG(xre->sg.sg[nextSg], dma, fragSize - offset);
|
||||
VMXNET_LOG("vmxnet_map_tx: txRing[%u].sg[%d] -> frag[%d]+%u (%uB)\n",
|
||||
- dd->txDriverNext, nextSg, nextFrag, offset, frag->size - offset);
|
||||
+ dd->txDriverNext, nextSg, nextFrag, offset, fragSize - offset);
|
||||
nextSg++;
|
||||
nextFrag++;
|
||||
|
||||
@@ -2058,11 +2060,14 @@ vmxnet_map_pkt(struct sk_buff *skb,
|
||||
|
||||
// map the remaining frags, we might need to use additional tx entries
|
||||
for ( ; nextFrag < skb_shinfo(skb)->nr_frags; nextFrag++) {
|
||||
+ int fragSize;
|
||||
frag = &skb_shinfo(skb)->frags[nextFrag];
|
||||
+ fragSize = skb_frag_size(frag);
|
||||
+
|
||||
dma = pci_map_page(lp->pdev,
|
||||
- frag->page,
|
||||
+ frag->page.p,
|
||||
frag->page_offset,
|
||||
- frag->size,
|
||||
+ fragSize,
|
||||
PCI_DMA_TODEVICE);
|
||||
|
||||
if (nextSg == VMXNET2_SG_DEFAULT_LENGTH) {
|
||||
@@ -2091,9 +2096,9 @@ vmxnet_map_pkt(struct sk_buff *skb,
|
||||
|
||||
nextSg = 0;
|
||||
}
|
||||
- VMXNET_FILL_SG(xre->sg.sg[nextSg], dma, frag->size);
|
||||
+ VMXNET_FILL_SG(xre->sg.sg[nextSg], dma, fragSize);
|
||||
VMXNET_LOG("vmxnet_map_tx: txRing[%u].sg[%d] -> frag[%d] (%uB)\n",
|
||||
- dd->txDriverNext, nextSg, nextFrag, frag->size);
|
||||
+ dd->txDriverNext, nextSg, nextFrag, fragSize);
|
||||
nextSg++;
|
||||
}
|
||||
|
||||
@@ -2548,7 +2553,7 @@ vmxnet_rx_frags(Vmxnet_Private *lp, struct sk_buff *skb)
|
||||
if (UNLIKELY(newPage == NULL)) {
|
||||
skb_shinfo(skb)->nr_frags = numFrags;
|
||||
skb->len += skb->data_len;
|
||||
- skb->truesize += skb->data_len;
|
||||
+ skb->truesize += PAGE_SIZE;
|
||||
|
||||
compat_dev_kfree_skb(skb, FREE_WRITE);
|
||||
|
||||
@@ -2558,10 +2563,12 @@ vmxnet_rx_frags(Vmxnet_Private *lp, struct sk_buff *skb)
|
||||
}
|
||||
|
||||
pci_unmap_page(pdev, rre2->paddr, PAGE_SIZE, PCI_DMA_FROMDEVICE);
|
||||
- skb_shinfo(skb)->frags[numFrags].page = lp->rxPages[dd->rxDriverNext2];
|
||||
+ __skb_frag_set_page(&skb_shinfo(skb)->frags[numFrags],
|
||||
+ lp->rxPages[dd->rxDriverNext2]);
|
||||
skb_shinfo(skb)->frags[numFrags].page_offset = 0;
|
||||
skb_shinfo(skb)->frags[numFrags].size = rre2->actualLength;
|
||||
skb->data_len += rre2->actualLength;
|
||||
+ skb->truesize += PAGE_SIZE;
|
||||
numFrags++;
|
||||
|
||||
/* refill the buffer */
|
||||
@@ -2579,7 +2586,7 @@ vmxnet_rx_frags(Vmxnet_Private *lp, struct sk_buff *skb)
|
||||
VMXNET_ASSERT(numFrags > 0);
|
||||
skb_shinfo(skb)->nr_frags = numFrags;
|
||||
skb->len += skb->data_len;
|
||||
- skb->truesize += skb->data_len;
|
||||
+ skb->truesize += PAGE_SIZE;
|
||||
VMXNET_LOG("vmxnet_rx: %dB from rxRing[%d](%dB)+rxRing2[%d, %d)(%dB)\n",
|
||||
skb->len, dd->rxDriverNext, skb_headlen(skb),
|
||||
firstFrag, dd->rxDriverNext2, skb->data_len);
|
||||
28
app-emulation/open-vm-tools-kmod/files/frozen.patch
Normal file
28
app-emulation/open-vm-tools-kmod/files/frozen.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
diff -urpN a/modules/linux/vmsync/sync.c b/modules/linux/vmsync/sync.c
|
||||
--- a/modules/linux/vmsync/sync.c 2012-08-01 19:02:59.000000000 -0700
|
||||
+++ b/modules/linux/vmsync/sync.c 2012-10-14 07:38:18.000000000 -0700
|
||||
@@ -162,7 +162,11 @@ VmSyncThawDevices(void *_state) // IN
|
||||
cancel_delayed_work(&state->thawTask);
|
||||
list_for_each_safe(cur, tmp, &state->devices) {
|
||||
dev = list_entry(cur, VmSyncBlockDevice, list);
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
|
||||
+ if (dev->sb != NULL && dev->sb->s_writers.frozen != SB_UNFROZEN) {
|
||||
+#else
|
||||
if (dev->sb != NULL && dev->sb->s_frozen != SB_UNFROZEN) {
|
||||
+#endif
|
||||
thaw_bdev(dev->bdev, dev->sb);
|
||||
atomic_dec(&gFreezeCount);
|
||||
}
|
||||
@@ -237,7 +241,11 @@ VmSyncAddPath(const VmSyncState *state,
|
||||
* the superblock is already frozen.
|
||||
*/
|
||||
if (inode->i_sb->s_bdev == NULL ||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
|
||||
+ inode->i_sb->s_writers.frozen != SB_UNFROZEN) {
|
||||
+#else
|
||||
inode->i_sb->s_frozen != SB_UNFROZEN) {
|
||||
+#endif
|
||||
result = (inode->i_sb->s_bdev == NULL) ? -EINVAL : -EALREADY;
|
||||
compat_path_release(&nd);
|
||||
goto exit;
|
||||
|
||||
32
app-emulation/open-vm-tools-kmod/files/hardened.patch
Normal file
32
app-emulation/open-vm-tools-kmod/files/hardened.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
--- modules/linux/vsock/linux/af_vsock.c.orig 2013-04-18 05:42:22.000000000 +0800
|
||||
+++ modules/linux/vsock/linux/af_vsock.c 2013-06-01 08:12:53.669508310 +0800
|
||||
@@ -3185,10 +3185,14 @@
|
||||
* else in the future.
|
||||
*/
|
||||
for (i = NPROTO - 1; i >= 0; i--) {
|
||||
- vsockVmciFamilyOps.family = i;
|
||||
+ pax_open_kernel();
|
||||
+ *(int *)&vsockVmciFamilyOps.family = i;
|
||||
+ pax_close_kernel();
|
||||
err = sock_register(&vsockVmciFamilyOps);
|
||||
if (err) {
|
||||
- vsockVmciFamilyOps.family = VSOCK_INVALID_FAMILY;
|
||||
+ pax_open_kernel();
|
||||
+ *(int *)&vsockVmciFamilyOps.family = VSOCK_INVALID_FAMILY;
|
||||
+ pax_close_kernel();
|
||||
} else {
|
||||
vsockVmciDgramOps.family = i;
|
||||
vsockVmciStreamOps.family = i;
|
||||
@@ -3230,8 +3234,10 @@
|
||||
sock_unregister(vsockVmciFamilyOps.family);
|
||||
}
|
||||
|
||||
- vsockVmciDgramOps.family = vsockVmciFamilyOps.family = VSOCK_INVALID_FAMILY;
|
||||
- vsockVmciStreamOps.family = vsockVmciFamilyOps.family;
|
||||
+ pax_open_kernel();
|
||||
+ *(int *)&vsockVmciDgramOps.family = *(int *)&vsockVmciFamilyOps.family = VSOCK_INVALID_FAMILY;
|
||||
+ *(int *)&vsockVmciStreamOps.family = vsockVmciFamilyOps.family;
|
||||
+ pax_close_kernel();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/open-vm-tools-kmod/open-vm-tools-kmod-2012.12.26.958366.ebuild,v 1.2 2013/03/15 19:48:53 floppym Exp $
|
||||
|
||||
EAPI="4"
|
||||
|
||||
inherit eutils linux-info linux-mod versionator
|
||||
|
||||
MY_PN="${PN/-kmod}"
|
||||
MY_PV="$(replace_version_separator 3 '-')"
|
||||
MY_P="${MY_PN}-${MY_PV}"
|
||||
|
||||
DESCRIPTION="Opensourced tools for VMware guests"
|
||||
HOMEPAGE="http://open-vm-tools.sourceforge.net/"
|
||||
SRC_URI="mirror://sourceforge/${MY_PN}/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="pax_kernel"
|
||||
|
||||
RDEPEND=""
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/linux-sources
|
||||
"
|
||||
|
||||
CONFIG_CHECK="
|
||||
~DRM_VMWGFX
|
||||
~VMWARE_BALLOON
|
||||
~VMWARE_PVSCSI
|
||||
~VMXNET3
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
linux-mod_pkg_setup
|
||||
|
||||
VMWARE_MOD_DIR="modules/linux"
|
||||
VMWARE_MODULE_LIST="vmblock vmci vmhgfs vmsync vmxnet vsock"
|
||||
|
||||
MODULE_NAMES=""
|
||||
BUILD_TARGETS="auto-build HEADER_DIR=${KERNEL_DIR}/include BUILD_DIR=${KV_OUT_DIR} OVT_SOURCE_DIR=${S}"
|
||||
|
||||
for mod in ${VMWARE_MODULE_LIST};
|
||||
do
|
||||
if [ "${mod}" == "vmxnet" ];
|
||||
then
|
||||
MODTARGET="net"
|
||||
else
|
||||
MODTARGET="openvmtools"
|
||||
fi
|
||||
MODULE_NAMES="${MODULE_NAMES} ${mod}(${MODTARGET}:${S}/${VMWARE_MOD_DIR}/${mod})"
|
||||
done
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
sed -i.bak -e '/\smake\s/s/make/$(MAKE)/g' modules/linux/{vmblock,vmci,vmhgfs,vmsync,vmxnet,vsock}/Makefile\
|
||||
|| die "Sed failed."
|
||||
epatch "${FILESDIR}/frozen.patch"
|
||||
epatch_user
|
||||
use pax_kernel && epatch "${FILESDIR}/hardened.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
: # do nothing at all
|
||||
}
|
||||
|
||||
src_install() {
|
||||
linux-mod_src_install
|
||||
|
||||
local udevrules="${T}/60-vmware.rules"
|
||||
cat > "${udevrules}" <<-EOF
|
||||
KERNEL=="vsock", GROUP="vmware", MODE=660
|
||||
EOF
|
||||
insinto /lib/udev/rules.d/
|
||||
doins "${udevrules}"
|
||||
}
|
||||
6
app-emulation/open-vm-tools/Manifest
Normal file
6
app-emulation/open-vm-tools/Manifest
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
AUX network 265 SHA256 5086ad67e1ad98877e2992ac4637f304028424177151606243e35bc8a021117a SHA512 dc51bd94cf16ac1f4d083bec59d7254f68d6ade37dce5d700cc6de120e4b86da649853669341538e33e67759afb2bb7c37c1d1f9ed8f5cad5a3250c7a38f5832 WHIRLPOOL a925caecc399ee26d8eb1f2aa9891e8fd199ea3860ba92ddf25a051f0786618815589ac505c75b08a9946639fda4aac82379c1eb2270d8241bd19b9f897f6d89
|
||||
AUX open-vm-tools.confd 88 SHA256 180a2b6d9d18af319b79b2ca6ebf1020b63e5ebf2f601a63c1a9f9f7d2e0b95c SHA512 fca30a3be4dd3247e16115fe32b4d27ede8751f96b5a33b9f489b0ce57823c605b6249ff722d6f4ed82a98979f36d28821603b4a5a1d967d3048d23d983a19be WHIRLPOOL b2cbc98b5e0e125fc3ef6440006d4f6b75b8b020680a7184c4b7fa0651c2387c5d02baf8b61e196cfd560ccfc7be069fba19340dc6fc9ba6ea161f407ffd73e5
|
||||
AUX open-vm-tools.desktop 140 SHA256 86363f5430d33afb2f9fcb004ca86813f14434f56986e427e296bd530724eeb0 SHA512 19472f03c9a14dd43a720cb9d6813d09534883236d55934577b2a2387c46a101ee02cf29ce784cd0b7c095af1f8267fa522646eba98a6026a0319c1ea19eaf5e WHIRLPOOL 17c57ee861da58986d868f493ab1979d3ebf5c9257dea2e09767c8dffb1be1ed40fc5423e378972fa719b7077af119cd5136903d08d661969737afd38b3e4e18
|
||||
AUX open-vm-tools.initd 1878 SHA256 0cf2ee900a592be7526cebebb6b827db4804a905a28be1c50f9a26f771ad3b99 SHA512 b16d94c83a3906dabcbe01a1c0e8c82d8546a4bed08e16c946162365426bb6fe7e0c28e8286cc38e2d37fa64568b656013b1e1d94a14587fa4b1dd83363ce554 WHIRLPOOL efae90003534c504ee6112e065c9ff12704bd780e5c72528f49adf5724cb3b94d683cd48676764a6ba31137aa1ea9a7f9f560a89ddc3f69444094d685547f8ab
|
||||
DIST open-vm-tools-2013.04.16-1098359.tar.gz 3737845 SHA256 fc939de4133d66c0cced8d0a7b5d87edcad3f598393b71c341e66bfec5087960 SHA512 682c25e315e3108617fd4d419f5bba8bf45f4966f13fa60944650390f63af2a7e4fcf740052106693403fcc2ec6f8b126e9911cbba044fc227f0c663e19f68e0 WHIRLPOOL eb13974f1e0a837617fad8c49f45e73570b343071c0619cc8408b5b9812e135cd9eafffc35a761740a58875c3e5583c625300398346d5863a2fa468044f6dd5f
|
||||
EBUILD open-vm-tools-2013.04.16.1098359.ebuild 2968 SHA256 53d41acc494d2fa5d68e9dcf1cf8369074b6e8e0a54d99fb528f534c2041e57c SHA512 64cff15c36d7f40ac0d399e0888a61ee061278cd7bfe48af179584e87723204e5f34f293c8782d173ceb66ebd3a0bde4f7c273945bd05bc86b4a57e4659f464f WHIRLPOOL d286a9c15aec7bdcd090115c2021979eca79cb8548eba839aabc37c654dc9bed93f55328007fe1aac16661f3af68c7e8e94187eea7bedf328390d6bbffbb3f87
|
||||
22
app-emulation/open-vm-tools/files/network
Normal file
22
app-emulation/open-vm-tools/files/network
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/sh
|
||||
|
||||
#
|
||||
# net.eth0, net.eth1, network, wicd, NetworkManager
|
||||
service="net.eth0"
|
||||
|
||||
if ! rc-service -e ${service}
|
||||
then
|
||||
service="network"
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
suspend-vm)
|
||||
rc-service ${service} stop
|
||||
;;
|
||||
resume-vm)
|
||||
rc-service ${service} start
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
2
app-emulation/open-vm-tools/files/open-vm-tools.confd
Normal file
2
app-emulation/open-vm-tools/files/open-vm-tools.confd
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# Set this to no to disable drag and drop (and vmblock) loading.
|
||||
VM_DRAG_AND_DROP="yes"
|
||||
7
app-emulation/open-vm-tools/files/open-vm-tools.desktop
Normal file
7
app-emulation/open-vm-tools/files/open-vm-tools.desktop
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Exec=vmware-user-suid-wrapper
|
||||
Name=VMware User Agent
|
||||
X-KDE-autostart-phase=1
|
||||
NoDisplay=true
|
||||
76
app-emulation/open-vm-tools/files/open-vm-tools.initd
Normal file
76
app-emulation/open-vm-tools/files/open-vm-tools.initd
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
#!/sbin/runscript
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/open-vm-tools/files/open-vm-tools.initd,v 1.3 2011/07/17 13:23:00 vadimk Exp $
|
||||
|
||||
DND_TMPDIR="/tmp/VMwareDnD"
|
||||
USER_GROUP="root:vmware"
|
||||
DND_TMPDIR_PERMS="1777"
|
||||
GUESTD_BIN="/usr/bin/vmtoolsd"
|
||||
PIDFILE="/var/run/vmtoolsd.pid"
|
||||
MOUNTPOINT="/proc/fs/vmblock/mountPoint"
|
||||
|
||||
depend() {
|
||||
before checkfs fsck net X
|
||||
}
|
||||
|
||||
start() {
|
||||
if [ "${VM_DRAG_AND_DROP}" == "yes" ];
|
||||
then
|
||||
|
||||
if ! grep -q -w vmblock /proc/modules;
|
||||
then
|
||||
ebegin "Loading vmblock module"
|
||||
modprobe vmblock
|
||||
eend $?
|
||||
sleep 0.25
|
||||
fi
|
||||
|
||||
if [[ ! -d "${DND_TMPDIR}" ]];
|
||||
then
|
||||
# einfo "Creating the VM drag and drop directory"
|
||||
mkdir "${DND_TMPDIR}"
|
||||
chown "${USER_GROUP}" "${DND_TMPDIR}"
|
||||
chmod "${DND_TMPDIR_PERMS}" "${DND_TMPDIR}"
|
||||
fi
|
||||
|
||||
# DnD_TMPDIR must exist before vmblock can be mounted
|
||||
ebegin "Mounting vmblock device"
|
||||
mount -t vmblock none ${MOUNTPOINT}
|
||||
eend $?
|
||||
fi
|
||||
|
||||
ebegin "Starting vmtoolsd"
|
||||
start-stop-daemon --user "${USER_GROUP}" --start --quiet --background --make-pidfile --pidfile "${PIDFILE}" --exec ${GUESTD_BIN}
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
local ret
|
||||
|
||||
if [ "${VM_DRAG_AND_DROP}" == "yes" ];
|
||||
then
|
||||
ebegin "Cleaning the contents of ${DND_TMPDIR}"
|
||||
# First check, whether ${DND_TMPDIR} isn valid... we shouldn't risk deleting the content of ""/*
|
||||
if [[ ! -z "${DND_TMPDIR}" ]] && [[ "${DND_TMPDIR}" != "/" ]];
|
||||
then
|
||||
rm -rf ${DND_TMPDIR}/*
|
||||
ret=0
|
||||
else
|
||||
eerror "Not cleaning up ${DND_TMPDIR}, please check definition of variable"
|
||||
ret=1
|
||||
fi
|
||||
eend $ret
|
||||
|
||||
ebegin "Unmounting vmblock device"
|
||||
if grep -q -w "${MOUNTPOINT}" /proc/mounts;
|
||||
then
|
||||
umount ${MOUNTPOINT} 1>&2 > /dev/null
|
||||
fi
|
||||
eend 0
|
||||
fi
|
||||
|
||||
ebegin "Stopping vmtoolsd"
|
||||
start-stop-daemon --stop --quiet --pidfile "${PIDFILE}"
|
||||
eend $?
|
||||
}
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/open-vm-tools/open-vm-tools-2012.12.26.958366.ebuild,v 1.1 2013/01/20 12:09:54 vadimk Exp $
|
||||
|
||||
EAPI="4"
|
||||
|
||||
inherit eutils multilib pam user versionator flag-o-matic toolchain-funcs
|
||||
|
||||
MY_PV="$(replace_version_separator 3 '-')"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
||||
DESCRIPTION="Opensourced tools for VMware guests"
|
||||
HOMEPAGE="http://open-vm-tools.sourceforge.net/"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="X doc fuse icu +pic xinerama"
|
||||
|
||||
RDEPEND="app-emulation/open-vm-tools-kmod
|
||||
dev-libs/glib:2
|
||||
dev-libs/libdnet
|
||||
sys-apps/ethtool
|
||||
sys-process/procps
|
||||
virtual/pam
|
||||
X? (
|
||||
dev-cpp/gtkmm:2.4
|
||||
x11-base/xorg-server
|
||||
x11-drivers/xf86-input-vmmouse
|
||||
x11-drivers/xf86-video-vmware
|
||||
x11-libs/gtk+:2
|
||||
x11-libs/libnotify
|
||||
x11-libs/libX11
|
||||
x11-libs/libXtst
|
||||
)
|
||||
fuse? ( sys-fs/fuse )
|
||||
icu? ( dev-libs/icu )
|
||||
xinerama? ( x11-libs/libXinerama )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
doc? ( app-doc/doxygen )
|
||||
virtual/pkgconfig
|
||||
virtual/linux-sources
|
||||
sys-apps/findutils
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
enewgroup vmware
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Do not filter out Werror
|
||||
# Upstream Bug http://sourceforge.net/tracker/?func=detail&aid=2959749&group_id=204462&atid=989708
|
||||
# sed -i -e 's/CFLAGS=.*Werror/#&/g' configure || die "sed comment out Werror failed"
|
||||
sed -i -e 's:\(TEST_PLUGIN_INSTALLDIR=\).*:\1\$libdir/open-vm-tools/plugins/tests:g' configure || die "sed test_plugin_installdir failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# http://bugs.gentoo.org/402279
|
||||
if has_version '>=sys-process/procps-3.3.2'; then
|
||||
export CUSTOM_PROCPS_NAME=procps
|
||||
export CUSTOM_PROCPS_LIBS="$($(tc-getPKG_CONFIG) --libs libprocps)"
|
||||
fi
|
||||
|
||||
econf \
|
||||
--with-procps \
|
||||
--with-dnet \
|
||||
--without-kernel-modules \
|
||||
$(use_enable doc docs) \
|
||||
--docdir=/usr/share/doc/${PF} \
|
||||
$(use_with X x) \
|
||||
$(use_with X gtk2) \
|
||||
$(use_with X gtkmm) \
|
||||
$(use_with icu) \
|
||||
$(use_with pic) \
|
||||
$(use_enable xinerama multimon)
|
||||
|
||||
# Bugs 260878, 326761
|
||||
find ./ -name Makefile | xargs sed -i -e 's/-Werror//g' || die "sed out Werror failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
rm "${D}"/etc/pam.d/vmtoolsd
|
||||
pamd_mimic_system vmtoolsd auth account
|
||||
|
||||
rm "${D}"/usr/$(get_libdir)/*.la
|
||||
rm "${D}"/usr/$(get_libdir)/open-vm-tools/plugins/common/*.la
|
||||
|
||||
newinitd "${FILESDIR}/open-vm-tools.initd" vmware-tools
|
||||
newconfd "${FILESDIR}/open-vm-tools.confd" vmware-tools
|
||||
|
||||
exeinto /etc/vmware-tools/scripts/vmware/
|
||||
doexe "${FILESDIR}"/network
|
||||
|
||||
if use X;
|
||||
then
|
||||
fperms 4755 "/usr/bin/vmware-user-suid-wrapper"
|
||||
|
||||
dobin "${S}"/scripts/common/vmware-xdg-detect-de
|
||||
|
||||
insinto /etc/xdg/autostart
|
||||
doins "${FILESDIR}/open-vm-tools.desktop"
|
||||
|
||||
elog "To be able to use the drag'n'drop feature of VMware for file"
|
||||
elog "exchange, please add the users to the 'vmware' group."
|
||||
fi
|
||||
elog "Add 'vmware-tools' service to the default runlevel."
|
||||
}
|
||||
Loading…
Reference in a new issue