Why the GPL is Incompatible with Commercial Software

# Filed on Feb 25, 2006 by Anthony DiSante 13 replies

Advocates of the GNU General Public License (GNU GPL) like to perpetuate the idea that programs released under it are "free as in speech, not free as in beer."  The implication is that GPL’ed software is not necessarily free from cost, and therefore you can in fact license your programs under the GPL and still sell them for money.

Quoting The GNU GPL FAQ:

Does the GPL allow me to sell copies of the program for money?

Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge.

Quoting The GNU GPL FAQ:

If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially?

You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.

These requirements are the condition for including the GPL-covered code you received in a program of your own.

But those answers are farcical.  The truth is that any "commercial" product released under the GPL will not succeed commercially, because the GPL allows anyone who buys the software to turn around and give it away for free.

I recently sent the following message to the GNU’s contact address:

Quoting my message to GNU:

I’m looking to integrate a pop-up menu system into a program of mine for a new feature that I want to add.  I found a GPL’ed project that implements such a menu system and I’d like to integrate it into my commercial product.

I’ve read the GPL and the GPL FAQ but I’m still not clear about exactly what my obligations would be under the GPL.

Specifically, I charge a fee for my program.  The program is a Perl-based CGI script, so anyone who buys it automatically has the source code.  Still, I do not give it away for free; I sell the program (i.e. the source code) for a fee.  If I include this GPL’ed menu system into my application, then:

1. Can I still charge a fee for my application?

2. Does the GPL give my customers the right to give away my application for free, after they buy it from me, simply because a small part of my application is based on a GPL’ed project?

And the reply:

Quoting GNU’s reply:

> 1. Can I still charge a fee for my application?

Yes.  See [FAQ item] and ["selling" article].

> 2. Does the GPL give my customers the right to give
> away my application for free, after they buy it from
> me, simply because a small part of my application is
> based on a GPL’ed project?

Yes.  When you use that GPLed code, you must release your own work under the GPL as well; this is required by section 2(b) of the license.  As a result, when your customers receive it from you, they’ll have the right to distribute it however they wish; this is permitted in section 1.

I have no problem with the GPL; much of the software I use on a daily basis is GPL’ed software and I’m glad that I was able to obtain this software for free (free as in beer).  But the wording of both the license and the FAQ is misleading, and the suggestion that you can GPL your commercial software is disingenuous.

Comments:

01. Mar 14, 2006 at 12:33pm by Kev:

So it looks like you can use the pop-up menu code in your perl script and sell that script, as long as you GPL the script itself. So once even one person buys your script, they can turn around and distribute it to anyone they’d like for free.

02. Mar 14, 2006 at 05:19pm by Anthony:

Exactly.  Which is fine for free software, but obviously no sane person trying to sell a piece of software would release it under those terms.

03. May 4, 2006 at 05:53am by LogicMan:

So what happens if I am giving you access to my web based product for a monthly subscription and that I have used the GPL menu you mentioned? Is that a violation????

04. May 5, 2006 at 11:40am by Anthony:

I’d say it probably is a violation, but I’m not certain.

05. Jun 27, 2006 at 03:40pm by Stephen Dewey:

I think it is not a violation. If it’s a web-based service, then you are not actually distributing the product. It’s a "loophole" that they want to "fix", but they haven’t "fixed" it yet.

06. Jun 29, 2006 at 08:31am by Thom Wetzel:

If you’re using GPL’d code, you have to GPL the whole application - web app or not. 

What you can use in a closed-source application is code that has been released using the LGPL license. 

You have to credit the author of the LGPL’d code, and make the code you used available for others using your application, but you don’t have to GPL your entire application.

07. Jan 4, 2009 at 12:36pm by Maciej:

And what about using a GNU licensed dictionary file in an on-line dictionary ? Do I have to publish the whole code of web application to use this file ?

08. Mar 26, 2009 at 10:51am by empraptor:

I realize this page is stale, but here’s a response on the concerns about using GPL’d items on a fee-based website.

If you did not modify the specific items that were released under GPL, there is no need to make anything available.  Even if you did modify the GPL’d items, you don’t have to release any of the other code.

