BSD or GPL: Choosing an open source license


Recommended Posts

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 seQuestion: 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, or stop by our IRC channel, irc.freenode.net in #law

Umm, I'm no expert (by any means), but I think what you described for the BSD license is really more a description of Public Domain. If I'm not mistaken, I believe there is a restriction placed on the BSD license and it's variants. That is you must give full credit to the original authors, but may make a fork under any comaptible license (i.e. transfering to a more restrictive license such as the GPL, or a proprietary license of your choice) so long as you point out who the original code came from.

But hey, I've been very wrong in the past, so who knows ;)

Edit: Okay I looked it up, (smart, I know ;)) We were both right, I'm thinking of the 4 clause license, and you the 2/3 clause license. Hehe

Edited by mitch00

hmm AFAIK anyone can charge as much as they want for your GPLed code, and go as commercial as they want as long as they don't change the code's license:

  Quote
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
  ichi said:
hmm AFAIK anyone can charge as much as they want for your GPLed code, and go as commercial as they want as long as they don't change the code's license:

I thought you were allowed to charge for it, but you also had to provide it for free as well. So usually they bundle support with it and what not in the paid for version.

There are a number of errors in your text. First, at the first question "who can use my code" the answer is the same for both licences. Everyone can use code licences under an open source licence. This is one of the definitions for open source. The difference is in redistribution of modified code. With either licence anyone (commercial or non-commercial) can take the code, use it, modify it, and use it again, even making huge profits with it (see Google). When you want to redistribute it the licence comes into play. With GPL the modified code must also be GPL, with BSD it can be a different licence. A fine distinction, but these things matter.

Cedaga is not licensed under de LGPL. It was indeed forked from Wine, but before it had the LGPL licence but the X11 licence.

With the question "So why bother using the BSD license if the GPL gives my code better protection" there are also some errors. First, GPL does not protect against commercial use. You may sell GPL licensed code for any price you want, as long as you also distribute the sources for free. This makes it almost pointless to ask money for GPL code, but it can be done (e.g. Suse and Red Hat).

The main difference between GPL and BSD is in your definition of freedom. For BSD is that anyone can use your code for any purpose and do with it as they please. For the GPL freedom stands for making sure the code, and improvements on the code always stay free.

  Pc_Madness said:
I thought you were allowed to charge for it, but you also had to provide it for free as well. So usually they bundle support with it and what not in the paid for version.

No, the only thing you're forced to provide at no cost is the source (that's where you can only charge for repackaging), and only to those getting the binaries.

Anyone purchasing your GPL product can redistribute it for free at any time, but you aren't required to do so.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I am just messing with you. Anyway, no one made the argument that wasn't the case so no problems.
    • NTLite 2025.07.10541 by Razvan Serea NTLite is a Windows configuration tool that allows you to modify your existing Windows install or an image yet to be deployed, remove Windows components, configure and integrate, speed up the Windows deployment process. Reduce Windows footprint on your RAM and storage drive memory. Remove components of your choice, guarded by compatibility safety mechanisms, which speed up finding that sweet spot. Windows Unattended feature support, providing many commonly used options on a single page for easy setup. Easily integrate a single or multiple drivers, update or language packages. Package integration features smart sorting, enabling you to seamlessly add packages for integration and the tool will apply them in the appropriate order, keeping hotfix compatibility in check. One of the important new features of NTLite (compared to its predecessors) is the ability to modify an already installed the operating system, by removing unnecessary components. Supports Windows 11, 10, 8.1 and 7, x86 and x64, live and image. Server editions of the same versions, excluding support for component removals and feature configuration. ARM64 image support in the alpha stage. Does not support Checked/Debug, Embedded, IoT editions, nor Vista or XP. NTLite 2025.07.10541 changelog: Upgrade UI: Accessibility improvements, e.g. ribbon and page refocusing on Alt, status readout UI-Translation: Thanks for Hungarian (John), Italian (clarensio), Russian (RDS) Fix Components: Edge Canary initial start crash after removing WLAN and Autopilot together Download: NTLite 64-bit | 21.5 MB (Free, paid upgrade available) Download: NTLite 32-bit | 19.3 MB Link: NTLite Home Page | NTLite Features | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • I have the money, so I could've done that, but I also just spent nearly $2700 [Canadian] on a laptop, so I wanted to save money.
    • I wonder how would this machine perform with Linux on it, like Ubuntu or Fedora?
  • Recent Achievements

    • One Year In
      Schwarzenbach earned a badge
      One Year In
    • Collaborator
      NullReference earned a badge
      Collaborator
    • Dedicated
      John Volks earned a badge
      Dedicated
    • One Month Later
      KenKay earned a badge
      One Month Later
    • Week One Done
      KenKay earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      664
    2. 2
      ATLien_0
      250
    3. 3
      Xenon
      178
    4. 4
      neufuse
      153
    5. 5
      +FloatingFatMan
      126
  • Tell a friend

    Love Neowin? Tell a friend!