BSD or GPL: Choosing an open source license

Posted by July 4, 2008

If you ever plan on writing an open source program, then you must make an important decision, selecting a program license. Generally for open source programs, there are two main licenses that most developers take into consideration. These licenses are the Gnu General Public License, and the BSD license. This article will explain the fundamentals of each license, and will help you in choosing the right license for your open source project.

The first software license that comes to mind for an open source program is the Gnu General Public License(GPL). Created by Richard Stallman in 1989, the GPL is currently at version 3. The GPL is a restrictive license, which actively enforces copyleft”

The BSD license is a permissive license, allowing more freedoms to the users who wish to use your work in their programs. Using the BSD license, a company or entity can take your program and incorporate into a commercial product, which is not allowed under the terms of the GPL.

The main differences between GPL and BSD licenses

This section is a question and answer section, and will demonstrate the fundamental differences in the GPL and BSD licenses.

‘Question: Who can use my code?’

BSD Answer: When using a BSD license, a company (or a person) can take your code and use it in their own commercial or non-commercial products, and isn’t required to give you credit or compensation for your work.

GPL Answer: Another party cannot use code licensed under the GPL without giving the original creator (for example, you) credit for their work. If a party does decide to use your work commercially, they cannot charge for your work, only for the repackaging of it. An exmaple of this is Cedega, a commercial program for Linux which is a fork of Wine, a Windows compatibility layer for Linux. Since Wine is licensed under the LGPL (Lesser GPL license), Cedega must provide the source code to all the Wine code that they use. They must also provide the source code of any modifications that they do to the Wine source. Although, some of its own code that hasn’t been forked from Wine is licensed under another proprietary license, so that code doesn’t need to be published for the world to see.

Question: So why bother using the BSD license if the GPL gives my code better protection?

Answer: For some developers, simply having their code out in the wild is fine, and they don’t need or care about protecting their code from commercial use. The BSD license also makes it easier for people to create commercial or non-commercial forks of your code if you decide to abandon your project. This reason was a deciding factor for the Apache software group when they chose a BSD-style license for their webserver, who stated, “This type of license is ideal for promoting the use of a reference body of code that implements a protocol for common service. This is another reason why we choose it [BSD license] for the Apache group – many of us wanted to see HTTP survive and become a true multiparty standard, and would not have minded in the slightest if Microsoft or Netscape choose to incorporate our HTTP engine or any other component of our code into their products, if it helped further the goal of keeping HTTP common…”

In summary, choosing either a GPL or BSD license comes down to what you (the developer) intends to do with the code that you use. This document should do an adequate job of presenting you the information on each license, and it is now up to you to weigh in the pros and cons of using each license in your program, and to select the one that is best suited to your needs. Have fun, and good luck working on your project!

If you have any questions or comments concerning this guide, feel free to leave a comment here, at my Blog posting.

Related Posts

Categories : Linux  Tags : , , ,

