Fix audio and usb channels with GNOME Boxes. Resolves: rhbz#1220026

This commit is contained in:
Marc-André Lureau 2015-05-11 11:10:13 +02:00
parent 99f6a42a44
commit 5c1f6dbd30
3 changed files with 90 additions and 3 deletions

View File

@ -0,0 +1,39 @@
From 81d8175d9d6a8297b10cead6c951bf560f61be4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
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

View File

@ -0,0 +1,40 @@
From 9546b571d7143e4c9efcb022d6016ea1c9ed2536 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
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

View File

@ -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 <marcandre.lureau@redhat.com> 0.28-3
- Fix audio and usb channels with GNOME Boxes.
Resolves: rhbz#1220026
* Tue Mar 31 2015 Christophe Fergeau <cfergeau@redhat.com> 0.28-2
- Add upstream patch fixing an USB redirection crash
Resolves: rhbz#1182226