GPL Hindering Two-Way Code Sharing?
An anonymous reader writes "KernelTrap has some fascinating coverage of the recent rift between the OpenBSD developers and the Linux kernel developers. Proponents of the GPL defend their license for enforcing that their code can always be shared. However in the current debate the GPL is being added to BSD-licensed code, thereby preventing it from being shared back with the original authors of the code. Thus, a share-and-share-alike license is effectively preventing two-way sharing." We discussed an instance of this one-way effect a few days back.
You are in a maze with twisty little passages.
Do you tag this article:
* noshitsherlock
* duh
* wateriswet
* slownewsday
* cowboynealsayalloftheabove
Sigh.
This is nothing new. Provide a permissive license and expecting everything to be returned to you is contradictory to the very license you've chose. Forking happens all the time, usually around licensing or management issues. So aside from the little dust storm we've seen recently regarding the wifi driver and the copyright clause I don't see how this is news.
The GPL and BSD type licenses coexist perfectly, so long as both parties take the time to understand each other. Which is mostly the way it's happened. Kind of making this a none story.
Quack, quack.
Exactly. If you don't like people taking your code and not giving back, don't use BSD.
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
Clue: it doesn't mean "as well as".
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
Having talked to a few BSD licence fans most of them like the licence because it allows another group to take their code and close it off.
This is exactly what the Kernel and other guys are doing, they are taking the code and putting a GPL header in there, closing it off from the BSD developers.
The only difference here seems to be that because the BSD developers can see the changes and improvements being made they want to include them. Whilst putting the GPL on may be against the spirit of cooperation it seems to me to be exactly the kind of closing off of the code that the BSD developers want to allow.
So Theo and the rest of his OpenBSD-Trolls better shut up.
Netrek 2006, for example, has a BSD/MIT style license that says "Do what thou wilt except re-license under a (L)GPL or similarly viral license". The author of that license specifically identifies GPL as reducing the freedoms of the developer, which to be fair I'm inclined to agree with.
If you were blocking sigs, you wouldn't have to read this.
I've read Theo's rant, and I found the section about not sharing code back to be pretty humorous, considering that's the way the BSD license is written. If you wanted to ensure that code be shared back into your projects, you'd use a copyleft-style license instead of a BSD/MIT-style license, wouldn't you?
I personally prefer the GPL, but I've been around Slashdot for a few years and understand the "more freedom" argument from BSD fans. That "more freedom" is the freedom to relicense or even completely close up the code, returning nothing to the original project.
Why's everyone got their panties in a bunch over something which the license allows? (I also understand the origin of this anger being the removal of the attribution and BSD text from the wireless kernel patch proposed, but it was just proposed, not accepted, and the situation was immediately resolved.)
Put identity in the browser.
Or did someone issue an edict that Linux kernel code can't be dual-licensed, at some point when I wasn't paying attention?
I think the point of the story is the following:
1. Developer A writes some code for OpenBSD (or whatever)
2. Developer B says "that's cool, I wish Linux had that"
3. Developer B ports developer A's code to Linux
4. Developer B then starts improving on A's code
However, developer B doesn't want to release his changes under the BSD license, so the improved version goes out GPL-only. Developer A says "hey, wait, that sucks", because now he can't incorporate those changes back into OpenBSD, which does (I assume) have a policy that all code must be BSD-licensed.
One one hand, it's unfortunate, because OpenBSD loses out. On the other hand, the original author wrote the code knowing that someone could take it and not release changes (for instance, incorporate it into Windows or Mac OS X or SunOS or something like that), and this really isn't all that much different.
Personally I don't think either one is more free than the other. I think it comes down to the GPL keeping code free and the BSD license keeping people free.
I summrize my view -developer develops code and is kind enough to say that people may use this code in GPL way or in BSD way. -Linux developer derives work fron this code, take away BSD licensing terms, and by that the rights of the people who wanted to use the code and derived works under BSD license. If I, as a developer, for whatever reason, license code under my copyright to somebody, I demand that he agrees with the terms of the licence which I put, because after all I am still the copyright holder. Since GPL and BSD mainly collide in the handling of derivative works in respect to dristributing final products, it would seem to me that only the distributor in the end may chose not to distribute the source code of the device. And since the linux developer cut this right when he removed the license from the file, he is definetly violating the spirit of the dual licensed approach. The dual licensed apporach in nothing else but a "keeping both doors open" policy. While I wont comment on the legal terms i find this behaviour rude. When developing cond in our lab i several times encountered a similar spirit. People who do not honour the idea under which I gave them code which they modified (sometime actually causing work for me). If i give code to anybody it is not an invitation to missionate me into any license
Q: What happened?
A: A contributor of a patch to the linux kernel didn't notice that it contained both dual-licensed and BSD-only code, and posted a diff that GPL'ed the whole thing.
Q: What happened then?
A: Several things. 1) The mistaken (and clearly incorrect) change of license on BSD-only code was rectified. 2) Theo de Raadt leaped upon this golden opportunity to accuse the linux kernel developers of stealing code and eating babies 3) Separate issues of the legal and ethical obligations related to license changes, dual-licensing, proprietary software, and the price of peanuts in Perth were immediately injected in the discussion and a classic internet blizzard of bullshit blanketed the land of free software.
Q: Latest news?
A: Several developers involved have attempted to help the situation by saying they want collaboration and harmony and dual-licensing their code, but these positive efforts have gone mostly unnoticed as everyone on all sides proceeds to get angry and confused. Apparently high intensity behind the scenes consultations with Eben Moglen have resulted in a daring mission to dual license an OS/2 + Novell Netware application stack under GPL 3 as translated into Babylonian Cuneiform, thus simplifying the situation for everyone.
Q: What's the moral of the story?
A: Sometimes, cooperation is harder to achieve than competition, or "the greedy fox gets stuck debugging the rotten oysters".
In one sense, the GPL does hinder two-way code sharing. You can't distribute, modify, etc. a project as a whole under the terms of the BSD license if some code in the project is under the GPL. So adding GPL-ed code to a BSD-licensed project does hinder two-way sharing.
However, the fact to the matter is that it is the _BSD_ license that allows you to do this. The BSD license simply does not require you to share your changes.
So, if you are asking yourself why changes aren't being shared back, the answer really is that the original authors (who put their code under the BSD license) said it was OK to use their code without sharing back.
Of course, you can still call into question the behavior of people who take something willingly shared with them and then put up obstacles for sharing back with the original authors.
Please correct me if I got my facts wrong.
Telling me I can do something and then rebuking me for doing it is kind of a shitty practice, isn't it? If you want me to share code with you, put it in the license. Microsoft and Real won't contribute back, either.
Put identity in the browser.
The Linux code is being patched to fix the license problem, says TFA. Here's the content of the patch.
Note what the patch is doing, very carefully. The patch is changing the copyright notices on top of the modified files to say that these files are licensed under the GPL, but are also based upon an earlier work licensed under the BSD, and then reproduce the copyright and license statements as required by the original BSD licenses. This makes completely transparent the following things:
Are you adequate?
When I read the original OpenBSD thread, the author of the driver (originally dual-licensed BSD/GPL) was the one who submitted the GPLed driver to the Linux kernel, so he's not denying himself anything. Additionally, the original BSDed code is still available for anyone to take. No one squirreled that code away. The fork of the BSD/GPL code to a GPL project didn't lock anyone out.
Sure, improvements on the GPL side won't be BSD licensed, but any proprietary company which takes it won't contribute back, either. This is what the BSD license fans call "freedom." "Freedom" here means the ability to do anything you want with the code, including close it up entirely. GPL fans use "Free" tomean that the code stays open. Don't confuse the two.
Put identity in the browser.
Thats exactly whats BSD made for. Get everything you like and then throw back into the developers face everything you hate. No need to say thanks. Apple did it, Linux did it, dozends of others do it all day.
Seriously, bragging about this is a sign of total ignorance about the BSD philosophy: Giving away everything without asking for anything. They should feel honored that they are getting ripped like they wanted always to be.
"Life is short and in most cases it ends with death." Sir Sinclair
Honestly, the way some people talk about "Freedom", you'd think it was something you could buy by the wheelbarrow load. Freedom isn't something that exists in and of itself. It only exists in relation to people and activities.
To say that the BSD licence hinders freedom is just insane: it grants close to maximum freedom TO users, developers, and distributors TO DO pretty much whatever they like. v The GPL on the other hand deliberately restricts the freedom of one of those stakeholder groups - the distributors - in order to preserve the freedom of the users and developers in the longer term.
If you say that the GPL licence is more or less free than the BSD licence, all you are really doing is criticising a group of developers for their failure to share your own priorities. That always strikes me as an ugly, intolerant, narrow minded way of thinking.
This whole mess has the stink of FUD about it. There are a lot of people who would like nothing better than to get the GPL devs and the BSD guys together and say "hey, why don't you and them fight?"
I have a suggestion to make: let's disappoint them.
Don't let THEM immanentize the Eschaton!
If you think about the BSD license in terms of an academic citation, it makes more sense.
In the original patch, it appeared that some Linux folk took some code, stripped the BSD copyright notice and put it under a GPL license. Viewed through an academic mindset, it sounds less like "building on existing research" and more like plagiarism. Were they legally entitled to do what they did? I suspect probably so. Still, it seems like bad form not to cite your sources.
-Peter
. Penguins Surely Ca
I think the problem here is that you haven't told the parable in its entirety:
There you go: fixed that for you :)
Don't let THEM immanentize the Eschaton!
Everyone seems to be completely missing the point here. As someone else pointed out, GPL supporters love to claim the moral high ground when it comes to comparing the GPL to anything proprietary and they love to say how the GPL promotes sharing and openness. So how do you claim the moral high ground when you just took someone else's project and forked it so that they can't use it the way they originally intended?
So what if that's what if that's what the BSD license allows people to do! It's about moral hypocrisy, pure and simple. How can you claim to be free and open when you just basically told the original author that he/she needs to follow your rules in order to benefit from anything you add to it. It wasn't your project to begin with, but you're arrogant enough to fork the project and slap your own license on it, for what? Just because you don't like the BSD license?
Contrast that with the GPL, where code written with the GPL has to be rewritten if you want to use it for proprietary purposes. If you want to end all proprietary code then that's obviously a good thing, but it's not so good if you want the best code to be used, and for no-one to have to needlessly rewrite the code you're writing.
Take SQLite for example. It's in the public domain which is only slightly less restrictive as BSD. Anyone can use SQLite for any purpose. If I'm developing proprietary software and I need a lightweight database engine I know SQLite is available. It saves me time and money, and the software is going to be better as a result. That's why drh chose to make it available so freely: It's the best there is, and if someone can improve on it good luck to them.
Both licenses have their purposes of course, but I hope you can at least see why someone would prefer the BSD license.
So if it's supposed to be extra free then what's wrong with relicensing it as open source? Well there are two possible outcomes of releasing GPL changes to a BSD/MIT/public domain project:
-
The developers which wrote the software take the changed code and start using the GPL; the code can no longer be used in proprietary software. Whether you think that's a good thing or not it's a decision made against the original developer's will.
- The developers which wrote the software continue developing their code and ignore the changes; the software is now either forked, causing compatibility issues, or changes are made in parallel, causing duplicated efforts. BSD is chosen so that no-one has to duplicate efforts, because the code is free.
Both of these outcomes just don't help. They don't help the software improve, they don't help anything. Rather than ask "Why choose BSD?" (which I hope I explained well enough earlier) why not ask "Why relicense BSD code under a different open source license?" Does he think that the developers of the BSD licensed code will start using his modified code along with the GPL license?Take SQLite for example. Imagine if someone took SQLite and made some nice updates to it, but released the changes under the GPL. Now there are either duplicate efforts and compatibility worries, or the developer of SQLite is forced to use GPL and his software can't be used everywhere like he intended. A stable piece of code that used to be universal no longer is universal.
Using the GPL to close the original developers out is using a share-alike license to avoid sharing, and using an open collaboration license to prevent collaboration.
// MD_Update(&m,buf,j);
For example, I believe people should have the right to troll on Slashdot, because I believe that's the only way to ensure that people who genuinely hold controversial views feel able to argue their case. Does that mean I shouldn't have the right to mod trolls down? If so, why?No, that's for if you want to demand that code be shared. If you would like code to be shared, and intend to complain if it isn't when it reasonably could be, but absolutely do not want to take away the licensee's freedom to decide for themselves whether to share or not, then you should not add anything to the license. It would probably be appropriate to mention your attitude in the README, though.
(One very good reason not to put this kind of stuff in the license is that the GP apparently was specifically interested in allowing large companies to use his code. Large companies hate custom licenses. Stick with something standard if you want the commercial world to even bother looking at your code.)
The point is that we have the GPL camp and we have the BSD camp. The GPL camp takes code from the BSD camp and the BSD camp is not able to merge those changes back into BSD code. The issue here is not that this is a license violation; it is not. BSD people, like me, want other people to use our code. The complaint here is about the hypocrisy of the GPL camp, who claim that they don't want anyone to use their code without giving back the changes, but then turn around and do just that to the BSD people's code. Again, I emphasize that this action is not a problem to us; we want it and we expect it. The problem is with the GPL camp saying how they are somehow "more free".
The BSD developers got what they wanted. Their code is in use. The BSD license intentionally trades away protection from inclusion in differently licensed projects in return for the increased likelihood that the code can be used.
The GPL developers got what they wanted. Their code is protected from proprietization (And ONLY their code. Anyone can take the original BSD licensed code and do what they want with it).
There is no story here. The GPL and BSD licenses try to achieve different goals and both work as advertised. If you want an analogy: BSD is like the girl who sleeps with everybody. She gets a lot of sex and is invited to every party, but nobody respects her. GPL is like the girl who is selective about her partners. She doesn't have quite as much "fun" and has earned herself a little bit of a hard-to-get reputation, but the people who know her treat her well. Proprietary licenses usually require payment.
The GPL has hindered code sharing. Do you remember the Broadcom wireless driver debacle wherein Theo recieved a nasty gram for porting the code to BSD? No, well here goes. Theo recieved a warning from the Linux project maintainers of a Broadcom wireless driver. This was really in poor code-sharing taste and ultimately caused the cancellation of the porting efforts. In the end, both Linux and BSD users lost out. Was OpenBSD really going to profit from it or commercialize it, no! It is simply in the spirit of hardware support. Now, let us look at OpenSSH, a fine product from OpenBSD. Linux and GPL people use it all of the time. I am hard pressed to find a more significant contribution to Linux. After all, OpenSSH is the foundation of secure remote administration, logins, tunnelling, and more. Now, someone tell me what Linux has contributed to BSD of similar significance as I cannot think of any.