Package: evolution
Version: 2.0.4-2
Followup-For: Bug #286896

This is actually a bug against evolution-data-server.  Please see:
http://bugzilla.gnome.org/show_bug.cgi?id=271969

The patch available in that link should work against sid.  A slightly
massaged patch for evolution-data-server 1.0.4 (in sarge) is attached.
To apply, just drop into debian/patches and recompile.  Will have to
either reboot or logout and run 'bonobo-slay' outside of gnome to have
the new evolution-data-server started.

Jamie Strandboge

-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.8-2-386
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages evolution depends on:
ii  evolution-data-server  1.0.4-1jds1       evolution database backend server
ii  gconf2                 2.8.1-6           GNOME configuration database syste
ii  gnome-icon-theme       2.8.0-4           GNOME Desktop icon theme
ii  gtkhtml3.2             3.2.5-1           HTML rendering/editing library - b
ii  libart-2.0-2           2.3.17-1          Library of functions for 2D graphi
ii  libatk1.0-0            1.8.0-4           The ATK accessibility toolkit
ii  libaudiofile0          0.2.6-6           Open-source version of SGI's audio
ii  libbonobo2-0           2.8.1-2           Bonobo CORBA interfaces library
ii  libbonoboui2-0         2.8.1-2           The Bonobo UI library
ii  libc6                  2.3.2.ds1-22      GNU C Library: Shared libraries an
ii  libcompfaceg1          1989.11.11-24     Compress/decompress images for mai
ii  libdb4.2               4.2.52-18         Berkeley v4.2 Database Libraries [
ii  libebook8              1.0.4-1jds1       Client library for evolution addre
ii  libecal6               1.0.4-1jds1       Client library for evolution calen
ii  libedataserver3        1.0.4-1jds1       Utily library for evolution data s
ii  libegroupwise6         1.0.4-1jds1       Client library for accessing group
ii  libesd-alsa0 [libesd0] 0.2.35-2          Enlightened Sound Daemon (ALSA) - 
ii  libfontconfig1         2.3.1-2           generic font configuration library
ii  libfreetype6           2.1.7-2.4         FreeType 2 font engine, shared lib
ii  libgail-common         1.8.4-1           GNOME Accessibility Implementation
ii  libgail17              1.8.4-1           GNOME Accessibility Implementation
ii  libgal2.2-1            2.2.5-1           G App Libs (run time library)
ii  libgal2.2-common       2.2.5-1           G App Libs (common files)
ii  libgconf2-4            2.8.1-6           GNOME configuration database syste
ii  libgcrypt11            1.2.0-11.1        LGPL Crypto library - runtime libr
ii  libglade2-0            1:2.4.2-2         library to load .glade files at ru
ii  libglib2.0-0           2.6.4-1           The GLib library of C routines
ii  libgnome-keyring0      0.4.2-1           GNOME keyring services library
ii  libgnome-pilot2        2.0.12-1.2        Support libraries for gnome-pilot
ii  libgnome2-0            2.8.1-2           The GNOME 2 library - runtime file
ii  libgnomecanvas2-0      2.8.0-1           A powerful object-oriented display
ii  libgnomeprint2.2-0     2.8.2-1           The GNOME 2.2 print architecture -
ii  libgnomeprintui2.2-0   2.8.2-2           GNOME 2.2 print architecture User 
ii  libgnomeui-0           2.8.1-3           The GNOME 2 libraries (User Interf
ii  libgnomevfs2-0         2.8.4-4           The GNOME virtual file-system libr
ii  libgnutls11            1.0.16-13.1       GNU TLS library - runtime library
ii  libgpg-error0          1.0-1             library for common error values an
ii  libgtk2.0-0            2.6.4-3           The GTK+ graphical user interface 
ii  libgtkhtml3.2-11       3.2.5-1           HTML rendering/editing library - r
ii  libice6                4.3.0.dfsg.1-14   Inter-Client Exchange library
ii  libjpeg62              6b-10             The Independent JPEG Group's JPEG 
ii  libldap2               2.1.30-8          OpenLDAP libraries
ii  libnspr4               2:1.7.8-1         Netscape Portable Runtime Library
ii  libnss3                2:1.7.8-1         Network Security Service Libraries
ii  liborbit2              1:2.12.2-1        libraries for ORBit2 - a CORBA ORB
ii  libpango1.0-0          1.8.1-1           Layout and rendering of internatio
ii  libpisock8             0.11.8-10         Library for communicating with a P
ii  libpisync0             0.11.8-10         Synchronization library for PalmOS
ii  libpopt0               1.7-5             lib for parsing cmdline parameters
ii  libsm6                 4.3.0.dfsg.1-14   X Window System Session Management
ii  libsoup2.2-7           2.2.3-2           an HTTP library implementation in 
ii  libtasn1-2             0.2.10-3          Manage ASN.1 structures (runtime)
ii  libx11-6               4.3.0.dfsg.1-14   X Window System protocol client li
ii  libxml2                2.6.16-7          GNOME XML library
ii  xlibs                  4.3.0.dfsg.1-14   X Keyboard Extension (XKB) configu
ii  zlib1g                 1:1.2.2-4.sarge.2 compression library - runtime

-- no debconf information
--- calendar/backends/file/e-cal-backend-file.c	2004-12-06 09:28:20.000000000 -0500
+++ calendar/backends/file/e-cal-backend-file.c	2005-07-28 19:59:46.844476408 -0400
@@ -1446,7 +1446,7 @@
 	EXmlHash *ehash;
 } ECalBackendFileComputeChangesData;
 
-static void
+static gboolean
 e_cal_backend_file_compute_changes_foreach_key (const char *key, gpointer value, gpointer data)
 {
 	ECalBackendFileComputeChangesData *be_data = data;
@@ -1463,8 +1463,9 @@
 		e_cal_component_set_uid (comp, key);
 		be_data->deletes = g_list_prepend (be_data->deletes, e_cal_component_get_as_string (comp));
 
-		e_xmlhash_remove (be_data->ehash, key);
+		return TRUE;
  	}
+	return FALSE;
 }
 
 static ECalBackendSyncStatus
