import virt-viewer-9.0-5.el8

This commit is contained in:
CentOS Sources 2020-12-16 16:39:38 +00:00 committed by Andrew Lukoshko
parent e879bec892
commit 59a322174c
8 changed files with 493 additions and 1 deletions

View File

@ -0,0 +1,32 @@
From ae25f6ca6b46e95281186492de5bc0a0fe4974a6 Mon Sep 17 00:00:00 2001
From: Frediano Ziglio <freddy77@gmail.com>
Date: Fri, 10 Jul 2020 10:58:35 +0100
Subject: [PATCH] More specific key accelerator description
The default key accelerator to release mouse if left control and
left alt but the current description is "Ctrl+Alt", change to
"Ctrl_L+Alt_L" to avoid misunderstanding.
This solves https://bugzilla.redhat.com/show_bug.cgi?id=1548371
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
---
src/virt-viewer-window.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index 6c9bc41..614120f 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -1395,7 +1395,7 @@ virt_viewer_window_update_title(VirtViewerWindow *self)
g_debug("release-cursor accel key: key=%u, mods=%x, flags=%u", key.accel_key, key.accel_mods, key.accel_flags);
label = gtk_accelerator_get_label(key.accel_key, key.accel_mods);
} else {
- label = g_strdup(_("Ctrl+Alt"));
+ label = g_strdup(_("Ctrl_L+Alt_L"));
}
ungrab = g_strdup_printf(_("(Press %s to release pointer)"), label);
--
2.28.0

View File

