A few days ago, we were contacted by one of the developers of Everybuddy, a "universal" instant messenger client for Linux. It seems that they were scoping out the competition, and found a Windows-only program offered by a company called DSF Internet. Many users of Everybuddy had asked for a Windows version of the software, but none of the Everybuddy developers were very familiar with the Windows platform, and so a port had never been completed. This program, MessengerA2Z, seemed to offer all the functionality of Everybuddy for Windows machines. Probably because it was based on Everybuddy's GPL'd code.
The proof was in the pudding, so to speak. Or at least, the proof was in downloading and installing the Windows version, then running the
strings command against their compiled binary. Lo and behold, some of the strings of text included such gems as "Visit the Everybuddy website at http://www.everybuddy.com". Now how did that get in there?
(You could go a step further and dissassemble the Windows executable, examining the flow of their code and comparing it to the Everybuddy code. But it seems to me that the reference to Everybuddy is sufficiently damning already.)
Someone at DSF Internet took a shortcut to developing their own interoperable instant messenger client, and ported the Everybuddy code instead of starting from scratch. This isn't a bad thing - it's the whole purpose of open source, duh - but since the code was licensed under the GPL, a price was demanded in return: the Windows source code should be made available. It wasn't, of course.
Both Slashdot and the developer contacted this company, which is based in New Delhi, India. They initially denied that there was any GPL'd code in their product, but when presented with the evidence, the story changed, and it now seems that they're going to take some action. The final outcome isn't known - perhaps they'll publish the Windows code, perhaps they'll rewrite the whole thing from scratch, perhaps they'll just edit out the Everybuddy references and recompile. <shrug>
This situation seemed to be one tailor-made for the GPL. Code existed for one platform, there was the desire but not the ability to port it to another, and someone else saw the same opportunity and the usefulness of the code base, and had the ability to port the code. In theory, this should have been a win-win: the company in India gets a fast-track to development, and the open source project gets a Windows port of their code. But there isn't much of an enforcement mechanism to make everyone play fair.
Are the developers of Everybuddy likely to file a suit in India for violations of their license agreement? My guess is, no. Protest march outside their offices? Brick through the window? Hire some guys named Guido, errr, Rajanav, to go and break some kneecaps? No, and no, and no. The only real enforcement mechanism is a sort of peer pressure or the threat of public exposure, and this may or may not be sufficiently persuasive.
Incidents like this are only going to increase. There's at least a few possible responses:
- Just ignore it. The objective is to get the code out there, that's working, and generally enough people will obey the rules that the GPL will be effective in its goals.
- Spaz out over it. Scour the web looking for possible GPL-infringers and mailbomb them into submission.
- Send email to slashdot. Preferably misspelled email with unique grammatical qualities.
- Send email to Richard Stallman. Don't use pine to send it.
Seriously, this is an open question which needs to have some thought put into it. I can imagine some possibilities - perhaps a sort of "GPL Insurance", where GPL'd projects can pay into a pot of money to be used for sending legal nasty-grams and other enforcement. But I'm not sure that that's really the right course of action. Fundamentally, enforcing the GPL would be an extraordinarily difficult task - it's very difficult to detect abuses in the first place, and then you face national borders and other obstacles. Perhaps it is better to not worry about it too much, to save the collective energy of the community for more important purposes, and to simply realize that there will be abuses.Update: 01/02 01:02 PM by michael : About five minutes before this story went live, I heard back from Ben Rigas of Everybuddy that DSF Internet is going to do the Right Thing and post the source code to their messenger program. This is excellent news, and hopefully will result in a robust cross-platform instant messenger program. However, I think the point I made above still stands: there will be cases where persuasion doesn't work, and the community should have a plan for dealing with those (even if the plan is "do nothing").