diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2017-02-13 17:52:43 +0100 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2017-02-13 18:25:17 +0100 |
commit | 006d456e80cd6028774e3a56a598ea6037dee319 (patch) | |
tree | 5d80594d0a7ce7e4072ebd0f073d6e5fea21ac2a /main/open-vm-tools/open-vm-tools.initd | |
parent | 5a4c24419515f9c86ad11f87b4b47f7b09fac3fb (diff) | |
download | aports-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.initd | 103 |
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 } |