views:

130

answers:

5

Hello! I am very confused as to which open source license I should use for my project.

I am going to tell you what permissions I want my project to have, and someone please let me know which license would be best for me. Here are my desired permissions and specifications:

  • Can be used commercially: Yes
  • Can be used for closed source projects: Yes
  • Can be redistributed for a "price" by someone else: No
  • Is free in price: Yes
  • Changes to source required to be public: Yes

What license would be best for this?

+5  A: 

LGPL will let the binary of your project to be used with closed source projects, but require changes to your program's source to be made public.

Imran
Does it restrict my project's binary and code being sold by someone else?
QAH
@QAH It's not really possible to allow people to use it in a product they sell if they aren't allow to sell it. LGPL get's you pretty close though.
arbales
LGPL permits unmodified versions of your binaries to be distributed/sold with closed source commercial apps. As far as I understand, if they modify your program's source code, then they must release the modified version of your program's code (but their own program can still remain closed source).
Imran
GPL and LGPL allow such licensed code to be sold for money, and there are companies who do this, e.g. Red Hat.
Bill Karwin
A: 

GNU Lesser General Public License is right for you.

Viliam
A: 

Is this a tool or component? If what you are making is a tool, like a compiler or a unit test harness, then GPL would work.

If it is a component or a whole app (whose purpose is to use the app and incorporate changes into it, like a customizable blog or a calendar component), then LGPL is better.

MatthewMartin
+1  A: 

I do not know of any existing license that draws the incredibly subtle distiction between "can be used commercially: yes" and "can be resold for a price: no" -- most non-lawyers would perceive "sold for a price" and "used commercially" to be very VERY close indeed!-) [[I have no ideas how lawyers would spin the subtle thread -- depends on how much you're paying them for this purpose, I guess;-)]]

Alex Martelli
+1  A: 

Your "no redistribution for a price" clause is going to be very difficult to satisfy; I'm not entirely certain what it means, given that you want to allow commercial use, and restricting others from redistributing for a price goes against the first clause of the OSI's Open Source Definition, so by that definition, no open source license could meet your criteria.

If you do want to try to find a license that meets your exact criteria, then GNU has a pretty comprehensive list of licenses and their individual quirks. However, I'd recommend instead taking one of the major licenses (Apache, GPL, or LGPL) that matches your general philosophy and going with it, even if it doesn't match your exact criteria. By doing so, you'll get a stronger and more widely understood license for your project, and you'll be doing your bit against license proliferation. See here for a good discussion of these major licenses' general philosophies and why license proliferation can be a bad thing.

Josh Kelley