views:

255

answers:

8

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.

+2  A: 

Yes a company can use it internally.

The GPL just says a person with the binary can request source. So if only the people with the binary are in the company then only they can request source.

John Smith
I think the position of the FSF is that internal use doesn't count as distribution to the individuals, merely use by the company, so the company doesn't have to release the source to its staff.
Andrew Aylett
But that's not what the GPL says. Also, companies could cheat their way out of the GPL by the following: declare all users "internal" beta testers, so the company won't have to release code for them. IIRC there is a company which tried that trick, but I don't have a citation ATM.
John Smith
+2  A: 

Yes. Google is working that way!

Google is using a custom distribution of Linux internally, even on their server infrastructure. The web server is a derivative of Apache. However they haven't released anything of that outside the company, and the users are accessing this GPL-derivative code remotely: this is allowed by the GPL.

Google has however contributed to a lot of GPL open source projects (including Linux kernel), they just choose what to disclose and what don't. Of course they are forced by the license term to release source code of any GPL derived binary they release.

Lorenzo
This is complete BS. Google regularly contributes to GPL and LGPL software, including Linux, MySQL (http://code.google.com/p/google-mysql-tools/), and Wine (http://code.google.com/opensource/wine.html). They *have* to release changes they make to the Linux kernel for projects like Android. They also [work directly](http://lkml.org/lkml/2010/6/11/412) with the kernel team, which isn't required.
Matthew Flaschen
They didn't release ALL the code that they write and ALL the modifications they do to GPL code, and this is absolutely legitimate as it does not infringe the GPL licence if they don't redistribute it. Google is not a 100% open source company.
Lorenzo
Lorenzo, your answer says "they **never** release they GPL2-derived software."
Matthew Flaschen
You are right... I rewrote that part of my answer.
Lorenzo
+1  A: 

You might try the Creative Commons license chooser. Based on my interpretation of your requirements, it suggested Creative Commons Attribution-Noncommercial-Share Alike 2.0 France.

UPDATE:

To be clear, I'm aware the CC recommend not using their licenses for software, but I thought the OP might be OK with the listed shortcomings.

You might also granting the free licenses on demand, e.g., clearly state that you will make exceptions to the commercial license for individuals and Open Source users upon request. Then, whenever you get a legit-seeming request, give them a one-off license.

Hank Gay
Thank you for mentioning Creative Commons. I have read against using their licenses for software. Never understood why…
EOL
Have a look at this http://wiki.creativecommons.org/Frequently_Asked_Questions#Can_I_use_a_Creative_Commons_license_for_software.3F and you'll know why using a Creative Commons license for for software is not recommended....
Shubh
I think one of the main reasons is that they don't deal with some of the nuances of software such as patents (where applicable), linking, etc. In your case, you explicitly want to disallow *ALL* commercial use, so you *probably* don't need to address these explicitly. If it's something you're really worried about, I suggest finding a *good* IP lawyer, since IANAL (or French).
Hank Gay
@EOL, as stated in Shubhkarman's link, they recommend free software or open source licenses instead. Both free software and open source long predate Creative Commons, and all such licenses allow commercial use.
Matthew Flaschen
Yes that's absolutely correct. They don't mention specific details that must apply to source or object code..
Shubh
They want you to use something like GPL, LGPL or BSD for software instead.
Shubh
+1  A: 

Yes, you can. But you will have to release the entire app under GPL. But if its just used internally, its not a problem as it doesn't matter if other people in your company get your code. You will not of course want to release it to the public. And as of the non-commercial aspect, GPL allows people to sell apps and make money off them but only if they give all the rights they have to the people they give the software to.

Usage of Creative Commons license is not recommended as their official FAQ states: http://wiki.creativecommons.org/Frequently_Asked_Questions#Can_I_use_a_Creative_Commons_license_for_software.3F

Can I use a Creative Commons license for software?

We do not recommend it. Creative Commons licenses should not be used for software. We strongly encourage you to use one of the very good software licenses which are already available. We recommend considering licenses made available by the Free Software Foundation or listed at the Open Source Initiative. Unlike our licenses, which do not make mention of source or object code, these existing licenses were designed specifically for use with software.

Creative Commons has “wrapped” some free software/open source licenses with a human-readable "Commons Deed" and machine-readable metadata. You may use these "wrapped" software licenses to take advantage of the Creative Commons human-readable document as well as the machine-readable metadata while still licensing your work under an established software license. It is important to note that CC has not altered these software licenses in any way, but has simply bundled human- and machine-readable explanations of the licenses along with the original license text. Examples: GNU GPL, GNU LGPL, BSD.

Shubh
+1 for quoting why the CC licenses are not recommended for software!
EOL
+1  A: 

There is no field of use restriction in the GPLv2 - users are free to use if however they like, including for commercial purposes.

The OSI list of licenses includes a reference to the Non-Profit Open Software license that probably fits the bill for what you want but be cautious as other open source licenses, including the GPL may not be compatible with it.

Finally, all software licenses are based on the copyright (and any patents) held in the software by the copyright owner - you can put any restrictions you like in your own license - however, adopting a more popular license means your software is more likely to be used, extended and improved.

Robert Christie
The OSI license you cite looks interesting. Still looking for the part that says "only non-profit uses"…
EOL
Like all open source licenses (see [OSD #6](http://www.opensource.org/docs/osd)), the NOSL *allows* commercial use. The only difference it makes (compared to OSL) is that it's slightly more favorable to the distributor on issues like warranties and liability.
Matthew Flaschen
@EOL - Section 17(a) of the license covers this. It says "Licensor represents and declares that it is a not-for-profit organization that derives no revenue whatsoever from the distribution of the Original Work or Derivative Works thereof, or from support or services relating thereto."
Robert Christie
@cb, @EOL, yes, but another provision says, "Otherwise, You shall distribute or communicate the Original Work or Derivative Works thereof only under the OSL 3.0 license and You shall publish clear licensing notices so stating." So if you aren't a non-profit, you can distribute under OSL 3.0 instead. Both licenses allow commercial use, modification, and distribution. The differences are liability and warranty details.
Matthew Flaschen
+2  A: 

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.

Michael Aaron Safyan
I exactly fall in category "1". Thank you for your lucid comments!
EOL
@Michael, I think you're misstating the FSF's views. To quote the GNU Manifesto, "I would like to see GNU development supported by gifts from many manufacturers and users, reducing the cost to each." That sounds a lot like "open source projects frequently receive industry sponsorship." "Projects that are GPL'd will not be adopted by industry" That's simply absurd. Have you ever heard of Linux or gcc? Some businesses clearly prefer the Apache License, but arguably the first free software business, Cygnus, was based around mainly GPL code. They later evolved to a bit player called Red Hat.
Matthew Flaschen
And of course, the FSF has always considered the freedom to [sell](http://www.gnu.org/philosophy/selling.html) part of the [definition](http://www.gnu.org/philosophy/free-sw.html) of free software.
Matthew Flaschen
If the license is only applicable to certain organizations or people, it is not Open Source. You are certainly free to license your own software under any proprietary license you choose, but don't call it open source when it isn't. See #5 in http://www.opensource.org/docs/osd
retracile
@retracile: good point, about the definition of open source according to the Open Source Initiative.
EOL
+1  A: 

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?

To answer this question: No. This is putting a restriction on use, which is not permitted by the GPL.

Again, you can't do what you want with an Open Source license because you clearly do not want to open source this code. You want to put a non-commercial use restriction on it, which is incompatible with Open Source. That's fine, you can license this under any proprietary license you want, but do not call it Open Source.

retracile
I never called the license I want "Open Source". :) Your remark is very interesting. I was hoping that such a simple license already existed: completely free for non-profit uses (and remaining so even if the code is linked to or is modified), while being able to earn money to the author for commercial uses.
EOL
@retracile: I just noticed that there is yet another problem with the "dual license" that I was proposing: it does not say under what license the code falls if used by a not-for-profit organization if they distribute it…
EOL
+1  A: 

I think you can use a license agreement like ExtJS. It allows people to use ExtJS under GNU GPL if people are ready to release their code under GPL too but if people want to distribute their code under non-GPL license agreements and put up their own License, they must purchase the commercial version of the product. We have to purchase a license of the product for each of our projects separately.

Shubh
+1: This is an interesting example of dual license. However, the ExtJS license does not restrict the conditions of *usage*: you can use the code and make money thanks to it, without any compensation whatsoever for the author.
EOL
Yes, that is correct too.
Shubh