aboutsummaryrefslogtreecommitdiffstats
path: root/main/open-vm-tools/open-vm-tools.initd
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2017-02-13 17:52:43 +0100
committerJakub Jirutka <jakub@jirutka.cz>2017-02-13 18:25:17 +0100
commit006d456e80cd6028774e3a56a598ea6037dee319 (patch)
tree5d80594d0a7ce7e4072ebd0f073d6e5fea21ac2a /main/open-vm-tools/open-vm-tools.initd
parent5a4c24419515f9c86ad11f87b4b47f7b09fac3fb (diff)
downloadaports-006d456e80cd6028774e3a56a598ea6037dee319.tar.bz2
aports-006d456e80cd6028774e3a56a598ea6037dee319.tar.xz
main/open-vm-tools: update runscript with newer version from Gentoo
Diffstat (limited to 'main/open-vm-tools/open-vm-tools.initd')
-rw-r--r--main/open-vm-tools/open-vm-tools.initd103
1 files changed, 46 insertions, 57 deletions
diff --git a/main/open-vm-tools/open-vm-tools.initd b/main/open-vm-tools/open-vm-tools.initd
index 89e920c8c4..08f20a37d5 100644
--- a/main/open-vm-tools/open-vm-tools.initd
+++ b/main/open-vm-tools/open-vm-tools.initd
@@ -1,76 +1,65 @@
#!/sbin/openrc-run
-# Copyright 1999-2007 Gentoo Foundation
+# 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/files/open-vm-tools.initd,v 1.2 2009/12/20 14:05:43 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"
+# Note: $VM_DRAG_AND_DROP is here for backward compatibility.
+: ${vm_drag_and_drop:="${VM_DRAG_AND_DROP:-}"}
+
+command="/usr/bin/vmtoolsd"
+command_background="yes"
+pidfile="/run/vmtoolsd.pid"
+
+vmblockmntpt="/proc/fs/vmblock/mountPoint"
+vmblockfusemntpt="/run/vmblock-fuse"
depend() {
before net X
}
-start() {
- if [ "${VM_DRAG_AND_DROP}" == "yes" ];
- then
+start_vmblock() {
+ checkpath -d -m 1777 /tmp/VMwareDnD
- if ! grep -q -w vmblock /proc/modules;
- then
- ebegin "Loading vmblock module"
- modprobe vmblock
- eend $?
- sleep 0.25
- fi
+ if command -v vmware-vmblock-fuse > /dev/null; then
+ modprobe fuse > /dev/null 2>&1
+ checkpath -d "$vmblockfusemntpt"
- 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
+ ebegin "Mounting vmblock-fuse"
+ vmware-vmblock-fuse \
+ -o subtype=vmware-vmblock,default_permissions,allow_other \
+ "$vmblockfusemntpt"
+ eend $?
+ else
+ modprobe vmblock > /dev/null 2>&1
+ checkpath -d "$vmblockmntpt"
- # DnD_TMPDIR must exist before vmblock can be mounted
- ebegin "Mounting vmblock device"
- mount -t vmblock none ${MOUNTPOINT}
+ ebegin "Mounting vmblock"
+ mount -t vmblock vmblock "$vmblockmntpt"
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
+stop_vmblock() {
+ if [ -d "$vmblockfusemntpt" ]; then
+ ebegin "Unmounting vmblock-fuse"
+ umount "$vmblockfusemntpt"
+ eend $?
+ else
+ ebegin "Unmounting vmblock"
+ umount "$vmblockmntpt"
+ eend $?
+ fi
+}
- ebegin "Unmounting vmblock device"
- if grep -q -w "${MOUNTPOINT}" /proc/mounts;
- then
- umount ${MOUNTPOINT} 1>&2 > /dev/null
- fi
- eend 0
+start_pre() {
+ if [ "$vm_drag_and_drop" = yes ]; then
+ start_vmblock
fi
+ return 0
+}
- ebegin "Stopping vmtoolsd"
- start-stop-daemon --stop --quiet --pidfile "${PIDFILE}"
- eend $?
+stop_post() {
+ if [ "$vm_drag_and_drop" = yes ]; then
+ stop_vmblock
+ fi
+ return 0
}