The flame-wars between GPL and BSD proponents flared up again this weekend. Marcus Glocker, an OpenBSD developer, used GPLed driver code for the “bcw” driver (Broadcom wireless) he was developing, and which he had committed to OpenBSD’s public CVS server.
First, it’s important to note that GPL and BSD are not necessarily compatible licenses. GPL requires that modifications to the source code be made available, and it also requires that any project which uses it must also be open source. BSD does not. Therefore, in theory, Broadcom—a very nasty vendor—could take said code from OpenBSD’s CVS server, under the auspices of a BSD license, and include it in their own closed source, proprietary driver for Windows. This is not something that Michael Buesch, one of the original reverse engineers and copyright colder of the
bcm43xx code (the Linux kernel driver), wanted to see happen.
Here is an excerpt from Buesch’s original e-mail to Glocker, which he also CCed to a number of other parties.
I, Michael Buesch, am one of the maintainers of the GPL’d Linux wireless LAN driver for the Broadcom chip (bcm43xx). The Copyright holders of bcm43xx (which includes me) want to talk to you, OpenBSD bcw developers, about possible GPL license and therefore Copyright violations in your bcw driver.
We believe that you might have directly copied code out of bcm43xx (licensed under GPL v2), without our explicit permission, into bcw (licensed under BSD license). There are implementation details in bcm43xx that appear exactly the same in bcw. These implementation details clearly don’t come from the open specifications at bcm-specs.sipsolutions.net or bcm-v4.sipsolutions.net.
We’d like to have this issue resolved. In general we are not against having a free (and BSD licensed) driver in the BSD operating system. But you _have_ to cooperate with us if you’d like to take our code and relicense it under BSD license.
We’d like to offer you to start cooperating with us. We respect you and your Copyright. You should also do so on our work.
We would not be opposed to relicensing parts of our code under the BSD license on an explicit case-by-case base. So if you ask “May I use this and that function” and if I own the Copyright on that particular function, I will approve or deny your request. Other Copyright holders of the bcm43xx code might act the same way.
We’re not out for blood, just for a fair resolution. We’d like you to start contacting us to resolve the issue now.
Have a nice day.
In immediate response, OpenBSD’s founder and #1 bulldog, Theo De Raadt, launched a verbal assault on Buesch for what he (deRaadt) viewed not only as a big to-do over a piffling issue, but a breach of personal conduct as well. deRaadt is a strange one to be moralizing about social niceties, however, considering that the Theo—despite being a brilliant programmer—has all the social grace of a rabid animal. That was, in fact, part of the impetus behind his forming a separate BSD distribution. But that’s not the point.
The point is that to read the mailing lists, you’d think it was Buesch on trial here; in fact, no one is on trial. Here are the salient points.
Two Linux teams develop a Broadcom wireless driver under strict “Clean Room” standards. This driver includes features that aren’t present in the official Windows driver. This driver is then licensed under the GPL, meaning that further modifications and uses must be licensed under the GPL, as well.
Marcus Glocker very apparently copies code from this GPLed driver, which he uploads to a public CVS server under the auspices of a BSD license. This driver was only in development, meaning that it hadn’t been distributed as part of any release, but insofar as it was on a public CVS server, it could have been copied at any time—including by Broadcom—and used, however illegitimately—under a BSD license. This is the crux of Buesch’s complaint. It doesn’t matter if Glocker was only studying the code or not.
The issue has nothing to do with which is a better license. It also has nothing to do with the relative merits of Copyright. De Raadt and his camp immediately leaped upon Buesch for enforcing his self-described “Copyright,” which is almost a non-entity in the BSD world. In fact, asking that the GPL be respected is hardly an overbearing enforcement of Copyright. It’s downright liberal, in fact.
The BSD camp has ragged about GPL Nazis and such, blaming them for causing the complete removal of the driver from the BSD tree. I’ve heard some suggest that Glocker has now given up development of the driver. This is not Buesch’s fault: he asked that he and other
bcw43xx copyright-holders be approached about relicensing, and that GPL-licensed code not sit in a public BSD tree–he never demanded that Glocker stop work on the driver. Glocker should not have uploaded GPL code to the public server: it should have stayed on his machine until he was done studying it, if in fact that’s what he was doing.
deRaadt has ragged Buesch extensively about making a “public spectacle” out of the issue, instead of simply contacting Glocker privately. That could have worked, yes, but open source is all about transparency–not just in code, but in development process, as well. Buesch was not out of line in making this public, likely because he didn’t expect there to be such a furious overreaction to a relatively simple matter. Buesch was perfectly reasonable in his demands, and perfectly civil in his tone. Where does the problem lie? Theo “Fuck Tha GPL” de Raadt and some very touchy OpenBSD proponents.