[banshee] Initialize dbus threads (#867133)
Kalev Lember
kalev at fedoraproject.org
Sat Mar 30 22:27:41 UTC 2013
commit 4e92ed0363b8649a29b025374496fab8a4ba7714
Author: Kalev Lember <kalevlember at gmail.com>
Date: Sat Mar 30 23:02:16 2013 +0100
Initialize dbus threads (#867133)
https://bugzilla.gnome.org/show_bug.cgi?id=692374
https://bugzilla.redhat.com/show_bug.cgi?id=867133
banshee-2.6.0-dbus-threads.patch | 48 ++++++++++++++++++++++++++++++++++++++
banshee.spec | 10 +++++++-
2 files changed, 57 insertions(+), 1 deletions(-)
---
diff --git a/banshee-2.6.0-dbus-threads.patch b/banshee-2.6.0-dbus-threads.patch
new file mode 100644
index 0000000..5f5218a
--- /dev/null
+++ b/banshee-2.6.0-dbus-threads.patch
@@ -0,0 +1,48 @@
+From 459be46e3bd086deba369f367e6198d0b25f1a7c Mon Sep 17 00:00:00 2001
+From: Hans Petter Jansson <hpj at cl.no>
+Date: Tue, 26 Feb 2013 02:43:37 +0100
+Subject: [PATCH] Avoid race when using GConf and DBus with threads
+
+GConf causes us to make indirect calls to libdbus from multiple threads,
+resulting in crashes if left uninitialized. As a workaround, we initialize
+dbus-glib for multithreading.
+---
+ .../Banshee.Gui/GtkBaseClient.cs | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs b/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs
+index c5c5675..1df06ad 100644
+--- a/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs
++++ b/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs
+@@ -28,6 +28,7 @@
+
+ using System;
+ using System.IO;
++using System.Runtime.InteropServices;
+
+ using Mono.Addins;
+
+@@ -100,6 +101,10 @@ namespace Banshee.Gui
+ {
+ }
+
++ internal const string LIBDBUSGLIB1 = "libdbus-glib-1.so.2";
++ [DllImport (LIBDBUSGLIB1, CallingConvention=CallingConvention.Cdecl, SetLastError=true)]
++ internal static extern void dbus_g_thread_init ();
++
+ protected virtual void InitializeGtk ()
+ {
+ Log.Debug ("Initializing GTK");
+@@ -107,6 +112,9 @@ namespace Banshee.Gui
+ if (!GLib.Thread.Supported) {
+ GLib.Thread.Init ();
+ }
++
++ dbus_g_thread_init ();
++
+ Gtk.Application.Init ();
+
+ if (ApplicationContext.CommandLine.Contains ("debug-gtkrc")) {
+--
+1.7.7
+
diff --git a/banshee.spec b/banshee.spec
index 7f4b622..b55a8b0 100644
--- a/banshee.spec
+++ b/banshee.spec
@@ -6,7 +6,7 @@
Name: banshee
Version: 2.6.0
#Release: 0%{gitdate}git%{?dist}
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Easily import, manage, and play selections from your music collection
Group: Applications/Multimedia
@@ -23,6 +23,10 @@ Source1: README.Fedora
# for snapshots only: don't run configure at the end of autogen.sh
#Patch0: %{name}-noconf.patch
+# https://bugzilla.gnome.org/show_bug.cgi?id=692374
+# https://bugzilla.redhat.com/show_bug.cgi?id=867133
+Patch1: banshee-2.6.0-dbus-threads.patch
+
# Mono only available on these:
ExclusiveArch: %{mono_arches}
@@ -144,6 +148,7 @@ developing applications that use %{name}-musicbrainz.
#%setup -q -n %{name}-%{gitdate}
# Snapshots only
#%patch0 -p1 -b .noconf
+%patch1 -p1 -b .dbus_threads
cp -p %{SOURCE1} .
%build
@@ -228,6 +233,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_libdir}/pkgconfig/banshee-musicbrainz.pc
%changelog
+* Sat Mar 30 2013 Kalev Lember <kalevlember at gmail.com> - 2.6.0-3
+- Initialize dbus threads (#867133)
+
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
More information about the scm-commits
mailing list