diff --git a/0002-audio-channel-new-handler-to-be-after-default-handle.patch b/0002-audio-channel-new-handler-to-be-after-default-handle.patch new file mode 100644 index 0000000..efef9c3 --- /dev/null +++ b/0002-audio-channel-new-handler-to-be-after-default-handle.patch @@ -0,0 +1,39 @@ +From 81d8175d9d6a8297b10cead6c951bf560f61be4c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= +Date: Tue, 28 Apr 2015 14:30:28 +0200 +Subject: [PATCH spice-gtk] audio: channel-new handler to be after default + handlers + +Client usually connect to channel-new to connect their +handlers, such as open-fd. + +The audio channel-new handler will call channel_connect() on audio +channels, which may call open-fd. + +However, open-fd can be emitted before the client had a chance to +connect their handlers (from the channel-new callback). + +Connecting after the default handler solves this case. + +Fixes: +https://bugzilla.gnome.org/show_bug.cgi?id=747649 +--- + gtk/spice-audio.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gtk/spice-audio.c b/gtk/spice-audio.c +index 7784c8b..ce191e1 100644 +--- a/gtk/spice-audio.c ++++ b/gtk/spice-audio.c +@@ -267,7 +267,7 @@ SpiceAudio *spice_audio_new(SpiceSession *session, GMainContext *context, + return NULL; + + spice_g_signal_connect_object(session, "notify::enable-audio", G_CALLBACK(session_enable_audio), self, 0); +- spice_g_signal_connect_object(session, "channel-new", G_CALLBACK(channel_new), self, 0); ++ spice_g_signal_connect_object(session, "channel-new", G_CALLBACK(channel_new), self, G_CONNECT_AFTER); + update_audio_channels(self, session); + + return self; +-- +2.1.0 + diff --git a/0003-usb-channel-new-handler-to-be-after-default-handlers.patch b/0003-usb-channel-new-handler-to-be-after-default-handlers.patch new file mode 100644 index 0000000..d787cbf --- /dev/null +++ b/0003-usb-channel-new-handler-to-be-after-default-handlers.patch @@ -0,0 +1,40 @@ +From 9546b571d7143e4c9efcb022d6016ea1c9ed2536 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= +Date: Tue, 28 Apr 2015 14:30:28 +0200 +Subject: [PATCH spice-gtk] usb: channel-new handler to be after default + handlers + +Client usually connect to channel-new to connect their +handlers, such as open-fd. + +The usbmanager channel-new handler will call channel_connect() on usbredir +channels, which may call open-fd. + +However, open-fd can be emitted before the client had a chance to +connect their handlers (from the channel-new callback). + +Connecting after the default handler solves this case. + +Fixes: +https://bugzilla.gnome.org/show_bug.cgi?id=748665 +--- + gtk/usb-device-manager.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c +index e11eae0..7aa60c4 100644 +--- a/gtk/usb-device-manager.c ++++ b/gtk/usb-device-manager.c +@@ -310,8 +310,7 @@ static gboolean spice_usb_device_manager_initable_init(GInitable *initable, + #endif + + /* Start listening for usb channels connect/disconnect */ +- g_signal_connect(priv->session, "channel-new", +- G_CALLBACK(channel_new), self); ++ spice_g_signal_connect_object(priv->session, "channel-new", G_CALLBACK(channel_new), self, G_CONNECT_AFTER); + g_signal_connect(priv->session, "channel-destroy", + G_CALLBACK(channel_destroy), self); + list = spice_session_get_channels(priv->session); +-- +2.1.0 + diff --git a/spice-gtk.spec b/spice-gtk.spec index 4bd0f95..382da3c 100644 --- a/spice-gtk.spec +++ b/spice-gtk.spec @@ -2,7 +2,7 @@ Name: spice-gtk Version: 0.28 -Release: 2%{?dist} +Release: 3%{?dist} Summary: A GTK+ widget for SPICE clients Group: System Environment/Libraries @@ -10,7 +10,9 @@ License: LGPLv2+ URL: http://spice-space.org/page/Spice-Gtk #VCS: git:git://anongit.freedesktop.org/spice/spice-gtk Source0: http://www.spice-space.org/download/gtk/%{name}-%{version}%{?_version_suffix}.tar.bz2 -Patch0: 0001-channel-usbredir-Do-not-stop-event-listening-if-Spic.patch +Patch1: 0001-channel-usbredir-Do-not-stop-event-listening-if-Spic.patch +Patch2: 0002-audio-channel-new-handler-to-be-after-default-handle.patch +Patch3: 0003-usb-channel-new-handler-to-be-after-default-handlers.patch BuildRequires: intltool BuildRequires: gtk2-devel >= 2.14 @@ -135,7 +137,9 @@ if [ -n '%{?_version_suffix}' ]; then fi pushd spice-gtk-%{version} -%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 find . -name '*.stamp' | xargs touch popd @@ -254,6 +258,10 @@ rm -rf %{buildroot}%{_datadir}/pkgconfig/spice-protocol.pc %{_bindir}/spicy-stats %changelog +* Mon May 11 2015 Marc-Andre Lureau 0.28-3 +- Fix audio and usb channels with GNOME Boxes. + Resolves: rhbz#1220026 + * Tue Mar 31 2015 Christophe Fergeau 0.28-2 - Add upstream patch fixing an USB redirection crash Resolves: rhbz#1182226