Wednesday, December 31, 2008

I love Windows. I really, really do. (Yeah, right)

Well, it's been eight days since we released Pidgin 2.5.3. In that 8 days, we've had more duplicate tickets than we care to count over the all-too-common hang on exit on Windows systems. In the faint hope that people actually read my ramblings, I'm posting this here to give a brief synopsis of the problem and to discourage further duplicate tickets.

On Windows sytems, Pidgin uses threads for a few things, namely DNS lookups and Network Location Awareness (NLA) stuff. For the Linux-inclined, NLA is somewhat similar to NetworkManager. When we released Pidgin 2.5.3, we started getting a bunch of reports about hangs on exit (including a number of people who don't know the difference between a hang and a crash, but that's another post in itself). All the debug logs pointed to wpurple_cleanup(), a function we call on close to tie up some loose ends, or "clean up." One of the areas this function cleans up is NLA-related stuff.

This code hasn't changed meaningfully in quite some time, but magically it became a problem for users of 2.5.3. It doesn't really make any sense to me why this would suddenly stop working in the current release, but the previous release seems to be almost entirely problem-free in this regard. Confusion aside, however, we have a proposed fix that will be reviewed and possibly tweaked.

So in summary, we know what the problem is and we are working to fix it. Please, please, please don't open anymore duplicate tickets about it!

Sunday, December 21, 2008

Pidgin 2.5.3 (Finally!)

Well, we finally kicked Pidgin 2.5.3 out of the nest, two days late. It's spreading its wings and flying.

Noteworthy in this release are that 58 bullet points are in the ChangeLog (not counting the headers for libpurple, Pidgin, Finch, and the protocols) and 85 tickets were closed, 40 of which were marked in trac as patches. Also of note is the insane amount of work Mark Doliner put into our MSN and MySpace plugins, which should resolve a number of crashes and the MySpace "doesn't sign off" issue.

A few big items to summarize:
  • Mark did massive code cleanup in MSN
  • Mark fixed a number of shortcomings in the MySpace IM protocol as well as doing code cleanup.
  • We accepted a ton of patches.
  • ICQ typing notifications should work for some third-party clients now.
  • XMPP resources now default to the empty string, causing modern servers to assign us a resource via a bind. In the event of an ancient server, such as the one DreamHost runs, we will detect the lack of this capability and enforce the default "Home" resource if a user hasn't set a resource.
  • XMPP resources can now include __HOSTNAME__ as a special token that will be replaced with the hostname of the machine being used. For example, if I run Pidgin on my MacBook and configure the resource on an XMPP account to be __HOSTNAME__, the resource sent to the server will be "macbook", since this is the hostname of my MacBook.
  • Some long-outstanding patches have been applied for Gadu-Gadu, implementing IM images.
  • Apply some patches for Zephyr, enabling autoreply when away to emulate zaway and some bugs with the 'use tzc' option.
  • We no longer get certificate errors for rsi.hotmail.com when logging into MSN and retrieving offline messages.
  • Many, many other things best read about in the ChangeLog.
Enjoy this release, which I'll call the "Thank-a-patch-writer" release!