[PATCH 1/2] vmware: Fix initialization of VMware Fusion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The vmware driver wants to execute vmware-vmx from the same directory in
which vmrun was found. However, on VMware Fusion 10 vmrun at
/Applications/VMware Fusion.app/Contents/Public/vmrun is a symlink
pointing to ../Library/vmrun. vmware-vmx cannot be found, as
it is not in PATH, but only in this Library directory.

Therefore, follow the vmrun symlink and use the resulting path. Then the
assumption that vmware-vmx is right next to it will still work.

Signed-off-by: Rainer Müller <raimue@xxxxxxxxxxxxx>
---
 src/vmware/vmware_driver.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
index 8b487c4a7..60e1c1abc 100644
--- a/src/vmware/vmware_driver.c
+++ b/src/vmware/vmware_driver.c
@@ -127,6 +127,7 @@ vmwareConnectOpen(virConnectPtr conn,
     struct vmware_driver *driver;
     size_t i;
     char *tmp;
+    char *vmrun = NULL;
 
     virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
 
@@ -164,7 +165,12 @@ vmwareConnectOpen(virConnectPtr conn,
      * for auto detection of the backend
      */
     for (i = 0; i < ARRAY_CARDINALITY(vmrun_candidates); i++) {
-        driver->vmrun = virFindFileInPath(vmrun_candidates[i]);
+        vmrun = virFindFileInPath(vmrun_candidates[i]);
+        if (virFileResolveLink(vmrun, &driver->vmrun) < 0) {
+            virReportSystemError(errno, _("unable to resolve symlink '%s'"), vmrun);
+            goto cleanup;
+        }
+        VIR_FREE(vmrun);
         /* If we found one, we can stop looking */
         if (driver->vmrun)
             break;
@@ -215,6 +221,7 @@ vmwareConnectOpen(virConnectPtr conn,
 
  cleanup:
     vmwareFreeDriver(driver);
+    VIR_FREE(vmrun);
     return VIR_DRV_OPEN_ERROR;
 };
 
-- 
2.16.3

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux