| LXer Feature: 12-Jul-2006
Evolution’s usefulness has long been hampered by the lack of a single feature. Because it is free software, one organization knew the feature could be added, either by themselves, or by paying someone to do it for them. Find out what they did, why and how they did it, and how you can get the patch for yourself.
[Updated at 12:05 US Eastern Time – dcparris]
Let’s see. If I count up the $80 I spent for Mandrake Linux 8.0, The $80 each for SUSE Linux 8.0 and 9.2 Professional, and SUSE Linux 10.0, I believe that comes out to around $320 I’ve spent over the course of 6 years to keep the 10 computers our house-church ministry owns operational. Our ministry, Matheteuo Christian Fellowship, recently spent over $400 to add a single feature to Evolution. The next time you find yourself waiting in limbo for a feature from your non-free software vendor, think about the following.
A Need To Be Met
We use a combination of SUSE and Ubuntu Linux for our desktops. We also use Evolution as our primary PIM software. I faced a challenge in that I sometimes need to leave my e-mail on my ISP’s POP server, and access it via webmail from another computer. With Evolution, you can choose to either leave the messages on the server or delete them. If you choose to leave them, you’ll have to delete them manually on your own. I want Evolution to delete them automatically after a week, or maybe two weeks.
Evolution’s POP client was an all-or-nothing proposition. Although I didn’t know it at the time, this feature has been listed in Evolution’s Bugzilla system for at least five years. Apparently, it was a really low-priority item in the minds of most Evolution developers. Some thought a POP client should not try to be an IMAP client. Most responses to the feature request seemed to say something to the effect of “fat chance of that ever happening”. So our ministry is not the only group interested in this feature.
Thunderbird, Sylpheed, and a number of other POP mail clients offer the capability I desired. The Mozilla suite simply doesn’t meet my needs. Sylpheed is great, except it isn’t integrated with a calendar and tasklist. What to do? I could try programming the feature in myself. Frankly, it’s bad enough we have Microsoft developing crummy software – why should I make matters worse? But wait a minute. Isn’t Evolution free software? If I can’t do it myself, I can still pay someone to do it for me, right? Right!
Working With The Developer
Our ministry wanted the feature. We knew others probably wanted the feature also. We didn’t know how to add it ourselves. So we needed a programmer. I figured my best chance of getting this feature added into Evolution, as part of the main distribution, was to work with one of the Evolution developers. I contacted a Shreyas Srinivasan, a developer from Bangalore who had just finished working for Novell, and continues working on Evolution’s mail client in his spare time. After some discussion about what we wanted, the hourly rate, and the estimated time it would take, Shreyas agreed to take on the job.
I confess to being somewhat nervous, as I had never worked with a developer before, let alone one on the other side of the globe. Still, if the guy worked for Novell, and is still an active developer of Evolution’s mail client, he was my best hope of getting the feature implemented. We looked over his resume, and decided he must be pretty competent. My biggest concern was ensuring that he understood what we were asking for. You can imagine my relief when he sent me the screenshot of the mock-up for the new feature. So we had chosen wisely.
Shreyas spent around 32 hours over the course of a week or so before sending me the patch, and then a link to instructions on how to add the patch into Evolution (after building a second copy from scratch). A couple days later he sent a second patch to correct a minor bug he had discovered. A secondary issue had come up, involving deleting e-mails from the POP server when they were deleted locally. According to Shreyas, POP doesn’t support that functionality. He didn’t think he would be allowed to commit the kind of ugly hack he thought would be required to implement such a feature, so we left it out.
As I mentioned earlier, this feature request has been in the Evolution Bugzilla system since March 2001. The first developer to respond said it was easy to implement and would definitely be supported in version 1.0. A year and a half later, in September 2002 it still had not been implemented, and was considered as being available for any volunteer to undertake. A year later, in 2003, a potential user can’t believe it still hasn’t been implemented and won’t use Evolution without it. In June 2005, one user offered a $25 bounty for adding this feature. Even Ubuntu users were requesting the feature.
Whether the holdup was caused by ideological opposition or because everyone considered the feature such a low priority is unclear. Frankly, between the promise to implement it back in 1.0 and the repeated pleas for the feature, it should have already been implemented. While it is easy, as a non-developer, to be critical, I knew at least one way to solve the problem – pay a developer to fix it. Once money entered the picture, the problem got solved. The lesson here is, if you want a particular feature, and don’t want to worry about someone else’s priorities and ideology, think about making it worth the developers’ time.
There is nothing wrong with individuals and organizations paying developers to improve free software. Richard Stallman wrote several years ago, “Programmers writing free software can make their living by selling services related to the software. I have been hired to port the GNU C compiler to new hardware, and to make user-interface extensions to GNU Emacs. (I offer these improvements to the public once they are done.) I also teach classes for which I am paid.” So that’s what we did. We paid a developer to improve Free Software. That’s the value of Free Software. If you can’t fix it yourself, you can find someone who can – whether for free or for a fee.
Getting the Patch
As part of my discussion with Shreyas, we wanted to ensure that the patch would be implemented in the main distribution of Evolution. The patch will eventually become mainstream. For the time being, though, distribution developers will need to backport the patch to 2.6 in order to make it available to users. In fact, we’re working to see if the Ubuntu folks will do just that. If you know what you are doing, you can get the patch yourself from the Evolution CVS. If you do try it out, let me know how it goes for you.
If you don’t know what you’re doing, I suggest you make a request to your distribution developer for them to make the patch available as part of a future update. Hopefully, there will be enough interest from the other major GNU/Linux distributions to make the patch widely available to users via their normal update routines. After all, it is a frequently requested feature and a show-stopper for some. If enough users express an interest to their distribution developers, that may help with the process of getting this patch out to more people.
This just in: The Evolution patch will be available in the next Dapper update.