Windows Live Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Thursday, 17 December 2009

The Quest Never Ends

Posted on 18:44 by Unknown
In my last blog post, I alluded to our quest to make Pidgin perfect (in our own eyes, at least). This is a quest that by its very definition can never end, because as we near "perfection," there will always be something else that crops up to demonstrate we haven't reached perfection quite yet. This "quest" can have elements of many different forms. A few months ago, one of those forms was discussed on our development mailing list.

As a good many people are aware, Pidgin has long supported GTK+ and GLib 2.0.0. Several years ago when GTK+ 2.0.0 first came out, we underwent a nine-month rewrite of our user interface (UI) to move from the older GTK+ 1.2.10 (or newer) to the new GTK+ 2.0.0. Since that time, until 2.6.0, we've always maintained compatibility with GTK+ 2.0.0 through the use of conditional code that disabled certain features or UI elements that required newer versions of GTK+ or GLib than what was available at compile time. In some cases, we had conditional use of code to work around the lack of certain convenience functions present in newer versions of GTK+ or GLib. In still other cases, we actually carried (that is, distributed in our source tarballs and compiled where necessary) the source of several GTK+ widgets in order to make our UI work for users with older versions of GTK+. Over the years, this has become more cumbersome, to the point that for 2.6.x, it became impractical to maintain compatibility with GTK+ 2.0.0--when we realized this, we changed our requirements to GTK+ and GLib 2.4.0, which contained the features we needed.

The increased difficulty of supporting older libraries prompted me to bring a discussion up on our development list prior to the release of 2.6.0 asking for a vote, discussion, etc. on raising minimum GLib and GTK+ version requirements for Pidgin 2.7.0. This discussion has come up before and been shot down. This time, I put it to a vote and gave quite a while for votes to be cast. There were no "No" votes cast. The versions we voted on were GLib 2.12.0 and GTK+ 2.10.0. These versions allow us to support reasonably recent Linux and UNIX systems, as those GTK+ and GLib versions were 3 years old at the time of the vote, while also making our lives significantly easier since we no longer have to care about really old versions of GTK+ or GLib. Ideally, I would have liked to have GLib 2.14.0 and GTK+ 2.12.0 as the minimums, but I was trying to reach a middle ground that would avoid angering too many people.

This change in the minimum required GTK+ and GLib versions has a few consequences. Obviously, Linux and UNIX distributions that don't ship GTK+ 2.10.0 or newer won't be able to support Pidgin 2.7.0 when we release it. On these systems, users can, however, compile GTK+, GLib, and friends, then compile Pidgin. This is really a lot of work, but some users may be willing to go through it.

For our Windows users, there will be some major changes. When building and linking our releases, we'll be stepping up to GLib 2.18.0 and GTK+ 2.14.0. We already ship this version or newer in our installers, but now we'll actually be linking against these versions. The consequences of this are that Windows NT 4.0, Windows 98, and Windows ME will no longer be supported. These newer versions of GTK+ and GLib require features that just aren't present in those old operating systems. None of these operating systems have been commercially supported (by this I mean modern games, word processors, spreadsheets, etc.) for years, and even projects like Firefox have stopped supporting them.

Additionally, our Windows expert, Daniel, has made some changes to the Pidgin installer and to our crash report generation for 2.7.0:
  • Instead of installing GTK+ in a system-wide configuration, we will be changing to installing GTK+ local to Pidgin. This means that it should be harder for us to conflict with other GTK+ applications on Windows. This has long been requested, but we just finally got around to doing it.
  • Debug symbols can now be read from parallel copies of files. Normal installations of Pidgin ship "stripped" binaries--that is, there is no information useful for generating crash reports. Now, instead of replacing all the existing files, the installer will offer the option to install debug symbols. Selecting this option will install parallel, unstripped copies of every file with the extension ".dbgsym" to a special location.
  • The installer will allow choosing which Pidgin translations to install.
  • The installer will have "online" and "offline" variants. The "online" variant will include only Pidgin. GTK+ and debug symbols will be downloaded as needed. The "offline" variant will include both GTK+ and the debug symbols.
Also among the changes coming up for Pidgin 2.7.0 is the switch from the eggtrayicon widget we have carried in our source tarball for years to the GtkStatusIcon implementation that was added in GTK+ 2.10.0. There are still a few bugs to work out with this change, but I believe once we have those ironed out, our notification area icon will behave better for a number of users who have been experiencing difficulties.

