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
So the license that allows the most use of the code hinders freedom?
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.
No you idiot the files reyk contributed were never dual licensed.
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
Say I just don't like the GPL. Say I don't like the idea of giving a legal ultimatum about how they can use my code--the code that I wrote and want to share. Say I want Microsoft to be able to use it in an operating system, Real to be able to use it in an audio player, etc.
It is still good manners for people that make improvements in my code to send me changes. I helped them, and good people return favors when they can. So why didn't I use the LGPL? Well, that license is just a bit more of a pain, and I want to make people's lives easier. After all, what if the person using my code just needs to make a small change? They shouldn't have to go through the trouble of packaging the source and putting a LGPL notice somewhere in their product where users can see it.
My giving you legal rights to be selfish does not mean you should, and it does not mean I won't rebuke you for it.
A cat can't teach a dog to bark.
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.
Then you haven't read Theo's rant. When they converted the files to GPL they even deleted the lines at the top that said 'do not remove these lines'. The BSD license does permit use in proprietery code, but does not permit the removal of the copyright notice.
6 &w=26 &w=2
Read these two posts.
1> http://marc.info/?l=openbsd-misc&m=11886560592926
2> http://marc.info/?l=openbsd-misc&m=11886574891197
/* oops I accidentally made a comment, sorry */
In related news a debate that the BSD is being added to public domain code, thereby preventing it from being shared back with the original authors of the code.
-
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
Yes. That's because there are situations where it makes sense that somebody should be able to do that. The argument in this case is that this isn't one of them.
That's the problem with your reasoning. You are accusing people who've released code under the BSD of not having considered the cons of the license. In fact, you can be sure that plenty of them were well aware of the cons from day 1, but simply judged the pros to outweigh them. They've chosen to deal with the cons in question here through argument, appeal to ethics and persuasion, rather than by legal action, which would have costs they deem unacceptable.
Now please stop setting up strawmen.
Are you adequate?
I'm a big fan of the BSD and BSD-style licenses. I have written a lot of code under the BSD-style license and been happy about it. It has let me apply that code in places where corporate policies are too anal to allow GPL code. The extensions that ARE made are so application-specific that nobody else would want them anyway. However, my code would never have been used at all in these circumstances if it were GPL licenced.
"No, I'm sorry, you can't integrate my small component into your giant proprietary and ITAR-restricted satellite system unless you agree to give away the entire code to your giant ITAR-restricted satellite system to anybody who wants it. But hey, RMS says that freedom is good, so you can do that, right?"
Does the BSD license allow people to make extensions and GPL the base code plus those extensions? Absolutely. Do BSD-style developers, then, have a right to be miffed if this is what happens? It's a hard question.
I think most of the miffed-ness of the situation comes from the attitude of GPL zealots. A basic tenet behind their license is "if you take code then you have to give it back under the same terms under which you got it." A part of their philosophy seems to be "you should not be allowed to benefit from our code without giving back improvements to it." They are the ones who decided on this policy, and they claim a moral (yes, moral) high-ground because of it. But really, they only mean this within the context of their own ideological community. It's really a difference of attitude.
"Hey, thanks for the code; we are going to use it to further our cause of announcing to the world how much better we are than you."
As an analogy, let's say I go up to you and ask for $20 for an art project. You oblige. For my art project, I make up posters around the city that say:
"[YOU] IS A GIANT ASS"
with your face on them, and plaster them around town. Now, you didn't explicitly stipulate I couldn't, and I was certainly within your legal and artistic rights to do what I did. You have no cause to be angry, right?
I remember a documentary I saw once about land mines. They showed a small mine being dismantled by some poor sap whose job it was to go out and dismantle land mines. In it was a Motorola chip. It was probably some terribly generic part like a 555 timer or 4-input NAND gate or something; it's not like Motorola was in the business of making land mines.
Now, if Motorola saw this, do they have a right to be a little miffed? "Ah," say the slashdotters, "Motorola sold their 555-timer on the open market to any buyer, they have no right to be miffed when someone uses it in a device that blows the legs off little children!" Right?
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!
That's only because Theo, in his latest rant, is conveniently ignoring the fact that the code was dual-licensed, even though he did acknowledge that not too long ago.
Theo's last post stated that dual-licensed code cannot be distributed with only one of the licenses still attached. BSD/GPL dual code, he says, cannot be distributed under the GPL unless you keep it BSD/GPL dual. That's a theory of it's own, which deserves some clinical therapy imho.
Theo's current post deals with the aspect of re-licensing pure BSD code. His theory is that, because the license says you can distribute/copy/modify only if you keep copyright notice and "this" notice intact, this means that you are not allowed to distribute under a different license. I will now prove him wrong.
Here's a file with the BSD clause attached. It's copyrighted to me under the BSD:
------
Copyright (c) 2007 myself
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
Some text that is supposedly copyrightable.
------
Now, say that somebody wants to GPL it. Here's how he would do it:
------
Copyright (c) 2007 myself
This file is distributed under the provisions of the GPLv2 license.
This file is based on work under the following permission notice:
Permission to distribute this file was granted by the following BSD clause:
> Permission to use, copy, modify, and distribute this software for any
> purpose with or without fee is hereby granted, provided that the above
> copyright notice and this permission notice appear in all copies.
------
What I did was legal: I kept the copyright notice intact, I kept the BSD clause intact. This does _not_ mean that I also kept the distribution license as BSD. Compare the BSD notice with the GPL requirement:
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
[...]
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. [...]
Notice that BSD's requirement is to keep a text attached but does not say anything about keeping the license.
GPL on the other hand explicitly requires that redistribution be done under the GPL.
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!
You're parable doesn't fit. It neglects the changing nature of software and hardware. Your parable would work if everyone had stock-standard hardware that never, ever changed, and if software weren't allowed to be modified. It neglects to factor in how companies with large software budgets can take a program, change/improve on it greatly, break compatibility with the original, and sell the software, closed source. Sure the original is still good, but now the other proprietary program has taken over and cannibalised the market for the software. After the sweeter, bigger, juicier apples, the original apples aren't the same.
That's why I like the GPL. It uses corporate involvement to enrich itself, and forces them to give back what they've taken from the community.
You know, there is a difference between trolling and pointing out the flaws in your reasoning. Just saying.
The situation is this:
The code in question had the BSD license included, plus the author (copyright holder) added a condition saying that "alternatively," the GPL could be used.
One is therefore free to select the alternate license and ignore the BSD license, and that includes the part about keeping it around.
Now, and this is key, the author has every right to put in something which says "chose either for yourself, but keep both in what you pass on." He didn't, and the only requirement to keep the BSD license is found within the BSD license itself. It is well known that there are multiple ways in which the BSD and GPL licenses clash - you can only have an "either/or" license, not a "both" license. It's simply stupid to try and claim that selective clauses of one license apply when the other license is chosen to be used.
As far as the "all the rights" argument, it doesn't fly. Since you must make a choice between licenses, as soon as you choose the GPL, you give up the rights to BSD, so you have no BSD rights which must be passed on.
"National Security is the chief cause of national insecurity." - Celine's First Law
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.)
Is there an alternative to an MIT or BSD license that does the same thing, but doesn't allow GPL people to use it? I release just about everything I do under the MIT license, but I'd consider a license that prohibits GPL people from using it after see some of the BSD hate in these comments and over at kernel trap.
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 author himself disagrees with Theo (and apparently you, as well). Check it out
Put identity in the browser.
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.
And if someone makes proprietary modifications to it, then those are also not universally available and can't be used in either BSD or GPL projects. If that was what you wanted, why not choose a licence that actually enforces that like the LGPL? Again you're holding the GPL community to a higher standard than closed source companies. You make a lot of assumptions about intents and purposes, which aren't reflected in the license. Maybe he meant "Hell, do whatever you know... I don't care". And if he didn't mean that, he shouldn't have picked the BSD license. Trying to enforce a moral unwritten, implied obligation is a fool's errand, and not the licensee's fault.
Live today, because you never know what tomorrow brings
Proprietary modifications are the problem of the person doing the modification. Because they're proprietary, we (the open source community) never see them again. You can mark this down as a loss, in a sense, but because it's effectively invisible to us, we don't have to deal with it. We don't have to do the track-and-merge dance that forked open-source distributions have to do. So it's actually, weirdly, a benefit.
The problem with relicensing is that you wind up with a code fork that can never heal. Once you have relicensed, the GPL code goes its own way, and the BSD code goes its own way. The maintainers of the GPL code can continue to incorporate changes from the BSD fork, but the maintainers of the BSD fork are prohibited from merging changes from the GPL fork.
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.
There's no hypocrisy in that. Anyone can use the changes that where GPL'd, but you just have to adhere to the GPL license for those changes. The hyprocisy is the BSD camp saying "be free to use our code any way you want" and when people take them up on the offer, they complain.
You guys are confused. BSD code does make it into proprietary products, but you do not get to omit the fact that there's BSD code in it. We see it all the time: "Copyright The Regents of the University of California (etc.)..."
So, you do not get to strip the license, although you can use and produce binaries with it.
That's the issue: you can't strip the license. By removing the BSD license, the linux people are obliterating the license. As Theo says, licenses are granted to you.
Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
You and Theo are disingenuous idiots. First, you make an unsubstantiated claim - '"Alternatively" means that the GPL could be used, that is, it can conform to the GPL.', then you redefine a term you just pulled from your ass to mean what you want it to mean ("conform"). That's as dishonest as an argument can possibly be. "Alternately" means exactly what it says, it offers an alternative ("The choice between two mutually exclusive possibilities." - http://www.thefreedictionary.com/alternative ) What Theo has been "explicit" about means exactly nothing, except to those like yourself who think he's god.
The author specifically gives a choice between licenses, and yes, you can leave out the one you don't choose, because that's exactly what the author said ("distribute under BSD, or alternately GPL") It makes absolutely no sense to give the choice otherwise.
Probably the most well-known difference between the BSD and GPL licenses is that the former allows code to be "locked up" (as into a commercial product) while the latter does not. Someone chosing the alternate licenses terms (GPL) is likely doing so because they want to ensure any future releases containing their contributions remain open. Forcing them to redistribute under BSD does not allow them to achieve that.
Finally, this is the ONLY meaning a BSD/GPL license can have which makes any sense at all. In terms of using (running, copying binaries, etc.) the code, they're functionally the same, AFAIK. They differ significantly only when you change/add source code. Saying that modified code must forever be distributed with both licenses is saying that a modifier has no choice between the licenses, and choice makes no sense for an end user.
"National Security is the chief cause of national insecurity." - Celine's First Law