Thursday, December 8, 2011

Textual IRC client violates the GPL

Update (Feb 02, 2012): Dougal (see comment below) pointed out that Textual IRC actually was forked from a BSD-licensed LimeChat. So this post is invalid.

Textual IRC client is a commercial software sold in Apple AppStore. It is priced at $4.99. Not too steep for a nice IRC client, and not too cheap either. The problem is that Codeux (the maker) is sort of shady in its license.

Textual IRC client derives from LimeChat which is licensed under the GPL v2. Textual itself is licensed in BSD. This alone violates the GPL because BSD is not compatible with GPL. In this case, Codeux is not allowed to re-license GPL v2 code under the BSD.

Without knowing about the incompatibility, I assume, Codeux further "friendly requests" that no binary distribution be made so that their app in Apple AppStore could be sold well. It's a good tactic to earn some bucks from the app, and it's perfectly fine to do so. However, threatening to close source if someone goes ahead and releases a binary version is moronic and a violation of the GPL, as well as the BSD. It is a violation of the GPL because as long as you still derive from GPL code, your code must be licensed under a compatible license that usually gives users permission to redistribute both source and binary at their own will. And assuming that you can relicense LimeChat under the BSD, the BSD license does also give users permission to distribute both source and binary versions. That is a granted permission, not an "abuse" as Codeux put it.

So, then, if you don't want to play fair, feel free to bring your toys home. Otherwise, look at X-Chat, and X-Chat WDK and learn a thing or two from them.


  1. Have you seen this?

  2. No, I did not check the unstable branch, Dougal. I only checked the master branch, and it did not, and still does not mention of LimeChat original license. Thanks for bringing it up to me.

  3. Since this post, the folks at Textual have answered your criticism with a simplified license statement here: