The Goal: merging of the DBus port of Evolution Data Server for GNOME 2.20, with the default being Bonobo. Hopefully with enough testing and bug fixing, the DBus transport can be the default for GNOME 2.22.

Outstanding Issues

  • Handle threading. ORBit will create threads per incoming request, whereas DBus is single-threaded. For some backends this doesn't matter (addressbook file: backend creates threads for long-running tasks) but the LDAP backend will block the entire server. Either all backends need to be ported to be threaded, or the DBus port should create threads as required.
  • Ensure installed headers don't expose implementation details such as Bonobo and ORBit

** libebook ** libecal ** libedata-book ** libedata-cal These are tricky, one reason is that the headers use types which are currently defined in the ORBit IDL. With a DBus build, these are not available.

** libedataserver e-component-listener.h exposes Bonobo. How about simply not installing the header?

** libedataserverui Nothing to do.

  • Re-arrange source tree so that all source is in a single directory instead of being split into -orbit and -dbus directories?
  • Rewrite e-cal.c to handle errors better
  • Resolve g_object_ref vs bonobo_object_ref in the backends. Do they need to bonobo_object_ref the view object, or will a normal reference suffice?
  • Investigate use of bonobo outside the libraries

Apps/Evolution/DbusPort (last edited 2013-08-08 22:50:01 by WilliamJonMcCann)