≡ Menu

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.

{ 2 comments… add one }

  • Tom February 20, 2007, 10:51 am

    Your interpretation of the GPL is completely wrong. If you make a distribution of GPL's binary to _ANYONE_ you must make source code versions available to the world. Read the license.

  • Alec February 20, 2007, 6:48 pm

    Not all Tom. I think you should reread it 😉

    Section 3 of the GPL reads:
    ——————- <snip> ———————
    3. 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,

    b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
    ——————- <snip> ———————

    In other words, you may distribute the executables to your customers, and then must pick from one of three alternatives to distribute source. Alternative (a) CLEARLY states that you simply have to distribute your executables with source. It doesn't say who you must give that too.

    Now, IANAL, nor do I play one on TV, but that seems like clear english to me.

    What did I miss?

    A

Leave a Comment

Next post:

Previous post: