Selecting a Software Licence? 123
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?"
Licensing 101 (Score:4, Insightful)
If you want to open source it, use the GPL and offer a commercial license opt-out. If you use the BSD, no-one will pay.
Do not accept any contributions unless people are willing to transfer (c) to you, or you cannot relicense your work.
Do not use GPL libraries, only BSD-licensed ones, or you cannot relicense your work.
If you are a team or company that does not want to make money from the software, license it under the BSD or Apache license.
Re:Short version: (Score:3, Insightful)
Re:Junior achievement. (Score:5, Insightful)
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.
License Ramifications (Score:3, Insightful)
There are really two big open source licenses, along with many that are similar or slight modifications thereof:
Otherwise, keep the license closed and license it specifically to other individuals and groups for $20 a head and provide it like a traditional, commercial product.
Re:Short version: (Score:3, Insightful)
Many corporate shops I've worked with avoid GPL'd code, because they want the option of selling the product they make. They may never exercise that option, but they want it.
Public Domain? (Score:3, Insightful)
Re:License Education (Score:3, Insightful)
I like to think of it in terms of slavery. Let's imagine you're the supreme leader of your own country. The people of the country are asking you, "Is Slavery allowed in this country?" You have a couple of choices.
You can be pro-slavery, or anti-slavery. A slavery supporter would state that everyone has complete freedom in your country, including the freedom to enslave others. An anti-slavery supporter would say that personal freedom must stop when it violates the personal freedom of another being -- you can do whatever you want, except deprive another of their freedom.
The "complete freedom" is akin to a BSD-type license -- I grant you the right to do anything you want, including take my software, distribute it, and deprive other people of the freedom and rights that I originally granted to you. The only thing the BSD license really prevents is a lawsuit against the original author, by claiming that he is not liable for the software. (That's why the BSD license is better than releasing software into the public domain, by the way)
The "restricted freedom" (ie. no slavery) is akin to the GPL -- I grant you the right to do a lot of things, but you cannot take my software, redistribute it, and not give other people the same rights that I gave you. All people have the same access to source code that the first distributer had.
Personally? I like them both. It depends on what you want to do with your software. If I want something to be widely used, I'd go with a BSD license. If I believe that it could be a huge benefit to a big company, I'd say that a GPL license would prevent them from taking it, making money off it, and not giving back to the community. They could take it and make money off it, but everyone would benefit from their changes if they're redistributing the software.
Re:Short version: (Score:5, Insightful)
Funner version:
Public Domain: You want anyone to use your code free of restrictions. Nobody knows what you wear or what you eat. Your code is for simple binary trees and is published in University textbooks.
BSD: You want anyone to use your code, but not to blame you for it. You have medium hair and a T-shirt. Someone paid you less than minimum wage to write the code, and you use the money to eat at McDonalds. Your code is the TCP/IP protocol and is widely adopted and ubiqutous. Linux people think you're dead.
GPL: You wish everyone would use your code and share their modifications with the world. The only people who end up using it are Linux fanboys. You have long hair and a poncho. You spurn money and instead grow potatoes on your commune. Your code is the fourth non-completed conversion of an IBM PC game from the 1990s listed on sourceforge.
LGPL: You wish you could use the BSD licence, but are afraid the other people on the commune will throw potatoes at you.
Any other Licence: You either fail to realize that all other licences are basically the same as the BSD or GPL licence, or you contribute code to a project that has the same problem. You wear whatever everyone else wears and eat pasta because you heard it was "trendy." Your code calculates the phase of the moon on any past day using the Julian calendar because you can never remember the rules for converting from the Gregorian calendar.
Re:License Education (Score:3, Insightful)
I respect the person, but not the view. Though, I wouldn't have a problem with the GPL if this clause was more along the lines of, "must use another OSI approved license" rather than "must use the GPL" i.e. there are less a**hole ways to keep things open source. To me, the GPL wreaks of arrogance.
But, I don't believe that most people that choose the GPL actually understand what it means. I mean, I've seen *a lot* of fud out there. Also, from what I've seen, *a lot* of developers think that open source == GPL. So, they choose it by default. And GNU/FSF aren't exactly speaking up on this issue as these misconceptions work in there favour.
Another problem that I have with the GPL is it creates and was born out of the "us v.s. them" mentality. This doesn't exactly breed a non-adversarial environment.
Again, there