GNU General Public License (v2): can a company use the licensed software for free?

Eric O Lebigot picture Eric O Lebigot · Jun 15, 2010 · Viewed 20.5k times · Source

Here is the context of this question: I have code that is to be sold for profit, but I wish to make it available/free to individuals and non-profits, as long as their code remains free.

When a library is released under the GPL v2, can a company use it internally for free? If they develop software based on it, do they have to release it under the GPL, even if they don't distribute it? Can they make money by using (not distributing) internally developed software that links to the GPL'ed library, without any compensation for the author?

I am looking for a software license that only allows non-commercial uses (copy, modify, link to); the resulting derived programs must also be free for non-commercial uses. Is there any software license that does this for non-commercial uses, and prevents any commercial use (including using the software in order to make money)? It looks like the Creative Commons licenses are flexible enough to do something close to that, but I've read against using them for software. What do you think?

Or maybe is it possible to simply write something like the following?

"This work is released under a dual license:

  1. For non-profit uses: the GPL v2 license.
  2. For other uses: another license, as long as it is obtained from the original author."

Would this effectively make the program free for non-profit uses (copy, modification, usage,…), while leaving the door open to commercial uses?

Edit: PS: After reading all the answers and looking for information on the web, I decided that the relevant concept for this question is dual licensing. There is a host of information on the internet about it, and in particular about how the GPL can fit (or not) in a dual license.

Answer

Michael Aaron Safyan picture Michael Aaron Safyan · Jun 15, 2010

Yes, a company can use GPL'd code internally. The main restriction imposed by the GPL is that any source code derived from it or that uses it must also be released under the GPL, but if they aren't modifying or distributing the original GPL code, then they can use the GPLed program.

There are two reasons, as I see it, why one might make code available only for non-commercial use:

  1. The code is to be sold for profit, but one wishes to make it available to individuals and non-profits.

  2. One believes that industry and open source are each others' arch nemeses.

If you fall into category one, my suggestion is to create an open source license that states that this license is only applicable to individuals and non-profits and that any for-profit company must purchase a different license, and create a second commercial license of your choosing for companies. Simply adding a clause to an existing license stating that it may only be used for non-commercial use is perfectly acceptable and valid (although you should take care to make the clause obvious by indicating, for example, that it is a modified version of a given license and not the original license).

If you fall into category two, then I suggest you strongly reconsider your viewpoint. Contrary to the beliefs of the Free Software Foundation, industry and open source are not at odds with each other. In fact, open source projects frequently receive industry sponsorship. When a project is widely adopted in the industry, the companies that use it will frequently contribute both time and money to improving the project, as enhancing the open source project also enhances the industry projects which use it. But projects that are GPL'd will not be adopted by industry. The various projects from the Apache Foundation are great examples of projects with strong industry backing. These projects are commonly supported because the Apache license is friendly to industry, and so many companies use those projects, in turn the companies have a vested interest in seeing the projects improved.