The Truth about the GPL

The spat between Novell and Microsoft over patent licenses is generating plenty of comment in the blogosphere.  Microsoft apparently believes that it might finally have found a way to use its patent portfolio effectively against Linux, and Novell is saying “No-siree Steve, that’s not what we agreed!”.  And, of course, the open source community is rushing out to try to draft language that would make Microsoft’s commitment to not pursue Novell customers over patent violations applicable to all users of Linux.

Whew!

While Microsoft’s agreement with Novell is the flashpoint for this dispute, the heart of the controversy lies deep within the open source community, in the GNU Public License itself.  It’s the GPL’s aggressive protections against software patents that are the root cause.  The GPL states:

If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

Novell denies that the patent license they received from Microsoft has anything to do with Linux, because if it admitted as much then recipients of Suse Linux would not be able to redistribute. Novell would be in violation of the GPL.  Microsoft apparently believes that the license does read on Linux, but until a challenge is mounted by Microsoft, the point may be moot.  And, by rattling its sabre, perhaps Microsoft can inject a little FUD into the community of business Linux users. 

What a mess.

Frequently that’s the way interpretations of the GPL end up.  The intent of the drafters isn’t always clear, and creative people find ways to mold the license to their business needs.  For instance, some weeks back, Fonality acquired Trixbox.  At the time, one of the reasons given by Fonality CEO Chris Lyman for the popularity of Trixbox was that some Asterisk contributors didn’t want to sign the “double waiver” required by Digium.  It turns out that Chris was indulging in a little hyperbole.  There is in fact only one waiver required.  It just happens that there is a short and a long form — one easily understandable, and one very legalistic.  Even so, with a little investigation, it became clear that some didn’t want to sign the waiver, claiming that it gave Digium the right to commercialize third party applications.

It seems to me that this is a simple case of misunderstanding. 

The Digium waivers simply give Digium permission to use third party contributions, however they want. They don’t restrict what the contributor can do with them, however.  Moreover, the Digium waivers explicitly state that you’re allowing Digium to use, unrestricted, any changes you make to Asterisk, Gnophone, Phonecore, or libiax — Digium’s own IP, licensed under the GPL.  Paraphrased:  if you’re making a contribution to Asterisk, Digium requires your permission to use it before they will distribute it. If you’re building an application that works with Asterisk, and is merely aggregated with Asterisk in the same distribution, then you shouldn’t need to either (a) worry about GPL restrictions, or (b) subject your code to Digium’s waiver.  In other words, it’s a tempest in a teapot. 

Given that Digium doesn’t actually distribute third party applications with Asterisk, it seems clear that the real need Trixbox fulfills is in providing a “whole” product to customers, rather than some nefarious waiver-avoidance service. Trixbox, as many have noted, is nothing more than a script that “merely aggregates” other open source components with Asterisk, as is allowed by the GPL.  It just happens to be very popular.

Side note: Digium’s waiver is tame compared to the copyright assignment required by the Free Software Foundation.  If you give your software to the Free Software Foundation, you have given up all rights.  Period.  In both cases, however, the goal is to protect the core software from claims that might prevent it from continuing to be distributed as open source.  That’s good stewardship, and nothing more.

So Fonality Chief Chris Lyman threw a little mud in the water.  One might even accuse him of telling some half truths.  My point of view is that Digium is doing what a reasonable person would expect them to do, and Trixbox likewise. 

Nevertheless, there were rumblings at Astricon from some Asterisk contributors and resellers.  Over drinks, they accused Fonality of being a bad Open Source citizen.  They pointed out that Fonality’s “hardened” version of Asterisk contained core fixes to Asterisk that had never been contributed back to the Asterisk head branch.  Unfortunately for the grumblers, a read of the GPL reveals that there is no requirement that Fonality do so.  The GPL bites again!  In fact, the beginning of section 3 reads:

You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

In other words, while you are required to make any modifications to the program available in source code, you are only required to make those modifications available to people who are recipients of your code.  Fonality interprets that to mean that they must make those modifications available to their customers.  And so they do, by placing that code on a server accessible to those customers.  The miracle is that none of those customers have apparently ever chosen to exercise their own right to redistribute the software given them by Fonality, and placed that software in the wild.

