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 +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 - 2.6.0-3 +- Initialize dbus threads (#867133) + * Wed Feb 13 2013 Fedora Release Engineering - 2.6.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild