Home > Software Business > Over GPLed

Over GPLed

March 3rd, 2006

Last week, it was a Python template engine. This week, it’s JavaScript tabs library. It seems to be a fairly common occurrence that people release developer-oriented open source packages that come with a GPL license. Unless you intend to create a business selling your software with a different license to business (the Sleepycat model), this just seems like a way to severely restrict use of your library. The only people likely to use libraries like those that are licensed under the GPL license are people that are writing open source (GPL) applications. If that’s what you want, fine… but, I think it’s better to aim higher. (In case you read no further, those two packages have since relicensed under MIT style licenses.)
I understand the allure of the GPL. “I’ve put this thing out there for free, and so I should benefit from the changes other people made!” (I’m ignoring the “software should be free” philosophical argument for now.) I think it’s a mistake to think that just because something is released under a liberal license, like the MIT license which is what I use, that companies won’t contribute their changes back to the project.

Creating a fork of a project is a pain. You have to reintegrate changes every time there are improvements in the core project that you want to take. For a company to maintain their own internal version of your project effectively means that they have their own fork of it. That just doesn’t make good business sense. A company could choose to take your project and produce some spiffy commercial version. Odds are, though, that they’d still release changes to the core system back to the project, rather than maintaining a private fork.

I think that most people who choose the GPL for a library do so because it’s a license they’re familiar with. That’s the point of this post: hopefully, more people creating libraries will recognize that a very liberal license like MIT or BSD is the way to win users. The authors of both of the projects that I mention above have agreed to relicense under MIT-style licenses!

I should also point out that the LGPL is somewhat ambiguous when it comes to dynamic languages. If you really want a license that requires the open source release of changes on a library that you’re releasing, you should think about the Mozilla Public License. (Update: The CDDL appears to be a version of the MPL that is designed to be more easily reused. That’s a good one to consider.) That license is not vague: only the files in your distribution are required to remain under the MPL. So, the code is free to use for commercial purposes, but any changes to the files that you distributed also need to be released under the MPL. I’d still recommend going with an MIT license in general, but at least the MPL is clear in its effects.

By the way, I have no problem with using the GPL for applications. Applications released under the GPL can be used for all kinds of purposes, and it’s reasonable to want changes to the application to be similarly licensed.

Update: I eliminated the use of the word “viral” above, because I didn’t intend to make a negative point on the use of licenses that impose restrictions on distributed versions of software. My point is that many choose these licenses without being fully aware of the ramifications.

It is also clear from the comments that I never got back to the “software should be Free” (software libre) argument.

As mentioned in the comments, not everyone is looking for the broadest possible adoption of their code. Some people specifically have the belief that all software should be free to use, upgrade and share. People are certainly free to have and exercise that belief by licensing their software under the GPL. If I asked someone to relicense and they told me that they chose GPL to ensure freedom of the software, I wouldn’t argue any further. Those people have chosen the GPL for the right reasons.

The fact that I have spoken with two people in the past two weeks who relicensed their software shows that there are people out there choosing the GPL for reasons other than support of software libre.