Fonality has forked the Asterisk code base, which they’re within their rights to do, and by controlling the distribution of the resulting executable, they’ve also effectively controlled distribution of the source.  Whether or not that delivers them a competitive advantage is debatable, since it effectively removes their distribution from any head branch improvements, but that’s certainly how CEO Chris Lyman views it.

Legal, yes. But is this the spirit of Open Source?  That’s for you to decide. 

The GPL is turning out to be more flexible than many might have believed, and perhaps more vulnerable to software patents than has been presented.  Far from the industry destroying spectre that Microsoft presented in Microsoft’s infamous 1998 Halloween memo,  the truth appears to be between that extreme and the panacea that Open Source adherents Eric Raymond wish for.  Most importantly, there are plenty of ways to make money with open source, even within the constraints of the GPL.

  • Share/Bookmark

2006-11-22 7:10 am | 2 Comments »

Tags: ||||||

Fonality Debuts Trixbox 2.0

Not letting the grass grow underfoot, Fonality has used Astricon to make their first tangible announcements around their latest acquisition, Trixbox.  Just three weeks after the announcement of the acquisition, Trixbox 2.0 beta, available today, sports a new “point and click” interface, a GUI package manager, Sangoma drivers, and integration with Lumenvox. 

Chatting with Fonality CEO Chris Lyman yesterday afternoon, he revealed that Fonality has been applying resources to Trixbox since long before the acquisition was announced.  Fonality views this release as their first opportunity to show that they mean to “do good” for the community.  With it, the process of configuring Asterisk has gone from being “super geeky” to “kind of geeky”. Fonality’s goal is that an ordinary IT consultant should be able to roll a PBX for a customer with just an hour or two of work.  With the addition of the new package manager, they claim you don’t need to go to the CLI to configure Asterisk based systems any more.  If true, that’s a great step forward.

There’s a very interesting story developing here.  At the initial announcement, I mused that Digium should have acquired Trixbox themselves.  Lyman volunteered that the Digium community was primarily focused on plumbing issues, while the Trixbox community has been focused on applications. He compares Digium Asterisk to the old CLI world of DOS, and is very focused on making Trixbox easy for mere mortals to configure and use. Naturally, these are two different models altogether.  When I pressed him, and asked if didn’t see Digium moving in that direction, he said that he saw the Asterisk appliance as a step toward an easier to use Asterisk, but he also noted that for 1/3 the cost of the Asterisk appliance, he could supply 3 times the power on a PC platform.  So far as Fonality is concerned, Digium’s appliance puts them in competition with Linksys, not Fonality.

I also took the opportunity to ask Chris how he planned to make money with Trixbox.  His answer was two parts: first, Trixbox has a great brand, and to the extent that it can court a large developer community, that’s a brand that Fonality would like to be associated with.  And secondly, Chris has observed that Trixbox is the first choice for IT managers wanting to prototype an application before asking for funds to deploy that application.  When they go for full deployment though, he believes that they will want a hardened platform, like Fonality’s commercial offering.

I speculated that they might be looking to the Trixbox community for new applications to commercialize on Fonality as well, but he demurred on that point, only saying that it was too early to contemplate a move like that. 

Tom Keating has some more perspectives here.

  • Share/Bookmark

2006-10-25 11:59 am | No Comments »

Tags: ||||

What was wrong with our old phones…

I’ve been working on configuring TrixBox, the new name for Asterisk@Home, using Ward Mundy’s excellent guide.  I have to say that TrixBox is nice!  But it still doesn’t prevent you from doing stupid things, which Ward points out in this sidebar:

ATTN: “Type A” Males. With apologies to our female readers, let me chat privately for a moment with the guys. If you have a wife (and want to keep her) or if you have teenage daughters (and want to avoid being killed in your sleep), you’d better get most of this PBX design right if you plan to use Asterisk to replace your existing home phone system. Otherwise, the day after you install your new system, a typical discussion with your spouse will begin with something like this: “What was wrong with our old phones that just rang when someone called and I could actually hear what they were saying when I answered?” With that caveat in mind, let’s jump right in to freePBX.

Too true…

  • Share/Bookmark

2006-06-12 9:48 am | No Comments »

Tags: ||