From 856034515f852c63a0994275405ffb06123778a2 Mon Sep 17 00:00:00 2001 From: Ravindra Kumar Date: Thu, 15 Jul 2021 12:33:43 -0700 Subject: [PATCH] Package new upstream version open-vm-tools-11.3.0-18090558. Add vmware-alias-import, vmwgfxctrl, libgdp.so, libguestStore.so and libguestStoreClient.so.*. Remove open-vm-tools-fix-kms-autodetection.patch, open-vm-tools-gcc11.patch and open-vm-tools-gdk-glib.patch as no longer needed. --- .gitignore | 1 + open-vm-tools-fix-kms-autodetection.patch | 712 ---------------------- open-vm-tools-gcc11.patch | 13 - open-vm-tools-gdk-glib.patch | 72 --- open-vm-tools.spec | 30 +- sources | 2 +- 6 files changed, 23 insertions(+), 807 deletions(-) delete mode 100644 open-vm-tools-fix-kms-autodetection.patch delete mode 100644 open-vm-tools-gcc11.patch delete mode 100644 open-vm-tools-gdk-glib.patch diff --git a/.gitignore b/.gitignore index 408abf8..35e37a9 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ /open-vm-tools-11.1.5-16724464.tar.gz /open-vm-tools-11.2.0-16938113.tar.gz /open-vm-tools-11.2.5-17337674.tar.gz +/open-vm-tools-11.3.0-18090558.tar.gz diff --git a/open-vm-tools-fix-kms-autodetection.patch b/open-vm-tools-fix-kms-autodetection.patch deleted file mode 100644 index 66b489d..0000000 --- a/open-vm-tools-fix-kms-autodetection.patch +++ /dev/null @@ -1,712 +0,0 @@ -diff -Naur open-vm-tools-11.2.5-17337674.old/services/plugins/resolutionSet/resolutionCommon.c open-vm-tools-11.2.5-17337674/services/plugins/resolutionSet/resolutionCommon.c ---- open-vm-tools-11.2.5-17337674.old/services/plugins/resolutionSet/resolutionCommon.c 2020-12-17 21:11:31.000000000 +0100 -+++ open-vm-tools-11.2.5-17337674/services/plugins/resolutionSet/resolutionCommon.c 2021-06-01 13:39:55.989687060 +0200 -@@ -42,25 +42,8 @@ - - /* Required DRM version for resolutionKMS */ - #define RESOLUTION_DRM_MAJOR 2 --#define RESOLUTION_DRM_MINOR 12 -+#define RESOLUTION_DRM_MINOR 14 - --/* Required Xorg driver version for resolutionKMS default on */ --#define RESOLUTION_XORG_MAJOR 13 --#define RESOLUTION_XORG_MINOR 2 -- --/* Recognition token for Xorg driver version scanner */ --#define RESOLUTION_XORG_VERSTRING "version=" -- --/* -- * Xorg driver file names to scan for. Only the first found will be -- * scanned for version info. -- */ --static const char *driverNames[]= { -- "/usr/lib64/xorg/modules/drivers/vmware_drv.so", -- "/usr/lib/xorg/modules/drivers/vmware_drv.so" --}; -- --static const int numDriverNames = 2; - - /* - *----------------------------------------------------------------------------- -@@ -106,52 +89,52 @@ - */ - enumerate = udev_enumerate_new(udev); - if (udev_enumerate_add_match_subsystem(enumerate, "drm")) -- goto outErr; -+ goto outErr; - if (udev_enumerate_add_match_property(enumerate, "DEVTYPE", "drm_minor")) -- goto outErr; -+ goto outErr; - if (udev_enumerate_scan_devices(enumerate)) -- goto outErr; -+ goto outErr; - - devices = udev_enumerate_get_list_entry(enumerate); - udev_list_entry_foreach(devListEntry, devices) { -- const char *path, *vendor, *device; -- struct udev_device *parent; -+ const char *path, *vendor, *device; -+ struct udev_device *parent; - -- path = udev_list_entry_get_name(devListEntry); -- if (!path) -- continue; -- if (!strstr(path, node)) -- continue; -- -- dev = udev_device_new_from_syspath(udev, path); -- if (!dev) -- goto outErr; -- -- parent = udev_device_get_parent_with_subsystem_devtype(dev, -- "pci", -- NULL); -- if (!parent) -- goto skipCheck; -- -- vendor = udev_device_get_sysattr_value(parent, "vendor"); -- device = udev_device_get_sysattr_value(parent, "device"); -- if (!vendor || !device) -- goto skipCheck; -- -- if (strcmp(vendor, RESOLUTION_VENDOR) || -- strcmp(device, RESOLUTION_DEVICE)) -- goto skipCheck; -- -- devNode = udev_device_get_devnode(dev); -- if (!devNode) -- goto outFound; -- -- fd = open(devNode, O_RDWR); -- udev_device_unref(dev); -- break; -+ path = udev_list_entry_get_name(devListEntry); -+ if (!path) -+ continue; -+ if (!strstr(path, node)) -+ continue; -+ -+ dev = udev_device_new_from_syspath(udev, path); -+ if (!dev) -+ goto outErr; -+ -+ parent = udev_device_get_parent_with_subsystem_devtype(dev, -+ "pci", -+ NULL); -+ if (!parent) -+ goto skipCheck; -+ -+ vendor = udev_device_get_sysattr_value(parent, "vendor"); -+ device = udev_device_get_sysattr_value(parent, "device"); -+ if (!vendor || !device) -+ goto skipCheck; -+ -+ if (strcmp(vendor, RESOLUTION_VENDOR) || -+ strcmp(device, RESOLUTION_DEVICE)) -+ goto skipCheck; -+ -+ devNode = udev_device_get_devnode(dev); -+ if (!devNode) -+ goto outFound; -+ -+ fd = open(devNode, O_RDWR); -+ udev_device_unref(dev); -+ break; - - skipCheck: -- udev_device_unref(dev); -+ udev_device_unref(dev); - } - - udev_enumerate_unref(enumerate); -@@ -199,23 +182,25 @@ - static int - resolutionDRMCheckVersion(int fd) // IN: An open DRM file descriptor. - { -- drmVersionPtr ver = drmGetVersion(fd); -+ drmVersionPtr ver = drmGetVersion(fd); - -- if (!ver) { -- g_debug("%s: Failed to get DRM version.\n", __func__); -- return -1; -- } -+ if (!ver) { -+ g_debug("%s: Failed to get DRM version.\n", __func__); -+ return -1; -+ } - -- if (ver->version_major != RESOLUTION_DRM_MAJOR || -- ver->version_minor < RESOLUTION_DRM_MINOR) { -- g_debug("%s: Insufficient DRM version %d.%d for resolutionKMS.\n", -- __func__, ver->version_major, ver->version_minor); -- drmFreeVersion(ver); -- return -1; -- } -+ if (ver->version_major != RESOLUTION_DRM_MAJOR || -+ ver->version_minor < RESOLUTION_DRM_MINOR) { -+ g_debug("%s: Insufficient DRM version %d.%d for resolutionKMS.\n", -+ __func__, ver->version_major, ver->version_minor); -+ drmFreeVersion(ver); -+ return -1; -+ } -+ g_debug("%s: DRM version %d.%d.\n", -+ __func__, ver->version_major, ver->version_minor); - -- drmFreeVersion(ver); -- return 0; -+ drmFreeVersion(ver); -+ return 0; - } - - -@@ -241,27 +226,27 @@ - static int - resolutionDRMRPrimaryCheckOpen(void) - { -- int fd = -1; -+ int fd = -1; - -- fd = resolutionOpenDRM("renderD"); -- if (fd < 0) { -- g_debug("%s: Failed to open DRM render node.\n", __func__); -- fd = resolutionOpenDRM("card"); -- if (fd >= 0) -- (void) drmDropMaster(fd); -- } -- if (fd < 0) { -- g_debug("%s: Failed to open DRM card node.\n", __func__); -- goto outErr; -- } -+ fd = resolutionOpenDRM("renderD"); -+ if (fd < 0) { -+ g_debug("%s: Failed to open DRM render node.\n", __func__); -+ fd = resolutionOpenDRM("card"); -+ if (fd >= 0) -+ (void) drmDropMaster(fd); -+ } -+ if (fd < 0) { -+ g_debug("%s: Failed to open DRM card node.\n", __func__); -+ goto outErr; -+ } - -- if (!resolutionDRMCheckVersion(fd)) { -- return fd; -- } -+ if (!resolutionDRMCheckVersion(fd)) { -+ return fd; -+ } - -- close(fd); -- outErr: -- return -1; -+ close(fd); -+outErr: -+ return -1; - } - - -@@ -288,60 +273,43 @@ - resolutionCheckForKMS(ToolsAppCtx *ctx) // IN: The ToolsAppCtx for - // configuration db access. - { -- GError *err = NULL; -- gboolean doResolutionKMS; -- int fd; -- -- doResolutionKMS = g_key_file_get_boolean(ctx->config, "resolutionKMS", -- "enable", &err); -- if (err) { -- /* -- * If there is nothing in the configuration file, require -- * at least Xorg driver version 13.2.0, which has the autolayout -- * feature, to enable resolutionKMS. -- */ -- int major, minor, level; -- g_clear_error(&err); -- doResolutionKMS = FALSE; -- if (!resolutionXorgDriverVersion(numDriverNames, driverNames, -- RESOLUTION_XORG_VERSTRING, &major, -- &minor, &level) && -- (major > RESOLUTION_XORG_MAJOR || -- (major == RESOLUTION_XORG_MAJOR && -- minor >= RESOLUTION_XORG_MINOR))) { -- doResolutionKMS = TRUE; -- g_debug("%s: ResolutionKMS enabled based on Xorg driver version.\n", -- __func__); -- } else { -- g_debug("%s: ResolutionKMS disabled. (No configuration).\n", -- __func__); -- doResolutionKMS = FALSE; -- } -- } else { -- g_debug("%s: ResolutionKMS %s using configuration file info.\n", -- __func__, (doResolutionKMS) ? "enabled" : "disabled"); -- } -+ GError *err = NULL; -+ gboolean doResolutionKMS; -+ int fd; -+ -+ doResolutionKMS = g_key_file_get_boolean(ctx->config, "resolutionKMS", -+ "enable", &err); -+ if (err) { -+ g_clear_error(&err); -+ /* -+ * We are going to try to see if we can load a valid vmwgfx -+ */ -+ doResolutionKMS = TRUE; -+ } else { -+ g_debug("%s: ResolutionKMS %s using configuration file info.\n", -+ __func__, (doResolutionKMS) ? "enabled" : "disabled"); -+ } - -- if (!doResolutionKMS) -- return -1; -+ if (!doResolutionKMS) -+ return -1; - -- if (resolutionDLOpen()) { -- g_warning("%s: Failed to find needed system libraries for " -- "resolutionKMS.\n", __func__); -- return -1; -- } else { -- g_message("%s: dlopen succeeded.\n", __func__); -- } -+ if (resolutionDLOpen()) { -+ g_warning("%s: Failed to find needed system libraries for " -+ "resolutionKMS.\n", __func__); -+ return -1; -+ } else { -+ g_message("%s: dlopen succeeded.\n", __func__); -+ } - -- fd = resolutionDRMRPrimaryCheckOpen(); -+ fd = resolutionDRMRPrimaryCheckOpen(); - -- if (fd < 0) -- g_warning("%s: No system support for resolutionKMS.\n", __func__); -- else -- g_message("%s: System support available for resolutionKMS.\n", -- __func__); -+ if (fd < 0) -+ g_warning("%s: No system support for resolutionKMS.\n", __func__); -+ else -+ g_message("%s: System support available for resolutionKMS.\n", -+ __func__); - -- return fd; -+ return fd; - } - - /* -@@ -364,84 +332,8 @@ - void - resolutionDRMClose(int fd) - { -- close(fd); -- resolutionDLClose(); -+ close(fd); -+ resolutionDLClose(); - } - - #endif /* ENABLE_RESOLUTIONKMS */ -- --/* -- *----------------------------------------------------------------------------- -- * -- * resolutionXorgDriverVersion -- -- * -- * Scans for VMWare Xorg driver files and tries to determine the Xorg -- * driver version. -- * -- * Results: -- * If succesful returns zero and outputs the driver version in the -- * parameters major, minor and level. If not successful, returns -1. -- * -- * Side effects: -- * None. -- * -- *----------------------------------------------------------------------------- -- */ --int --resolutionXorgDriverVersion(int numPaths, // IN: Number of strings -- // in paths. -- const char *paths[], // IN: Possible driver -- // paths. -- const char versionString[], // IN: Version token. -- int *major, // OUT: Major version # -- int *minor, // OUT: Minor version # -- int *level) // OUT: Patchlevel -- // version # --{ -- FILE *driver = NULL; -- const char *curMatch; -- int curFileChar; -- int i; -- -- g_debug("%s: Scanning for VMWare Xorg drivers.\n", __func__); -- for(i = 0; i < numPaths; ++i) { -- g_debug("%s: Looking for \"%s\".\n", __func__, paths[i]); -- driver = fopen(paths[i], "r"); -- if (driver) -- break; -- } -- -- if (!driver) { -- g_debug("%s: No driver found.\n", __func__); -- return -1; -- } -- -- g_debug("%s: Driver found. Looking for version info.\n", __func__); -- curMatch = versionString; -- while (*curMatch) { -- if (feof(driver)) -- goto outNotFound; -- -- curFileChar = fgetc(driver); -- if (curFileChar != EOF && curFileChar == *curMatch) { -- curMatch++; -- continue; -- } else if (curMatch != versionString) { -- curMatch = versionString; -- (void) ungetc(curFileChar, driver); -- } -- } -- -- if (fscanf(driver, "%d.%d.%d", major, minor, level) != 3) -- goto outNotFound; -- -- fclose(driver); -- g_debug("%s: Version info found: %d.%d.%d\n", __func__, *major, *minor, -- *level); -- return 0; -- -- outNotFound: -- fclose(driver); -- g_debug("%s: No version info found.\n", __func__); -- return -1; --} -diff -Naur open-vm-tools-11.2.5-17337674.old/services/plugins/resolutionSet/resolutionCommon.h open-vm-tools-11.2.5-17337674/services/plugins/resolutionSet/resolutionCommon.h ---- open-vm-tools-11.2.5-17337674.old/services/plugins/resolutionSet/resolutionCommon.h 2020-12-17 21:11:31.000000000 +0100 -+++ open-vm-tools-11.2.5-17337674/services/plugins/resolutionSet/resolutionCommon.h 2021-06-01 13:39:55.989687060 +0200 -@@ -42,12 +42,4 @@ - - #endif /* !ENABLE_RESOLUTIONKMS */ - --int --resolutionXorgDriverVersion(int numPaths, -- const char *paths[], -- const char versionString[], -- int *major, -- int *minor, -- int *level); -- - #endif /* _RESOLUTION_COMMON_H_ */ -diff -Naur open-vm-tools-11.2.5-17337674.old/services/plugins/resolutionSet/resolutionDL.c open-vm-tools-11.2.5-17337674/services/plugins/resolutionSet/resolutionDL.c ---- open-vm-tools-11.2.5-17337674.old/services/plugins/resolutionSet/resolutionDL.c 2020-12-17 21:11:31.000000000 +0100 -+++ open-vm-tools-11.2.5-17337674/services/plugins/resolutionSet/resolutionDL.c 2021-06-01 13:39:55.989687060 +0200 -@@ -34,44 +34,44 @@ - - - struct FuncToResolv { -- size_t offset; -- const char *name; -+ size_t offset; -+ const char *name; - }; - - #define UDEV_RESOLV(_name) \ -- {.offset = offsetof(struct Udev1Interface, _name), \ -- .name = "udev"#_name} -+ {.offset = offsetof(struct Udev1Interface, _name), \ -+ .name = "udev"#_name} - - #define LIBDRM_RESOLV(_name) \ -- {.offset = offsetof(struct Drm2Interface, _name), \ -- .name = "drm"#_name} -+ {.offset = offsetof(struct Drm2Interface, _name), \ -+ .name = "drm"#_name} - - - static struct FuncToResolv udev1Table[] = { -- UDEV_RESOLV(_device_get_devnode), -- UDEV_RESOLV(_device_get_parent_with_subsystem_devtype), -- UDEV_RESOLV(_device_get_sysattr_value), -- UDEV_RESOLV(_device_new_from_syspath), -- UDEV_RESOLV(_device_unref), -- UDEV_RESOLV(_enumerate_add_match_property), -- UDEV_RESOLV(_enumerate_add_match_subsystem), -- UDEV_RESOLV(_enumerate_get_list_entry), -- UDEV_RESOLV(_enumerate_new), -- UDEV_RESOLV(_enumerate_scan_devices), -- UDEV_RESOLV(_enumerate_unref), -- UDEV_RESOLV(_list_entry_get_name), -- UDEV_RESOLV(_list_entry_get_next), -- UDEV_RESOLV(_new), -- UDEV_RESOLV(_unref) -+ UDEV_RESOLV(_device_get_devnode), -+ UDEV_RESOLV(_device_get_parent_with_subsystem_devtype), -+ UDEV_RESOLV(_device_get_sysattr_value), -+ UDEV_RESOLV(_device_new_from_syspath), -+ UDEV_RESOLV(_device_unref), -+ UDEV_RESOLV(_enumerate_add_match_property), -+ UDEV_RESOLV(_enumerate_add_match_subsystem), -+ UDEV_RESOLV(_enumerate_get_list_entry), -+ UDEV_RESOLV(_enumerate_new), -+ UDEV_RESOLV(_enumerate_scan_devices), -+ UDEV_RESOLV(_enumerate_unref), -+ UDEV_RESOLV(_list_entry_get_name), -+ UDEV_RESOLV(_list_entry_get_next), -+ UDEV_RESOLV(_new), -+ UDEV_RESOLV(_unref) - }; - - static struct FuncToResolv drm2Table[] = { -- LIBDRM_RESOLV(Open), -- LIBDRM_RESOLV(Close), -- LIBDRM_RESOLV(GetVersion), -- LIBDRM_RESOLV(FreeVersion), -- LIBDRM_RESOLV(DropMaster), -- LIBDRM_RESOLV(CommandWrite) -+ LIBDRM_RESOLV(Open), -+ LIBDRM_RESOLV(Close), -+ LIBDRM_RESOLV(GetVersion), -+ LIBDRM_RESOLV(FreeVersion), -+ LIBDRM_RESOLV(DropMaster), -+ LIBDRM_RESOLV(CommandWrite) - }; - - struct Udev1Interface *udevi = NULL; -@@ -95,20 +95,20 @@ - void - resolutionDLClose(void) - { -- if (udevi) { -- free(udevi); -- udevi = NULL; -- } -- -- if (drmi) { -- free(drmi); -- drmi = NULL; -- } -- -- if (dlhandle) { -- dlclose(dlhandle); -- dlhandle = NULL; -- } -+ if (udevi) { -+ free(udevi); -+ udevi = NULL; -+ } -+ -+ if (drmi) { -+ free(drmi); -+ drmi = NULL; -+ } -+ -+ if (dlhandle) { -+ dlclose(dlhandle); -+ dlhandle = NULL; -+ } - } - - /* -@@ -128,47 +128,47 @@ - */ - static int - resolutionDLResolve(void **ptr, // OUT: pointer to -- // function table. -- size_t size, // IN: Size of ft. -- const char name[], // IN: Library name. -- const struct FuncToResolv table[], // IN: Table of name- -- // offset pairs -- int numEntries) // IN: Num entries in -+ // function table. -+ size_t size, // IN: Size of ft. -+ const char name[], // IN: Library name. -+ const struct FuncToResolv table[], // IN: Table of name- -+ // offset pairs -+ int numEntries) // IN: Num entries in - // table. - { -- void **func_ptr; -- int i; -+ void **func_ptr; -+ int i; - -- if (*ptr) -- return 0; -+ if (*ptr) -+ return 0; - -- *ptr = malloc(size); -- if (!*ptr) -- return -1; -- -- dlhandle = dlopen(name, RTLD_NOW); -- if (!dlhandle) { -- g_debug("%s: Failed to open shared library \"%s\".\n", __func__, -- name); -- goto out_err; -- } -- -- for (i = 0; i < numEntries; ++i) { -- func_ptr = (void *) ((unsigned long) *ptr + table[i].offset); -- *func_ptr = dlsym(dlhandle, table[i].name); -- if (!*func_ptr) { -- g_debug("%s: Failed to resolve %s symbol \"%s\".\n", __func__, -- name,table[i].name); -- goto out_err; -- } -- } -+ *ptr = malloc(size); -+ if (!*ptr) -+ return -1; -+ -+ dlhandle = dlopen(name, RTLD_NOW); -+ if (!dlhandle) { -+ g_debug("%s: Failed to open shared library \"%s\".\n", __func__, -+ name); -+ goto out_err; -+ } -+ -+ for (i = 0; i < numEntries; ++i) { -+ func_ptr = (void *) ((unsigned long) *ptr + table[i].offset); -+ *func_ptr = dlsym(dlhandle, table[i].name); -+ if (!*func_ptr) { -+ g_debug("%s: Failed to resolve %s symbol \"%s\".\n", __func__, -+ name,table[i].name); -+ goto out_err; -+ } -+ } - -- return 0; -+ return 0; - -- out_err: -- resolutionDLClose(); -+out_err: -+ resolutionDLClose(); - -- return -1; -+ return -1; - } - - /* -@@ -190,18 +190,18 @@ - int - resolutionDLOpen(void) - { -- /* We support libudev major versions 0 and 1 for now. */ -- if (resolutionDLResolve((void **)&udevi, sizeof(*udevi), "libudev.so.1", -- udev1Table, ARRAYSIZE(udev1Table)) && -- resolutionDLResolve((void **)&udevi, sizeof(*udevi), "libudev.so.0", -- udev1Table, ARRAYSIZE(udev1Table))) -- return -1; -- -- if (resolutionDLResolve((void **)&drmi, sizeof(*drmi), "libdrm.so.2", -- drm2Table, ARRAYSIZE(drm2Table))) -- return -1; -+ /* We support libudev major versions 0 and 1 for now. */ -+ if (resolutionDLResolve((void **)&udevi, sizeof(*udevi), "libudev.so.1", -+ udev1Table, ARRAYSIZE(udev1Table)) && -+ resolutionDLResolve((void **)&udevi, sizeof(*udevi), "libudev.so.0", -+ udev1Table, ARRAYSIZE(udev1Table))) -+ return -1; -+ -+ if (resolutionDLResolve((void **)&drmi, sizeof(*drmi), "libdrm.so.2", -+ drm2Table, ARRAYSIZE(drm2Table))) -+ return -1; - -- return 0; -+ return 0; - } - - #endif /* !HAVE_LIBUDEV */ -diff -Naur open-vm-tools-11.2.5-17337674.old/services/plugins/resolutionSet/resolutionX11.c open-vm-tools-11.2.5-17337674/services/plugins/resolutionSet/resolutionX11.c ---- open-vm-tools-11.2.5-17337674.old/services/plugins/resolutionSet/resolutionX11.c 2020-12-17 21:11:31.000000000 +0100 -+++ open-vm-tools-11.2.5-17337674/services/plugins/resolutionSet/resolutionX11.c 2021-06-01 13:39:55.990687078 +0200 -@@ -82,6 +82,83 @@ - - - /* -+ *----------------------------------------------------------------------------- -+ * -+ * resolutionXorgDriverVersion -- -+ * -+ * Scans for VMWare Xorg driver files and tries to determine the Xorg -+ * driver version. -+ * -+ * Results: -+ * If succesful returns zero and outputs the driver version in the -+ * parameters major, minor and level. If not successful, returns -1. -+ * -+ * Side effects: -+ * None. -+ * -+ *----------------------------------------------------------------------------- -+ */ -+static int -+resolutionXorgDriverVersion(int numPaths, // IN: Number of strings -+ // in paths. -+ const char *paths[], // IN: Possible driver -+ // paths. -+ const char versionString[], // IN: Version token. -+ int *major, // OUT: Major version # -+ int *minor, // OUT: Minor version # -+ int *level) // OUT: Patchlevel -+ // version # -+{ -+ FILE *driver = NULL; -+ const char *curMatch; -+ int curFileChar; -+ int i; -+ -+ g_debug("%s: Scanning for VMWare Xorg drivers.\n", __func__); -+ for(i = 0; i < numPaths; ++i) { -+ g_debug("%s: Looking for \"%s\".\n", __func__, paths[i]); -+ driver = fopen(paths[i], "r"); -+ if (driver) -+ break; -+ } -+ -+ if (!driver) { -+ g_debug("%s: No driver found.\n", __func__); -+ return -1; -+ } -+ -+ g_debug("%s: Driver found. Looking for version info.\n", __func__); -+ curMatch = versionString; -+ while (*curMatch) { -+ if (feof(driver)) -+ goto outNotFound; -+ -+ curFileChar = fgetc(driver); -+ if (curFileChar != EOF && curFileChar == *curMatch) { -+ curMatch++; -+ continue; -+ } else if (curMatch != versionString) { -+ curMatch = versionString; -+ (void) ungetc(curFileChar, driver); -+ } -+ } -+ -+ if (fscanf(driver, "%d.%d.%d", major, minor, level) != 3) -+ goto outNotFound; -+ -+ fclose(driver); -+ g_debug("%s: Version info found: %d.%d.%d\n", __func__, *major, *minor, -+ *level); -+ return 0; -+ -+outNotFound: -+ fclose(driver); -+ g_debug("%s: No version info found.\n", __func__); -+ return -1; -+} -+ -+ -+/* - * Global function definitions - */ - diff --git a/open-vm-tools-gcc11.patch b/open-vm-tools-gcc11.patch deleted file mode 100644 index ae85124..0000000 --- a/open-vm-tools-gcc11.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/lib/pollGtk/pollGtk.c b/lib/pollGtk/pollGtk.c -index 4ccaeda..336a8bf 100644 ---- a/lib/pollGtk/pollGtk.c -+++ b/lib/pollGtk/pollGtk.c -@@ -127,7 +127,7 @@ typedef struct Poll { - } Poll; - - static Poll *pollState; --static volatile gsize inited = 0; -+static gsize inited = 0; - - static VMwareStatus - PollGtkCallback(PollClassSet classSet, // IN diff --git a/open-vm-tools-gdk-glib.patch b/open-vm-tools-gdk-glib.patch deleted file mode 100644 index 04bae45..0000000 --- a/open-vm-tools-gdk-glib.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff -ur a/lib/include/tracer.hh b/lib/include/tracer.hh ---- a/lib/include/tracer.hh 2020-12-17 12:11:31.000000000 -0800 -+++ b/lib/include/tracer.hh 2021-03-15 19:51:49.287342746 -0700 -@@ -28,9 +28,7 @@ - - #include "vm_basic_defs.h" - --extern "C" { - #include "glib.h" --} - - - #ifdef VMX86_DEVEL -diff -ur a/services/plugins/dndcp/copyPasteUIX11.cpp b/services/plugins/dndcp/copyPasteUIX11.cpp ---- a/services/plugins/dndcp/copyPasteUIX11.cpp 2020-12-17 12:11:31.000000000 -0800 -+++ b/services/plugins/dndcp/copyPasteUIX11.cpp 2021-03-15 19:53:20.020952955 -0700 -@@ -1666,6 +1666,7 @@ - char buf[sizeof(VMBLOCK_FUSE_READ_RESPONSE)]; - ssize_t size; - size = read(fd, buf, sizeof(VMBLOCK_FUSE_READ_RESPONSE)); -+ (void) size; /* Prevent unused variable warning */ - /* - * The current thread will block in read function until - * any other application accesses the file params->fileBlockName -diff -ur a/services/plugins/dndcp/dndcp.cpp b/services/plugins/dndcp/dndcp.cpp ---- a/services/plugins/dndcp/dndcp.cpp 2020-12-17 12:11:31.000000000 -0800 -+++ b/services/plugins/dndcp/dndcp.cpp 2021-03-15 19:54:34.873281325 -0700 -@@ -33,9 +33,9 @@ - - extern "C" { - #include "vmware/guestrpc/tclodefs.h" -+} - #include "vmware/tools/plugin.h" - #include "vmware/tools/utils.h" --} - - #include - #include "copyPasteDnDWrapper.h" -diff -ur a/services/plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp b/services/plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp ---- a/services/plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp 2020-12-17 12:12:15.000000000 -0800 -+++ b/services/plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp 2021-03-15 19:55:28.810238519 -0700 -@@ -31,13 +31,11 @@ - - #include "dnd.h" - --extern "C" { - #ifdef VMX86_TOOLS - #include "vmware/tools/guestrpc.h" - #else - #include "guest_rpc.h" - #endif --} - - #define GUEST_RPC_CMD_STR_DND "dnd.transport" - #define GUEST_RPC_CMD_STR_CP "copypaste.transport" -diff -ur a/services/plugins/dndcp/dndUIX11.cpp b/services/plugins/dndcp/dndUIX11.cpp ---- a/services/plugins/dndcp/dndUIX11.cpp 2020-12-17 12:11:31.000000000 -0800 -+++ b/services/plugins/dndcp/dndUIX11.cpp 2021-03-15 20:53:51.733705766 -0700 -@@ -467,8 +467,13 @@ - #ifndef GTK3 - event.device = gdk_device_get_core_pointer(); - #else -+ #if GTK_MINOR_VERSION >= 20 -+ GdkSeat* seat = gdk_display_get_default_seat(gdk_window_get_display(event.window)); -+ event.device = gdk_seat_get_pointer(seat); -+ #else - GdkDeviceManager* manager = gdk_display_get_device_manager(gdk_window_get_display(event.window)); - event.device = gdk_device_manager_get_client_pointer(manager); -+ #endif - #endif - event.x_root = mOrigin.get_x(); - event.y_root = mOrigin.get_y(); diff --git a/open-vm-tools.spec b/open-vm-tools.spec index 0957a60..33e6f59 100644 --- a/open-vm-tools.spec +++ b/open-vm-tools.spec @@ -19,9 +19,9 @@ ################################################################################ %global _hardened_build 1 -%global majorversion 11.2 -%global minorversion 5 -%global toolsbuild 17337674 +%global majorversion 11.3 +%global minorversion 0 +%global toolsbuild 18090558 %global toolsversion %{majorversion}.%{minorversion} %global toolsdaemon vmtoolsd %global vgauthdaemon vgauthd @@ -32,7 +32,7 @@ Name: open-vm-tools Version: %{toolsversion} -Release: 9%{?dist} +Release: 1%{?dist} Summary: Open Virtual Machine Tools for virtual machines hosted on VMware License: GPLv2 URL: https://github.com/vmware/%{name} @@ -44,9 +44,6 @@ Source3: run-vmblock\x2dfuse.mount Source4: open-vm-tools.conf Source5: vmtoolsd.pam -# 11.3.x branch: -# https://github.com/vmware/open-vm-tools/commit/ff5eb5f448c78448b96f9c3db957d19f0288a9b6 -Patch0: %{name}-fix-kms-autodetection.patch %if 0%{?rhel} >= 7 ExclusiveArch: x86_64 @@ -54,8 +51,9 @@ ExclusiveArch: x86_64 ExclusiveArch: %{ix86} x86_64 aarch64 %endif -Patch1: %{name}-gcc11.patch -Patch2: %{name}-gdk-glib.patch +# Patches +#Patch1: .patch +#Patch2: .patch BuildRequires: autoconf BuildRequires: automake @@ -330,6 +328,7 @@ fi %{_bindir}/vm-support %{_bindir}/vmhgfs-fuse %{_bindir}/vmtoolsd +%{_bindir}/vmware-alias-import %{_bindir}/vmware-checkvm %{_bindir}/vmware-hgfsclient %{_bindir}/vmware-namespace-cmd @@ -339,6 +338,7 @@ fi %{_bindir}/vmware-xferlogs %{_libdir}/libDeployPkg.so.* %{_libdir}/libguestlib.so.* +%{_libdir}/libguestStoreClient.so.* %{_libdir}/libhgfs.so.* %{_libdir}/libvgauth.so.* %{_libdir}/libvmtools.so.* @@ -349,7 +349,9 @@ fi %dir %{_libdir}/%{name}/plugins/vmsvc %{_libdir}/%{name}/plugins/vmsvc/libappInfo.so %{_libdir}/%{name}/plugins/vmsvc/libdeployPkgPlugin.so +%{_libdir}/%{name}/plugins/vmsvc/libgdp.so %{_libdir}/%{name}/plugins/vmsvc/libguestInfo.so +%{_libdir}/%{name}/plugins/vmsvc/libguestStore.so %{_libdir}/%{name}/plugins/vmsvc/libpowerOps.so %{_libdir}/%{name}/plugins/vmsvc/libresolutionKMS.so %{_libdir}/%{name}/plugins/vmsvc/libtimeSync.so @@ -364,6 +366,7 @@ fi %files desktop %{_sysconfdir}/xdg/autostart/*.desktop %{_bindir}/vmware-user +%{_bindir}/vmwgfxctrl %attr(4755,-,-) %{_bindir}/vmware-user-suid-wrapper %{_bindir}/vmware-vmblock-fuse %{_libdir}/%{name}/plugins/vmusr/ @@ -380,6 +383,7 @@ fi %{_libdir}/pkgconfig/*.pc %{_libdir}/libDeployPkg.so %{_libdir}/libguestlib.so +%{_libdir}/libguestStoreClient.so %{_libdir}/libhgfs.so %{_libdir}/libvgauth.so %{_libdir}/libvmtools.so @@ -388,6 +392,14 @@ fi %{_bindir}/vmware-vgauth-smoketest %changelog +* Thu Jul 15 2021 Ravindra Kumar - 11.3.0-1 +- Package new upstream version open-vm-tools-11.3.0-18090558. +- Add vmware-alias-import, vmwgfxctrl, libgdp.so, libguestStore.so + and libguestStoreClient.so.*. +- Remove open-vm-tools-fix-kms-autodetection.patch, + open-vm-tools-gcc11.patch and open-vm-tools-gdk-glib.patch + as no longer needed. + * Tue Jun 01 2021 Simone Caronni - 11.2.5-9 - Backport patch for KMS autodetection. diff --git a/sources b/sources index 9c1bfcc..627a9e4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (open-vm-tools-11.2.5-17337674.tar.gz) = b6d4bc6522418ec7a881752181ad9240e535854df492e758abf3996c6afe245466ffbff60cc1b6cdff5cf731b5769c9f9cb96aed29f0b788d0eef05f91fcf8ab +SHA512 (open-vm-tools-11.3.0-18090558.tar.gz) = 36fa4fc309e57f49f1000abe8ca48aaf8bda67cd0ef3fd25ed0dfc12e2dd88e5a2bc8dae69abbadb44b2fa5195802f9925681a452f54916daa268adb20e8c8cd