@@ -1524,7 +1525,7 @@
 	be_data.deletes = NULL;
 	be_data.ehash = ehash;
 	
-	e_xmlhash_foreach_key (ehash, (EXmlHashFunc)e_cal_backend_file_compute_changes_foreach_key, &be_data);
+	e_xmlhash_foreach_key_remove (ehash, (EXmlHashRemoveFunc)e_cal_backend_file_compute_changes_foreach_key, &be_data);
 	
 	*deletes = be_data.deletes;
 
--- libedataserver/e-xml-hash-utils.c	2005-02-14 10:26:46.000000000 -0500
+++ libedataserver/e-xml-hash-utils.c	2005-07-28 20:03:30.790431448 -0400
@@ -237,6 +237,34 @@
 	g_hash_table_foreach (hash->objects, foreach_hash_func, &data);
 }
 
+/* patch */
+typedef struct {
+       EXmlHashRemoveFunc func;
+       gpointer user_data;
+} foreach_data_remove_t;
+
+static gboolean
+foreach_hash_remove_func (gpointer  key, gpointer value, gpointer user_data)
+{
+       foreach_data_remove_t *data = (foreach_data_remove_t *) user_data;
+
+       return data->func ((const char *) key, (const char *) value, data->user_data);
+}
+
+void
+e_xmlhash_foreach_key_remove (EXmlHash *hash, EXmlHashRemoveFunc func, gpointer user_data)
+{
+       foreach_data_remove_t data;
+
+       g_return_if_fail (hash != NULL);
+       g_return_if_fail (func != NULL);
+
+       data.func = func;
+       data.user_data = user_data; 
+       g_hash_table_foreach_remove (hash->objects, foreach_hash_remove_func, &data);
+}
+/* end patch */
+
 void
 e_xmlhash_write (EXmlHash *hash)
 {
--- libedataserver/e-xml-hash-utils.h	2004-05-03 12:44:56.000000000 -0400
+++ libedataserver/e-xml-hash-utils.h	2005-07-28 19:59:46.851475344 -0400
@@ -47,6 +47,7 @@
 } EXmlHashStatus;
 
 typedef void (* EXmlHashFunc) (const char *key, const char *value, gpointer user_data);
+typedef gboolean (* EXmlHashRemoveFunc) (const char *key, const char *value, gpointer user_data);
 
 typedef struct EXmlHash EXmlHash;
 
@@ -65,6 +66,10 @@
 				      EXmlHashFunc  func,
 				      gpointer      user_data);
 
+void           e_xmlhash_foreach_key_remove (EXmlHash     *hash,
+				      EXmlHashRemoveFunc  func,
+				      gpointer      user_data);
+
 void           e_xmlhash_write       (EXmlHash     *hash);
 void           e_xmlhash_destroy     (EXmlHash     *hash);
 

Reply via email to