summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhai Edwin <edwin.zhai@intel.com>2010-10-22 17:11:26 +0800
committerRichard Purdie <rpurdie@linux.intel.com>2010-10-22 17:00:25 +0100
commit8109db28bba57dd31502b4d1c6bc8c107383eefa (patch)
tree7ed0646636ef065cf7d4b5c1576e07973bc20102
parent48b42dae5115ef321dfddcf570ae517c3874c4b9 (diff)
downloadpoky-8109db28bba57dd31502b4d1c6bc8c107383eefa.tar.gz
Fix adding new contact failure when starting contacts for the 1st time
When contacts called for the 1st time, adding new contact always failed but worked after restart. The reason is e-addressbook-factory used to handle addressbook leads a segmentation fault. Root cause is that factory would create the data base if not exist, but use it without proper initialization. [BUGID #455] got fixed by this. Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
-rw-r--r--meta/recipes-sato/eds/eds-dbus/new-contact-fix.patch21
-rw-r--r--meta/recipes-sato/eds/eds-dbus_git.bb3
2 files changed, 23 insertions, 1 deletions
diff --git a/meta/recipes-sato/eds/eds-dbus/new-contact-fix.patch b/meta/recipes-sato/eds/eds-dbus/new-contact-fix.patch
new file mode 100644
index 0000000000..d34cc551f1
--- /dev/null
+++ b/meta/recipes-sato/eds/eds-dbus/new-contact-fix.patch
@@ -0,0 +1,21 @@
1When contacts called for the 1st time, adding new contact always failed but
2worked after restart. The reason is e-addressbook-factory used to handle
3addressbook leads a segmentation fault. Root cause is that factory would create
4the data base if not exist, but use it without proper initialization.
5
6This patch fix it.
7
8Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
9Index: git/addressbook/backends/file/e-book-backend-file.c
10===================================================================
11--- git.orig/addressbook/backends/file/e-book-backend-file.c 2010-10-20 16:14:31.000000000 +0800
12+++ git/addressbook/backends/file/e-book-backend-file.c 2010-10-22 14:11:47.000000000 +0800
13@@ -1217,6 +1217,8 @@
14 EContact *contact = NULL;
15 EBookBackendSyncStatus status;
16
17+ /* Initialize file_db, or else following do_create cause seg fault */
18+ bf->priv->file_db = db;
19 status = do_create (bf, XIMIAN_VCARD, &contact);
20 if (status != GNOME_Evolution_Addressbook_Success)
21 g_warning ("Cannot create default contact: %d", status);
diff --git a/meta/recipes-sato/eds/eds-dbus_git.bb b/meta/recipes-sato/eds/eds-dbus_git.bb
index e11c91d5d7..e5b7e15f71 100644
--- a/meta/recipes-sato/eds/eds-dbus_git.bb
+++ b/meta/recipes-sato/eds/eds-dbus_git.bb
@@ -11,12 +11,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
11DEPENDS = "intltool-native glib-2.0 gtk+ gconf dbus db gnome-common virtual/libiconv zlib libsoup-2.4 libglade libical gnome-keyring gperf-native" 11DEPENDS = "intltool-native glib-2.0 gtk+ gconf dbus db gnome-common virtual/libiconv zlib libsoup-2.4 libglade libical gnome-keyring gperf-native"
12 12
13PV = "2.30+git${SRCPV}" 13PV = "2.30+git${SRCPV}"
14PR = "r0" 14PR = "r1"
15 15
16SRC_URI = "git://git.gnome.org/evolution-data-server;protocol=git \ 16SRC_URI = "git://git.gnome.org/evolution-data-server;protocol=git \
17 file://oh-contact.patch;patch=1;pnum=0 \ 17 file://oh-contact.patch;patch=1;pnum=0 \
18 file://nossl.patch;patch=1 \ 18 file://nossl.patch;patch=1 \
19 file://optional_imapx_provider.patch;patch=1 \ 19 file://optional_imapx_provider.patch;patch=1 \
20 file://new-contact-fix.patch;patch=1 \
20 file://iconv-detect.h" 21 file://iconv-detect.h"
21 22
22S = "${WORKDIR}/git" 23S = "${WORKDIR}/git"