Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

i want to publish my software under a opensource license with the following conditions:

you are allowed to:

  • Share — to copy, distribute and transmit the work
  • use a modified version of the code in your application

you are not allowed to:

  • publish modified versions of the code
  • use the code in anything commercial

Is there a software license out there that fits my needs ?


share|improve this question

closed as off-topic by GlenH7, MichaelT, World Engineer Nov 20 '13 at 1:23

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – GlenH7, MichaelT, World Engineer
If this question can be reworded to fit the rules in the help center, please edit the question.

Pardon my sincerity, but these terms seem a bit silly to me. What's the point of using modified code in my application, if I cannot publish it? That's hardly open source. – Mchl Dec 29 '10 at 23:32
Couldn't you create your own copyright license ? I think that would be better. – kadaj Dec 30 '10 at 4:38
You want that your software will be used only for noncommercial projects, who don't distribute any source? – Konstantin Petrukhnov Dec 30 '10 at 10:39
I think zie'll have to. I'm unaware of any license which allows you to create derviatives but not to share them, which is what zie is asking for. – TRiG Jul 13 '11 at 15:39
Even worse, writing your own license is evil. There are enough incompatible licenses already. Don't make everybody get a lawyer because they need to check that they can use your work under yet another license! – Jan Hudec Nov 19 '12 at 13:36

Your conditions are not "open source" so you will not find an open source license that has those conditions. Specifically, disallowing the publishing of modified versions of the code makes it impossible to incorporate your code into other open source projects. As an example of this, many Linux distributions will make modifications to libraries and applications so that they fit the distribution's naming or other conventions. If you disallow the re-distribution of modifications, then such changes will not be possible.

I also don't know of any open source license which explicitly prohibits commercial applications. Most commercial software is also proprietary, and it's typically the proprietary nature of it that precludes the use of many open source libraries.

So if you really want those conditions, then I'd say you'll need to find a lawyer to write a custom license for you.

share|improve this answer
As an additional note, some companies (like Mozilla) provide their software with a free license, but they forbid distribution of modiefied versions using their brand names. – Bart van Ingen Schenau Dec 30 '10 at 15:59
No OSI-certified Open Source license (or FSF-approved Free Software license) will restrict commercial use, although some licenses are incompatible with some business models. None will prevent redistribution of modified code. Since "Open Source" is not trademarkable, it is probably legal to describe a no-modification no-commercial-use license as "open source", if not done for fraudulent purposes. – David Thornley Dec 30 '10 at 16:02
A reasonable lawyer could argue that "Open Source" is not a trademark, but a description with established meaning. In that case, describing your application as Open Source could cause estoppel. (it's a promise, users may rely on it, but the non-commercial clause would be a legal detriment to the promise) – MSalters May 2 '11 at 12:53
You can create a custom code, stating that it's shareable, modifiable, non-commercial license, but just as what others said, it's not an Open Source license :) – OnesimusUnbound May 6 '11 at 3:37

The CC-NC-ND (Creative Commons - non-commercial - no derivates) license would fit your model.

But keep in mind that a "non-commercial" clause in a license is often much more restrictive than intended. "Not anything commercial" can also mean, for example:

  • It can not be added as a freebie on something which is sold (like a DVD of freeware which comes with a magazine)
  • It can not be bundled with something which might be used commercially (like a Linux distribution)
  • It can not be offered for download on a website which has paid advertising
  • It can not be used to practice a skill and then apply that skill commercially
  • It can not be used by non-profit organizations which perform commercial activity to cover their costs (this could even include collecting donations).
  • Commercial media is not allowed to review it, because testing it to write an article about it would also be commercial activity.
  • When someone uses the software for creative purposes, they effectively lose their copyright (when they have no way to monetize their work, they have no reason to demand reimbursement when people use it unauthorized)

You didn't say anything about what your software actually does and what's your motivation for creating and distributing it. So I can't say which of these points apply or don't apply to you.

share|improve this answer
Creative Commons License use to license non source code, for example content like image, sound, and soon. – Shokatsuryō Aug 15 '15 at 5:52

At least in the United States, a copyright license cannot restrict use. In the United States, anyone who possesses a lawful copy of a work may use it for whatever purposes they please, including commercial ones. (Assuming they aren't commercially distributing or performing the work.) See 17 USC 106 and notice that none of the rights have anything to do with ordinary use.

So you would have to do this with an EULA or contract.

But something seems odd to me. How are you supposed to use the code in a non-commercial project if you can't publish modified versions?

share|improve this answer