Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

I am choosing a license for my open source software and I've learned about GPL, EBMS and BSD. GPL seems to be most popular one.

The problems are:

  1. Would anybody kindly name a few popular opensource licenses? Since I do not see any EBMS BSD license is popular.

  2. Are there any chart or table that have list out the advantages/disadvantages of using anyone?

  3. Why is the GPL always the license developers choose from, what are its benefits?

share|improve this question
    
what is EBMS license? –  vartec Mar 21 '12 at 16:36
    
EURL should be. Sorry, WTFBL is a good name –  Leo Chan Mar 21 '12 at 17:06
1  
A great resource for determining which license is the right license for you is the very comprehensive, interactive license differentiator, from Oxford Universities OSS Watch. There is even a 'popular' licenses only option. –  Mark Booth Mar 21 '12 at 17:28
    
GitHub recently released choosealicense.com, which I really like. It shows the three most common licenses, explains in plain-text the perms each one gives, and even has a section full of the other big licenses. It's a nice resource, I personally use it all the time when figuring out whether I can use a library or not. –  Nathan2055 Jul 29 '13 at 21:29
add comment

marked as duplicate by maple_shaft Apr 24 '13 at 19:15

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

7 Answers

I went through this when deciding how to release software at my company. I narrowed it down to the GPL, LGPL, BSD, and Apache.

--

The GPL was a viral licence... meaning any modifications to the software had to be released with code if released at all, and any products that rely on it (*sometimes) needed to be released as GPL

The LGPL was similar, but was more permissible with regards to being used in other non-GPL software.

The BSD license is super simple, and to the point. Do anything you want. Don't hold me liable. Keep this notice.

The Apache license is like the BSD license, except it appears to be written by legal professionals in a more modern way (which, sadly, matters). It covers intellectual property ownership and liability issues a little more comprehensively.

--

I wanted no barriers to people using my software, but I wanted the most protection and clarity about who owns it. Free Software is not my religion, so using the GPL was not a necessity. (If you are really adamate about the ideals behind the "free software" movement, then the GPL makes a lot of sense). Note: "Free Software" and "Open Source" have a very different meaning.

I concluded that it would be cool if people used my software for commercial and/or closed source products, and I liked the legal crispness of it, so I opted for the Apache License.

share|improve this answer
    
+1 for understanding that "Free Software" != "Open Source". –  John R. Strohm Apr 24 '13 at 16:53
add comment
  1. A few other popular open-source licenses are the Apache License and X11/MIT License.

  2. Wikipedia has a pretty good comparison of free software and open-source (there is a difference) licenses: http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses

  3. GPL is common amongst large open-source software distributions for a variety of reasons, including maturity, comprehensiveness, and the backing of Free Software Foundation. However, it is a very comprehensive license, and can cause legal compatibility problems if you're going to be distributing your software or using GPL-licensed software in your own. See this chart to get an idea of the trickiness of working with the GPL: http://en.wikipedia.org/wiki/File:Quick-guide-gplv3-compatibility.svg

Your main concern should be how you want other people to be able to use your code, and an attached license is the current method for publishing what people are and are not allowed to do with your software, protecting you from liability if people use your software, and providing a legal grounds enforcing how you want your software to be used.

This is part of the issue with using the GPL and other highly-restrictive licenses, publishing your software with those licenses could possibly prevent people from using your software. On the flip side, very open licenses (like MIT/X11 or BSD) give users lots of freedom, but also don't give you legal recourse if your code is used in a way you don't approve of (like for commercial gain).

share|improve this answer
    
That means my main concern should be 1) Link with code using a different license and 2) Release changes under a different license ? So i need to clarify what open source plugin i have used to implement my work –  Leo Chan Mar 21 '12 at 17:10
    
Edited my response to better answer your question. –  dirk Mar 21 '12 at 21:45
add comment

