Re: non-free firmware in kernel modules, aggregation and unclear copyright notice.

Sven Luther
2005-04-05T15:27:53Z

On Tue, Apr 05, 2005 at 09:19:24AM +0100, Ian Campbell wrote:
> On Mon, 2005-04-04 at 23:19 +0200, Sven Luther wrote:
>
> > I am only saying that the tg3.c and other file are under the GPL, and
> > that the firmware included in it is *NOT* intented to be under the
> > GPL, so why not say it explicitly ?
>
> I don't think anyone here has disagreed. What almost everyone has said
> however is "so go and do it" -- go do the research, contact the
> copyright holders directly and get the permission to make patches, then
> post them here.
>
> There is really no point in discussing it here, just get on and do it.

Ok, for info, here is the email i just sent to the boradcom driver support :

---

Hello,

I am part of the Debian GNU/Linux kernel team, and recently stumbled about
some legal problems with the tg3.c driver for broadcom gigabit ethernet
controllers. The problem seems to be the same for the bcm570x drivers you
distribute from your web page, and after discussion with the debian-legal
team [1] and airing the issue with the larger linux kernel developers [2],
i now come to you for clarfication of this issue.

The broadcom 570x drivers are placed under the GPL, which is nice, and come
accompanied by sources, but include a few blobs of binary-only firmware to be
uploaded to the controller.

After discussion with debian-legal, we accept that the binary-only firmware
blob does not constitute a derivative work of the rest of the driver, but mere
agregation, so distributing it as binary only as you do is not a problem,
altough getting real sources for this part would be preferable.

Now, the problem is that both in the files included in the mainline kernel, as
well as the sources you distribute yourself, these firmware blobs come in a
file like fw_lso05.h, whose licence text says :

/******************************************************************************/
/* */
/* Broadcom BCM5700 Linux Network Driver, Copyright (c) 2000 - 2003 Broadcom */
/* Corporation. */
/* All rights reserved. */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation, located in the file LICENSE. */
/* */
/* (c) COPYRIGHT 2001-2004 Broadcom Corporation, ALL RIGHTS RESERVED. */
/* */
/* Name: F W _ L S O 0 5. H */
/* Author : Kevin Tran */
/* Version: 1.2 */
/* */
/* Module Description: This file contains firmware binary code of TCP */
/* Segmentation firmware (BCM5705). */
/* */
/* History: */
/* 08/10/02 Kevin Tran Incarnation. */
/* 02/02/04 Kevin Tran Added Support for BCM5788. */
/******************************************************************************/

The above copyright statement clearly places the firmware blob under the GPL,
and makes the whole file undistributable without providing also the source
code, that is the prefered form of modification, of the firmware code in
question.

There are two solutions to this issue, either you abide by the GPL and provide
also the source code of those firmware binaries (the prefered solution :), or
you modify the copyright statement of these files, to indicate that even
thought the file per se is under the GPL, the firmware binary code is not, and
give us a licence to distribute it. Something akin to :

/******************************************************************************/
/* */
/* Broadcom BCM5700 Linux Network Driver, Copyright (c) 2000 - 2003 Broadcom */
/* Corporation. */
/* All rights reserved. */
/* */
/* This program, except the firmware binary code, is free software; you can */
/* redistribute it and/or modify it under the terms of the GNU General Public */
/* License as published by the Free Software Foundation, located in the file */
/* LICENSE. */
/* Distribution, either as is or modified syntactically to adapt to the */
/* layout of the surrounding GPLed code is allowed, provided this copyright */
/* notice is acompanying it */
/* */
/* (c) COPYRIGHT 2001-2004 Broadcom Corporation, ALL RIGHTS RESERVED. */
/* */
/* Name: F W _ L S O 0 5. H */
/* Author : Kevin Tran */
/* Version: 1.2 */
/* */
/* Module Description: This file contains firmware binary code of TCP */
/* Segmentation firmware (BCM5705). */
/* */
/* History: */
/* 08/10/02 Kevin Tran Incarnation. */
/* 02/02/04 Kevin Tran Added Support for BCM5788. */
/******************************************************************************/

Or something else such acceptable to your legal department.

In hope of hearing from you soon, and that a quick resolution of this problem
can be achieved,

Friendly,

Sven Luther

[1] -- http://lists.debian.org/debian-legal/2005/03/msg00283.html
[2] -- http://lists.debian.org/debian-legal/2005/04/msg00047.html