14 Responses to “BSD or GPL: Choosing an open source license”

  1. Jasper on July 5th, 2008 2:58 pm

    [not legal advice, check it]
    Note that if _all_ contributers _ever_ to a GPL project agree to it,(Handy if you are the sole creator.) you may spread copies with another license. This does not invalidate the license requirement of the versions of already distributed under the GPL, though.
    So in principle you can ask for a buck if they want your source, and still help the free software community. Of course, this prevents you from accepting edits from other persons, who will demand to keep it GPL. Or at least get a share of the profit, and then the problem becomes, how much. I wouldnt do that unless that is very clear.

  2. Thomas Hurst on July 5th, 2008 5:49 pm

    “BSD Answer: When using a BSD license, a company (or a person) can take your code and … isn’t required to give you credit”

    Wait, what? You sure do have to give me credit for my BSD licensed work:

    “The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.”

  3. mario on July 6th, 2008 12:47 am

    I also want to weight in regarding the credit part. The sole and only thing the BSD license does is requiring to give credit.

    The GNU GPL on the other hand, does NOT enforce giving credit. It enforces eternal availability of the source code.
    That the authors copyright notice gets preserved is a byproduct of most local copyright laws. The GNU GPL doesn’t take care of that.

  4. web design on July 6th, 2008 9:03 pm

    They both basically try to preserve freedom. The BSD style licenses give the most freedom to the indivudual, whereas the GPL gives the most freedom to the community as a whole.

  5. DataMan on July 8th, 2008 8:47 am

    Cedega was forked from Wine before Wine was licensed under LGPL so they do not have to provide ANYTHING to the Wine code, although they promised to push any improvements upstream to Wine community but they provide VERY LITTLE if any.

  6. C. Conrad Cady on July 8th, 2008 11:25 am

    >> The BSD license is a permissive license, allowing more freedoms to the users who wish to use your work in their programs.

    I think it would be clearer to use the term “developers”, rather than “users.”

  7. Jack Ripoff on July 10th, 2008 11:47 pm

    “When using a BSD license, a company (or a person) can take your code and use it in their own commercial or non-commercial products, and isn’t required to give you credit or compensation for your work.”

    This is a common misconception about permissive copyright licenses, even though all of them state:

    “Provided that the above copyright notice and this permission notice appear in all copies.”

    So this is actually the only common requirement among permissive licenses: they request that the original author be given credit for their work.

    Just run “strings.exe” in the Windows binaries and you will see the original BSD TCP/IP stack copyright statement.

  8. Rui Miguel Silva Seabra on July 11th, 2008 4:50 pm

    So a guy who practically only knows Microsoft technologies misunderstands licenses that are diametrically opposed to anything he’s used to deal with… and? Does the world end?

    Of course with such misunderstandings it is very hard for someone to make a good choice.

    Sudhir, I recommend you to read many of the Free Software essays at http://www.fsf.org/philosophy/

    Some of your extremely basic misconceptions:

    * attribution
    WTF? The first lines of the BSD claim you must give attribution. Did you read the BSD license or did you just trust someone’s word at Microsoft?

    * commercial vs proprietary
    You don’t know the difference, and this creates absurd statements. Both the GNU GPL and BSD allow commercial usage, it’s only proprietary usage that is forbidden by the GPL

    Finally, you can look at the GNU GPL as a Universal Bill of Rights of All Software Users

    One of the most important tasks of a Bill of Rights is making sure nobody has more power over others, so the GNU GPL establishes a level playing field for all users (regardless of them being also developers or not).

  9. Bookmarks for July 11th « crncosta on August 4th, 2008 5:18 am

    [...] BSD or GPL: Choosing an open source license – If you ever plan on writing an open source program, then you must make an important decision, selecting a program license. This link describe the difference between this two important licenses using a neutral opinion. This entry was written by Carlos Costa and posted on July 11, 2008 at 3:34 pm and filed under en_US. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL. « Bookmarks for July 8th Artigo na PCMaster » [...]

  10. Cherish Phomsoukha on December 9th, 2010 3:26 pm

    Quite a beautiful website. I recently built mine and i was looking for some design ideas and you gave me a few. Did you develop the website alone?

    Thanks

  11. admin on December 9th, 2010 5:23 pm

    Yes , I am the only one Updating and maintaining tis web site.

  12. online payday loans on December 15th, 2010 1:41 pm

    Many thanks for spending some time to talk about this, I find myself strongly regarding it and love learning more on this topic. If at all possible, when you gain expertise, do you mind updating your website with extra information? It is rather useful for me.

  13. payday loans on December 16th, 2010 3:08 am

    To be sure using your thoughts here and i also like your site! I’ve bookmarked it so that I could keep coming back & read more down the road.

  14. Ann on January 5th, 2013 8:46 pm

    “Using the BSD license, a company or entity can take your program and incorporate into a commercial product, which is not allowed under the terms of the GPL.”

    Using GPL code in your commercial product is 100% allowed. The only restriction is that you must also publish your changes to that code.

    Seems pretty fair to me, considering you’re using the hard work of other people and not compensating them in any other way.

Got something to say?