GPL (copyleft) supporters are indeed most vocal ones. But I wouldn't agree that the GPL is the most popular license, if you actually count how popular software which uses given license is. Consider how many of the following you use every day.

  • Firefox — Mozilla Public License
  • Chrome (Webkit, V8) — BSD
  • Apache HTTP server — Apache License
  • nginx; ligHTTPd — both BSD
  • Eclipse Platform and most apps — Eclipse Public License
  • Python — Python License
  • Ruby — Ruby License or BSD
  • PHP — PHP License
  • SVN — Apache License
  • OpenSSL — Apache License / BSD
  • OpenSSH — BSD

All of above have open source, non-copyleft licenses.

Difference is, that if you create derived work incorporating non-copyleft licensed code, you can choose any license you want for the code you wrote. On the other hand if you create derived work incorporating even a smallest part of copyleft licensed code, whole thing must be licensed under that copyleft license. Hence copyleft licenses are sometimes referred to as "viral".

share|improve this answer
    
BSD is the most popular one it seems that , so what is the main difference between two? non-copyleft : BSD , copyleft : GPL? –  Leo Chan Mar 21 '12 at 17:14
add comment

Beside the good thoughts, Dirk Gadsden, vartec and gahooa shared, I will advocate for popular licenses per se.

If somebody uses your software, and sees: GPL (or BSD, apache, mozilla)-license, he might not need to read it, understand it and accept it, because he already knows it.

If you bundle a product from 4 external libs, all having a different license, reading through all that stuff isn't a joy. Your new Beer-&-Postcard license might be a funny thing, but is one more thing to know. Don't do it.

Popular licenses have been proofread and maybe survived legal battles.

share|improve this answer
add comment

Comparing to other open-source licenses - GPL is most restrictive:

  • To use GPL for your application - you should use GPL and LGPL libraries only.
  • If your application is under GPL - than any proprietary software can not use it (be compiled with) or any part of your application.
  • Commercial software can execute your GPL application, but it there is restrictions about delivery.
  • Several version exists: GPL, GPL v2, GPL v3(significant changes).

Most software of Linux distributions is GPL/LGPL.

BSD, Apache - is less restrictive, and used by huge numbers of libraries.

Note: You can use more than one license. Like, you can publish your app under GPL and additionally sell commercial licenses ("Ext JS 4" library use this approach).

share|improve this answer
add comment

According to The Register in March 2011:

At the beginning of his talk, DiBona said that according to Google's net crawlers, the web now contains over 31 million open source projects, spanning 2 billion lines of code. Forty-eight per cent of these projects are under the GPL, 23 per cent use the LGPL, 14 per cent use the BSD license, 6 per cent use Apache, and 5 per cent use the MIT license. All other licenses are used with under 5 per cent of the projects.

share|improve this answer
add comment

To get started, you really need to decide what kind of permissions you want to give. If you want your project very open with a lax license, go with a BSD or MIT style license. The only difference between those two is that the BSD requires people who distribute your software to keep your name with it, the MIT doesn't. If you want copyleft (requiring modified versions to have the same license), go with the GPL (or the LGPL if you are okay with your software being bundled). These licenses are often called viral licenses because they require forks of your program to be under that same license. They are also the #1 and #3 most popular licenses if I recall correctly. If you want the same kind of protections as the GPL minus the copyleft, look at the Apache License, which is the #2 most popular license and is also used for it's sections regarding patents. Documentation should also be openly licensed, try the GFDL or a Creative Commons license for it.

I don't really know why the GPL is chosen so much. It's quite possible that the Free Software Foundation's pamphlets on copyleft convinced them that is what they needed to do. I take a much more lax approach and license my stuff using the Apache License or the BSD. You could also go in between and choose the LGPL, which provides the same protections as the GPL, but includes the ability for other people to bundle your software without dealing with copyleft. It's generally used for libraries, but other programs like LibreOffice have chosen to use it for it's ability to allow software to be bundled in packages with other software while retaining the copyleft requirement for forks.

I am not a lawyer, this is not legal advice. Blah blah blah, etc.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.