@ -0,0 +1,122 @@
From 522cca5ac1473405d325fce4fef0d6e0343f6257 Mon Sep 17 00:00:00 2001
From: Frediano Ziglio <freddy77@gmail.com>
Date: Wed, 10 Jun 2020 13:27:36 +0100
Subject: [PATCH] virt-viewer-file-transfer-dialog: Reports detailed errors
Instead of showing just a generic error with a list of files group
files by error and show them.
This solves https://bugzilla.redhat.com/show_bug.cgi?id=1753563
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
---
src/virt-viewer-file-transfer-dialog.c | 47 +++++++++++++++++++++++---
1 file changed, 43 insertions(+), 4 deletions(-)
diff --git a/src/virt-viewer-file-transfer-dialog.c b/src/virt-viewer-file-transfer-dialog.c
index b510d8e..975346f 100644
--- a/src/virt-viewer-file-transfer-dialog.c
+++ b/src/virt-viewer-file-transfer-dialog.c
@@ -188,6 +188,23 @@ error_dialog_response(GtkDialog *dialog,
gtk_widget_destroy(GTK_WIDGET(dialog));
}
+static const gchar*
+file_error_message(GError *err)
+{
+ if (err && err->message) {
+ return err->message;
+ }
+ return _("Unspecified error");
+}
+
+static gint
+compare_file_error(gconstpointer a, gconstpointer b)
+{
+ GError *error_a = g_object_get_data(G_OBJECT(a), "virt-viewer-error");
+ GError *error_b = g_object_get_data(G_OBJECT(b), "virt-viewer-error");
+ return g_strcmp0(file_error_message(error_a), file_error_message(error_b));
+}
+
static gboolean hide_transfer_dialog(gpointer data)
{
VirtViewerFileTransferDialog *self = data;
@@ -202,10 +219,26 @@ static gboolean hide_transfer_dialog(gpointer data)
GString *msg = g_string_new("");
GtkWidget *dialog, *files_label, *scrolled_window, *area;
GtkRequisition files_label_sz;
+ const gchar *last_error = NULL;
+ const gchar *group_separator = "";
+
+ self->priv->failed = g_slist_sort(self->priv->failed, compare_file_error);
for (sl = self->priv->failed; sl != NULL; sl = g_slist_next(sl)) {
SpiceFileTransferTask *failed_task = sl->data;
gchar *filename = spice_file_transfer_task_get_filename(failed_task);
+
+ const gchar *error_message =
+ file_error_message(g_object_get_data(G_OBJECT(failed_task), "virt-viewer-error"));
+ if (g_strcmp0(error_message, last_error) != 0) {
+ // add error message
+ gchar *header = g_markup_printf_escaped("%s<b>%s</b>:", group_separator, error_message);
+ g_string_append(msg, header);
+ g_free(header);
+ last_error = error_message;
+ group_separator = "\n\n";
+ }
+
if (filename == NULL) {
guint id;
@@ -214,15 +247,16 @@ static gboolean hide_transfer_dialog(gpointer data)
filename = g_strdup_printf("(task #%u)", id);
}
- g_string_append_printf(msg, "\n%s", filename);
+ gchar *escaped_filename = g_markup_printf_escaped("\n%s", filename);
+ g_string_append(msg, escaped_filename);
+ g_free(escaped_filename);
g_free(filename);
}
g_slist_free_full(self->priv->failed, g_object_unref);
self->priv->failed = NULL;
dialog = gtk_message_dialog_new(GTK_WINDOW(self), 0, GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- _("An error caused the following file transfers to fail:"));
+ GTK_BUTTONS_OK, NULL);
gtk_window_set_title(GTK_WINDOW(dialog), "Transfer error");
scrolled_window = gtk_scrolled_window_new(NULL, NULL);
@@ -232,8 +266,9 @@ static gboolean hide_transfer_dialog(gpointer data)
area = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(dialog));
gtk_container_add(GTK_CONTAINER(area), scrolled_window);
- files_label = gtk_label_new(msg->str + 1); /* skip the initial '\n' */
+ files_label = gtk_label_new(NULL);
gtk_label_set_selectable(GTK_LABEL(files_label), TRUE);
+ gtk_label_set_markup(GTK_LABEL(files_label), msg->str);
gtk_container_add(GTK_CONTAINER(scrolled_window), files_label);
g_string_free(msg, TRUE);
@@ -242,6 +277,8 @@ static gboolean hide_transfer_dialog(gpointer data)
/* adjust panel to file_label height */
gtk_widget_get_preferred_size(files_label, NULL, &files_label_sz);
+ gtk_scrolled_window_set_min_content_width(GTK_SCROLLED_WINDOW(scrolled_window),
+ MIN(files_label_sz.width, 500));
gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scrolled_window),
MIN(files_label_sz.height, 170));
}
@@ -256,6 +293,8 @@ static void task_finished(SpiceFileTransferTask *task,
VirtViewerFileTransferDialog *self = VIRT_VIEWER_FILE_TRANSFER_DIALOG(user_data);
if (error && !g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+ g_object_set_data_full(G_OBJECT(task), "virt-viewer-error",
+ g_error_copy(error), (GDestroyNotify) g_error_free);
self->priv->failed = g_slist_prepend(self->priv->failed, g_object_ref(task));
g_warning("File transfer task %p failed: %s", task, error->message);
}
--
2.28.0

View File

@ -0,0 +1,32 @@
From 671f79bd7d0668fb0c70cd17d09a77482b9f5fbe Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Wed, 22 Jul 2020 12:08:25 +0200
Subject: [PATCH] ui: improve homepage in about dialog
Switch the homepage URL to https, and synchronize the label with the
URL. Also, do not make the label translatable, as it is pointless (it is
only a URL).
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
---
src/resources/ui/virt-viewer-about.ui | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/resources/ui/virt-viewer-about.ui b/src/resources/ui/virt-viewer-about.ui
index 5f6ce70..681590f 100644
--- a/src/resources/ui/virt-viewer-about.ui
+++ b/src/resources/ui/virt-viewer-about.ui
@@ -16,8 +16,8 @@
<property name="copyright" translatable="yes">Copyright (C) 2007-2012 Daniel P. Berrange
Copyright (C) 2007-2014 Red Hat, Inc.</property>
<property name="comments" translatable="yes">A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt</property>
- <property name="website">http://gitlab.com/virt-viewer/virt-viewer/</property>
- <property name="website_label" translatable="yes">gitlab.com/virt-viewer/virt-viewer</property>
+ <property name="website">https://gitlab.com/virt-viewer/virt-viewer</property>
+ <property name="website_label">https://gitlab.com/virt-viewer/virt-viewer</property>
<property name="license" translatable="yes">This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
--
2.28.0

View File

@ -0,0 +1,28 @@
From d880ce4a4097d4e7efa1ba1a7fe28147b2e439bc Mon Sep 17 00:00:00 2001
From: Uri Lublin <uril@redhat.com>
Date: Tue, 25 Aug 2020 20:10:59 +0300
Subject: [PATCH] about ui: year 2020 in Copyright
rhbz#1848267
Signed-off-by: Uri Lublin <uril@redhat.com>
---
src/resources/ui/virt-viewer-about.ui | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/resources/ui/virt-viewer-about.ui b/src/resources/ui/virt-viewer-about.ui
index 681590f..25b2165 100644
--- a/src/resources/ui/virt-viewer-about.ui
+++ b/src/resources/ui/virt-viewer-about.ui
@@ -15,7 +15,7 @@
<property name="skip_pager_hint">True</property>
<property name="program_name">Virtual Machine Viewer</property>
<property name="copyright" translatable="yes">Copyright (C) 2007-2012 Daniel P. Berrange
-Copyright (C) 2007-2014 Red Hat, Inc.</property>
+Copyright (C) 2007-2020 Red Hat, Inc.</property>
<property name="comments" translatable="yes">A remote desktop client built with GTK-VNC, SPICE-GTK and libvirt</property>
<property name="website">https://gitlab.com/virt-viewer/virt-viewer</property>
<property name="website_label">https://gitlab.com/virt-viewer/virt-viewer</property>
--
2.28.0

View File

@ -0,0 +1,35 @@
From b7a2f05266e82fbdf0642b27276099a55844dbae Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Fri, 11 Sep 2020 11:35:00 +0200
Subject: [PATCH] po: update pot file
Signed-off-by: Pino Toscano <ptoscano@redhat.com>
---
po/virt-viewer.pot | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/po/virt-viewer.pot b/po/virt-viewer.pot
index a3e49ad..1853fcd 100644
--- a/po/virt-viewer.pot
+++ b/po/virt-viewer.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: virt-viewer 9.0\n"
"Report-Msgid-Bugs-To: https://gitlab.com/virt-viewer/virt-viewer/-/issues\n"
-"POT-Creation-Date: 2020-05-01 17:38+0100\n"
+"POT-Creation-Date: 2020-09-11 11:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -199,7 +199,7 @@ msgstr ""
#: src/resources/ui/virt-viewer-about.ui:16
msgid ""
"Copyright (C) 2007-2012 Daniel P. Berrange\n"
-"Copyright (C) 2007-2014 Red Hat, Inc."
+"Copyright (C) 2007-2020 Red Hat, Inc."
msgstr ""
#: src/resources/ui/virt-viewer-about.ui:18
--
2.28.0

View File

@ -0,0 +1,134 @@
From de5cd71013532d1a1240315c92fd0b5ca708fe01 Mon Sep 17 00:00:00 2001
From: Uri Lublin <uril@redhat.com>
Date: Tue, 27 Oct 2020 19:53:36 +0200
Subject: [PATCH] vnc: show an error dialog upon vnc-error
For example when connecting by accident to a spice server
Signed-off-by: Uri Lublin <uril@redhat.com>
---
src/virt-viewer-app.c | 20 +++++++++++++++++---
src/virt-viewer-session-vnc.c | 13 +++++++++++++
src/virt-viewer-session.c | 9 +++++++++
3 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index c0e0c9c..8cfdc2d 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -78,6 +78,9 @@ void virt_viewer_app_about_delete(GtkWidget *dialog, void *dummy, VirtViewerApp
/* Internal methods */
static void virt_viewer_app_connected(VirtViewerSession *session,
VirtViewerApp *self);
+static void virt_viewer_app_error(VirtViewerSession *session G_GNUC_UNUSED,
+ const gchar *msg,
+ VirtViewerApp *self);
static void virt_viewer_app_initialized(VirtViewerSession *session,
VirtViewerApp *self);
static void virt_viewer_app_disconnected(VirtViewerSession *session,
@@ -1292,6 +1295,8 @@ virt_viewer_app_create_session(VirtViewerApp *self, const gchar *type, GError **
g_signal_connect(priv->session, "session-initialized",
G_CALLBACK(virt_viewer_app_initialized), self);
+ g_signal_connect(priv->session, "session-error",
+ G_CALLBACK(virt_viewer_app_error), self);
g_signal_connect(priv->session, "session-connected",
G_CALLBACK(virt_viewer_app_connected), self);
g_signal_connect(priv->session, "session-disconnected",
@@ -1654,8 +1659,6 @@ virt_viewer_app_connected(VirtViewerSession *session G_GNUC_UNUSED,
virt_viewer_app_show_status(self, _("Connected to graphic server"));
}
-
-
static void
virt_viewer_app_initialized(VirtViewerSession *session G_GNUC_UNUSED,
VirtViewerApp *self)
@@ -1690,6 +1693,18 @@ virt_viewer_app_disconnected(VirtViewerSession *session G_GNUC_UNUSED, const gch
virt_viewer_app_deactivate(self, connect_error);
}
+static void
+virt_viewer_app_error(VirtViewerSession *session G_GNUC_UNUSED,
+ const gchar *msg,
+ VirtViewerApp *self)
+{
+ VirtViewerAppPrivate *priv = self->priv;
+
+ priv->connected = FALSE; /* display error dialog */
+
+ virt_viewer_app_disconnected(session, msg, self);
+}
+
static void virt_viewer_app_cancelled(VirtViewerSession *session,
VirtViewerApp *self)
{
@@ -1698,7 +1713,6 @@ static void virt_viewer_app_cancelled(VirtViewerSession *session,
virt_viewer_app_disconnected(session, NULL, self);
}
-
static void virt_viewer_app_auth_refused(VirtViewerSession *session,
const char *msg,
VirtViewerApp *self)
diff --git a/src/virt-viewer-session-vnc.c b/src/virt-viewer-session-vnc.c
index 261d984..2598c70 100644
--- a/src/virt-viewer-session-vnc.c
+++ b/src/virt-viewer-session-vnc.c
@@ -128,6 +128,15 @@ virt_viewer_session_vnc_disconnected(VncDisplay *vnc G_GNUC_UNUSED,
VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, FALSE);
}
+static void
+virt_viewer_session_vnc_error(VncDisplay *vnc G_GNUC_UNUSED,
+ const gchar* msg,
+ VirtViewerSessionVnc *session)
+{
+ g_warning("vnc-session: got vnc error %s", msg);
+ g_signal_emit_by_name(session, "session-error", msg);
+}
+
static void
virt_viewer_session_vnc_initialized(VncDisplay *vnc G_GNUC_UNUSED,
VirtViewerSessionVnc *session)
@@ -386,6 +395,8 @@ virt_viewer_session_vnc_close(VirtViewerSession* session)
G_CALLBACK(virt_viewer_session_vnc_initialized), session);
g_signal_connect(self->priv->vnc, "vnc-disconnected",
G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
+ g_signal_connect(self->priv->vnc, "vnc-error",
+ G_CALLBACK(virt_viewer_session_vnc_error), session);
g_signal_connect(self->priv->vnc, "vnc-bell",
G_CALLBACK(virt_viewer_session_vnc_bell), session);
@@ -418,6 +429,8 @@ virt_viewer_session_vnc_new(VirtViewerApp *app, GtkWindow *main_window)
G_CALLBACK(virt_viewer_session_vnc_initialized), session);
g_signal_connect(session->priv->vnc, "vnc-disconnected",
G_CALLBACK(virt_viewer_session_vnc_disconnected), session);
+ g_signal_connect(session->priv->vnc, "vnc-error",
+ G_CALLBACK(virt_viewer_session_vnc_error), session);
g_signal_connect(session->priv->vnc, "vnc-bell",
G_CALLBACK(virt_viewer_session_vnc_bell), session);
diff --git a/src/virt-viewer-session.c b/src/virt-viewer-session.c
index a809814..d58fc37 100644
--- a/src/virt-viewer-session.c
+++ b/src/virt-viewer-session.c
@@ -272,6 +272,15 @@ virt_viewer_session_class_init(VirtViewerSessionClass *class)
G_TYPE_NONE,
0);
+ g_signal_new("session-error",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
g_signal_new("session-disconnected",
G_OBJECT_CLASS_TYPE(object_class),
G_SIGNAL_RUN_FIRST,
--
2.28.0

View File

@ -0,0 +1,69 @@
From 1573a790da7370f547d542191d530ba8580e5a03 Mon Sep 17 00:00:00 2001
From: Frediano Ziglio <freddy77@gmail.com>
Date: Mon, 14 Sep 2020 13:51:15 +0100
Subject: [PATCH] Fix warning by Coverity
Error: DEADCODE (CWE-561): [#def1]
virt-viewer-9.0/src/virt-viewer-display-vte.c:164: assignment: Assigning: "scroll" = "NULL".
virt-viewer-9.0/src/virt-viewer-display-vte.c:188: null: At condition "scroll", the value of "scroll" must be "NULL".
virt-viewer-9.0/src/virt-viewer-display-vte.c:188: dead_error_condition: The condition "scroll" cannot be true.
virt-viewer-9.0/src/virt-viewer-display-vte.c:189: dead_error_begin: Execution cannot reach this statement: "gtk_container_add((GtkConta...".
virt-viewer-9.0/src/virt-viewer-display-vte.c:189: effectively_constant: Local variable "scroll" is assigned only once, to a constant value, making it effectively constant throughout its scope. If this is not the intent, examine the logic to see if there is a missing assignment that would make "scroll" not remain constant.
Reported in https://gitlab.com/virt-viewer/virt-viewer/-/issues/7.
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
---
src/virt-viewer-display-vte.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/virt-viewer-display-vte.c b/src/virt-viewer-display-vte.c
index ef0d5ac..9e4f734 100644
--- a/src/virt-viewer-display-vte.c
+++ b/src/virt-viewer-display-vte.c
@@ -147,7 +147,6 @@ virt_viewer_display_vte_commit(VirtViewerDisplayVte *self,
{
g_signal_emit_by_name(self, "commit", text, size);
}
-#endif
static void
virt_viewer_display_vte_adj_changed(VirtViewerDisplayVte *self,
@@ -156,12 +155,16 @@ virt_viewer_display_vte_adj_changed(VirtViewerDisplayVte *self,
gtk_widget_set_visible(self->priv->scroll,
gtk_adjustment_get_upper(adjustment) > gtk_adjustment_get_page_size(adjustment));
}
+#endif
GtkWidget *
virt_viewer_display_vte_new(VirtViewerSession *session, const char *name)
{
VirtViewerDisplayVte *self;
- GtkWidget *grid, *scroll = NULL, *vte;
+ GtkWidget *grid, *vte;
+#ifdef HAVE_VTE
+ GtkWidget *scroll = NULL;
+#endif
self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_VTE,
"session", session,
@@ -185,6 +188,8 @@ virt_viewer_display_vte_new(VirtViewerSession *session, const char *name)
grid = gtk_grid_new();
gtk_container_add(GTK_CONTAINER(grid), vte);
+
+#ifdef HAVE_VTE
if (scroll) {
gtk_container_add(GTK_CONTAINER(grid), scroll);
gtk_widget_hide(scroll);
@@ -192,6 +197,7 @@ virt_viewer_display_vte_new(VirtViewerSession *session, const char *name)
"changed", G_CALLBACK(virt_viewer_display_vte_adj_changed),
self, G_CONNECT_SWAPPED);
}
+#endif
gtk_container_add(GTK_CONTAINER(self), grid);
--
2.28.0

View File

@ -19,7 +19,7 @@
Name: virt-viewer
Version: 9.0
Release: 4%{?dist}%{?extra_release}
Release: 5%{?dist}%{?extra_release}
Summary: Virtual Machine Viewer
Group: Applications/System
License: GPLv2+
@ -31,6 +31,24 @@ Patch002: 0002-DOWNSTREAM-ovirt-foreign-menu-Bypass-errors-from-Hos.patch
Patch003: 0003-DOWNSTREAM-remote-viewer-Set-admin-privileges-when-c.patch
Patch005: 0005-display-error-message-on-no-extension-for-screenshot.patch
#rhbz#1548371
Patch008: 0008-More-specific-key-accelerator-description.patch
#rhbz#1753563
Patch009: 0009-virt-viewer-file-transfer-dialog-Reports-detailed-er.patch
# rhbz#1848267
# Patches 10 and 12 slightly modified to match downstream
Patch010: 0010-ui-improve-homepage-in-about-dialog.patch
Patch011: 0011-about-ui-year-2020-in-Copyright.patch
Patch012: 0012-ui-about-po-update-pot-file.patch
# rhbz#1448151
Patch013: 0013-vnc-show-an-error-dialog-upon-vnc-error.patch
# rhbz#1876719
Patch014: 0014-Fix-warning-by-Coverity.patch
Requires: openssh-clients
Requires(post): %{_sbindir}/update-alternatives
@ -80,6 +98,16 @@ the display, and libvirt for looking up VNC/SPICE server details.
%patch003 -p1
%patch005 -p1
%patch008 -p1
%patch009 -p1
%patch010 -p1
%patch011 -p1
%patch012 -p1
%patch013 -p1
%patch014 -p1
%build
%if 0%{?enable_autotools}
@ -118,6 +146,18 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/remote-viewer.1*
%changelog
* Thu Dec 03 2020 Uri Lublin <uril@redhat.com> - 9.0-5
- More specific key accelerator description for cursor release
Resolves: rhbz#1548371
- Report detailed error when file transfer fails
Resolves: rhbz#1753563
- Update copyright year in "about ui"
Resolves: rhbz#1848267
- Show an error dialog upon vnc-error
Resolves: rhbz#1448151
- Fix warning by Coverity
Resolves: rhbz#1876719
* Fri Aug 28 2020 Eduardo Lima (Etrunko) <etrunko@redhat.com> - 9.0-4
- Revert support for DATA storage domains temporarily.
Resolves: rhbz#1873549