Skip to content
January 1, 2011 / thebengaliheart

Tryst with Pidgin

I got interested in Pidgin’s codebase when I was going through it in the DP holidays. Surprisingly, unlike most Open Source projects whose code that I had gone through (no disrespect to them), I found it extremely well-written and organised. That does not imply that the code was very easy to understand, but the presentation of the code made the process less tougher. I decided that I would work on Pidgin for GSOC 2011, though I still have no concrete project idea in mind. I went through this year’s GSOC projects, and found a project that I thought I could cope up with. Actually, I chose it because it was more GUI oriented, and I would still take some time to master the libpurple code properly. So I found this incomplete project and started working to finish it. I must mention at this point that the Pidgin developer community has been extremely helpful and friendly. Being an amateur, I have pestered them with many silly queries on their IRC chaneel (#pidgin on, but they have patiently tried to resolve them. Daniel Atallah (datallah) initially explained to me how the process of searching all logs on a machine may cause Pidgin to hang, blocking the UI. I did not do much work in the following month, since I was busy preparing for the India finals of ACM-ICPC, but then the winter holidays came. I was again able to concentrate on coding for Pidgin. I sat down and wrote down some code. It was crappy in the beginning, but I decided, that does not really matter. Once I was able to get a stable GUI, I mended memory leaks, improved the code-quality, and made the log searching non-blocking by inserting this code

while (gtk_events_pending()) { 

Worked wonders! Now the UI wasn’t hanging. Then I added a spinner to spin while the search is going on, the keep the user indulged 🙂 I initially wrote it as a patch on pidgin’s source code, but then decided to make it a plugin till it is accepted, so that I can ask people using linux to test the plugin without having to compile pidgin from source. I posted the source and the plugin to nitdgplug on Roshan da’s advice, and Debayan da advised me to start a code repository. Since it is a problem to access GIT from behind our LAN, I decided to upload it on, which uses SVN. The link to the project page is

I request anyone who reads this blog to download and review the plugin, and leave comments on the projects page. Also do report any kinds of defects in the plugin or enhancements that you want to see.
As a side note, am working really hard for GSOC. A lead developer of Pidgin told me that I must contributing patches from now to get things in my favour. I’ve written 5-6 patches in the last 2-3 days, most of which are pending review.
Bye till my next post.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: