From bc79e93ce3156e13ba1f4ca2059dadd72bae28dedd798ed082f8c82a6ea33833 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 18 May 2014 13:10:04 +0000 Subject: [PATCH] Accepting request 234364 from home:mlatimer:branches:Virtualization:VMware Start vmware-user-suid-wrapper unconditionally (bnc#876074) OBS-URL: https://build.opensuse.org/request/show/234364 OBS-URL: https://build.opensuse.org/package/show/Virtualization:VMware/open-vm-tools?expand=0&rev=260 --- open-vm-tools.changes | 15 +++++++++++++++ open-vm-tools.spec | 26 +++++++++++++++++++------- vmware-user-autostart-wrapper | 27 +++++++++++++++++---------- 3 files changed, 51 insertions(+), 17 deletions(-) diff --git a/open-vm-tools.changes b/open-vm-tools.changes index 6134682..1aed341 100644 --- a/open-vm-tools.changes +++ b/open-vm-tools.changes @@ -1,9 +1,24 @@ +------------------------------------------------------------------- +Fri May 16 16:57:16 UTC 2014 - mlatimer@suse.com + +- Modify vmware-user-autostart-wrapper to unconditionally start + vmware-user-suid-wrapper, and no longer delay for vmblock-fuse + if under systemd. (bnc#876074) + ------------------------------------------------------------------- Wed May 14 15:40:19 UTC 2014 - meissner@suse.com - added forgotten %pre snippet for service addition, this made systemd service not auto-start. bnc#870737 +------------------------------------------------------------------- +Thu Apr 28 15:33:55 UTC 2014 - mlatimer@suse.com + +- Move 'vm-support' script from /etc/vmware-tools to /usr/bin (bnc#874931). +- Update call to "tools.set.version" RPC during uninstall to match upstream + behavior (bnc#875129). +- Add missing RPM runtime dependencies (net-tools, tar, which). + ------------------------------------------------------------------- Tue Mar 17 21:52:29 UTC 2014 - mlatimer@suse.com diff --git a/open-vm-tools.spec b/open-vm-tools.spec index eb969e6..4f20e14 100644 --- a/open-vm-tools.spec +++ b/open-vm-tools.spec @@ -66,6 +66,7 @@ Source7: tools.conf Source98: preamble # PATCH-FIX-UPSTREAM g_info_redefine.patch (RHBZ#1063847) Patch0: g_info_redefine.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: gcc-c++ # don't use pkgconfig(gtk+-2.0) so we can build on SLE BuildRequires: gtk2-devel @@ -79,23 +80,25 @@ BuildRequires: doxygen BuildRequires: libdnet-devel BuildRequires: libicu-devel BuildRequires: module-init-tools +BuildRequires: pam-devel BuildRequires: pcre-devel BuildRequires: update-desktop-files BuildRequires: xorg-x11-devel BuildRequires: pkgconfig(fuse) -BuildRoot: %{_tmppath}/%{name}-%{version}-build # libprocps is required with 12.3 and above %if 0%{?suse_version} >= 1230 BuildRequires: procps-devel %endif -BuildRequires: pam-devel -%if 0%{?suse_version} < 1310 -Requires: vmware-guest-kmp -%endif %if "%{?vmhgfs}" # Fuse is optional and enables vmblock-fuse BuildRequires: fuse-devel %endif +Requires: net-tools +Requires: tar +Requires: which +%if 0%{?suse_version} < 1310 +Requires: vmware-guest-kmp +%endif Supplements: modalias(pci:v000015ADd*sv*sd*bc*sc*i*) Requires(pre): %fillup_prereq Requires(pre): %insserv_prereq @@ -289,6 +292,9 @@ rm -fr %{buildroot}%{_defaultdocdir} rm -fr %{buildroot}/usr/share/doc/open-vm-tools/api rm -f docs/api/build/html/FreeSans.ttf +# Move vm-support to /usr/bin (bnc#874931) +mv %{buildroot}%{_sysconfdir}/vmware-tools/vm-support %{buildroot}%{_bindir} + # install systemd/sysvinit init scripts and symlinks %if %{with_systemd} install -p -m 644 -D %{SOURCE2} %{buildroot}%{_unitdir}/vmtoolsd.service @@ -379,7 +385,13 @@ if test "$FIRST_ARG" -ge 1 ; then fi %stop_on_removal vmtoolsd %endif -vmware-rpctool "tools.set.version 0" || : +# Tell VMware that open-vm-tools is being uninstalled +if [ "$1" = "0" -a \ + -e %{_bindir}/vmware-checkvm -a \ + -e %{_bindir}/vmware-rpctool ] && \ + %{_bindir}/vmware-checkvm &> /dev/null; then + %{_bindir}/vmware-rpctool 'tools.set.version 0' &> /dev/null || /bin/true +fi %postun %if %{with_systemd} @@ -416,6 +428,7 @@ rm -rf %{buildroot} %{_bindir}/vmware-rpctool %{_bindir}/vmware-toolbox-cmd %{_bindir}/vmware-xferlogs +%{_bindir}/vm-support %if "%{?vmhgfs}" %{_sbindir}/mount.vmhgfs /sbin/mount.vmhgfs @@ -431,7 +444,6 @@ rm -rf %{buildroot} %{_sysconfdir}/vmware-tools/statechange.subr %{_sysconfdir}/vmware-tools/suspend-vm-default %config(noreplace) %{_sysconfdir}/vmware-tools/tools.conf -%{_sysconfdir}/vmware-tools/vm-support %if 0%{?suse_version} < 1315 %config %{_sysconfdir}/modprobe.d/50-vmnics.conf %endif diff --git a/vmware-user-autostart-wrapper b/vmware-user-autostart-wrapper index 573335a..78dc255 100644 --- a/vmware-user-autostart-wrapper +++ b/vmware-user-autostart-wrapper @@ -5,15 +5,22 @@ SLEEP=1 unset SESSION_MANAGER -while [ $RETRY -lt $MAX_RETRY ]; do +# If running systemd, skip the delay loop as starting vmblock-fuse is not enforced +if ! (file /sbin/init | grep "systemd" &>/dev/null); then -if [ -f /var/run/vmblock-fuse/dev ]; then - /usr/bin/vmware-user-suid-wrapper - exit 0 -else - logger "Try $RETRY/$MAX_RETRY : /proc/fs/vmblock/dev not available. sleeping for $SLEEP seconds" - sleep $SLEEP - RETRY=$[ $RETRY + 1 ] - SLEEP=$[ $SLEEP * 2 ] + while [ $RETRY -lt $MAX_RETRY ]; do + + if [ -f /var/run/vmblock-fuse/dev ]; then + RETRY=$MAX_RETRY + else + logger "Try $RETRY/$MAX_RETRY : /var/run/vmblock-fuse/dev not available. sleeping for $SLEEP seconds" + sleep $SLEEP + RETRY=$[ $RETRY + 1 ] + SLEEP=$[ $SLEEP * 2 ] + fi + done fi -done + +# Unconditionally start vmware-user-suid-wrapper (after waiting for vmblock-fuse if not under systemd) +/usr/bin/vmware-user-suid-wrapper +