Of course, these changes aren't the only ones that will make it into 2.7.0. I have my own plans for a few additions, plus I won't allow 2.7.0 to be released without a few other features being merged in. But so far, it looks like Pidgin 2.7.0 will make some long-awaited forward strides. Hopefully everyone enjoys it!

Also, to those who celebrate the holiday, Merry Christmas!
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Random Ramblings
    This blog post is going to be a bit of . . . well, quite literally, random rambling. I guess the title of the post should make this a dead ...
  • Purple Plugin Pack 2.1.0 and 2.1.1; Plans for 2.2.0
    Well, last night I released two versions (yes, two!) of the Purple Plugin Pack. The initial release was 2.1.0, which included a new plugin ...
  • Long time...
    So, I guess it's been ages since I made a blog post. A lot has happened in that time: We released Purple Plugin Pack 2.2.0 without the ...
  • It's a bit late...
    It's a bit late for me to be posting this now, but we did recently release Pidgin 2.5.0. There are a few things about this release that...
  • Separate, but not equal? No more.
    Many Pidgin users who have tried to seek support on IRC know that the inhabitants of #pidgin have historically been quite hostile to Windo...
  • And the survey says...
    Well, we got quite a lot of user feedback in the survey that Casey ran on our site. I've read through a lot of it and thought I'd ...
  • Pidgin and the status and protocol icons
    Ok, so by now everyone knows that Gaim has become Pidgin . Well, the name isn't the only thing that changed. Pidgin has decided to dem...
  • The Quest Never Ends
    In my last blog post, I alluded to our quest to make Pidgin perfect (in our own eyes, at least). This is a quest that by its very definitio...
  • The use of arbitrary status icons in Pidgin
    Before I go any further with this post, I want to make a couple things abundantly clear. I have given up on this argument; I am expressing m...
  • Plugin Authors: Save Your Users' Sanity!
    OK, maybe I'm being a bit sensationalist there, but it's my blog, so I'm allowed! Anyway, on to the subject matter. Recently we...

Categories

  • about
  • adium
  • aim
  • application
  • authentication
  • bob
  • bosh
  • bugfix
  • buzz
  • changelog
  • changes
  • charity
  • chatroom
  • clarification
  • comments
  • complex
  • crash
  • custom emoticons
  • custom smileys
  • cvs
  • debug
  • detachable sessions
  • donation
  • duplicate ticket
  • dv labs
  • dvcs
  • emoticons
  • feedback
  • finch
  • git
  • google
  • guifications.org
  • hack
  • hang-on-exit
  • hosting
  • hostname
  • icq
  • install
  • libpurple
  • log viewer
  • message lost
  • monotone
  • msn
  • msnp15
  • myspace
  • networkredux
  • new features
  • outage
  • patches
  • pidgin
  • plagiarism
  • plugins
  • preferences window
  • prefslash
  • release
  • review needed
  • saved status
  • screen
  • security
  • server
  • services
  • smilies
  • status
  • status message
  • submissions
  • subversion
  • summer of code
  • surveys
  • svn
  • tickets
  • timeline
  • tools
  • trac
  • transient status
  • translators
  • tutorial
  • unicode
  • users
  • video
  • voice
  • website
  • windows
  • windows crash
  • xmpp
  • yahoo

Blog Archive

  • ►  2012 (1)
    • ►  November (1)
  • ►  2011 (3)
    • ►  August (1)
    • ►  February (2)
  • ►  2010 (6)
    • ►  October (1)
    • ►  June (1)
    • ►  May (1)
    • ►  April (2)
    • ►  January (1)
  • ▼  2009 (16)
    • ▼  December (1)
      • The Quest Never Ends
    • ►  November (1)
    • ►  October (1)
    • ►  August (1)
    • ►  July (1)
    • ►  June (2)
    • ►  May (3)
    • ►  April (1)
    • ►  March (1)
    • ►  February (2)
    • ►  January (2)
  • ►  2008 (11)
    • ►  December (2)
    • ►  November (1)
    • ►  October (1)
    • ►  August (1)
    • ►  July (3)
    • ►  March (2)
    • ►  January (1)
  • ►  2007 (15)
    • ►  December (1)
    • ►  August (3)
    • ►  July (2)
    • ►  June (3)
    • ►  May (6)
Powered by Blogger.

About Me

Unknown
View my complete profile