Free Republic
Browse · Search
General/Chat
Topics · Post Article

Skip to comments.

BSD or GPL: Choosing an open source license
DevelopersVoice ^ | 4 July 2008 | sudhirmangla

Posted on 07/08/2008 5:49:48 AM PDT by ShadowAce

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!


TOPICS: Computers/Internet
KEYWORDS: bsd; gpl

1 posted on 07/08/2008 5:49:48 AM PDT by ShadowAce
[ Post Reply | Private Reply | View Replies]

To: rdb3; Calvinist_Dark_Lord; GodGunsandGuts; CyberCowboy777; Salo; Bobsat; JosephW; ...

2 posted on 07/08/2008 5:50:02 AM PDT by ShadowAce (Linux -- The Ultimate Windows Service Pack)
[ Post Reply | Private Reply | To 1 | View Replies]

To: ShadowAce

I’m curious, how much does using open source licenses free you from legal responsibilities to support your code?


3 posted on 07/08/2008 6:00:02 AM PDT by z3n
[ Post Reply | Private Reply | To 2 | View Replies]

To: z3n
I don't believe that code requires the same level of support as material goods.

The licenses for code usually allow rights to users that aren't normally allowed by copyright. Each license (including MS' licenses) grants different rights.

4 posted on 07/08/2008 6:18:17 AM PDT by ShadowAce (Linux -- The Ultimate Windows Service Pack)
[ Post Reply | Private Reply | To 3 | View Replies]

To: z3n
If you sell or license something to someone, you have an obligation to provide what you sold or licensed, or to return their money.

In most cases, the licensing agreement promises very little to the purchaser, and software is supported not out of a legal obligation, but out of a desire for repeat business or to maintain a good reputation.

Open source licenses promise basically nothing. They only place restrictions on the user of the code. Accepting those restrictions is the price you pay for using the code.

However in general you only have an obligation to support your code if you explicitly or at least implicitly promise such support. Most companies will explicitly deny any obligation to support their code because our courts have a habit of upholding the unreasonable expectations of idiots as enforceable obligations.

5 posted on 07/08/2008 6:44:07 AM PDT by untrained skeptic
[ Post Reply | Private Reply | To 3 | View Replies]

To: z3n
I’m curious, how much does using open source licenses free you from legal responsibilities to support your code?

Read any proprietary or open source software license, they disclaim even the responsibility for the software doing what they say it does. There is zero claimed responsibility for support in either case unless the author decides to provide it.

6 posted on 07/08/2008 6:50:42 AM PDT by antiRepublicrat
[ Post Reply | Private Reply | To 3 | View Replies]

To: ShadowAce

How about the happy middle ground, the Mozilla Public License. Not anti-commercial, but still with payback. Commercial vendors can include your code verbatim in their products and not have to give any of their code, but any changes to your actual code do have to be published under the MPL.

It’s better than the GPL because it is more free. Anyone will be able to get all published versions of the code for free (if modified, must be released), plus people who use it in their apps have more freedom in how they license their original, non-modification code. There’s never any worry of “If I just link to it, does that make my code a derivative?” (different GPL authors have different conclusions about this).

It’s better than BSD because people won’t legally be able to take your code down a black hole, never to be seen again, effectively making a future version of your free software non-free. With BSD you don’t necessarily get anything back for your work, eliminating the capitalist aspect of open source.


7 posted on 07/08/2008 7:05:47 AM PDT by antiRepublicrat
[ Post Reply | Private Reply | To 1 | View Replies]

To: antiRepublicrat
That was my first thought as well. While the author compares the two most common licenses, I think the MPL and Apache licenses are common enough that he should have included them as well.

I posted this so we'd have an on-line resource when ORT starts claiming that BSD is "better."

8 posted on 07/08/2008 7:18:25 AM PDT by ShadowAce (Linux -- The Ultimate Windows Service Pack)
[ Post Reply | Private Reply | To 7 | View Replies]

To: z3n

Not at all, unless you tell someone you will support their system there is no legal requirement to do so..

RedHat sells support so they must support even though its GPL


9 posted on 07/08/2008 8:10:14 AM PDT by N3WBI3 (Ah, arrogance and stupidity all in the same package. How efficient of you. -- Londo Mollari)
[ Post Reply | Private Reply | To 3 | View Replies]

To: untrained skeptic
Open source licenses promise basically nothing.

A lot of proprietary ones don't either.

They only place restrictions on the user of the code. Accepting those restrictions is the price you pay for using the code.

Many proprietary licenses place serious restrictions in addition to having to pay for the software. A lot of vendors even said you couldn't release benchmarks of their products without prior approval from them. Microsoft and Network Associates have invoked this clause to prevent embarassing results from being published. NA's terms were thrown out in court, and Microsoft has gotten a bit better now for Vista at least: you can release results for any .NET benchmarks but only if you follow their rules, which include the release of your complete source code and scripts used to do the benchmark.

