In recent years both Linux and instant messaging have grown in popularity, yet the big players in instant messaging software have not actively kept their Linux clients up to date. This is where the Gaim project comes in.
The name Gaim is a bit of a misnomer -- while it started out as strictly an AOL Instant Messenger client, it has expanded to accommodate many protocols. It also has a fully functional plugin system and short cycles between what are usually very stable releases.
The Gaim project was started in the fall of 1998 by Mark Spencer, Gaim's original maintainer. According to Spencer, "... I started it as a way to learn how to write a GTK application, since I had never written one before, and it seemed like a good project so I could talk to some of my other friends who were running AIM at the time." From those humble beginnings, Gaim became the project it is today -- but it wasn't all "fun and Gaims" along the way.
As you may recall from this Slashdot story from last year, Gaim has had legal disputes with AOL along the way. The first such dispute was in July 1999, when AOL sent a letter asking the Gaim project to not use its logo or trademark. The Gaim project quickly complied with this request, and all seemed well for almost a full year. Then, in June 2001, when that Slashdot story was written, AOL sent cease and desist letters to Gaim and many other Open Source AIM clients because what AOL called "confusingly similar" names to its instant messenger service. Basically, AOL demanded that these projects change their names. Some of them simply gave in and changed their names, including KAIM, which had its name changed to Kinkatta. Gaim, however, decided to fight back, asking for donations to help pay for a legal defense against the multi-billion dollar AOL Time Warner corporation. Spencer says the project received more than triple its goal in donations. The project is currently receiving legal assistance from American University in Washington, D.C. The case continues because, according to Spencer, "This isn't the development pace, this is the legal pace."
Despite the legal problems, the Gaim project is still maintaining an active and productive development cycle, as can be seen in the ChangeLog for the project at SourceForge.net. In fact, even when the lead developer Eric Warmenhoven left last month while the project maintainer was moving to California, the project managed to have only a three-week gap between releases, and is now back at full steam.
On to the review:
Gaim is available in most distributions -- it ships with Red Hat, Mandrake and SuSE, and is available through apt-get in Debian. Generally speaking, you can find the latest version in the Debian stable and testing distributions.
Should your distribution not include the latest Gaim, then lucky for you, its installation is very simple. Simply extract the file from the tar available on the Gaim site, run the configure script in the directory, by typing ./configure within the directory, run make, and then run make install. You should then have a working copy of the latest version of Gaim. (Note: On some distributions Gaim is put in /usr/ instead of /usr/local/, so if you are upgrading a distribution where this is the case, you will need to do ./configure --prefix=/usr.)
Once Gaim is installed, the next step is to set up your various accounts on the services Gaim supports. At the moment, Gaim supports Gadu-Gadu, ICQ (which is obsolete now), IRC, Jabber, MSN, Napster, Yahoo and Zephyr through plugins, as well as AOL Instant Messenger by default. To install support for these other protocols, the user must load the included plugins by going into the plugin manager from either the menu within Gaim or the login screen. Once you load the plugins, the protocols are then available through the account manager. As I mentioned earlier, the ICQ plugin is no longer needed, as AOL no longer supports the ICQ protocol but uses a modified version of Oscar. Simply setup an Oscar protocol account, and set the login as your UIN/password for ICQ.
Setting up an AOL instant messenger can be tricky at one point -- importing your buddy list. If you are a Windows/Mac AIM user, or use QuickBuddy, AOL's Web client, you know it stores your buddy list. In order to retreieve this list in Gaim, you must first login with the TOC protocol, then logout and change the protocol back to Oscar. This will let you take advantage of all the Oscar features and still keep your buddy list. In the protocol setup, you can also select a Buddy Icon, a recent addition to Gaim.
Once you have your account set up, you can go into preferences and customize Gaim to your liking. It has many features the standard clients from AOL, Yahoo and others lack, such as logging and tabbed conversation windows. Also, there is the standard fare, such as configuring your client to ignore other people's fonts and colors.
Features and interface
Gaims interface is in many ways similar to most instant messaging software out there, both commercial and free, with some features that are relatively rare in other instant messenger clients. One of the most impressive features I found was the ability to have tabbed conversation windows. I use instant messaging frequently, and more often than not, I'm signed on to several services. Gaim allows me to not only integrate all of these into one program/sign on process, but to have all the conversations for these various services in one tabbed window, with the tabs on whichever side of the window you choose. This is invaluable, because I do not have to deal with multiple windows cluttering my desktop.
Other features are less obvious, but equally useful, such as the Buddy Pounce feature. This feature allows you to have Gaim do any number of things when a person signs on, comes back from being idle, or comes back from being away. You can have it execute a command, send a message, play a sound, or a number of other things.
Gaim has plenty of other smaller features; for instance, being able to set one away message for several different messaging networks, or you can sign on to the same network multiple times, using different screen names. Also useful is the ability to have plugins, some of which are used to enable Gaim to use new protocols, while others are used for more interesting things, such as one specifically for AOL Instant Messenger users where, if someone warns you (AOL's failed attempt at self moderation among instant messenger users), your client will warn them back a set number of times.
Gaim isn't perfect -- the developers will readily admit that -- although it is the most advanced of the Open Source messaging clients at this point. Several key features are missing, some of which are mentioned in my interview below with Gaim's maintainer, Rob Flynn. The biggest of these, in my opinion, and the one most frequently asked about on the Gaim forums, is the ability to transfer files. This may seem relatively simple, but as is said in this thread on the Gaim forum, it would require several steps to develop -- including a common file transfer user interface, and reverse engineering the file transfer protocols themselves.
Also missing, and this is a feature I would think depends on file transfer, is the ability for people to send and display images through Gaim. Other than these two, I can't think of any major features on the Windows clients for these services I use that I miss in Gaim. Work is being done -- for instance, AIM buddy icon support was added relatively recently, and that was a huge accomplishment, because it was one of the most asked for features.
Interview with Rob Flynn, Gaim maintainer
Below is part of a conversation I had with Rob Flynn, Gaim maintainer. Appropriately enough, we did it over Gaim, and below is a touched up Gaim log file.
Goatbert: So, mind if I bug you for a bit?
RobFlynn: Sure thing.
Goatbert: Ok, so, I guess the best place to start here is with your background -- how long have you worked on Gaim? Why did you decide to work on Gaim? Did you work on it before you became the project maintainer?
RobFlynn: Let's see. I initially started working on Gaim shortly after Mark Spencer made a release in November of 1998. I had never really coded any Gtk+ things before and didn't know very much C, either.
RobFlynn: I did a few simple bug fixes and such to help me get familiar with everything.
RobFlynn: He then handed maintainership over to Jim Duchek, in December. I took over maintainership after Jim and I moved to southern California for work. I think that was in February of 2000.
RobFlynn: My reason for getting into Gaim is pretty funny. I met a girl at the beach during my senior-week (after graduation) trip. She told me her AOL screen name and e-mail address. I e-mailed her for a bit, until November when Gaim was released. I downloaded it, installed it, and began chatting with her. I decided that I wanted to help out the project as it was very raw and feature lacking at the time.
RobFlynn: Am I the typical guy, or what? I'm not too big of a geek, I swear. ;-)
Goatbert: That's great.
Goatbert: How you got involved with Gaim sounds like a good summary of how to get involved with any open source project -- look around, start with small things.
Goatbert: How long have you used Linux? Assuming you use Linux.
RobFlynn: I think I first installed Slackware when I was 11 or 12. A friend told me that his dad used it at work and I thought that it sounded interersting. My installation attempt, via multiple floppy disks on my 386-DX 25, failed miserably. I tried again when I was 13 or 14 and succeeded. I believe it was Redhat 4.2 or something along those lines.
Goatbert: Wow, that sounds a lot like mine. All those XFree floppies just to have it not work.
Goatbert: What distro do you use?
RobFlynn: At the moment, RedHat. I've been considering trying out Debian. I had some compatibility issues with it a while back but I think those issues have been resolved with Woody.
Goatbert: Yeah -- I'm a recent convert from Mandrake to Debian Sid (Unstable) myself. Once it is up and running, its very nice.
RobFlynn: I played around with Mandrake when it was first released. Their installer still said "Red Hat" in a few places. ;-).
Goatbert: Why the change in the version system from 0.XX.XX to 0.XX?
RobFlynn: Good question.
RobFlynn: We were stuck in pre's. I think we were up to what, 0.11.0pre15 or something absurd like that?
RobFlynn: I didn't see anyway that we could really get out of the pre-stages. I didn't want to call it 0.11.0 because people would be confused. I didn't want to call it 0.12.0 because I thought they'd be confused as well. So, I just counted the total number of releases that we had made since it's original launch and added one. I think it was v0.43. ;-)
Goatbert: Sounds about right -- it did get a bit confusing.
Goatbert: Now, as far as I can see, Gaim is just about as stable and featured filled now as many "1.x" projects. I realize that the version number is just that, a number, but there is something about "1.0" that is different. Will Gaim reach 1.0, or are we going to see .100 and up someday?
Goatbert: (the inevitable 1.0 question)
RobFlynn: Well, I'm planning on releasing 0.53 this Thursday. We should see 1.0 in about 94 weeks. ;-).
RobFlynn: I do know what you mean about a "1.0 release." I've considered it. There's just a lot of things that I would want to have implemented before I felt comfortable with calling it 1.0.
Goatbert: What kind of things would those be? (in general)
RobFlynn: I'd like to see things like IM Image support, file transfer, etc. for AIM. I'd hope to further implement some of the other protocols as well. Before Eric left the team, he began working on separating Gaim's core from it's UI. We had hopes of developing a UI system based on plugins so that users could have Gtk+, Qt, console-mode plugins, etc.
RobFlynn: That would be nice to have, as well.
Goatbert: Those sound great.
Goatbert: AOL seems to be fighting it out with Trillian -- AOL blocks Trillian, Trillian releases a new version, rinse and repeat. Why don't these affect Gaim? Have you ever talked to someone from AOL about Gaim? I'm assuming they know it's out there, it is pretty popular with the free software crowd (and, now, MacOS X folks can run it as well).
RobFlynn: Oh, they definitely know about us. Two years ago their lawyers sent us a letter about our logo. We fixed that. Last year we received a letter saying that our name was confusingly similar to theirs and that we were in violation of their service mark "AIM."
Goatbert: I forgot about that, that made Slashdot didn't it?
RobFlynn: They've never really tried to block us. They were blocking Jabber for a bit which, as a side effect, blocked us. We managed to work around that, though. Now they seem to be specifically targeting Trillian, though, so it hasn't really affected us.
Goatbert: Yeah, in reality the only confusion of calling it "Gaim" is that people might think its just an AIM client -- it does much more than the AIM client ever will, I'll bet.
Goatbert: How has Eric leaving affected the project?
RobFlynn: It came to a stand still for a month or so. He had been doing the majority of the development in recent months as I had a lot of things going on in my life with my job, personal stuff, etc.
RobFlynn: He left just as I was transitioning to a new job so things stopped. I've since started getting back into things and have picked up another developer. We're back on track now.
Goatbert: Yeah -- thats another one of the nice things about Open Source -- projects don't have to die when people leave, its easy enough for others to pick up after them. I think that pretty much wraps this up -- any closing comments?
RobFlynn: In the absence of development lots of users submitted new patches.
RobFlynn: In fact, I recall one funny occurence. One user, Sean Egan (now my developer) submitted a patch. Another user applied his patch and found a bug. That user submitted a bug report. Another user found and fixed a bug in his patch and added new functionality to it and submitted his own patch to the original patch.
RobFlynn: A lot of users in #gaim were running a copy of gaim with multiple patches applied so they could still have new functionality. Even without any maintainer at all, the project continued.
Goatbert: That's great.
Goatbert: I guess that's it, any closing comments?
RobFlynn: I just want to thank Eric for the two years, or so, of work that he put into Gaim, as well as all of the users and contributers. I appreciate them all.
To me, a project like Gaim is proof that the Open Source method of development works. There was a need for a particular application, and these people filled it nicely, even improving upon the original concept. Gaim is the best Open Source solution available for instant messaging clients, and is arguably better in many ways than most closed-source clients. Gaim is not yet available for Windows, but the latest version compiles and runs on MacOS X. Gaim is available, for free, of course, from http://gaim.sourceforge.net.