Quail - GSoC project 2013

Elliott Sales de Andrade qulogic at pidgin.im
Sun Jun 2 16:31:57 EDT 2013

Hi Phil,

On 28 May 2013 09:17, Phil Hannent <phil at hannent.co.uk> wrote:
> Hi,
> I have been accepted as a student for the Google summer of code, to which I
> am very grateful. I'll be creating a Qt based instant messaging application
> using libpurple. I intent to target both Windows and Linux.

Congratulations and good luck!

> I would like a couple of bits of advice regarding setup:
> 1, My plan is not to build Quail in the Pidgin tree since I should just be
> linking against libpurple and Qt has its own build system (qmake).

This is probably a good idea for now as trying to coerce qmake into
building libpurple is kind of redundant. We already have a build
system that works. At some point, it was even on the table that we'd
split libpurple/Finch/Pidgin into separate releases, but we haven't
had any great reason to do so so far. There's definitely no reason to
keep another UI in the tree, especially given its relatively young

> 2, I plan on initially working against the stable version 2.x.y branch of
> libpurple rather than main, this is because I don't see 3.0.0 being released
> any time soon and I would like to have a deployable application by then end
> of the GSoC. Certain issues might force me to use the main such as webkit
> for message display. However I'd like to work from a stable position and
> then build 3.0.0 compatibility once the Quail is stable.

There are advantages and disadvantages of using either one.

The stable 2.x.y branch is:
- Stable, naturally. No real need to worry about any problems building
once you first get it working.
- Already packaged. Assuming you are on Linux, then you can set up
qmake to use your distro's files. You don't even need to mess with
building libpurple. You might be able to do the same thing on Windows
(ask Eion or Tomasz).

The 3.0.0 branch is:
- Not totally stable. If you need to change things, you can do see
easily. The only thing that comes to mind is the event loop. If Qt and
GTK's loops are sufficiently different, we might need to throw
something into the libpurple API.
- Mostly stable. Yes, this is contrary to the previous point, but it
seems like much of the libpurple API changes have already been made.
The only major thing left is GObjectification, but we can't have you
waiting till the end of GSoC for that, so it's not really important
for our purposes.

My gut feeling is to stay with 2.x.y unless absolutely necessary. The
most likely changes are in the event loop, so I would focus on
determining any issues there. You do not really need to worry about
webkit. That's almost entirely in the Pidgin UI. There might be some
small changes in the format of the actual message content, but I don't
think you'll face any issues due to it. In fact, you are free to start
using QtWebkit from the beginning (just as InstantBird used xulrunner
and not GtkIMHtml).

> Any feedback on those (especially from my mentor)?
> Regards
> Phil

Elliott aka QuLogic
Pidgin developer

More information about the Devel mailing list