commit: 2c1c3fe7d60160a8a2535c081301b47ab97adb6b Author: Mike Gilbert <floppym <AT> gentoo <DOT> org> AuthorDate: Mon Apr 19 21:25:51 2021 +0000 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> CommitDate: Mon Apr 19 21:27:07 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c1c3fe7
app-emulation/open-vm-tools: replace glib fix with upstream patch Bug: https://bugs.gentoo.org/784077 Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org> .../open-vm-tools/files/11.2.5-glib-2.68.patch | 140 ++++++++++++++++++++- 1 file changed, 138 insertions(+), 2 deletions(-) diff --git a/app-emulation/open-vm-tools/files/11.2.5-glib-2.68.patch b/app-emulation/open-vm-tools/files/11.2.5-glib-2.68.patch index 1e35f6cb673..b04342c3f68 100644 --- a/app-emulation/open-vm-tools/files/11.2.5-glib-2.68.patch +++ b/app-emulation/open-vm-tools/files/11.2.5-glib-2.68.patch @@ -1,5 +1,44 @@ ---- a/open-vm-tools/lib/include/tracer.hh 2021-04-19 16:42:19.967147908 -0400 -+++ b/open-vm-tools/lib/include/tracer.hh 2021-04-19 16:42:27.364829692 -0400 +From 82931a1bcb39d5132910c7fb2ddc086c51d06662 Mon Sep 17 00:00:00 2001 +From: John Wolfe <jwo...@vmware.com> +Date: Mon, 19 Apr 2021 11:08:10 -0700 +Subject: [PATCH] Fix issues using GCC 11 with gtk >= 3.20 and glib >=2.66.3 + +With glib2.0 releases >= 2.66.3, glib header files inside an +extern "C" block will encounter compilation errors. This has +impacted several OSS packages. Consumers of newer versions of glib2.0 +must not include glib headers in an extern "C" block. + +GTK 3.20 has deprecated gdk_display_get_device_manager(); using the +newer gdk_display_get_default_seat() when the GTK version is >= 3.20. + +The return value from read() must be used to avoid an unused result +warning from the compiler. This can be avoided by using dummy retyping +in the case where the return value is not used or in this case, using +the returned value in a debug log message. + +Pull Request: https://github.com/vmware/open-vm-tools/pull/505 +Addresses: https://github.com/vmware/open-vm-tools/issues/500 +Addresses: https://github.com/vmware/open-vm-tools/issues/509 +--- + open-vm-tools/AUTHORS | 3 +++ + open-vm-tools/lib/include/tracer.hh | 4 +--- + .../services/plugins/dndcp/copyPasteUIX11.cpp | 3 ++- + .../plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp | 6 +++--- + open-vm-tools/services/plugins/dndcp/dndUIX11.cpp | 11 +++++++++-- + open-vm-tools/services/plugins/dndcp/dndcp.cpp | 7 ++++++- + 6 files changed, 24 insertions(+), 10 deletions(-) + +diff --git a/open-vm-tools/lib/include/tracer.hh b/open-vm-tools/lib/include/tracer.hh +index 697caedbc..e9ae892cb 100644 +--- a/open-vm-tools/lib/include/tracer.hh ++++ b/open-vm-tools/lib/include/tracer.hh +@@ -1,5 +1,5 @@ + /********************************************************* +- * Copyright (C) 2013-2017 VMware, Inc. All rights reserved. ++ * Copyright (C) 2013-2017,2021 VMware, Inc. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published @@ -28,9 +28,7 @@ #include "vm_basic_defs.h" @@ -10,3 +49,100 @@ #ifdef VMX86_DEVEL +diff --git a/open-vm-tools/services/plugins/dndcp/copyPasteUIX11.cpp b/open-vm-tools/services/plugins/dndcp/copyPasteUIX11.cpp +index 68212ab8b..080dc3d76 100644 +--- a/open-vm-tools/services/plugins/dndcp/copyPasteUIX11.cpp ++++ b/open-vm-tools/services/plugins/dndcp/copyPasteUIX11.cpp +@@ -1,5 +1,5 @@ + /********************************************************* +- * Copyright (C) 2009-2020 VMware, Inc. All rights reserved. ++ * Copyright (C) 2009-2021 VMware, Inc. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published +@@ -1666,6 +1666,7 @@ CopyPasteUIX11::FileBlockMonitorThread(void *arg) // IN + char buf[sizeof(VMBLOCK_FUSE_READ_RESPONSE)]; + ssize_t size; + size = read(fd, buf, sizeof(VMBLOCK_FUSE_READ_RESPONSE)); ++ g_debug("%s: Number of bytes read : %" FMTSZ "u\n", __FUNCTION__, size); + /* + * The current thread will block in read function until + * any other application accesses the file params->fileBlockName +diff --git a/open-vm-tools/services/plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp b/open-vm-tools/services/plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp +index 9b70984fc..424481baa 100644 +--- a/open-vm-tools/services/plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp ++++ b/open-vm-tools/services/plugins/dndcp/dndGuest/dndCPTransportGuestRpc.hpp +@@ -1,5 +1,5 @@ + /********************************************************* +- * Copyright (C) 2010-2017 VMware, Inc. All rights reserved. ++ * Copyright (C) 2010-2017,2021 VMware, Inc. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published +@@ -31,13 +31,13 @@ + + #include "dnd.h" + +-extern "C" { + #ifdef VMX86_TOOLS + #include "vmware/tools/guestrpc.h" + #else ++extern "C" { + #include "guest_rpc.h" +-#endif + } ++#endif + + #define GUEST_RPC_CMD_STR_DND "dnd.transport" + #define GUEST_RPC_CMD_STR_CP "copypaste.transport" +diff --git a/open-vm-tools/services/plugins/dndcp/dndUIX11.cpp b/open-vm-tools/services/plugins/dndcp/dndUIX11.cpp +index 50c2bf5e1..03cf3e0d7 100644 +--- a/open-vm-tools/services/plugins/dndcp/dndUIX11.cpp ++++ b/open-vm-tools/services/plugins/dndcp/dndUIX11.cpp +@@ -1,5 +1,5 @@ + /********************************************************* +- * Copyright (C) 2009-2019 VMware, Inc. All rights reserved. ++ * Copyright (C) 2009-2021 VMware, Inc. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published +@@ -467,8 +467,15 @@ DnDUIX11::OnSrcDragBegin(const CPClipboard *clip, // IN + #ifndef GTK3 + event.device = gdk_device_get_core_pointer(); + #else +- GdkDeviceManager* manager = gdk_display_get_device_manager(gdk_window_get_display(event.window)); ++# 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/services/plugins/dndcp/dndcp.cpp b/open-vm-tools/services/plugins/dndcp/dndcp.cpp +index d1013f4a7..bae4c94c7 100644 +--- a/open-vm-tools/services/plugins/dndcp/dndcp.cpp ++++ b/open-vm-tools/services/plugins/dndcp/dndcp.cpp +@@ -1,5 +1,5 @@ + /********************************************************* +- * Copyright (C) 2010-2019 VMware, Inc. All rights reserved. ++ * Copyright (C) 2010-2021 VMware, Inc. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published +@@ -31,6 +31,11 @@ + + #define G_LOG_DOMAIN "dndcp" + ++/** ++ * Include glib.h before encountering any extern "C". ++ */ ++#include <glib.h> ++ + extern "C" { + #include "vmware/guestrpc/tclodefs.h" + #include "vmware/tools/plugin.h"