For example, if you modified the menu code or the contents of the dictionary, you would be required by GPL to make THOSE SPECIFIC documents available to the public.  You don’t need to open-source any other document that is part your application.

So do you have to GPL your code because you made a call to a GPL’d product?  Hell no.  That doesn’t make any sense at all.  The whole point of GPL is to provide products that you can see/modify the source code for while ensuring you contribute when you make modifications.  It isn’t there to "infect" your own work.

I suppose it gets confusing if the GPL’d code is a short snippet that needs to be pasted into your application code.  Do you have to GPL your thousand line code because you used a 50-line snippet?  I say no.

But if you wanted to be sure, I would package that snippet in a separate file as a class or a collection of functions or a package or whatever.  Then release THAT under GPL.  And use the code in this form.  That would serve both you and the community by making the code available in a form that is easier to reuse and maintain.

09. Mar 26, 2009 at 04:41pm by Anthony:

I suppose it gets confusing if the GPL’d code is a short snippet that needs to be pasted into your application code.  Do you have to GPL your thousand line code because you used a 50-line snippet?  I say no.

You say no, because no would be the reasonable response.  But that’s the opposite of what the GNU GPL spokesperson said.  He explicitly said yes to this exact situation, as noted in the parent post here.

The whole point of GPL is to provide products that you can see/modify the source code for while ensuring you contribute when you make modifications.  It isn’t there to "infect" your own work.

That would be nice if it were true.  And maybe it IS true.  But that’s far from certain.  It certainly appears to be the case that using GPL code in a commercial app would indeed "infect" it as you say.  As an independent developer who makes his living by writing and selling commercial applications, I simply cannot afford to take that risk.

10. May 23, 2009 at 11:18am by Greg:

I think what  empraptor says is exactly true. Think about the reasoning behind the license. It’s there to protect that open source software to always remain open source software. If anyone takes open source code and modifies it, post modification it must remain open source and licensed under GPL.

However, if you use some open source libraries you don’t need to make all your code open source and GPL licensed as well. That doesn’t make any sense at all. If you take some GPL code and modify it, place that modified code into a separate library, license it as GPL and keep the rest of your software closed and commercial under whichever license you choose.

11. May 23, 2009 at 04:26pm by AnthonyDiSante:

Quoting Greg:

I think...
reasoning...
sense...

Everything you say makes sense.  But that doesn’t mean it’s true for the GPL.  I’d love to believe what you say, but I can find no official GPL documentation which supports it; and the word from the people behind the GPL contradicts what you say.

12. Jun 2, 2009 at 05:07am by JeanNoel:

Hi folks,
Google led me onto this page when searching info about "commercial gpl".

I think to have found the specific item in GPL’s site’s FAQ section for this problem. My understanding is that it’s never a problem to sell GPL-covered code (modified or not), it’s a problem in terms of license because as said earlier, it really infects (no other word, sorry) proprietary code.
http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem

The only way described to "incorporate" GPL code into yours is to get the two pieces of software "well separated". This full-of-contradiction statement is the root of the problem because it leads to personal interpretation.

Mine is that you can reach this level of integration only if you can say "my proprietary program (as source object) uses a totally externalized program for this functionality which could be totally replaceable, via options menu or externalized configuration". I’m not even talking about source code to illustrate my point.

Applying a strong decouple-pattern to your app might be a solution, but then consider GPLing the 80% work-time consuming interface (which can be a security threat depending on your level of implementation).

To conclude, let’s have in mind that free software is not always an appropriate solution. It comes from a war based on ideas with a noble goal (the know-how and fit-to-your-needs), but is at least as extremist as the opposite side. Other licenses that are less restrictive exist, but are more rare (LGPL for instance).

13. Jun 24, 2009 at 05:34am by Anoop:

I’m still a bit confused.

Suppose I want use a GNU licensed icon library (say Tango). Is it possible to use that in a propreitery application? I kept reading contradictory statements here and there; and my interpretations seems to be changing by the second.

Reply to this message here:

Your name
Email (why?)
Website (if you have one)
Subject
search posts:

home | archives ]