[PATCH v3 0/2] Fix and re-enable GTK clipboard

Jindřich Makovička posted 2 patches 4 weeks, 1 day ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260426-gtk-clipboard-v3-0-09555aaeda34@gmail.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
There is a newer version of this series
meson.build        |  4 ----
meson_options.txt  |  7 -------
ui/gtk-clipboard.c | 52 +++++++++++++++++++++++++++++++++++++++-------------
ui/gtk.c           |  2 --
ui/meson.build     |  4 +---
5 files changed, 40 insertions(+), 29 deletions(-)
[PATCH v3 0/2] Fix and re-enable GTK clipboard
Posted by Jindřich Makovička 4 weeks, 1 day ago
The following patches change blocking clipboard retrieval function
calls in gtk-clipboard.c to non-blocking variants using callbacks to
avoid UI lockup. It is a follow-up to the patch proposed in the GitLab
issue

https://gitlab.com/qemu-project/qemu/-/work_items/1150

This version adds a similar change to gd_clipboard_request that also
uses the blocking clipboard API.

The second patch removes the gtk-clipboard flag, keeping the GTK
clipboard always enabled.

Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
---
Changes in v3:
- Use gtk_clipboard_request_contents to avoid text conversion
  when we only need to check if the text is available.
- Link to v2: https://lore.kernel.org/qemu-devel/20260425-gtk-clipboard-v2-0-b098f3cf69cc@gmail.com

Changes in v2:
- Removed forgotten gtk-clipboard comment in meson_options.txt
- Link to v1: https://lore.kernel.org/qemu-devel/20260425-gtk-clipboard-v1-0-6bd99e708e14@gmail.com

---
Jindřich Makovička (2):
      ui/gtk: Use non-blocking clipboard retrieval
      ui/gtk: Keep GTK clipboard enabled

 meson.build        |  4 ----
 meson_options.txt  |  7 -------
 ui/gtk-clipboard.c | 52 +++++++++++++++++++++++++++++++++++++++-------------
 ui/gtk.c           |  2 --
 ui/meson.build     |  4 +---
 5 files changed, 40 insertions(+), 29 deletions(-)
---
base-commit: aa15257174da180c6a8a9d58f87319cfe61c5520
change-id: 20260425-gtk-clipboard-fdf99db13ac0

Best regards,
-- 
Jindrich Makovicka


Re: [PATCH v3 0/2] Fix and re-enable GTK clipboard
Posted by Daniel P. Berrangé 4 weeks ago
On Sun, Apr 26, 2026 at 09:52:32AM +0200, Jindřich Makovička wrote:
> The following patches change blocking clipboard retrieval function
> calls in gtk-clipboard.c to non-blocking variants using callbacks to
> avoid UI lockup. It is a follow-up to the patch proposed in the GitLab
> issue
> 
> https://gitlab.com/qemu-project/qemu/-/work_items/1150
> 
> This version adds a similar change to gd_clipboard_request that also
> uses the blocking clipboard API.
> 
> The second patch removes the gtk-clipboard flag, keeping the GTK
> clipboard always enabled.

I notice that the current code in git does not provide any command line
option to turn on/off the GTK clipboard sync.  Considering that VMs are
often used for untrusted workloads, or workloads that are less trusted
then the host OS, I would consider this GTK impl to be a security flaw
in QEMU if re-enabled as-is.

IMHO, before we remove the ifdefs in the code, the "DisplayGTK"  struct
needs to gain settings to control the clipboard synchronization, and it
should default to disabled.


Re: [PATCH v3 0/2] Fix and re-enable GTK clipboard
Posted by Jindrich Makovicka 3 weeks, 6 days ago
Hi,

On Mon, 2026-04-27 at 09:56 +0100, Daniel P. Berrangé wrote:
> I notice that the current code in git does not provide any command
> line
> option to turn on/off the GTK clipboard sync.  Considering that VMs
> are
> often used for untrusted workloads, or workloads that are less
> trusted
> then the host OS, I would consider this GTK impl to be a security
> flaw
> in QEMU if re-enabled as-is.
> 
> IMHO, before we remove the ifdefs in the code, the "DisplayGTK" 
> struct
> needs to gain settings to control the clipboard synchronization, and
> it
> should default to disabled.

I added the option to the second patch in v5. Qemu now needs

-display gtk,clipboard=on

to turn the clipboard sharing on.

Regards,
-- 
Jindrich Makovicka