GLib client bindings change in CVS

Ross Burton ross at
Mon Jan 23 03:08:46 PST 2006


This commit to CVS after 0.6:

2006-01-05  Robert McQueen  <robot101 at>

        * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
        <ricardo.kekki at> to make dbus-binding-tool heed C symbol name
        annotations when generating glib client bindings.

Broke my code (the DBus port of Evolution Data Server).  The question
is, should that commit be reverted or was my code wrong.  I have this
XML file:

  <interface name="org.gnome.evolution.dataserver.addressbook.Book">
    <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="EDataBook"/>
    <method name="open">
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_AddressBook_Book_open"/>

Previously on the server the method impl_AddressBook_Book_open() was
wrapped, and the client binding method was called
org_gnome_evolution_dataserver_addressbook_Book_open.  I understood this
to be correct as the CSymbol annotation was a server-side construct.

With that change the client code now uses impl_AddressBook_Book_open()
as the binding method, and eds-dbus fails to build.

So, does the CSymbol annotation mean "any C representation" and thus
change both the server and client side names, or is it explicitly for
the server-side code?

This is an important issue as the change was introduced post-0.6 and the
documentation will need updating.

Ross Burton                                 mail: ross at
                                          jabber: ross at
 PGP Fingerprint: 1A21 F5B0 D8D0 CFE3 81D4 E25A 2D09 E447 D0B4 33DF

More information about the dbus mailing list