By Jonathan Corbet
September 4, 2007
The ath5k driver has been through more than the usual amount of legal
trouble. This driver, for Atheros wireless chipsets, was originally
reverse engineered and developed in the BSD community. It was reputed by
some to
have been improperly
copied from proprietary Atheros code, requiring two different studies by
the Software Freedom Legal Center before Linux developers were willing to
believe that it was safe to use. This driver should be the cause of great
joy - it will make it possible for vast numbers of laptop owners to run
Linux with free drivers for the first time. But, first, there would appear
to be one more set of legal hassles to overcome.
The latest trouble started when wireless developer Jiri Slaby posted a patch which stripped the
ISC and BSD license notices from the source,
replacing them with GPLv2 license text. It should be noted that this patch
was not accepted into any repository anywhere and never became part of any
exported Linux kernel tree. Nonetheless the BSD community exploded in a
very public way. It is interesting to compare their public response to
this posting with the sort of response they very loudly insisted was their
due when they were found to have carried improperly relicensed GPL code
in their repository for some time. That notwithstanding, it is worth
taking the time to look at what has happened here.
The situation this time around is an interesting one. Much of the affected
code was written by Reyk Floeter for OpenBSD and explicitly placed by him
under a BSD-style license. The patch posted by Jiri Slaby stripped his
license text; it was thus a clear violation of Reyk's license (which
requires that the license text be preserved)
and the wrong thing to do. This patch was never applied, and it will not
be. There is no interest in the kernel community in violating anybody's
license.
Much of the code, however, had been written earlier by Sam Leffler. He had
used the BSD license, but had also included this text:
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.
So, when this code was relicensed under GPLv2, that act was clearly carried
out with the permission of the copyright holder. Mr. Leffler has since confirmed that this act was, by his intent,
explicitly allowed. Nobody can complain about the legality of this
particular change.
This did not stop OpenBSD leader Theo de Raadt from condemning the relicensing and calling it
illegal:
It may seem that the licenses let one _distribute_ it under either
license, but this interpretation of the license is false -- it is
still illegal to break up, cut up, or modify someone else's legal
document, and, it cannot be replaced by another license because it
may not be removed. Hence, a dual licensed file always remains
dual licensed, every time it is distributed.
How to square this statement with the clear notice saying that the
code may be distributed under either license is left as an exercise for the
reader. By this interpretation the BSD license becomes rather more viral
than the GPL; it cannot be removed even when the copyright notice says
otherwise. The BSD people are fine with their code being locked up and
made completely
proprietary, but it would seem that a GPLv2 relicensing, even when
explicitly allowed by the copyright owner, is a different matter entirely.
The situation has since been resolved with this patch, which was prepared
with the help of the Software Freedom Law Center. It is, perhaps, the only
kernel patch ever to have been signed off by Bradley Kuhn. All of the
required copyright attributions are now in place, and BSD-licensed code
retains that license. Some of the additions made by Linux developers,
however, remain under GPLv2, making the ath5k module, as a whole, a
GPLv2-only product.
This solution should keep the lawyers happy, but certain members of the BSD
community remain unimpressed. Quoting Theo de
Raadt again:
When companies have taken our wireless device drivers, many many of
them have given changes and fixes back. Some maybe didn't, but
that is OK.
When Linux took our changes back, they immediately locked the door
against changes moving back, by putting a GPL license on guard.
Why does our brother Linux take a file that is 90% BSD licensed,
and refuse to let us see the 10% he adds?
It is a rare day in which Theo declares brotherhood with the Linux
community. It may be tempting to dismiss this statement entirely, but, still,
there is a point here. This code was obtained from developers who
placed it under the BSD license; it was not written in the Linux community.
There is something to be said for keeping it under a permissive license so
that ongoing development can be shared between the Linux and BSD
communities. Maintaining the license would be a neighborly (or even
brotherly) thing to do, but it could also have immediate benefits in the
form of shared maintenance and good will going forward.
In the end, distributing versions of the ath5k driver under GPLv2 (with the
requisite copyright attributions maintained) is something which the Linux
community is entitled to do. Anybody who does not like more restrictive
conditions being applied to BSD-licensed code is well advised to avoid
using the BSD license to begin with. But the legal ability to do something
does not make that something the right course of action. Only the
developers who have worked on the ath5k driver have the right to decide
which license they will use, but it's worth saying that allowing the BSD
community to make use of work done on the ath5k driver would be a friendly
gesture and an acknowledgment of the value of the code we got from them.
The benefits from such an act would likely outweigh any cost
associated with allowing unwanted proprietary use of the code which has
been added to this driver.
(
Log in to post comments)