Software Business

  1. Baruch
    March 3rd, 2006 at 20:51 | #1

    For server based software the GPL is mostly meaningless, since you only need to provide the source when you distribute the program. Since you never distribute your program to your clients you don’t need to give them the source. And for Python/Javascript there is no binary anyway, in any case you’ll give the source so I don’t see any problem with the GPL here.

    And about companies not going to keep their changes to themselves, go over to gpl-violations.org and see how many cases they have and extrapolate for how many companies have not yet been ousted from their uncompliance. The companies are more likely to fork it internally (and rarely merge again with upstream afterwards), than they are to give back their work as they are supposed to.

    If that is what happens when they are legally bound to give back, you can figure how likely they are to give back if there is nothing to force them to.

    There are some companies that do give back on their own, but they are few and far between.

  2. March 3rd, 2006 at 23:48 | #2

    The idea that licensing under the GPL will inhibit certain uses of the software, thus acting as a limiting factor to its use is perfectly true. But for this to be a problem, widespread use has to be the goal. People who have that as their goal will tend to use MIT or BSD style licenses instead of the GPL, thus avoiding the problem. Please don’t imply that everyone should have widespread use of their software as their goal when they release free software.

    And there is nothing viral about code licensed under the GPL that isn’t similarly viral about unlicensed code, proprietary code, or even code licensed under the MIT license: in any scenario it’s copyright infringement to distribute a derived work outside the terms of the license. Since the word “viral” has such a bad connotation, please avoid using it in underserved situations.

  3. jhernandez
    March 4th, 2006 at 01:57 | #3

    “…The only people likely to use libraries like those that are licensed under the GPL license are people that are writing open source (GPL) applications….”

    GPL software is, by definition “software libre”, not open source.

    An not, people don’t choose the GPL for a library because it’s a license they’re familiar with. It’s because it is the license that guaranties that his library will remain free (as in freedom).

    I suggest reading [0] If you want to know more about “software libre” philosophy.

    [0] http://www.gnu.org/philosophy/free-sw.html

  4. Greg
    March 4th, 2006 at 02:41 | #4

    I think the characterisation that the appeal of the GPL is that developers want to benefit from the changes others make to their code is very confused. Among those that are somewhat familiar with the GPL and intentionally choose to use it, the motivation is one of generosity, not selfishness. People appreciate the huge amount of work that has been done to build the current GPL code base, and want to encourage others to continue building that code base, because they realize what an incredible resource it is. They want to encourage more charity: “I’m giving my software away freely, and am happy to do so, but if you want to take advantage of it, you have to give back to the community too.” The notion that most developers are motivated by wanting to personally track the modifications to their product is misinformed, and does a disservice to the GPL’s supporters.

    If your goal is simply to get users, yeah, release your code into the public domain, or under the BSD license. If you’re appreciative of the awe-inspiring amount of work that has been done to create the current open-source ecosystem, and want to encourage the ecosystem to grow even further, choose a license that makes users take their medicine. The GPL makes developers play fair: “you’re free to use my work, but you have to give the world something back in return.”

  5. Michael
    March 4th, 2006 at 09:12 | #5

    Choosing the GNU GPL (or the GNU LGPL) is just a matter of strategy. If your software is so innovative or complex that it doesn’t have competotors, or competitors are very expensive and it will take a lot of effort in order to create one, then you should chose the GNU GPL. Companies will be “encouraged” (if not forced) to give back when they will create derivative works.

    See what happened with the most successful GNU GPL’ed projects. GCC has received contributions from tens of companies; Apple, for example was required to release its GCC-based Objective-C compiler, now part of the GCC distribution. The same goes for libraries like GSL (GNU Scientific Library), Linux itself, and so on.

    On the other hand, some projects have chosen “weaker” licenses because it appeared the best choice for growing and maximizing contributions. The GTK+ toolkit, for example, has been released under the GNU LGPL (and *not* GNU GPL) because lots of non-GPL’ed graphical toolkits exist, and companies could easily use one of them for building their proprietary applications instead of being forced to release their code. The same choice was done for the GNU C library. And the same goes for the Mono standard library, released under the MIT license in order to attract the maximum number of users/developers from the Microsoft .NET distribution.

  6. March 4th, 2006 at 09:17 | #6

    Baruch:

    I guess you can extrapolate from gpl-violations.org that there are tons of companies out there in violation. Similarly, I can use my experience running an open source project that is MIT licensed to extrapolate that there are lots of companies that will help out as they can.

    In some ways, gpl-violations.org may even support my argument that many people are just not aware of the ramifications of the GPL. There appear to be a fair number of cases there where the companies in question are asked to respect the GPL and then comply. So, it may be the case that both authors and users of GPLed software are not always aware of what they’re getting.

    Michael:

    You’re correct that widespread use of the software is not everyone’s goal. I’ll add another paragraph at the bottom to expand on the “software should be Free” argument that I “ignored for now”.

    I agree that the term “viral” has negative connotations and I’ll change my post to eliminate it. I was not actually trying to make a point that a “viral” license is bad (and you’re certainly correct that commercial licenses can be worse). In fact, I even suggested that the MPL is a better choice than the LGPL because it is less ambiguous.

    jhernandez:

    My whole point is that there *are* people choosing the GPL for reasons other than software libre, because I’ve recently found two cases where the authors willingly changed their licenses.

    Greg:

    I should, indeed, bring up software libre a bit in the post. I still contend that there are folks out there who aren’t purposefully releasing Free software, but are really angling for “open source”.

  7. March 4th, 2006 at 12:48 | #7

    tazzzzz:
    Thanks, that clarifies all the bits where I misunderstood your intent, and I find I agree with you a lot more than I thought I did. The core of your argument seems to boil down to: choose your license carefully. Find one that matches what you want to accomplish. If your goals aren’t being met by your license, and you aren’t beholden to their terms because of other code from which you choose to derive, be open to offering it under another license which does meet your goals. That’s good advice for everyone releasing software with code.

  8. Baruch
    March 4th, 2006 at 13:51 | #8

    Many of the companies that just give away the source when requested are using what in Hebrew is called “Shitat Matzliach” (The chance technique), they ignore the GPL, knowingly or maybe by just nor paying attention and when approached seriously (not by a normal user they can brush off) they will go ahead and provide the source.

  9. Paul Boddie
    March 4th, 2006 at 14:25 | #9

    You write:

    I understand the allure of the GPL. “I’ve put this thing out there for free, and so I should benefit from the changes other people made!�

    Clearly, you don’t understand the allure of the GPL, since there’s actually no guarantee that the changes will ever get back to the author, nor any obligation in the GPL for them to do so: each party distributing the code must provide sources to those they distribute/license it to; no party distributing or receiving the sources is obliged to send changes back to the original author. Indeed, licences which oblige recipients to send changes to the original author are quite possibly incompatible with the GPL.

    The GPL is all about extending the freedoms given to recipients of a piece of software to all subsequent recipients (including end-users), and the reason why dual-licensing can be profitable is that various companies either don’t want to share their own sources or don’t want the hassle of preserving those freedoms. And yet, as someone pointed out, current and past versions of the GPL still don’t oblige recipients to publish sources for services based on the code - something which the Affero Public Licence, for example, does stipulate.

  10. March 4th, 2006 at 15:48 | #10

    Paul:

    You’re correct about the mechanics of the GPL, and it is certainly true that companies using GPLed software to provide a service (say, Google), do not generally release their code. For maintainability’s sake, I wouldn’t be surprised if they contribute patches to the core project, but the fact remains that their extensions remain private.

    On the subject of changes getting back to the author: the GPL does not require it, that is true. However, anyone who does obtain the software is free to share it with others. I think that, in practice, changes made by a company redistributing GPLed software will likely get back to the original author. (That is, if they’re not hiding their use of the software, as Baruch points out).

  11. Geoff
    March 4th, 2006 at 15:57 | #11

    The sad fact is that a *lot* of consideration has go into the decision to use the GPL. And if you make the wrong choice and release code under it, you are somewhat stuck.

    An example:

    These guys should not have chosen GPL and are scrambling now to ‘fix’ the problem

    http://www.formfaces.com/main.html

    the scrambling…

    http://sourceforge.net/forum/forum.php?thread_id=1323805&forum_id=458081

    (SF is timing out a lot today - the above link is good).

    G.

  12. March 8th, 2006 at 13:44 | #12

    Thanks for noting the MPL as an alternative to the deprecated LGPL. I would it’s easier to advocate the MPL than a GPL apologetic option of LGPL. Thanks for removing the ‘viral’ wording. That’s an alarm bell phrase to stop reading, regardless of the point.

    Geoff: What’s stuck? Sounds like a future version will be under a different license.

  13. Geoff
    March 8th, 2006 at 14:39 | #13

    The intention of the FormFaces folks was to have a “free for non commercial use” license and mistakenly assumed that the GPL gave them that protection/enforcement.

    In that commercial entities must by the commercial license to avoid the “viral-ness” of the GPL. But, the nature of FormFaces is such that the viral parts of the GPL never come into play. Anyone can use GPL FormFaces and not have to buy a commercial license.

    Ok so the intent was never to have a free product for commercial use - just change the license. They are considering Creative Commons.

    The stuckness is that they decided to host thier GPL project on SF. SF does not allow the hosting of Creative Commons “free for non commercial use” licensed projects so they have to host elsewhere.

    And, SF terms of service pretty much preclude taking down a project (unless a law like DCMA has been violated) so the GPL versions of FormFaces are going to be there forever, free for any use. Perhaps unsupported (the devs have moved on to the CC version) but it’s always going to be on SF where anyone can pick it up and maintain it.

    So, the stuckness is more related to the choice to host on SF than on the choice to use the GPL. Which just illustrates there are even more variables to consider when choosing a license.

    Geoff

  14. March 13th, 2007 at 19:14 | #14

    All,

    We apologies for the delay in moving over to a freely distributed, open source license. Earlier this year FormFaces is licensed under BSD, free for both commercial and non-commercial use. We also incorporated a CLA for people contributing to the code base. You will still see a Commercial License at the http://www.FormFaces.com website because our DoD customer requires additional terms and conditions beyond BSD.

    Our intent is to have FormFaces freely distributed, easy to use and robust to help institutionalize the XForms standard.

    Cheers!
    FormFaces Product Manager

  1. No trackbacks yet.