Package: evolution-data-server
Version: 3.2.2-2
Severity: important
Tags: patch

Hey,

Quite often when adding appointments in evolution my e-d-s crashes. After some
more research it seems this is gnome bug #659756, which has been fixed for 3.4.
Attached is the same patch hand-applied to 3.2.2 which solves the issue for me

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (101, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages evolution-data-server depends on:
ii  evolution-data-server-common  3.2.2-2.1
ii  gconf-service                 3.2.3-4
ii  libatk1.0-0                   2.2.0-2
ii  libc6                         2.13-27
ii  libcairo-gobject2             1.12.0-2
ii  libcairo2                     1.12.0-2
ii  libcamel-1.2-29               3.2.2-2.1
ii  libcomerr2                    1.42.2-1
ii  libdb5.1                      5.1.29-1
ii  libdbus-1-3                   1.5.12-1
ii  libdbus-glib-1-2              0.98-1
ii  libebackend-1.2-1             3.2.2-2.1
ii  libebook-1.2-12               3.2.2-2.1
ii  libecal-1.2-10                3.2.2-2.1
ii  libedata-book-1.2-11          3.2.2-2.1
ii  libedata-cal-1.2-13           3.2.2-2.1
ii  libedataserver-1.2-15         3.2.2-2.1
ii  libgconf-2-4                  3.2.3-4
ii  libgdata13                    0.10.2-1
ii  libgdk-pixbuf2.0-0            2.26.0-2
ii  libglib2.0-0                  2.32.0-3
ii  libgoa-1.0-0                  3.3.0-1
ii  libgssapi-krb5-2              1.10+dfsg~beta1-2
ii  libgtk-3-0                    3.4.0-1
ii  libgweather-3-0               3.4.1-1
ii  libical0                      0.48-1
ii  libk5crypto3                  1.10+dfsg~beta1-2
ii  libkrb5-3                     1.10+dfsg~beta1-2
ii  libldap-2.4-2                 2.4.28-1.2
ii  libnspr4-0d                   4.9-1
ii  libnss3-1d                    3.13.3-1
ii  liboauth0                     0.9.4-3+b1
ii  libpango1.0-0                 1.29.5-1
ii  libsoup2.4-1                  2.38.0-1
ii  libsqlite3-0                  3.7.11-2
ii  libxml2                       2.7.8.dfsg-7
ii  zlib1g                        1:1.2.6.dfsg-2

evolution-data-server recommends no packages.

Versions of packages evolution-data-server suggests:
ii  evolution                  3.2.2-1
ii  evolution-data-server-dbg  3.2.2-2.1

-- no debconf information
>From 595a9e84d6c09693d6faa164204acca21c10bfbe Mon Sep 17 00:00:00 2001
From: Sjoerd Simons <sjoerd.sim...@collabora.co.uk>
Date: Mon, 2 Apr 2012 09:53:33 +0200
Subject: [PATCH] Initialize dbus-glib threading

Based on upstreams 990e10860a7a624edcc38241422b7ad39f2cdf45, fixes gnome
bug #659756.
---
 addressbook/libedata-book/Makefile.am           |    7 +++++--
 addressbook/libedata-book/e-data-book-factory.c |    5 +++++
 calendar/libedata-cal/Makefile.am               |    6 ++++--
 calendar/libedata-cal/e-data-cal-factory.c      |    5 +++++
 configure.ac                                    |    9 +++++++++
 5 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/addressbook/libedata-book/Makefile.am b/addressbook/libedata-book/Makefile.am
index 2fff48a..6af90c3 100644
--- a/addressbook/libedata-book/Makefile.am
+++ b/addressbook/libedata-book/Makefile.am
@@ -90,7 +90,8 @@ e_addressbook_factory_CPPFLAGS = \
 	-I$(top_builddir)/addressbook \
 	$(EVOLUTION_ADDRESSBOOK_CFLAGS) \
 	$(GOA_CFLAGS) \
-	$(FACTORY_GTK_CFLAGS)
+	$(FACTORY_GTK_CFLAGS) \
+	$(DBUS_GLIB_CFLAGS)
 
 e_addressbook_factory_SOURCES = \
 	e-data-book-factory.c \
@@ -103,7 +104,9 @@ e_addressbook_factory_LDADD = \
 	$(top_builddir)/libebackend/libebackend-1.2.la \
 	$(EVOLUTION_ADDRESSBOOK_LIBS) \
 	$(GOA_LIBS) \
-	$(FACTORY_GTK_LIBS)
+	$(FACTORY_GTK_LIBS) \
+	$(DBUS_GLIB_LIBS)
+
 
 %-$(API_VERSION).pc: %.pc
 	 cp $< $@
diff --git a/addressbook/libedata-book/e-data-book-factory.c b/addressbook/libedata-book/e-data-book-factory.c
index dca4255..e7dec12 100644
--- a/addressbook/libedata-book/e-data-book-factory.c
+++ b/addressbook/libedata-book/e-data-book-factory.c
@@ -26,6 +26,8 @@
 #include <unistd.h>
 #include <glib/gi18n.h>
 
+#include <dbus/dbus-glib.h>
+
 #ifdef ENABLE_MAINTAINER_MODE
 #include <gtk/gtk.h>
 #endif
@@ -842,6 +844,9 @@ main (gint argc,
 	gtk_init_check (&argc, &argv);
 	#endif
 
+	/* this is to initialize threading for dbus-glib used by GConf */
+	dbus_g_thread_init ();
+
 	context = g_option_context_new (NULL);
 	g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
 	g_option_context_parse (context, &argc, &argv, &error);
diff --git a/calendar/libedata-cal/Makefile.am b/calendar/libedata-cal/Makefile.am
index a7d1a02..11bf702 100644
--- a/calendar/libedata-cal/Makefile.am
+++ b/calendar/libedata-cal/Makefile.am
@@ -107,7 +107,8 @@ e_calendar_factory_CPPFLAGS = \
 	-I$(top_builddir)/calendar			\
 	$(LIBICAL_CFLAGS)				\
 	$(EVOLUTION_CALENDAR_CFLAGS)			\
-	$(FACTORY_GTK_CFLAGS)
+	$(FACTORY_GTK_CFLAGS) \
+	$(DBUS_GLIB_CFLAGS)
 
 e_calendar_factory_LDADD =						\
 	$(top_builddir)/calendar/libecal/libecal-1.2.la			\
@@ -117,6 +118,7 @@ e_calendar_factory_LDADD =						\
 	$(top_builddir)/libebackend/libebackend-1.2.la			\
 	$(LIBICAL_LIBS)							\
 	$(EVOLUTION_CALENDAR_LIBS)					\
-	$(FACTORY_GTK_LIBS)
+	$(FACTORY_GTK_LIBS) \
+	$(DBUS_GLIB_LIBS)
 
 -include $(top_srcdir)/git.mk
diff --git a/calendar/libedata-cal/e-data-cal-factory.c b/calendar/libedata-cal/e-data-cal-factory.c
index df3e136..a831d64 100644
--- a/calendar/libedata-cal/e-data-cal-factory.c
+++ b/calendar/libedata-cal/e-data-cal-factory.c
@@ -30,6 +30,8 @@
 #include <unistd.h>
 #include <glib/gi18n.h>
 
+#include <dbus/dbus-glib.h>
+
 #ifdef ENABLE_MAINTAINER_MODE
 #include <gtk/gtk.h>
 #endif
@@ -1043,6 +1045,9 @@ main (gint argc,
 	gtk_init_check (&argc, &argv);
 	#endif
 
+	/* this is to initialize threading for dbus-glib used by GConf */
+	dbus_g_thread_init ();
+
 	context = g_option_context_new (NULL);
 	g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
 	g_option_context_parse (context, &argc, &argv, &error);
diff --git a/configure.ac b/configure.ac
index 3d3995e..0bdba2c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -345,6 +345,15 @@ if `$PKG_CONFIG --atleast-version=0.9.1 libgdata`; then
 	AC_DEFINE(HAVE_LIBGDATA_0_9, 1, [libgdata is 0.9.1 or higher])
 fi
 
+dnl ******************************
+dnl DBus-glib stuff, to initialize thread for GConf, which is using it
+dnl this is returned back only temporarily and wil lbe removed as soon
+dnl as eds will stop using GConf completely
+dnl ******************************
+PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= 0.6)
+AC_SUBST(DBUS_GLIB_CFLAGS)
+AC_SUBST(DBUS_GLIB_LIBS)
+
 dnl *******************************
 dnl Check for GNOME Online Accounts
 dnl *******************************
-- 
1.7.9.5

Reply via email to