10 posted on 07/08/2008 8:42:20 AM PDT by antiRepublicrat
[ Post Reply | Private Reply | To 5 | View Replies]

To: 21stCenturion

...


11 posted on 07/08/2008 8:58:54 AM PDT by 21stCenturion ("It's the Judges, Stupid !")
[ Post Reply | Private Reply | To 1 | View Replies]

To: antiRepublicrat; ShadowAce
> ... Microsoft has gotten a bit better now for Vista at least: you can release results for any .NET benchmarks but only if you follow their rules, which include the release of your complete source code and scripts used to do the benchmark.

I think that's fine, and in fact I wish -all- benchmark programs had to follow that rule. I have written a lot of test/exercise code, and I know how easy it is to have unintentional bias leak in.

Also, releasing source of the benchmark means that -all- the tested vendors can tweak their code for better results, instead of only the vendor who pays off the benchmark writers. [slight /sarc] The source release requirement can only improve the quality of the benchmark.

I trust proprietary benchmark programs even less than I trust proprietary applications. I use proprietary software when I have to, and I rely on it to a degree every day, but never as much as if it were open.

12 posted on 07/08/2008 5:44:20 PM PDT by dayglored (Listen, strange women lying in ponds distributing swords is no basis for a system of government!)
[ Post Reply | Private Reply | To 10 | View Replies]

To: dayglored
I think that's fine, and in fact I wish -all- benchmark programs had to follow that rule.

It may be nice practice, but it shouldn't be forced. Here the king of proprietary software is telling everybody else to release their code. I don't think license terms for such products should be able to affect your freedom of speech. Boiled down, benchmarks are just "I used this publicly available program and here are my experiences." Courts aren't likely to allow such speech to be restricted or subject to terms, and so far they haven't.

This is of course separate from a private alpha or beta program where you sign an NDA for the privilege of being in on the program, and such NDAs have expirations (usually at the end of the program).

13 posted on 07/09/2008 8:19:13 AM PDT by antiRepublicrat
[ Post Reply | Private Reply | To 12 | View Replies]

To: antiRepublicrat
It’s better than the GPL because it is more free.

I wish people wouldn't say things like this....

Among Open Source licenses there aren't really any that are "better."

More properly, the are different.

The purpose of the GPL is to ensure that the code stays free. The terms of the GPL state that if you take GPL code, change it and then distribute binaries, you have to provide the source code for your changes. This ensures that no one takes the code and locks it up.

There are philosophical differences and some people may disagree with the purpose of the GPL, but it's no better or worse than other licenses.

The purpose of the GPL being to keep code available, it is "better" for that purpose.

If that doesn't interest you, then it's not "better," so using "better" is entirely point-of-view.

14 posted on 07/09/2008 9:50:01 AM PDT by Knitebane (Happily Microsoft free since 1999.)
[ Post Reply | Private Reply | To 7 | View Replies]

To: Knitebane
There are philosophical differences and some people may disagree with the purpose of the GPL, but it's no better or worse than other licenses.

