OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Re: Linux Driver Violates BSD License

From: Constantine A. Murenin (murenincgmail.com)
Date: Thu Aug 30 2007 - 00:36:05 CDT


On 29/08/2007, Theo de Raadt <deraadtcvs.openbsd.org> wrote:
> > On 8/28/07, Darrin Chandler <dwchandlerstilyagin.com> wrote:
> > > Normally I wouldn't repeat undeadly stuff here on misc, but I'm sure
> > > many of you will want to know.
> > >
> > > http://undeadly.org/cgi?action=article&sid=20070829001634
> > >
> > >
> > > And if you do this kind of thing, it's worth letting the rest of the
> > > world in on this:
> > > http://digg.com/linux_unix/Lnux_Driver_Violated_BSD_License
> >
> > I am currently having a discussion about dual licensing, and am a bit
> > confused. Is Reyk and others working on this drivers code dual
> > licensed (from the diff it doesn't seem like it is, since I see a BSD
> > 3 Clause)? Also say I submit a patch for this driver, does that mean
> > this will have to be dual licensed also or can I choose if it is BSD 3
> > Clause or GPLv2?
>
> Well, there are two parts to the Atheros driver.
>
> Reyk's code is *NOT* dual-licensed under the GPL. So there is no
> issue with Reyk's code. He has explicitly stated that his code is not
> dual-licenced. The file have no GPL on them. He's the author, he
> said so. None else can add a GPL to it. (No matter how much Luis
> begs and pleads and whines).
>
> The other part of the driver was written by Sam Leffler. Sam's code,
> though, is dual-licenced with a 4-term BSD'ish license (it has only 3
> terms, but the wrong term was deleted, and the attribution term was
> actually strengthened -- read the license). The GPL annotation in the
> licenses says specifically --
>
> * Alternatively, this software may be distributed under the terms of the
> * GNU General Public License ("GPL") version 2 as published by the Free
> * Software Foundation.
>
> Note that word "Alternatively".
>
> That means "or".
>
> That means that if anyone makes changes to that file and distributes it,
> after their changes are in the file then EITHER license will apply.
>
> Since it says "Alternatively" / "Or", we can simply take any of those
> new changes UNDER THE LICENSE WE PREFER, and commit them to our file
> which is NOT dual licensed. If they want to use the GPL to restrict
> our use -- that is us, the original authors, see -- they should work
> on seperate files.
>
> Note there are some files out there that don't use words like "or" or
> "alternatively" when they mix licenses. One must read what the
> license says very carefully. Trying to brush everything into the same
> simple catagories will get you nowhere.
>
> As a commentary, it seems as if many people have tired of the "make my
> own license" game, and now are playing the "mix licenses in my own
> way" game. And the "interpret it in the way that is most beneficial
> to me" game.
>
> Simpler said, I don't know why they have to be such jerks. Luis in
> particular has been ragging on Reyk for years to dual license his
> code, and won't take no for an answer. It's already totally free code,
> but apparently there is some stupid Linus rule that says that all the
> code must not be free .... noooo.... it can't just be free, it has to
> be SPECIFICALLY GPL. Now I know that's not the truth, because the Linux
> tree is FULL of objectional code that either has CSRG licences on it, or
> no license at all.
>
> Now he's saying that Linux people should basically ignore Reyk's
> license. Well screw you Luis, that is precisely not what you will do
> -- you uneducated twit. Copyright is law. You will obey it.
>
>
> Anyways, hope that explained the question you asked, FOR THIS PARTICULAR
> CASE. As I say, read the exact files, and the exact licenses.

BTW, since this is miscopenbsd.org, people might be interested to
know about the history of the licensing terms of ath(4) in OpenBSD.

OpenBSD's ath(4) consists of two parts:

1. a driver, copyrighted by Sam Leffler of FreeBSD

2. a HAL, copyrighted by Reyk Floeter of OpenBSD

What Theo explained above concerns the OpenHAL code. OpenHAL is the
Linux name for madwifi driver connected with reyk's entirely free and
open source ath(4) HAL code.

Sam originally put a dual BSD/GPL licence onto his driver code.

Reyk always put a BSD-style licence onto his HAL code.

At the time OpenHAL was forked from OpenBSD, OpenBSD's ath(4)
_driver_, but _not the HAL_, was dual licensed.

As already mentioned, OpenBSD's ath(4) HAL, written by Reyk, was
_never_ dual licensed. See the history on
/sys/dev/ic/{ar52{10,11,12}{.c,{reg,var}.h},ar5xxx.{c,h}}.

http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/ic/#ar5210.c

Few months ago, Sam changed the licence of _his_ code to a 2-clause
BSD licence. Sam had every right to do so, because he was and is the
only copyright holder of that code, as the licence header of the
driver file indicates, in FreeBSD, OpenBSD etc.

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/ath/if_ath.c#rev1.170
http://www.freshbsd.org/2007/06/06?project=freebsd&committer=sam

Reyk committed Sam's changes to OpenBSD the same day, so now,
OpenBSD's ath(4) is _entirely_ BSD-licensed, with no alternative
licensing available.

http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/ic/ath.c#rev1.64
http://www.freshbsd.org/2007/06/06?project=openbsd&committer=reyk

However, what Jiri Slaby does in his diff is simply outrageous. He
changes the licensing terms of the code _he does not own_ _at his own
will_. A clear copyright violation.

As I can see from that diff on LKML, Jiri Slaby doesn't even have his
name as the copyright holder in many of the ath5k files that he tries
to change the licensing terms of. In other files, he is not the only
author, so he can't change the terms unless _all_ other copyright
holders agree to the new terms.

I'm very upset that certain people think they can get away with such a
blatant disrespect of the copyright law. I trust that this violation
won't be left unnoticed.

What I personally don't understand, however, is that if Jiri Slaby
thinks that he can simply change the licence of someone's code without
explicit agreement of that someone, then why on earth does he think
that changing the licence to a more restrictive one will offer him any
protections, as, presumably following his logic, other people could
later change the licence to whatever they feel like, in the very same
illegal manner as he did in the first place. IMHO, that is the real
question that he has to answer.

Constantine.