views:

479

answers:

3

What license should I pick on codeplex if I want an open source project? What are the pros and cons on all licenses?

+3  A: 

The choice of license is personal, and depends on how you want your project used.

I would recommend reading up on this at the Open Source Inititive.

In particular, they have a page describing licenses grouped in categories.


Here are some of the more common, by goal:

For encouraging commercial usage of your project, I'd recommend looking at the BSD and MIT licenses.

For encouraging commercial and noncommercial work, but forcing that all users share any modifications to your code, look at the LGPL license.

If you want to force everybody who uses your code to share any modifications, look into the GPL license.

There are many others listed, each with their own significant benefits and downsides... These are just four very common choices.

Reed Copsey
They are not exactly grouped by goals on that page. More like a general "in use"/"superseded"/"not in widespread use" categorization. Doesn't help much for choosing, imho.
Joey
@Johannes Rossel - Good point, I clarified a bit more.
Reed Copsey
+16  A: 

If you want to ensure that anyone who modifies your program or builds on top of your program (by linking to it) should share their changes in the same way that you share yours, you should choose the GPL.

If you want to ensure that anyone who modifies your library share their changes, but allow people to dynamically link to it from a proprietary application, in which they don't share the source with you under the terms you shared it with them, you should choose the LGPL.

If you want to allow anyone to use your code as they wish, with no significant restrictions other than providing you credit, you should use the MIT (also known as X11) license. It is short, simple, easy to understand, and permissive.

If you need to integrate with an existing project that already has a license, you should probably just use the same license. Having everything in one project under the same license makes life a lot easier for anyone who wants to use it. But if you're creating a new project, I would recommend one of the three licenses listed above, since they are widely used, well known so people know exactly what you mean when you mention them, and will make it easier to integrate your code with existing projects. There are lots of other licenses to choose from, but in general, they just make things more complicated and difficult (because they are less well known, because of license incompatibilities, etc) without improving on one of the licenses listed above.

Brian Campbell
+1  A: 

It depends very much on what you want. I'll summarize very briefly, but I recommend reading more in depth on various licenses.

  • GPL: great if you want to share code but you couldn't sleep at night if someone put your code into a commercial product. Con: tons of legal stuff that's almost impossible to comprehend.
  • BSD/ISC/MIT: very minimal license that only retains copyright attribution. Maybe be used is commercial products. Can be understood by common people. Cons: if you care if Apple takes your code then it's not for you (webkit in safari, freebsd userland in OSX).
  • Apache/Mozilla: kind of like GPL, but also protects the brand name. Cons: you can't tweak and still call it by the name you got it.
  • Lots of variations on the above. Cons: nobody knows just what the license means.
dwc
Actually, many parts of WebKit are licensed under the LGPL; Apple is required to allow you to modify WebKit itself, though Safari is proprietary. This is how WebKit nightlies work; you get a new build of WebKit, and run it using your current copy of Safari.
Brian Campbell