Feature:GPL vs BSD
The following was written by Slashdot reader Joe Drew
The GPL vs the BSD License: A GPL advocate's perspectiveRecently, there has been a lot of anti-GPL sentiment in the BSD camps. A cynic would say that they are simply jealous over the GPL's (and Linux') success; however, with a careful examination of reality one notices that the BSD license is no less, perhaps more successful than the GPL, and the BSD variants are thriving in their own niches. So why the anti-GPL sentiment? Personally, I believe it's two things.
- BSD advocates are maybe just a little, tiny bit bitter over the fact that Linux is perceived to be more successful than BSD. Everyone with his head screwed on straight knows that neither of these two factions are going away, but nonetheless, there may be some resentment there. By creating awareness of their OSen, they can draw attention to it.
- Some BSD advocates mistake the anti-proprietary slant to the GPL as pro-communist or anti-capitalist, both of which are blatantly foolish and incorrect.
The GPL exists because Richard Stallman, rms, wanted to ensure the freedom of software forever. Free Software, of all its types, thrived then and thrives now; however, the GPL is one of the only licenses which guarantees that Free Software cannot become non-Free. This doesn't mean that money can't exchange hands over Free Software, only that it can't become proprietary.
When using the BSD license, your software is just as Free as when you use the GPL. However, a company can take your code, incorporate it into its own proprietary product, and (depending on the type of BSD license, with or without advertising clause) you can receive no compensation for your work, perhaps not even credit. If that's exactly what you want, then the BSD license is for you. However, it seems just a little bit dangerous for a lot of Free Software authors.
This isn't possible with the GPL. It's always there, blatantly in your face, telling you ``You may not use this code in proprietary ventures.'' If a company takes your work, repackages it and sells the repackaging and service for it, your code is still available. It isn't legally permissible for them to take your code, incorporate it into another product and sell that product.
The BSD license is a fine license. It does exactly what it's meant to do, which is get the software out there. For a lot of Free Software authors, that's exactly what they want. However, for some people, that's not good enough -- they want to give everyone the freedom to do with the code what they will, but they don't want to give people the right to make the code proprietary.
The GPL is very popular, and very effective, because it protects people's Free Software, while still allowing them the freedom to do with it essentially whatever they want. Many people make a living selling and creating Free Software; this number will only increase as its benefits become more publicised and well-known.
The bottom line is, the GPL is not anti-commercial or anti- capitalistic; it is only anti-proprietary. The BSD license, on the other hand, is very unrestrictive, and allows proprietary knockoffs. Which you choose depends on what you need and what you value. There's nothing more to it than that.
The flip side of your argument is that the GPL is less free than the BSD license. The BSD license retains the freedom to incorporate the code into proprietary products, and that's a freedom which the GPL does not allow.
The *real* disagreement between the two camps is over whether that's a good thing or a bad thing.
I was all set to write a long essay in response, but most of the readers here would probably just appreciate a summary:
The GPL license is conducive to liberating software.
The BSD license is conducive to liberating people.
With the GPL license, the software maintains more of the freedom than the programmers who work on it.
With the BSD licenses, the programmers maintain more of the freedom with what they are allowed to do with derivative code.
You can't technically release BSD code under the GPL. You can, however, incorporate BSD code into a GPL'd project, because there is nothing in the BSD license which says you can't put more restrictions on it, and the BSD license without the advertising clause is 'compatible' with the GPL in that it doesn't place any other restrictions on the source code. Such is the case with some drivers and bits in the Linux kernel; parts of it are under the BSD license, but the kernel as a whole is distributed under the GPL.
I sort of wish Rob had told me he was going to post it :) ; I would have reviewed it and changed this. I meant it to say that it cannot be incorporated into a proprietary product and sold - and I am very aware of the difference - but unfortunately I didn't write it that way in its current incarnation.
license. However, we don't live in a perfect world so... the guarantees of freedom and source code availability of the GPL are a neccessity.
I respect the ideals and the skill of the BSD people but they are being robbed blind by the corporate element! The BSD folks strive to have complete freedom and the very best code! They will never have the very best code because everyone else will have it too! This situation is probably their aim and if it is... it's working. They are selflessly advancing the state of the art. I'm sure that Bill and Steve appreciate it!
I vote for the GPL because the GPL protected codebase becomes a living thing that constantly improves. It survives the demise of it's creators and is not dependant on any one entity for it's livelihood.
The BSD license provides for a public good that is consumable; the GPL license provides for a public good that is durable.
Codifex Maximus ~ In search of... a shorter sig.
Stricly speaking, I thought they could do just that - as long as they released the new code as Free Software in the same sense. As the author states elsewhere, it keeps it from becoming their intellectual property in any real sense.
Not meaning to nitpick, just hoping to clear up some confusion.
Charlie
I originally didn't like linux because I first started with BSD based systems (SunOS). But linux eventually won out because of more drivers, some more BSDish userland tools, and the fact that it's a level playing field. The last part is due to the license.
Joe Schmoe and Company X are on equal ground with the GPL. Anyone makes a change, everyone gets to see it. No "Embrace and Extend" for Linux and the GNU utils.
Contrast this with past experience with X and BSD. The Open Group almost took over a decades worth of patches and contributions and restricted their availability. They stopped, but they could do it again. Sun made changes to the BSD base of SunOS - the BSD community didn't get those changes back. BSDI has done the same, though they're pretty good about feeding back patches from what I hear.
The GPL makes people be kind, benevolant dictators. RedHat's recent IPO said they needed to keep the good will of their users/developers - when has any company ever said that in their IPO? The BSD License just assumes people will be good citizens of developerland. Don't get me wrong, I like that assumption more, but experience shows the GPL is needed for the morally challenged.
As for Microsoft BSD, it's quite possible. It's very possible. And they can easily make it incompatible with the other *BSD's and Linux. And if they get their way wrt the US Universal Product Code, they can even stop people from reverse engineering the results. So they'll be able to build off of the ideas free software developers create without having to share those ideas back. And we'll be back to reinventing the wheel all over again.
US Citizen living abroad? Register to vote!
GPL encourages reinvention of the wheel, not BSDL. GPL code is off-limits to a developer creating a product, thus forcing him to possibly reinvent the wheel when he could have simply used the GPL'd code and not necessarily given away *HIS* code. You have no right to exercise rights over *HIS* code.
The original author, who is the copy(right|left)
holder, can do whatever he pleases, including
putting it into a proprietary system. Nobody ELSE
can do that, and it's an important distinction.
GPL is all about redistribution.
The original author can release the same code under multiple licenses.
-fb Everything not expressly forbidden is now mandatory.
Here is an interesting quote from Pedro F. Giffuni, at deamonnews
"I arrived, however, to two important conclusions:
1.the GNU Public License will not save the world,
2.there shouldn't be a universal license; different situations require different licenses."
Both Joe Drew and Pedro F. Giffuni are very biased towards their favorite license in their discussions.
I think it is very shortsighted to think that all software should be licensed under one system, whether its GPL, or BSD.
Authors have the freedom to choose whatever suits their needs or desires, as long as they have a clear idea of what they want for their code's future. How can GPL or BSD be better and more "right" than the other when they both have very different purposes?
There's a pretty good article discussing some of the short-comings of GPL in this month's daemonnews from the view of *BSDers.
It seems to me like the main difference between the two licenses is that one gives you enough freedom to screw yourself over, while one tries to protect you from that, even if it seems like it is infringing a bit on the freedom you'd want as a developer. It seems like that's the source of a lot of anti-GPL angst.
Couldn't Microsoft ship a GPL XFS as an installable file system for WinNT? Of course they would have to ship the source code, but they already do that for things like Perl.(Perhaps I am confused on the GPL and what it means to 'link' to GPLed code.)
Anyways, I'm not sure if XFS has been GPLed. It could be another licence.
--
Business. Numbers. Money. People. Computer World.
. . . it seems unfair to frame the debate in GPL terms, from the GPL point of view, and I think the essay above drifts off in that direction a bit. Even if it were perfect, though, I really can't see how it could result in anything but yet another moronic flamewar.
So why bother? As the man says: Choose your favorite. I know it's heretical to say this on Slashdot, but choice is a good thing. Being able to choose between GNOME and KDE is a good thing; being able to choose between BSD and Lignux (or between Linux and Lignux, for that matter
"Once a solution is found, a compatibility problem becomes indescribably boring because it has only... practical importance"
"Christianity neither is, nor ever was a part of the common law." --
Well, as usual, most folks appear to have missed one of the key points that makes the BSD license do so much good for the world. The BSD license, by allowing people to use its code in commerical products, promotes commercial products following open standards.
The classic example is TCP/IP. There are a lot of commercial products out there using the Berkeley TCP/IP stack, and one of the big reasons for that is that it's cheaper than developing their own protocol stack or even buying one. The value we see from this is the network effect; that a device communicates using the Berkeley TCP/IP stack rather than Novell's IPX stack or Microsoft's networking stack benefits all of us, because we can much more easily communicate with it (even, perhaps, in ways that the author did not intend).
Open standards are even more important to freedom for computer users than open source. (Having source code is nice, but it's not much good if it doesn't permit you to interoperate with other platforms out there. Linux is popular because it talks to other computers.) Therefore, I'd say that the Berkeley license has done more than any other licence to bring us to the state today where we have a lot of freedom in our computing choices.
cjs
The world's most portable OS: http://www.netbsd.org.
You see, I believe one of the best liscences out there is the "lesser" GPL, which was completely ommited in this comparison. The lGPL gives ALL software writers freedom to integrate libraries and programs into proprietary code, but those lGPL'd libraries and programs must still be freely availiable from the software writers in source code form. In other words, both proprietary-nonGPL'd software and free software benefit. Free software like Gtk+ can gain much greater support, and as more proprietary software houses jump onto the linux bandwagon, they will have things to add to and improve in Gtk+ itself. ;), it seems to me that the GPL actually is more geared to "free beer" rather than "freedom". :)?
Straight GPL has always beeen to restrictive in this area. GPL'd (not lGPL) libraries and programs can not be used IN ANY WAY in proprietary software. The GPL is for the advancement of "free" software, but only for "free" software authors. If it can't be used to help everyone, including evil proprietary coders
Isn't it time we re-name the "lesser General Public License"
There's more to freedom than openness, though. This is the whole Open Source thing: is it enough to be able to see the code, or do we also need the rights to modify the code, distribute modifications, and incorporate it into other projects (other free projects, if GPL'd; other closed projects if BSD licensed).
Your right to not believe: Americans United for Separation of Church and
GPL'd code isn't off-limits if you are creating a product. Plenty of people create products with GPL'd code - RedHat, for example. Now if it isn't a GPL'd product that you are creating, then you may have some problems.
Your hypothetical developer doesn't need to reinvent the wheel, as long as he is willing to help out other developers by making his code GPL'd the same way that those developers helped him out originally. But this doesn't force that developer to do anything, it just allows them the choice: spend time reinventing the wheel, or else use GPL'd code and contribute a little back to the GPL code base which you are graciously allowed to use by its authors.
This way, the GPL will prevent the reinventing of whatever your developer is working on - since he has to GPL in order to use other GPL'd code (saving him time), later on someone else can use his code (saving them time). Net result: increased code reuse, faster cycle time, and code quality improves more quickly, which is what RMS and the Free Software Foundation wanted in the first place.
Your right to not believe: Americans United for Separation of Church and
Who is being coerced here? I don't see any grumbling over on linux-kernel, or on freshmeat, or any place else where GPL'd software is being created. These people don't seem to be chafing, they seem to be happy to be writing GPL'd code. And there are plenty of projects which aren't GPL'd whose participants aren't complaining. Nobody is coercing them to write GPL'd code either, and they are happy.
The only people that seem to be grumbling are folks who want to use GPL'd code in non-GPL'd projects. I'm sorry if those folks don't like their alternatives, but the GPL doesn't come no-strings-attached. The authors of GPL'd code have specified the licensing terms of their code, and if you don't want to use that license, you certainly have alternatives. You may not have other zero-cost alternatives; RMS never promised you a rose garden. If the GPL'd code that you want to use is so well done that it is a difficult decision not to use it, then perhaps there is more merit to the GPL approach than you are allowing yourself to consider.
You are assuming that someone who writes some code and "gives it away to the world" is somehow more moral because they chose to contribute their code without being asked and without asking for anything in return. In other words they contributed to a charity - they saved other people time and money out of the goodness of their heart. Good for them, but the goal of the GPL is not to encourage charity but to encourage higher quality software with available and reuseable source code. The author of GPL'd code is also providing their source code out of the goodness of their heart (after all, they didn't have to GPL) and they may not receive anything back at all either. But that author knows that their code will stay free and will be provided to anyone who receives software which includes it. In that way, they have given much more to the end user than your developer, because everyone who receives the software must be given the code and will be able to learn from it and improve it. Authors of GPL'd code are making a free moral choice the same as your developer, but since they feel that the GPL reflects their values, they have chosen to GPL their code.
Your right to not believe: Americans United for Separation of Church and
I meant "need" in the sense of "what is necessary in order to use this code for my own project." In that case you do require certain rights in order to use someone else's code, otherwise you are committing a copyright violation. Of course there isn't a need to use other people's code the same way that we have a need for food and water.
I don't want others to use my code unless it is under the terms under which the code was licensed to them. Likewise, I certainly don't want to use someone else's code unless it is under the terms under which their code was licensed for my use. If I don't have the rights under their license to modify their code, use it in my project, and distribute it, then I guess I can't use that code. Note that this isn't the same as using their code in any way I want - for example, depending on their choice of license I can't change the copyright information, the license, the list of contributors, etc.
I doubt that I'm going to be able to change your mind since you refer to "enslaved projects", but here goes. Licensing your project with the GPL means that you believe in the values that the FSF espouses. These include availability and reusability of source code, higher quality source code (because it's available and reusable), and more GPL'd code. It's this last part that people refer to as "enslaved". The FSF (of which I am not a member, by the way) believes in the GPL enough that they set up the GPL to encourage more GPL'd code. Whether you like the GPL or not seems mostly to depend on whether you think the ends of the GPL justify the means of the GPL. If you don't agree with that, then I suppose the GPL is not for you.
Your right to not believe: Americans United for Separation of Church and
Access to the original P cannot be restricted - you are correct. The whole BSD/GPL debate really comes down to who gets the benefit of the changes made from P->P+.
In the BSD world, the author of the + section can distribute both P and + together, without source code, and only that author receives the benefit of the + changes. Everybody else has to reinvent the wheel if they wanted to get P+ code and didn't want to get the + from the + author.
In the GPL world, the author of the + section must distribute the original P with source code if they distribute it at all, and if the + code incorporates code from P, then they must distribute the + source code as well. Then everyone can include the + code in their GPL'd projects, which is a benefit for them. Of course, the author may not make as much money (if any) distributing a GPL'd P+ as they would have under the BSD license.
The GPL has a very specific view of what is good for the software world: software distributed with GPL'd source code. Software distributed with GPL'd source code leads to more of the same, which was the FSF's goal. Of course, if you don't like this goal (if you prefer proprietary software or, as another poster pointed out, other free software licenses) then you aren't going to like the GPL or its goals.
Your right to not believe: Americans United for Separation of Church and
I'm a GPL partisan myself, but I think that when someone sets out to write an article, they should decide whether they are going to examine both sides of the argument or just advocate one side.
This article is GPL advocacy, not a genuine look at "both sides".
Though it's true that the BSD license allows code written freely to become proprietary, history has shown that companies that do take advantage of the BSD license have a tendency to give back to the community even though it is not compulsory.
The BSDites argue that the GPL's giant "no-no" clause regarding proprietary rights scares companies off. You know what? They are right. Although we've seen alot of free software emerge lately from the corporate world, almost all of the contributors have opted OUT of the GPL.
I think that both licenses have their place, and ultimately I think you'll find GPL'ed software running somewhere below BSD'ed software as a common support infrastructure. The spiffy "add-ons" and extras may be open sourced, but I don't think the corporate world is ready to accept relinquishing the rights to their intellectual property.
--- Tao
Here's a link to a Slashdot story published last month, about a pro-BSD article. I think this answers your point.
http://slashdot.org/articles/99/05/13/1317239.shtm l
"but they don't want to give people the right to
make the code proprietary."
This is the problem BSD'ers have with the GPL: the overwrought drama over the possibility that someone, somewhere might hide some code.
Most BSD'ers support free code, and they have full confidence in the relative merits of free code. What they don't have is the compulsion to coerce others into involuntary compliance with this view.
If people take free code and turn it proprietary, then they automatically suffer all the increased costs and headaches associated with developing, debugging, and maintaining a closed source tree. That's their karma. BSD'ers are willing to let it go at that, and not make a religious crusade out of the issue.
If a certain small niche gets served by a proprietary solution, that's fine too. But overall, the fact is that the cards are stacked against largescale exploitation of BSD code. People will figure that out eventually, and in the meantime, there's no point in alienating present and future allies in a fit of ideological intransigence.
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
The BSD license is also much, much less complicated:
$ wc -l bsd-style-copyright
27 bsd-style-copyright
$ wc -l
339
The BSD license has far fewer catches and companies that are interested in being able to profit off of their product will be happily able to integrate that into their source code provided the integration and distribution goes under the above conditions.
There are a few `mistakes' that have gotten out somehow that the BSD license is not what it is. Here they are:
This is not true. The original author is the one who gets the credit for it, not the person to make the last change.
The BSD license allows for distribution with less catches and it allows the licenser (usually the author) to decide whether or not he or she wants to distribute the source code.
Hopefully this clears up some of the misunderstandings that people on the GPL side may be having.
Of course, whether you consider that good or bad is up to you. Personally, I believe that a simple, sweeping, blanket `good' or `bad' label is oversimplifying a complex matter. Obviously both licences are doing something that their authors want them to do. But let's disabuse ourselves of this maliciously deceptive `free' thing right here and now. The word was redefined by the FSF to mean something no one but lawyers, pharisees, and related zealots would find intuitive. It's a mean trick.
I've said it before, and I'll say it again. Drop the word `free'. It's a lie. One can continue to repeat clever sophistries until the sun goes nova, and continue to be very clever, very punny, even technically correct in at least one particular circumstance. But one is still completely misleading to virtually all the world.
A few days I was asked by a regular person -- not even a script kiddie -- whether [random software] was `freeware, or just shareware'. See that? Here's a simple test. Go out and ask 20 teenagers whether free software (which they'll call freeware) ever costs anything, and you'll find that 100% of them say, `What, are you crazy?'
Recently, I witnessed a newcomer to the net asked an oldtimer about what possible licence was on a piece of software the latter had written. The sum total of the oldtimer's response was "Do whatever you'd like with it," which surprised the newcomer, who obviously wasn't used to truly free software (unlike the FSF's insidiously deceiptful notion of the same) But what a pleasant change! Where did that complete generosity disappear to?
Let's face it. We've lost this battle. We have to stop hurting our own goals by beating a dead horse. We must instead use a real word in the way that everyone understands it. Of course gratis and libre are lovely distinctions, pero por desgracia, ocurre que todo el mundo no entiende castellano. :-)
Instead of gratis, perhaps we should say cost-free. See how clean and simple, how unambiguous that word is?
Instead of libre, we might say something more like hackable; that's my own original preference, but it has its own attendant difficulties. Less charged alternatives include changeable or mutable or legible or open source or as source code or in some cases, perhaps unrestricted. Historically, we used freely redistributable as distinct from public domain, but that's a problem term because it has the `free' bug, and doesn't specify source code.
I may not be certain about what the right word is, but I'm completely certain what the wrong word is. The wrong word is `free'. Please, please, PLEASE drop these word-games that only cause everyone on the outside to get confused just so that those on the inside get to gloat about how much smarter they are than the rest of the word. It's long past time to face the fact that we've lost the battle for this word, and perhaps time to realize that it was always the wrong word right from the get-go.
Free software is great. Don't destroy it with restrictive licences.
More importantly, when coercion is involved, all personal responsibility, all moral choice is removed. You cannot extoll the virtue of someone who adds publicly available code to an existing GPL codebase. There is no virtue invovled, for he had no choice in the matter. Without choice, there is no morality.
Contrast this with the individual who initially creates open source and gives it away to the world. `If you love something, set it free; if it returns to you...' comes to mind. If fixes and enhancements come back to him, then the author of those updates has himself made a moral decision. How much more precious a thing this is than the prisoner who did as he was coerced to do!
It is clear which man has made a moral choice, and which one has not. Coercion is fundamentally opposed to morality.
Ever see what happens when someone tries to combine something like the proprietary Oracle libraries and something like GNU DBM or GNU readline or GNU getopts into one program? Do you know what happens?
It goes boom. This is not a pretty picture. In fact, the developer is forbidden from doing this. Gosh, that's just wonderful, eh?