From 9c1f0f52860e6acaacda5cf379a9475bc088a988 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 10 2018 05:14:30 +0000 Subject: import spice-gtk-0.34-3.el7 --- diff --git a/.gitignore b/.gitignore index 7bcad81..872dbc9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/spice-gtk-0.33.tar.bz2 +SOURCES/spice-gtk-0.34.tar.bz2 diff --git a/.spice-gtk.metadata b/.spice-gtk.metadata index 2710f85..2724ef6 100644 --- a/.spice-gtk.metadata +++ b/.spice-gtk.metadata @@ -1 +1 @@ -99c26baa5e18c73f68fb11fbbe7fd0d3c171eedc SOURCES/spice-gtk-0.33.tar.bz2 +e588a87a3e52e79971973cd828730cf64787cef4 SOURCES/spice-gtk-0.34.tar.bz2 diff --git a/SOURCES/0001-canvas-base-Fix-width-computation-for-palette-images.patch b/SOURCES/0001-canvas-base-Fix-width-computation-for-palette-images.patch new file mode 100644 index 0000000..350839c --- /dev/null +++ b/SOURCES/0001-canvas-base-Fix-width-computation-for-palette-images.patch @@ -0,0 +1,33 @@ +From 3b4759ce15325e2de1b473d619b69ae786c2fcec Mon Sep 17 00:00:00 2001 +From: Frediano Ziglio +Date: Thu, 21 Dec 2017 15:54:04 +0000 +Subject: [PATCH spice-common] canvas-base: Fix width computation for palette + images + +Palette images are encoded with a slightly larger pixel than +width. This cause a wrong calculation of stride_encoded value +which cause a wrong stride adjustment. + +This fix bug https://bugzilla.redhat.com/show_bug.cgi?id=1508847. + +Signed-off-by: Frediano Ziglio +--- + common/canvas_base.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/common/canvas_base.c b/common/canvas_base.c +index a9d7855..2ecd276 100644 +--- a/spice-common/common/canvas_base.c ++++ b/spice-common/common/canvas_base.c +@@ -824,7 +824,7 @@ static pixman_image_t *canvas_get_lz(CanvasBase *canvas, SpiceImage *image, + lz_decode_begin(lz_data->lz, comp_buf, comp_size, &type, + &width, &height, &n_comp_pixels, &top_down, palette); + +- stride_encoded = width; ++ stride_encoded = n_comp_pixels / height; + switch (type) { + case LZ_IMAGE_TYPE_RGBA: + as_type = LZ_IMAGE_TYPE_RGBA; +-- +2.14.3 + diff --git a/SOURCES/0001-clipboard-Fix-crash-by-handling-error.patch b/SOURCES/0001-clipboard-Fix-crash-by-handling-error.patch deleted file mode 100644 index f5cac1b..0000000 --- a/SOURCES/0001-clipboard-Fix-crash-by-handling-error.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Victor Toso -Date: Fri, 14 Oct 2016 18:12:01 +0200 -Subject: [PATCH] clipboard: Fix crash by handling error - -As manual states below, text could be NULL for different reasons and -we should handle that. I've included a debug message to help -identifying possible regressions from wayland's clipboard. - -This crash is a regression from 7b0de6217670e0f668aff2949f - - "The text parameter to callback will contain the resulting text if - the request succeeded, or NULL if it failed. This could happen for - various reasons, in particular if the clipboard was empty or if the - contents of the clipboard could not be converted into text form." - -Resolves: rhbz#1384676 - -Signed-off-by: Victor Toso -Acked-by: Pavel Grunt -(cherry picked from commit 03c016bea939ee4a26e90d80fa1012a993a8ea47) ---- - src/spice-gtk-session.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c -index f04d5e8..2da9bc0 100644 ---- a/src/spice-gtk-session.c -+++ b/src/spice-gtk-session.c -@@ -918,6 +918,11 @@ static void clipboard_received_text_cb(GtkClipboard *clipboard, - if (self == NULL) - return; - -+ if (text == NULL) { -+ SPICE_DEBUG("Failed to retrieve clipboard text"); -+ return; -+ } -+ - g_return_if_fail(SPICE_IS_GTK_SESSION(self)); - - selection = get_selection_from_clipboard(self->priv, clipboard); diff --git a/SOURCES/0002-channel-usbredir-Fix-crash-on-channel-up.patch b/SOURCES/0002-channel-usbredir-Fix-crash-on-channel-up.patch deleted file mode 100644 index 48890b0..0000000 --- a/SOURCES/0002-channel-usbredir-Fix-crash-on-channel-up.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 6e7401410f3fa8e817c6367a9fc120675c8c8d20 Mon Sep 17 00:00:00 2001 -From: Victor Toso -Date: Tue, 29 Nov 2016 22:34:04 +0100 -Subject: [PATCH] channel-usbredir: Fix crash on channel-up - -SpiceSession does not initialize its SpiceUsbDeviceManager object on -startup that could lead to a race condition where channel-usbredir is -requested to flush data while it is uninitialized. - -In a few places, spice_usb_device_manager_get() is called as in -usb-device-widget.c and spice-gtk-session.c but not used in -spicy-stats, making the tool to crash on startup if it encounters an -usbredir channel. - - #0 in usbredirhost_write_guest_data (host=0x0) at usbredir/usbredirhost/usbredirhost.c:876 - #1 in spice_usbredir_channel_up (c=0x643830) at channel-usbredir.c:821 - #2 in spice_channel_up (channel=0x643830) at spice-channel.c:1238 - #3 in spice_channel_recv_auth (channel=0x643830) at spice-channel.c:1225 - #4 in spice_channel_coroutine (data=0x643830) at spice-channel.c:2580 - #5 in coroutine_trampoline (cc=0x642ec0) at coroutine_ucontext.c:63 - #6 in continuation_trampoline (i0=6565568, i1=0) at continuation.c:55 - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1399838 - -Signed-off-by: Victor Toso -Reported-by: Michael Cullen -Acked-by: Christophe Fergeau -(cherry picked from commit 291f3e4419e6fb4077ae43a5e09eb1c37b9dd729) ---- - src/spice-session.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/spice-session.c b/src/spice-session.c -index 860461f..a1786af 100644 ---- a/src/spice-session.c -+++ b/src/spice-session.c -@@ -282,6 +282,7 @@ static void spice_session_init(SpiceSession *session) - { - SpiceSessionPrivate *s; - gchar *channels; -+ GError *err = NULL; - - SPICE_DEBUG("New session (compiled from package " PACKAGE_STRING ")"); - s = session->priv = SPICE_SESSION_GET_PRIVATE(session); -@@ -294,6 +295,12 @@ static void spice_session_init(SpiceSession *session) - s->images = cache_image_new((GDestroyNotify)pixman_image_unref); - s->glz_window = glz_decoder_window_new(); - update_proxy(session, NULL); -+ -+ s->usb_manager = spice_usb_device_manager_get(session, &err); -+ if (err != NULL) { -+ SPICE_DEBUG("Could not initialize SpiceUsbDeviceManager - %s", err->message); -+ g_clear_error(&err); -+ } - } - - static void --- -2.11.0 - diff --git a/SOURCES/0003-gtk-session-Use-GWeakRef.patch b/SOURCES/0003-gtk-session-Use-GWeakRef.patch deleted file mode 100644 index d7ab1de..0000000 --- a/SOURCES/0003-gtk-session-Use-GWeakRef.patch +++ /dev/null @@ -1,152 +0,0 @@ -From e1f40a2431f58e95437b2b326cf3a288fc11c76b Mon Sep 17 00:00:00 2001 -From: Victor Toso -Date: Fri, 10 Feb 2017 15:28:13 +0100 -Subject: [PATCH spice-gtk 1/2] gtk-session: Use GWeakRef -To: spice-devel@lists.freedesktop.org - -The custom WeakRef structure was introduced in 9baba9fd89 (2012) to -fix rhbz#743773. Since glib 2.32, GWeakRef was introduced and it -behaves similarly to our WeakRef. - -Moving to GWeakRef to remove some code which exists in glib. - -Note that I'm keeping two utility functions: -- get_weak_ref(gpointer object): which returns a newly allocated - GWeakRef, initialized with @object; -- free_weak_ref(gpointer pdata): which frees the GWeakRef and returns - the original object or NULL. It also takes care of an extra - reference to the object. - -Signed-off-by: Victor Toso -Acked-by: Christophe Fergeau -(cherry picked from commit 12f5d3391d6093b53c5b3f0f18182a859576a4b7) ---- - src/spice-gtk-session.c | 52 +++++++++++++++++++------------------------------ - 1 file changed, 20 insertions(+), 32 deletions(-) - -diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c -index 3e0ec74..6424596 100644 ---- a/src/spice-gtk-session.c -+++ b/src/spice-gtk-session.c -@@ -572,31 +572,26 @@ static const struct { - } - }; - --typedef struct _WeakRef { -- GObject *object; --} WeakRef; -- --static void weak_notify_cb(WeakRef *weakref, GObject *object) --{ -- weakref->object = NULL; --} -- --static WeakRef* weak_ref(GObject *object) -+static GWeakRef* get_weak_ref(gpointer object) - { -- WeakRef *weakref = g_new(WeakRef, 1); -- -- g_object_weak_ref(object, (GWeakNotify)weak_notify_cb, weakref); -- weakref->object = object; -- -+ GWeakRef *weakref = g_new(GWeakRef, 1); -+ g_weak_ref_init(weakref, object); - return weakref; - } - --static void weak_unref(WeakRef* weakref) -+static gpointer free_weak_ref(gpointer data) - { -- if (weakref->object) -- g_object_weak_unref(weakref->object, (GWeakNotify)weak_notify_cb, weakref); -+ GWeakRef *weakref = data; -+ gpointer object = g_weak_ref_get(weakref); - -+ g_weak_ref_clear(weakref); - g_free(weakref); -+ if (object != NULL) { -+ /* The main reference still exists as object is not NULL, so we can -+ * remove the strong reference given by g_weak_ref_get */ -+ g_object_unref(object); -+ } -+ return object; - } - - static void clipboard_get_targets(GtkClipboard *clipboard, -@@ -604,9 +599,7 @@ static void clipboard_get_targets(GtkClipboard *clipboard, - gint n_atoms, - gpointer user_data) - { -- WeakRef *weakref = user_data; -- SpiceGtkSession *self = (SpiceGtkSession*)weakref->object; -- weak_unref(weakref); -+ SpiceGtkSession *self = free_weak_ref(user_data); - - if (self == NULL) - return; -@@ -703,7 +696,7 @@ static void clipboard_owner_change(GtkClipboard *clipboard, - s->clip_hasdata[selection] = TRUE; - if (s->auto_clipboard_enable && !read_only(self)) - gtk_clipboard_request_targets(clipboard, clipboard_get_targets, -- weak_ref(G_OBJECT(self))); -+ get_weak_ref(self)); - break; - default: - s->clip_hasdata[selection] = FALSE; -@@ -934,14 +927,11 @@ static void clipboard_received_text_cb(GtkClipboard *clipboard, - const gchar *text, - gpointer user_data) - { -- WeakRef *weakref = user_data; -- SpiceGtkSession *self = (SpiceGtkSession*)weakref->object; -+ SpiceGtkSession *self = free_weak_ref(user_data); - char *conv = NULL; - int len = 0; - int selection; - -- weak_unref(weakref); -- - if (self == NULL) - return; - -@@ -977,9 +967,7 @@ static void clipboard_received_cb(GtkClipboard *clipboard, - GtkSelectionData *selection_data, - gpointer user_data) - { -- WeakRef *weakref = user_data; -- SpiceGtkSession *self = (SpiceGtkSession*)weakref->object; -- weak_unref(weakref); -+ SpiceGtkSession *self = free_weak_ref(user_data); - - if (self == NULL) - return; -@@ -1050,7 +1038,7 @@ static gboolean clipboard_request(SpiceMainChannel *main, guint selection, - - if (type == VD_AGENT_CLIPBOARD_UTF8_TEXT) { - gtk_clipboard_request_text(cb, clipboard_received_text_cb, -- weak_ref(G_OBJECT(self))); -+ get_weak_ref(self)); - } else { - for (m = 0; m < SPICE_N_ELEMENTS(atom2agent); m++) { - if (atom2agent[m].vdagent == type) -@@ -1061,7 +1049,7 @@ static gboolean clipboard_request(SpiceMainChannel *main, guint selection, - - atom = gdk_atom_intern_static_string(atom2agent[m].xatom); - gtk_clipboard_request_contents(cb, atom, clipboard_received_cb, -- weak_ref(G_OBJECT(self))); -+ get_weak_ref(self)); - } - - return TRUE; -@@ -1234,7 +1222,7 @@ void spice_gtk_session_copy_to_guest(SpiceGtkSession *self) - - if (s->clip_hasdata[selection] && !s->clip_grabbed[selection]) { - gtk_clipboard_request_targets(s->clipboard, clipboard_get_targets, -- weak_ref(G_OBJECT(self))); -+ get_weak_ref(self)); - } - } - --- -2.12.0 - diff --git a/SOURCES/0004-gtk-session-always-reply-to-agent-s-clipboard-reques.patch b/SOURCES/0004-gtk-session-always-reply-to-agent-s-clipboard-reques.patch deleted file mode 100644 index 82a3465..0000000 --- a/SOURCES/0004-gtk-session-always-reply-to-agent-s-clipboard-reques.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 1d349aa519571199d10d38b0a0e2f91b051ab3c8 Mon Sep 17 00:00:00 2001 -From: Victor Toso -Date: Fri, 24 Feb 2017 14:12:45 +0100 -Subject: [PATCH spice-gtk 2/2] gtk-session: always reply to agent's clipboard - request -To: spice-devel@lists.freedesktop.org - -This fixes a regression from 7b0de6217670e0f668aff2949f - -We need to reply back to the agent all clipboard requests even in case -of failure otherwise it will have a pending request. The following -error message can be seen afterwards, in the linux agent, when client -sends down some clipboard data: - - > clipboard: selection requests pending on clipboard ownership - > change, clearing - -An easy way to reproduce this is: -1-) In client, copy image from lo-draw (selection or ctrl+c) -2-) In guest, paste it to GEdit (mouse3 our ctrl+v) -3-) Move to the client -4-) Move back to the guest -5-) see error on vdagent logs - -The reason for failure is that client's clipboard contains different -data type (image) then what was requested from guest's editor (text) - -While at it, include extra debug message as it might be hard to -identify why clipboard did not work. - -Resolves: rhbz#1409854 -Signed-off-by: Victor Toso -Acked-by: Pavel Grunt -(cherry picked from commit 172c521271a3dc6d9ed0c297406c2fa29266682d) ---- - src/spice-gtk-session.c | 21 +++++++++++++-------- - 1 file changed, 13 insertions(+), 8 deletions(-) - -diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c -index 6424596..c0a46e8 100644 ---- a/src/spice-gtk-session.c -+++ b/src/spice-gtk-session.c -@@ -931,35 +931,40 @@ static void clipboard_received_text_cb(GtkClipboard *clipboard, - char *conv = NULL; - int len = 0; - int selection; -+ const guchar *data = NULL; - - if (self == NULL) - return; - -+ selection = get_selection_from_clipboard(self->priv, clipboard); -+ g_return_if_fail(selection != -1); -+ - if (text == NULL) { - SPICE_DEBUG("Failed to retrieve clipboard text"); -- return; -+ goto notify_agent; - } - - g_return_if_fail(SPICE_IS_GTK_SESSION(self)); - -- selection = get_selection_from_clipboard(self->priv, clipboard); -- g_return_if_fail(selection != -1); -- - len = strlen(text); - if (!check_clipboard_size_limits(self, len)) { -- return; -+ SPICE_DEBUG("Failed size limits of clipboard text (%d bytes)", len); -+ goto notify_agent; - } - - /* gtk+ internal utf8 newline is always LF, even on windows */ - conv = fixup_clipboard_text(self, text, &len); - if (!check_clipboard_size_limits(self, len)) { -- g_free(conv); -- return; -+ SPICE_DEBUG("Failed size limits of clipboard text (%d bytes)", len); -+ goto notify_agent; - } - -+ data = (const guchar *) (conv != NULL ? conv : text); -+notify_agent: - spice_main_clipboard_selection_notify(self->priv->main, selection, - VD_AGENT_CLIPBOARD_UTF8_TEXT, -- (guchar *)(conv ?: text), len); -+ data, -+ (data != NULL) ? len : 0); - g_free(conv); - } - --- -2.12.0 - diff --git a/SOURCES/0005-usb-Allow-to-compile-if-LZ4-is-disabled.patch b/SOURCES/0005-usb-Allow-to-compile-if-LZ4-is-disabled.patch deleted file mode 100644 index 5afbe41..0000000 --- a/SOURCES/0005-usb-Allow-to-compile-if-LZ4-is-disabled.patch +++ /dev/null @@ -1,38 +0,0 @@ -From a6e7077e0dbc57ae174b2fc6ab0f4082561f0a45 Mon Sep 17 00:00:00 2001 -From: Frediano Ziglio -Date: Mon, 14 Nov 2016 11:19:47 +0000 -Subject: [PATCH spice-gtk] usb: Allow to compile if LZ4 is disabled -To: spice-devel@lists.freedesktop.org - -spice_usbredir_channel_get_spice_usb_device is used only if LZ4 -is enabled so avoid to define if not used as this cause a -compile error. - -Signed-off-by: Frediano Ziglio -Acked-by: Victor Toso -(cherry picked from commit e0a6ca62acb2d2e46304a9ce6b1dcb41e0534587) ---- - src/channel-usbredir.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/channel-usbredir.c b/src/channel-usbredir.c -index 94a5050..add7d5e 100644 ---- a/src/channel-usbredir.c -+++ b/src/channel-usbredir.c -@@ -544,11 +544,13 @@ void spice_usbredir_channel_disconnect_device_async(SpiceUsbredirChannel *channe - g_object_unref(task); - } - -+#ifdef USE_LZ4 - static SpiceUsbDevice * - spice_usbredir_channel_get_spice_usb_device(SpiceUsbredirChannel *channel) - { - return channel->priv->spice_device; - } -+#endif - - G_GNUC_INTERNAL - libusb_device *spice_usbredir_channel_get_device(SpiceUsbredirChannel *channel) --- -2.12.0 - diff --git a/SOURCES/0006-widget-Always-call-gtk_widget_show_all.patch b/SOURCES/0006-widget-Always-call-gtk_widget_show_all.patch deleted file mode 100644 index 328311d..0000000 --- a/SOURCES/0006-widget-Always-call-gtk_widget_show_all.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a641a92e935a26bdaf104e76a324d533171aa7b4 Mon Sep 17 00:00:00 2001 -From: Pavel Grunt -Date: Mon, 27 Mar 2017 13:36:57 +0200 -Subject: [PATCH spice-gtk 6/8] widget: Always call gtk_widget_show_all -To: spice-devel@lists.freedesktop.org - -Since spice-gtk 0.32 SpiceDisplay widget internally has changed -from the GtkDrawingArea to a GtkContainer. - -Per gtk_widget_show documentation: - "Remember that you have to show the containers containing a widget, - in addition to the widget itself, before it will appear onscreen." - -Let's always call gtk_widget_show_all, not just for gtk+ >= 3.16 -otherwise you may get a blackscreen with spice-gtk compiled against -an old gtk+ version. - -Fixes: -https://bugs.freedesktop.org/show_bug.cgi?id=100251 - -Acked-by: Christophe Fergeau -(cherry picked from commit 721dbe9926c0e35e462595346829d55d7820ea05) ---- - src/spice-widget.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/spice-widget.c b/src/spice-widget.c -index 06e332f..cc0a705 100644 ---- a/src/spice-widget.c -+++ b/src/spice-widget.c -@@ -645,9 +645,9 @@ static void spice_display_init(SpiceDisplay *display) - "signal::realize", gl_area_realize, display, - NULL); - gtk_stack_add_named(d->stack, area, "gl-area"); -- gtk_widget_show_all(widget); - #endif - #endif -+ gtk_widget_show_all(widget); - - g_signal_connect(display, "grab-broken-event", G_CALLBACK(grab_broken), NULL); - g_signal_connect(display, "grab-notify", G_CALLBACK(grab_notify), NULL); --- -2.12.1 - diff --git a/SOURCES/0007-authentication-Handle-failed-SASL-authentication-sep.patch b/SOURCES/0007-authentication-Handle-failed-SASL-authentication-sep.patch deleted file mode 100644 index 0f45105..0000000 --- a/SOURCES/0007-authentication-Handle-failed-SASL-authentication-sep.patch +++ /dev/null @@ -1,94 +0,0 @@ -From e32502ef5a9f6bae10924426e0e2e88dbac6dca5 Mon Sep 17 00:00:00 2001 -From: snir sheriber -Date: Sun, 26 Feb 2017 12:09:17 +0200 -Subject: [PATCH spice-gtk 7/8] authentication: Handle failed SASL - authentication separately -To: spice-devel@lists.freedesktop.org - -Move SASL authentication failures handling to a separate -function. - -Multiple error messages asking for username\password were -removed because they are not necessarily the reason for the -failure (avoiding similar issue as in rhbz#1365736). -Letting the user know about required username\password -should be achieved by setting specific Gerror's error code -and enabling\disabling the username\password fields -accordingly by the application. - -(cherry picked from commit 2dc8f0bad6558a944405404a266954fd29fd0fa2) ---- - src/spice-channel.c | 44 +++++++++++++++++++++++++++----------------- - 1 file changed, 27 insertions(+), 17 deletions(-) - -diff --git a/src/spice-channel.c b/src/spice-channel.c -index 95662f3..020606b 100644 ---- a/src/spice-channel.c -+++ b/src/spice-channel.c -@@ -1104,28 +1104,38 @@ static int spice_channel_read(SpiceChannel *channel, void *data, size_t length) - return length; - } - -+#if HAVE_SASL - /* coroutine context */ --static void spice_channel_failed_authentication(SpiceChannel *channel, -- gboolean invalidPassword) -+static void spice_channel_failed_sasl_authentication(SpiceChannel *channel) - { - SpiceChannelPrivate *c = channel->priv; -+ gint err_code; /* The application should activate the authentication window fields accordingly */ - - if (c->auth_needs_username && c->auth_needs_password) -- g_set_error_literal(&c->error, -- SPICE_CLIENT_ERROR, -- SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD_AND_USERNAME, -- _("Authentication failed: password and username are required")); -+ err_code = SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD_AND_USERNAME; - else if (c->auth_needs_username) -- g_set_error_literal(&c->error, -- SPICE_CLIENT_ERROR, -- SPICE_CLIENT_ERROR_AUTH_NEEDS_USERNAME, -- _("Authentication failed: username is required")); -- else if (c->auth_needs_password) -- g_set_error_literal(&c->error, -- SPICE_CLIENT_ERROR, -- SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD, -- _("Authentication failed: password is required")); -- else if (invalidPassword) -+ err_code = SPICE_CLIENT_ERROR_AUTH_NEEDS_USERNAME; -+ else -+ err_code = SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD; -+ -+ g_set_error_literal(&c->error, -+ SPICE_CLIENT_ERROR, -+ err_code, -+ _("Authentication failed")); -+ -+ c->event = SPICE_CHANNEL_ERROR_AUTH; -+ -+ c->has_error = TRUE; /* force disconnect */ -+} -+#endif -+ -+/* coroutine context */ -+static void spice_channel_failed_authentication(SpiceChannel *channel, -+ gboolean invalidPassword) -+{ -+ SpiceChannelPrivate *c = channel->priv; -+ -+ if (invalidPassword) - g_set_error_literal(&c->error, - SPICE_CLIENT_ERROR, - SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD, -@@ -1799,7 +1809,7 @@ error: - if (saslconn) - sasl_dispose(&saslconn); - -- spice_channel_failed_authentication(channel, FALSE); -+ spice_channel_failed_sasl_authentication(channel); - ret = FALSE; - - cleanup: --- -2.12.1 - diff --git a/SOURCES/0008-authentication-Handle-failed-spice-authentication.patch b/SOURCES/0008-authentication-Handle-failed-spice-authentication.patch deleted file mode 100644 index 3a79a73..0000000 --- a/SOURCES/0008-authentication-Handle-failed-spice-authentication.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 9a3eab7d73b6300de21b0bf3aad176b774e5b1f5 Mon Sep 17 00:00:00 2001 -From: snir sheriber -Date: Sun, 26 Feb 2017 12:09:18 +0200 -Subject: [PATCH spice-gtk 8/8] authentication: Handle failed spice - authentication -To: spice-devel@lists.freedesktop.org - -Changing the name of the failures handling function (spice -and sasl authentication failures are now treated separately) -and display more suitable spice authentication failure error -message. - -Resolves: rhbz#1365736 -(cherry picked from commit 34be2a39949ebdffd7fdce4a9e6f3ddf1225b86b) ---- - src/spice-channel.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/src/spice-channel.c b/src/spice-channel.c -index 020606b..854fff6 100644 ---- a/src/spice-channel.c -+++ b/src/spice-channel.c -@@ -1130,8 +1130,8 @@ static void spice_channel_failed_sasl_authentication(SpiceChannel *channel) - #endif - - /* coroutine context */ --static void spice_channel_failed_authentication(SpiceChannel *channel, -- gboolean invalidPassword) -+static void spice_channel_failed_spice_authentication(SpiceChannel *channel, -+ gboolean invalidPassword) - { - SpiceChannelPrivate *c = channel->priv; - -@@ -1144,7 +1144,7 @@ static void spice_channel_failed_authentication(SpiceChannel *channel, - g_set_error_literal(&c->error, - SPICE_CLIENT_ERROR, - SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD, -- _("Authentication failed: password is required")); -+ _("Authentication failed: wrong password ?")); - - c->event = SPICE_CHANNEL_ERROR_AUTH; - -@@ -1183,7 +1183,7 @@ static SpiceChannelEvent spice_channel_send_spice_ticket(SpiceChannel *channel) - if (password == NULL) - password = g_strdup(""); - if (strlen(password) > SPICE_MAX_PASSWORD_LENGTH) { -- spice_channel_failed_authentication(channel, TRUE); -+ spice_channel_failed_spice_authentication(channel, TRUE); - ret = SPICE_CHANNEL_ERROR_AUTH; - goto cleanup; - } -@@ -1219,7 +1219,7 @@ static gboolean spice_channel_recv_auth(SpiceChannel *channel) - - if (link_res != SPICE_LINK_ERR_OK) { - CHANNEL_DEBUG(channel, "link result: reply %u", link_res); -- spice_channel_failed_authentication(channel, FALSE); -+ spice_channel_failed_spice_authentication(channel, FALSE); - return FALSE; - } - --- -2.12.1 - diff --git a/SOURCES/0009-file-xfer-do-not-send-unnecessary-0-bytes-messages.patch b/SOURCES/0009-file-xfer-do-not-send-unnecessary-0-bytes-messages.patch deleted file mode 100644 index 1729fd8..0000000 --- a/SOURCES/0009-file-xfer-do-not-send-unnecessary-0-bytes-messages.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Victor Toso -Date: Fri, 11 Nov 2016 14:19:53 +0100 -Subject: [PATCH] file-xfer: do not send unnecessary 0 bytes messages - -This fixes the situation when VDAgent receives 0 byte message -regarding a file-transfer operation that was terminated in the -previous message. - -This makes the VDAgent to send a STATUS_ERROR after STATUS_SUCCESS to -client. - -Resolves: https://bugs.freedesktop.org/show_bug.cgi?id=97227 - -Signed-off-by: Victor Toso -Acked-by: Jonathon Jongsma -(cherry picked from commit 885229393e3198bd4b386cf71a51832439dfb31b) ---- - src/channel-main.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/channel-main.c b/src/channel-main.c -index 990a06a..72ca712 100644 ---- a/src/channel-main.c -+++ b/src/channel-main.c -@@ -1822,6 +1822,14 @@ static void file_xfer_read_async_cb(GObject *source_object, - return; - } - -+ if (count == 0 && spice_file_transfer_task_get_total_bytes(xfer_task) > 0) { -+ /* If we have sent all payload to the agent, we should not send 0 bytes -+ * as it will cause https://bugs.freedesktop.org/show_bug.cgi?id=97227. -+ * Only when file has 0 bytes of size is when we should send 0 bytes to -+ * agent, see: https://bugzilla.redhat.com/show_bug.cgi?id=1135099 */ -+ return; -+ } -+ - file_xfer_queue_msg_to_agent(channel, spice_file_transfer_task_get_id(xfer_task), buffer, count); - if (count == 0 || spice_file_transfer_task_is_completed(xfer_task)) { - /* on EOF just wait for VD_AGENT_FILE_XFER_STATUS from agent diff --git a/SOURCES/0010-file-xfer-avoid-g_hash_table_iter_-when-changing-the.patch b/SOURCES/0010-file-xfer-avoid-g_hash_table_iter_-when-changing-the.patch deleted file mode 100644 index 7e65a1a..0000000 --- a/SOURCES/0010-file-xfer-avoid-g_hash_table_iter_-when-changing-the.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Victor Toso -Date: Wed, 8 Feb 2017 09:59:51 +0100 -Subject: [PATCH] file-xfer: avoid g_hash_table_iter_* when changing the - GHashTable - -Using g_hash_table_iter_init() and g_hash_table_iter_next() here is -bad as spice_file_transfer_task_completed() will emit "finished" -signal from SpiceFileTransferTask resulting in the original GHashTable -to be changed in file_transfer_operation_task_finished() - -Debug will show: - GSpice-DEBUG: spice-file-transfer-task.c:303 File bigfile2 xfer - failed: Agent connection closed - - WARNING **: Agent connection closed - - GLib-CRITICAL **: g_hash_table_iter_next: assertion 'ri->version == - ri->hash_table->version' failed - -Reported-by: Pavel Grunt -Signed-off-by: Victor Toso -Acked-by: Pavel Grunt -(cherry picked from commit 01bb9bb30517b0ea3bdb230d40b2835c53a9cf59) ---- - src/channel-main.c | 19 ++++++++++++------- - 1 file changed, 12 insertions(+), 7 deletions(-) - -diff --git a/src/channel-main.c b/src/channel-main.c -index 72ca712..0a4435e 100644 ---- a/src/channel-main.c -+++ b/src/channel-main.c -@@ -2915,19 +2915,23 @@ static void file_transfer_operation_free(FileTransferOperation *xfer_op) - - static void spice_main_channel_reset_all_xfer_operations(SpiceMainChannel *channel) - { -- GHashTableIter iter_all_xfer_tasks; -- gpointer key, value; -+ GList *it, *keys; - - /* Mark each of SpiceFileTransferTask as completed due error */ -- g_hash_table_iter_init(&iter_all_xfer_tasks, channel->priv->file_xfer_tasks); -- while (g_hash_table_iter_next(&iter_all_xfer_tasks, &key, &value)) { -- FileTransferOperation *xfer_op = value; -- SpiceFileTransferTask *xfer_task = g_hash_table_lookup(xfer_op->xfer_task, key); -+ keys = g_hash_table_get_keys(channel->priv->file_xfer_tasks); -+ for (it = keys; it != NULL; it = it->next) { -+ FileTransferOperation *xfer_op; -+ SpiceFileTransferTask *xfer_task; - GError *error; - -+ xfer_op = g_hash_table_lookup(channel->priv->file_xfer_tasks, it->data); -+ if (xfer_op == NULL) -+ continue; -+ -+ xfer_task = g_hash_table_lookup(xfer_op->xfer_task, it->data); - if (xfer_task == NULL) { - spice_warning("(reset-all) can't complete task %u - completed already?", -- GPOINTER_TO_UINT(key)); -+ GPOINTER_TO_UINT(it->data)); - continue; - } - -@@ -2935,6 +2939,7 @@ static void spice_main_channel_reset_all_xfer_operations(SpiceMainChannel *chann - "Agent connection closed"); - spice_file_transfer_task_completed(xfer_task, error); - } -+ g_list_free(keys); - } - - static SpiceFileTransferTask *spice_main_channel_find_xfer_task_by_task_id(SpiceMainChannel *channel, diff --git a/SOURCES/0011-Remove-redundant-space-from-error-message.patch b/SOURCES/0011-Remove-redundant-space-from-error-message.patch deleted file mode 100644 index 2e21968..0000000 --- a/SOURCES/0011-Remove-redundant-space-from-error-message.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f85c6387ff74bdb805fbb3a23b2af7dd087a982c Mon Sep 17 00:00:00 2001 -From: snir sheriber -Date: Tue, 25 Apr 2017 16:24:25 +0300 -Subject: [PATCH 11/13] Remove redundant space from error message - -Resolves: rhbz#1365736 - -Acked-by: Victor Toso -(cherry picked from commit 366344f37bc756137b0c5009135088f4bf562b04) ---- - src/spice-channel.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/spice-channel.c b/src/spice-channel.c -index 854fff6..df66386 100644 ---- a/src/spice-channel.c -+++ b/src/spice-channel.c -@@ -1144,7 +1144,7 @@ static void spice_channel_failed_spice_authentication(SpiceChannel *channel, - g_set_error_literal(&c->error, - SPICE_CLIENT_ERROR, - SPICE_CLIENT_ERROR_AUTH_NEEDS_PASSWORD, -- _("Authentication failed: wrong password ?")); -+ _("Authentication failed: wrong password?")); - - c->event = SPICE_CHANNEL_ERROR_AUTH; - --- -2.12.2 - diff --git a/SOURCES/0012-audio-debug-audio-codec-when-audio-stream-starts.patch b/SOURCES/0012-audio-debug-audio-codec-when-audio-stream-starts.patch deleted file mode 100644 index 736b013..0000000 --- a/SOURCES/0012-audio-debug-audio-codec-when-audio-stream-starts.patch +++ /dev/null @@ -1,92 +0,0 @@ -From a279657cabec5af3a0d58cb63dbd039b13fe563f Mon Sep 17 00:00:00 2001 -From: Victor Toso -Date: Tue, 28 Mar 2017 13:45:16 +0200 -Subject: [PATCH 12/13] audio: debug audio codec when audio stream starts -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We already debug a few parameters but the audio codec is missing. - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1436249 -Signed-off-by: Victor Toso -Acked-by: Marc-André Lureau -(cherry picked from commit 7721d0906d55cfaa6ce8f5786829c5c738adf74c) ---- - src/channel-playback.c | 5 +++-- - src/channel-record.c | 5 +++-- - src/spice-session-priv.h | 1 + - src/spice-session.c | 13 +++++++++++++ - 4 files changed, 20 insertions(+), 4 deletions(-) - -diff --git a/src/channel-playback.c b/src/channel-playback.c -index 39c2178..ca14b96 100644 ---- a/src/channel-playback.c -+++ b/src/channel-playback.c -@@ -367,8 +367,9 @@ static void playback_handle_start(SpiceChannel *channel, SpiceMsgIn *in) - SpicePlaybackChannelPrivate *c = SPICE_PLAYBACK_CHANNEL(channel)->priv; - SpiceMsgPlaybackStart *start = spice_msg_in_parsed(in); - -- CHANNEL_DEBUG(channel, "%s: fmt %u channels %u freq %u time %u", __FUNCTION__, -- start->format, start->channels, start->frequency, start->time); -+ CHANNEL_DEBUG(channel, "%s: fmt %u channels %u freq %u time %u mode %s", __FUNCTION__, -+ start->format, start->channels, start->frequency, start->time, -+ spice_audio_data_mode_to_string(c->mode)); - - c->frame_count = 0; - c->last_time = start->time; -diff --git a/src/channel-record.c b/src/channel-record.c -index c1d9afa..9834e85 100644 ---- a/src/channel-record.c -+++ b/src/channel-record.c -@@ -405,8 +405,9 @@ static void record_handle_start(SpiceChannel *channel, SpiceMsgIn *in) - - c->mode = spice_record_desired_mode(channel, start->frequency); - -- CHANNEL_DEBUG(channel, "%s: fmt %u channels %u freq %u", __FUNCTION__, -- start->format, start->channels, start->frequency); -+ CHANNEL_DEBUG(channel, "%s: fmt %u channels %u freq %u mode %s", __FUNCTION__, -+ start->format, start->channels, start->frequency, -+ spice_audio_data_mode_to_string(c->mode)); - - g_return_if_fail(start->format == SPICE_AUDIO_FMT_S16); - -diff --git a/src/spice-session-priv.h b/src/spice-session-priv.h -index 049973a..03005aa 100644 ---- a/src/spice-session-priv.h -+++ b/src/spice-session-priv.h -@@ -99,6 +99,7 @@ guint spice_session_get_n_display_channels(SpiceSession *session); - void spice_session_set_main_channel(SpiceSession *session, SpiceChannel *channel); - gboolean spice_session_set_migration_session(SpiceSession *session, SpiceSession *mig_session); - SpiceAudio *spice_audio_get(SpiceSession *session, GMainContext *context); -+const gchar* spice_audio_data_mode_to_string(gint mode); - G_END_DECLS - - #endif /* __SPICE_CLIENT_SESSION_PRIV_H__ */ -diff --git a/src/spice-session.c b/src/spice-session.c -index 3f450d9..a972002 100644 ---- a/src/spice-session.c -+++ b/src/spice-session.c -@@ -2602,6 +2602,19 @@ void spice_session_set_shared_dir(SpiceSession *session, const gchar *dir) - s->shared_dir = g_strdup(dir); - } - -+G_GNUC_INTERNAL -+const gchar* spice_audio_data_mode_to_string(gint mode) -+{ -+ static const char *str[] = { -+ [ SPICE_AUDIO_DATA_MODE_INVALID ] = "invalid", -+ [ SPICE_AUDIO_DATA_MODE_RAW ] = "raw", -+ [ SPICE_AUDIO_DATA_MODE_CELT_0_5_1 ] = "celt", -+ [ SPICE_AUDIO_DATA_MODE_OPUS ] = "opus", -+ }; -+ return (mode >= 0 && mode < G_N_ELEMENTS(str)) ? str[mode] : "unknown audio codec"; -+} -+ -+ - /** - * spice_session_get_proxy_uri: - * @session: a #SpiceSession --- -2.12.2 - diff --git a/SOURCES/0013-file-xfer-Fix-bad-filename-encoding.patch b/SOURCES/0013-file-xfer-Fix-bad-filename-encoding.patch deleted file mode 100644 index 9a16096..0000000 --- a/SOURCES/0013-file-xfer-Fix-bad-filename-encoding.patch +++ /dev/null @@ -1,69 +0,0 @@ -From bfd5040f4a082441c143c128d13063d28ddc1e32 Mon Sep 17 00:00:00 2001 -From: Victor Toso -Date: Thu, 13 Apr 2017 14:32:55 +0200 -Subject: [PATCH 13/13] file-xfer: Fix bad filename encoding -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Manual for G_FILE_ATTRIBUTE_STANDARD_NAME states: - > The name is the on-disk filename which may not be in any known - > encoding, and can thus not be generally displayed as is. - -Considering a file named "ěščřžýáíé", if we use -G_FILE_ATTRIBUTE_STANDARD_NAME to get the file name, we will have the -following 72 bytes long string: -"\xc4\x9b\xc5\xa1\xc4\x8d\xc5\x99\xc5\xbe\xc3\xbd\xc3\xa1\xc3\xad\xc3\xa9" - -This is a regression introduced at 4647ac9a2a72c98b6841180ccf5f8d - -Possible solutions are: -1) Using G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME attribute; -2) Using g_file_info_get_attribute_byte_string() function; -3) Using the g_file_get_basename() which was used before 4647ac9a2a72c9 - -Using option 2 based on better long term solution. -This give us the correct 18 bytes long utf-8 string to "ěščřžýáíé" - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1440206 -Signed-off-by: Victor Toso -Acked-by: Christophe Fergeau -(cherry picked from commit 5b9ad92814e3fc488cca8cba41b6af0caa390e1b) ---- - src/channel-main.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/channel-main.c b/src/channel-main.c -index 990a06a..b0878dd 100644 ---- a/src/channel-main.c -+++ b/src/channel-main.c -@@ -2822,7 +2822,8 @@ static void file_xfer_init_task_async_cb(GObject *obj, GAsyncResult *res, gpoint - GFileInfo *info; - SpiceFileTransferTask *xfer_task; - SpiceMainChannel *channel; -- gchar *string, *basename; -+ gchar *string; -+ const gchar *basename; - GKeyFile *keyfile; - VDAgentFileXferStartMessage msg; - guint64 file_size; -@@ -2837,7 +2838,7 @@ static void file_xfer_init_task_async_cb(GObject *obj, GAsyncResult *res, gpoint - goto failed; - - channel = spice_file_transfer_task_get_channel(xfer_task); -- basename = g_file_info_get_attribute_as_string(info, G_FILE_ATTRIBUTE_STANDARD_NAME); -+ basename = g_file_info_get_attribute_byte_string(info, G_FILE_ATTRIBUTE_STANDARD_NAME); - file_size = g_file_info_get_attribute_uint64(info, G_FILE_ATTRIBUTE_STANDARD_SIZE); - - xfer_op = data; -@@ -2846,7 +2847,6 @@ static void file_xfer_init_task_async_cb(GObject *obj, GAsyncResult *res, gpoint - keyfile = g_key_file_new(); - g_key_file_set_string(keyfile, "vdagent-file-xfer", "name", basename); - g_key_file_set_uint64(keyfile, "vdagent-file-xfer", "size", file_size); -- g_free(basename); - - /* Save keyfile content to memory. TODO: more file attributions - need to be sent to guest */ --- -2.12.2 - diff --git a/SOURCES/0014-Revert-Ignore-modifiers-messages-if-no-modifiers-cha.patch b/SOURCES/0014-Revert-Ignore-modifiers-messages-if-no-modifiers-cha.patch deleted file mode 100644 index ebfe275..0000000 --- a/SOURCES/0014-Revert-Ignore-modifiers-messages-if-no-modifiers-cha.patch +++ /dev/null @@ -1,32 +0,0 @@ -From fde2665c56db4e28bd0d9fbcfd28959166cdbc19 Mon Sep 17 00:00:00 2001 -From: Pavel Grunt -Date: Mon, 5 Jun 2017 15:22:27 +0200 -Subject: [PATCH spice-gtk] Revert "Ignore modifiers messages if no modifiers - changed" -To: spice-devel@lists.freedesktop.org - -This reverts commit 73cd553fb0fbd213b64d72f8b4289ed8a17fc6c0. ---- - src/channel-inputs.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/src/channel-inputs.c b/src/channel-inputs.c -index f79bc38..7572bff 100644 ---- a/src/channel-inputs.c -+++ b/src/channel-inputs.c -@@ -242,10 +242,8 @@ static void inputs_handle_modifiers(SpiceChannel *channel, SpiceMsgIn *in) - SpiceInputsChannelPrivate *c = SPICE_INPUTS_CHANNEL(channel)->priv; - SpiceMsgInputsKeyModifiers *modifiers = spice_msg_in_parsed(in); - -- if (c->modifiers != modifiers->modifiers) { -- c->modifiers = modifiers->modifiers; -- g_coroutine_signal_emit(channel, signals[SPICE_INPUTS_MODIFIERS], 0); -- } -+ c->modifiers = modifiers->modifiers; -+ g_coroutine_signal_emit(channel, signals[SPICE_INPUTS_MODIFIERS], 0); - } - - /* coroutine context */ --- -2.13.0 - diff --git a/SOURCES/0015-canvas-base-Fix-width-computation-for-palette-images.patch b/SOURCES/0015-canvas-base-Fix-width-computation-for-palette-images.patch deleted file mode 100644 index 350839c..0000000 --- a/SOURCES/0015-canvas-base-Fix-width-computation-for-palette-images.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 3b4759ce15325e2de1b473d619b69ae786c2fcec Mon Sep 17 00:00:00 2001 -From: Frediano Ziglio -Date: Thu, 21 Dec 2017 15:54:04 +0000 -Subject: [PATCH spice-common] canvas-base: Fix width computation for palette - images - -Palette images are encoded with a slightly larger pixel than -width. This cause a wrong calculation of stride_encoded value -which cause a wrong stride adjustment. - -This fix bug https://bugzilla.redhat.com/show_bug.cgi?id=1508847. - -Signed-off-by: Frediano Ziglio ---- - common/canvas_base.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/common/canvas_base.c b/common/canvas_base.c -index a9d7855..2ecd276 100644 ---- a/spice-common/common/canvas_base.c -+++ b/spice-common/common/canvas_base.c -@@ -824,7 +824,7 @@ static pixman_image_t *canvas_get_lz(CanvasBase *canvas, SpiceImage *image, - lz_decode_begin(lz_data->lz, comp_buf, comp_size, &type, - &width, &height, &n_comp_pixels, &top_down, palette); - -- stride_encoded = width; -+ stride_encoded = n_comp_pixels / height; - switch (type) { - case LZ_IMAGE_TYPE_RGBA: - as_type = LZ_IMAGE_TYPE_RGBA; --- -2.14.3 - diff --git a/SPECS/spice-gtk.spec b/SPECS/spice-gtk.spec index 0325997..e38585f 100644 --- a/SPECS/spice-gtk.spec +++ b/SPECS/spice-gtk.spec @@ -1,16 +1,10 @@ -# we don't want to provide private python extension libs -%{?filter_setup: -%filter_provides_in %{python_sitearch}/.*\.so$ -%filter_setup -} - %global _hardened_build 1 #define _version_suffix Name: spice-gtk -Version: 0.33 -Release: 6%{?dist}.1 +Version: 0.34 +Release: 3%{?dist} Summary: A GTK+ widget for SPICE clients Group: System Environment/Libraries @@ -19,21 +13,7 @@ URL: https://www.spice-space.org/ #VCS: git:git://anongit.freedesktop.org/spice/spice-gtk Source0: https://www.spice-space.org/download/gtk/%{name}-%{version}%{?_version_suffix}.tar.bz2 -Patch0001: 0001-clipboard-Fix-crash-by-handling-error.patch -Patch0002: 0002-channel-usbredir-Fix-crash-on-channel-up.patch -Patch0003: 0003-gtk-session-Use-GWeakRef.patch -Patch0004: 0004-gtk-session-always-reply-to-agent-s-clipboard-reques.patch -Patch0005: 0005-usb-Allow-to-compile-if-LZ4-is-disabled.patch -Patch0006: 0006-widget-Always-call-gtk_widget_show_all.patch -Patch0007: 0007-authentication-Handle-failed-SASL-authentication-sep.patch -Patch0008: 0008-authentication-Handle-failed-spice-authentication.patch -Patch0009: 0009-file-xfer-do-not-send-unnecessary-0-bytes-messages.patch -Patch0010: 0010-file-xfer-avoid-g_hash_table_iter_-when-changing-the.patch -Patch0011: 0011-Remove-redundant-space-from-error-message.patch -Patch0012: 0012-audio-debug-audio-codec-when-audio-stream-starts.patch -Patch0013: 0013-file-xfer-Fix-bad-filename-encoding.patch -Patch0014: 0014-Revert-Ignore-modifiers-messages-if-no-modifiers-cha.patch -Patch0015: 0015-canvas-base-Fix-width-computation-for-palette-images.patch +Patch0001: 0001-canvas-base-Fix-width-computation-for-palette-images.patch Patch1000: 1000-gtk-Makefile.am-add-PIE-flags-to-libspice-client-gli.patch BuildRequires: intltool @@ -53,12 +33,14 @@ BuildRequires: gtk-doc BuildRequires: vala-tools BuildRequires: usbutils BuildRequires: libepoxy-devel +BuildRequires: lz4-devel BuildRequires: gtk3-devel BuildRequires: gstreamer1-devel gstreamer1-plugins-base-devel # keep me to get gendeps magic happen BuildRequires: spice-protocol >= 0.12.12-1 # Hack because of bz #613466 BuildRequires: libtool +BuildRequires: opus-devel Requires: spice-glib%{?_isa} = %{version}-%{release} @@ -134,20 +116,6 @@ spicy-screenshot is a tool to capture screen-shots of a SPICE desktop. %setup -q -n spice-gtk-%{version}%{?_version_suffix} %patch0001 -p1 -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 -%patch0007 -p1 -%patch0008 -p1 -%patch0009 -p1 -%patch0010 -p1 -%patch0011 -p1 -%patch0012 -p1 -%patch0013 -p1 -%patch0014 -p1 -%patch0015 -p1 %patch1000 -p1 find . -name '*.stamp' | xargs touch @@ -157,6 +125,7 @@ find . -name '*.stamp' | xargs touch --with-gtk=3.0 \ --enable-vala \ --with-usb-acl-helper-dir=%{_libexecdir}/spice-gtk-%{_arch}/ \ + --enable-lz4 \ --disable-werror make %{?_smp_mflags} @@ -226,9 +195,21 @@ rm -f %{buildroot}%{_libdir}/*.la %{_bindir}/spicy-stats %changelog -* Thu Dec 21 2017 Frediano Ziglio - 0.33-6.1 +* Thu Dec 21 2017 Frediano Ziglio - 0.34-3 - Fix stride misalignment - Resolves: rhbz#1532212 + Resolves: rhbz#1508847 + +* Tue Nov 14 2017 Victor Toso - 0.34-2 +- Enable lz4 + Resolves: rhbz#1460198 + +* Tue Sep 12 2017 Victor Toso - 0.34-1 +- Rebase to 0.34 + Resolves: rhbz#1472730 + +* Fri Jul 14 2017 Jonathon Jongsma - 0.33-7 +- build with opus support + Resolves: rhbz#1456849 * Wed Jun 7 2017 Pavel Grunt - 0.33-6 - Fix capslock regression