libpurple + dbus - pidgin

Anil Gupta 800pbx2 at
Mon Apr 14 19:11:31 EDT 2008

Thanks for your response.

Please find my follow-up questions interspersed.

> b) Can I use dbus with only libpurple without pidgin ui? I used
> > --disable-gtkui to skip pidgin as I was interested only in
> > libpurple. But I wasnt sure how pidgin can be used for events
> > generation. The howto explains that pidgin when loading uses the
> > dbus address to listen and send events.
> Yes, you should be able to use dbus with only libpurple without pidgin ui.
>  I
> know you can access a lot of libpurple's functionality using dbus, but I
> have
> doubts that you'll be able to access everything.

## I think you are right on to write a seperate main which exposes
libpurple's functionality through dbus. I am looking into it.

> It might help to think of libpurple as the core of an instant messaging
> program rather than as a library with functions that you call.  The
> programs
> "main" method is a part of the ui (either Pidgin or Finch), but libpurple
> is
> responsible for saving your preferences and accounts and what not.  It is
> not
> possible to use libpurple standalone because there is no "main" method in
> libpurple.
> So you would need to at least write a "ui" to bootstrap the libpurple
> process.
>  See libpurple/example/nullclient.c for a very basic example.

## I looked at nullclient.c but it does not have anything to do with dbus.
Does dbus initialization happen inside libpurple somewhere or does it happen
in the ui clients?

> But using Java
> and dbus to write the user interface code for libpurple seems awkward to
> me.
> Why not just use C?

## We do not have UI. UI is all client based on mobile phones. We support
palm, bb, brew, nokia, java,  ppc, windows ce etc. but  some omf the
libpurple components would be used.

> > c) How scalable in pidgin? We have over 15k users who would like to get
> > connected. We do not mind scaling by adding boxes but does pidgin
> support
> > scaling vertically? Any tips on this would be appreciated.
> >
> > d) I hear that pidgin is a single thread approach for the main. What
> > happens if the thread dies? Is there a recovery mechanism? Any
> > scripts to restart pidgin to the previous state if it disconnects
> > with be handy.
> Hmm, why would the thread die?  That seems akin to a single-threaded
> process
> crashing (ie something that should not happen).  No, there is no recovery
> mechanism short of restarting Pidgin and reconnecting.  Pidgin should
> connect
> automatically when you start it, and accounts should return to their
> previous
> state (assuming Pidgin is able to write the previous state to
> $HOME/.purple/*.xml)

## Does the libpurple store any account profile? I believe no.

> > g) For load distrbution, I think I should be able to use multiple
> instances
> > of pidgin tied to different dbus addresses and let the main server
> manage
> > the distribution of connection to various pidgin instances. Can multiple
> > instances of pidgin run on the same box? Is the approach correct?
> That sounds like it would work.  Yes, multiple instances of Pidgin can run
> on
> the same box.  That approach seems reasonable to me.

## I will be trying it out in the next two weeks and keep you updated. BTW,
is there any job forum where we can hire a developer to do this for us as we
are totally new with dbus and libpurple both. Though its a week work, we
would like someone knowledgeable to do the things right the first time
rather than keep trying for the correct solution.

Meanwhile, please answer the follow-up questions raised.

Thank you very much.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Devel mailing list