The only problem of the GPL (and I'm talking about GPL2) is that it is ambiguous. You don't know the extent of what's allowed depending on the author.

By more free I meant the balance between the producer and consumer, maximum freedom to both parties without conflict. You want to make sure the actual code stays free, which GPL does and BSD doesn't. You want to make sure the consumer has maximum rights, which BSD does and the GPL doesn't. The MPL balances this perfectly IMHO: the code itself and modifications to the code itself remain free, and consumers get maximum rights just short of violating the freedom of the code. Depending on the author, the GPL may mean that more than just the original code and modifications must be made free, such as software that only links to the original code.

It's not that the GPL2 is bad, I just don't like the ambiguity that can lead to overreaching. And I hate overreaching in licenses.

15 posted on 07/09/2008 10:42:44 AM PDT by antiRepublicrat
[ Post Reply | Private Reply | To 14 | View Replies]

To: antiRepublicrat
The only problem of the GPL (and I'm talking about GPL2) is that it is ambiguous. You don't know the extent of what's allowed depending on the author.

???

The GPL is the GPL. Either your code is under the GPL or it isn't. The requirements are spelled out in the license.

The MPL balances this perfectly IMHO: the code itself and modifications to the code itself remain free, and consumers get maximum rights just short of violating the freedom of the code.

That's kinda like balancing between the right to keep and bear arms and sensible gun control. You can't have one and still have the other.

If you want your code to remain available then letting the end user decide what to publish and what not to is not a balance.

If you want the maximum penetration of your software then putting any restrictions on what the end user can do can prevent that.

There are different reasons that people use Open Source licenses. That's why there are different licenses.

Pick the license that fits your philosophy and use it. Respect the right of other users to use a license that fit's their philosophy.

The MPL fits a different group than either BSD or GPL. And that flexibility, that ability to pick a license and have it do what you want is what matters.

The BSD license gives maximum freedom to the user at the expense of the freedom of the code. The GPL gives maximum freedom to the code at the expense of putting restrictions on the user. The MPL takes a little freedom from both sides.

So, depending on how much you care about where you want the freedom to be, different licenses are more suitable for that purpose.

The license you pick may be "better" for your purposes. That doesn't make it "better."

16 posted on 07/09/2008 11:22:53 AM PDT by Knitebane (Happily Microsoft free since 1999.)
[ Post Reply | Private Reply | To 15 | View Replies]

To: Knitebane; Golden Eagle
The GPL is the GPL. Either your code is under the GPL or it isn't. The requirements are spelled out in the license.

I'm mainly talking about linking to GPL code. Some authors consider doing that as making the whole product a derivative work, some don't, some like Torvalds with drivers think your driver is derivative if it requires Linux (written for it, not a non-GPL port). Not all authors agree about the meaning of "derivative," thus the ambiguity. A license shouldn't be ambiguous.

If you want your code to remain available then letting the end user decide what to publish and what not to is not a balance.

With the MPL the author is required to publish all of the original MPL code including any modifications to that code. The user has no choice. This is exactly like the GPL, the code will remain free. The difference is the clear delineation between what is derivative and what isn't. Any code you write outside of the original MPL code is not considered derivative. Basically, it codifies the intent of many GPL authors and disagrees with others.

Pick the license that fits your philosophy and use it.

I dislike philosophy in software. It leads to radicals like Stallman and our resident troll (sorry, courtesy means I have to ping it). I would say pick what best fits your situation, BSD, GPL, MPL or even proprietary. But unless you're planning to make your own code GPL when using GPL code, I'd check with the author first about his intent if it isn't already known.

17 posted on 07/09/2008 12:02:16 PM PDT by antiRepublicrat
[ Post Reply | Private Reply | To 16 | View Replies]

To: antiRepublicrat
I'm mainly talking about linking to GPL code. Some authors consider doing that as making the whole product a derivative work, some don't, some like Torvalds with drivers think your driver is derivative if it requires Linux (written for it, not a non-GPL port). Not all authors agree about the meaning of "derivative," thus the ambiguity. A license shouldn't be ambiguous.

No, it's not ambiguous. All you have to do is go read what the writer of the GPL said.

Does prelinking a GPLed binary to various libraries on the system, to optimize its performance, count as modification?

No. Prelinking is part of a compilation process; it doesn't introduce any license requirements above and beyond what other aspects of compilation would. If you're allowed to link the program to the libraries at all, then it's fine to prelink with them as well. If you distribute prelinked object code, you need to follow the terms of section 6.

But unless you're planning to make your own code GPL when using GPL code, I'd check with the author first about his intent if it isn't already known.

Unnecessary. Code under the GPL is bound by the rules that the writer of the license says, not what the author wants them to say.

18 posted on 07/09/2008 12:07:38 PM PDT by Knitebane (Happily Microsoft free since 1999.)
[ Post Reply | Private Reply | To 17 | View Replies]

To: Knitebane
Does prelinking a GPLed binary to various libraries on the system, to optimize its performance, count as modification?

Notice the fact that this clarification is in a FAQ, not clear through the license itself. But if such linking is allowed, why do we have the LGPL which is basically GPL plus allowed linking?

Code under the GPL is bound by the rules that the writer of the license says, not what the author wants them to say.

We've already seen how Linus Torvalds disagrees.

19 posted on 07/09/2008 12:34:16 PM PDT by antiRepublicrat
[ Post Reply | Private Reply | To 18 | View Replies]

To: antiRepublicrat
> It may be nice practice, but it shouldn't be forced. Here the king of proprietary software is telling everybody else to release their code. I don't think license terms for such products should be able to affect your freedom of speech. Boiled down, benchmarks are just "I used this publicly available program and here are my experiences." Courts aren't likely to allow such speech to be restricted or subject to terms, and so far they haven't. ... This is of course separate from a private alpha or beta program where you sign an NDA for the privilege of being in on the program, and such NDAs have expirations (usually at the end of the program).

Good points.

I guess I wasn't really thinking in absolute terms. I don't think you should be absolutely restricted from publishing benchmark results without source. But if you don't publish source, you should not be able to claim the results are necessarily meaningful to anyone else (for example, in a review).

I've been burned by benchmarks more times than I can count, usually as a design engineer trying to evaluate my own design, and finding out much later that the benchmark was "tuned" for a competitor's product...

20 posted on 07/09/2008 9:53:20 PM PDT by dayglored (Listen, strange women lying in ponds distributing swords is no basis for a system of government!)
[ Post Reply | Private Reply | To 13 | View Replies]

Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.

Free Republic
Browse · Search
General/Chat
Topics · Post Article

FreeRepublic, LLC, PO BOX 9771, FRESNO, CA 93794
FreeRepublic.com is powered by software copyright 2000-2008 John Robinson