Why the GPL is Incompatible with Commercial Software

# Filed on Feb 25, 2006 by Anthony DiSante 18 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.

14. Aug 14, 2009 at 01:39am by cjs:

Yes, the GPL infects software with which it’s combined, even if you include only ten lines of GPL’d code in a million line program of your own. The readline library, for example, is licensed under the GPL instead of the LGPL for exactly this purpose.

In general, you can safely assume that the author of a GPL’d piece of code either really does intend to prevent you from exploiting it commercially or doesn’t understand the license he placed on it. (The latter is surprisingly common.)

But I should point out that if you’re the owner of a piece of code you’d like to exploit commercially, the GPL is a great way to look free but make sure you don’t have competitors. This is why MySQL A.B. could sell themselves to Sun for a billion dollars when their only product was a "free" one.

Curt Sampson (cjs@cynic.net)

15. Aug 23, 2009 at 08:27pm by paul:

Okay here’s what I’d like to do if it’s legal.

(1)  There’s some GLP software that I’d like to use.  It’s an open source backgammon software ("OSBS"). 
(2)  I’d like to modify it to allow users to offer dll’s or some other such thing with a decision engine (i.e., receive info. from the OSBS and return decisions)
(3)  I have some decision software that I’d like to sell as dll’s for this software.  And, I’d release the revised OSBS with a GPL.

Does this change the game?  Or am I in the same soup with a guy who uses a few lines of GLP code in his commercial code (i.e., infected)?

Said differently, is there any way to put a condom on my code so it’s not infected?

16. Sep 7, 2009 at 06:46am by DanHeeks:

looking at http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem
It says "However, in many cases you can distribute the GPL-covered software alongside your proprietary system."
and
"if the two programs are combined so that they become effectively two parts of one program, then you can’t treat them as two separate programs"

So long as the GPL backgammon software works fine without your program and your program works fine without the backgammon, then it’s OK to ship them together.

I suggest you should make your decision program an .exe file which takes text file input and output. Also adapt the GPL backgammon software to read and write text files, so it can communicate with any decision making programs in the same way.
Make sure when you distribute the whole thing you include all the source code for the modified backgammon program.

17. Sep 8, 2009 at 01:56am by BerlinBrown:

Yea, it is a little nutty.

Like why even answer the first question, "Can you sell the software"

Why sell it if your new code is now under the GPL?

"You can sell it but you have to change the license of your software to the GPL"

Also, it seems nuts that you must change your license, regardless of the size of the code you included is GPL.  For example, lets say you have Microsoft Windows xp operating system. And Microsoft decides to include some GPL widget they found online.  Does that mean Microsoft Windows xp has to fall under the gpl.

The gpl license is viral, but I bet the GNU group can’t possible keep up with which software is correctly following the gpl anyway.

18. Sep 16, 2009 at 11:32am by DY:

That’s the entire point. The FSF wants to encourage the end of proprietary software and writing it for a living. If Windows wanted to include the GPL widget, it would have to become GPL. The GPL’s intent is to ensure proprietary software can’t live off free software. I’m not supporting it, just stating it objectively.

Reply to this message here:

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

home | archives ]