Selecting a Software Licence?
indraneil asks: "I am a code monkey and have been so for close to 5 years now. I have recently been doing some self-started work that lets me design, implement and test stuff all by myself. A couple of people have liked my prototype and wanted to use it. I would be happy to let others use it, but I am unsure of what license to release it under. My CS course did not include any awareness of licensing and while I am aware of GPL, LGPL, Apache, BSD and Creative Commons licenses, I never got around to understanding them well enough to be able to form an opinion on what suits me best. I notice that SourceForge also expects me to specify my licensing choice, while I am setting up my project. If a person doesn't know about software licensing, where should they educate themselves about the ins and outs, so they can properly choose the license that is right for their project?"
The short version:
BSD: Anyone can use your code, any way they want, as long as they mention your name.
GPL: Anyone can use your code, as long as they mention your name and allow others to use the code as you have let them use it.
LGPL: Same as GPL, but with some exceptions allowing others not to be bound to your licence if they don't actually touch your code in their project, but just use it.
Other licenses have variations on the above. In general I think most people should stick to one of those three, if for no other reason than to stop the confusion.
Pick the philosophy you like the best. That is the main point.
'Sensible' is a curse word.
I find it hilarious that the OP asked how to educate him/her-self on this topic and immediately there are lots of post recommending a license (overwhelmingly the GPL); this is NOT what the OP asked for.
/you/ want, read the licenses. This site:
@OP:
If you want to educate yourself on what licenses would be appropriate for what
http://opensource.org/
has a TONNE of them.
The most common are the BSD, MIT, MPL, Apache, GPL and LGPL. That is according to sf.net. Please note that there are licenses that don't just protect you, but seriously effect how others can use your work. Please consider this as well when choosing your license.
To add in my personal opinion, I *really* don't like the GPL. What it does is FORCE other developers that use your work (whether dynamically linked to or not) to use the GPL as well. My personal opinion is that as a developer, I don't have the right to choose the license of someone else's work. There is of course the argument that the developer just shouldn't use your work. But, IMO, that is a non-argument as in some areas there really is only one or two real options.
At any rate, agree or disagree. That's just my opinion.
This AC post is right -- you are going about this backwards. Your first question should not be "what license do I use?", it should be "what do I want to happen to my code?" Sit down and decide whether you want to give away the source code or not, whether you want to allow others to modify the code, whether you want to require modifications to be released to the public, and anything else that you think is important.
Once you've done that, picking a license is pretty straightforward. People have already posted links to a bunch of different places that compare licenses. Unless your requirements are pretty unusual, you should be able to find a license that matches them.
How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?