2007-08-06 07:53:56

by Nathan Williams

[permalink] [raw]
Subject: MODULE_LICENSE usage

Hi,

I'm working on a driver for an ADSL modem which requires the use of a
binary library from the chipset manufacturer. All my source code is
GPL, so that others are free to distribute and modify the driver.
After asking the FSF for advice and working through their FAQ, I've
given permission for the binary library file to be used with the GPL
source code and be re-distributed with it.

I would like to know if I'm permitted to use MODULE_LICENSE("GPL") in my module.

Additionally, I'm unsure of what is the meaning of

"GPL and additional rights" [GNU Public License v2 rights and more]

Is it correct to say that my driver is licensed under GPL with
additional rights to use the binary library file?

Thank you,
Nathan


2007-08-06 08:17:41

by Alan

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage

> After asking the FSF for advice and working through their FAQ, I've
> given permission for the binary library file to be used with the GPL
> source code and be re-distributed with it.

Only the copyright holder can give additional permissions for a piece of
code so for such a change you must have the permission of each copyright
holder of the code.

If you write all the GPL code you can give permission for it to be mixed
with a non-free library (creating a less free than GPL result) but you
didn't write all of the kernel.

You also dont make it clear if the library is code running on the PC or
is firmware. That may make quite a difference.

> I would like to know if I'm permitted to use MODULE_LICENSE("GPL") in my module.

Almost certainly not. If your module was GPL licensed there would be no
binary library file.

> Additionally, I'm unsure of what is the meaning of
>
> "GPL and additional rights" [GNU Public License v2 rights and more]

It indicates code where the recipient and end user has additional
rights beyond the GPL. Your proposal is additional restrictions which is
different and not GPL compatible.

> Is it correct to say that my driver is licensed under GPL with
> additional rights to use the binary library file?

The kernel developers have not given you permission to link their code
with binary only codes so the answer is that if your code is any way a
derivative work of the kernel you have no ability to distribute the
work resulting from putting together kernel GPL code and the binary stuff
at all.


2007-08-06 08:21:42

by Jan Engelhardt

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage


On Aug 6 2007 17:53, Nathan Williams wrote:
>Hi,
>
>I'm working on a driver for an ADSL modem which requires the use of a
>binary library from the chipset manufacturer. All my source code is
>GPL, [...]
>I've given permission for the binary library file to be used with the GPL
>source code and be re-distributed with it.
>
>Is it correct to say that my driver is licensed under GPL with
>additional rights to use the binary library file?

[ Obligatory IANAL sticker. ]

Clear case for me IMHO. If your code is GPL (and which you emphasize
with MODULE_LICENSE(GPL)) and then link in a binary blob, then the
combined work becomes GPL, and you are required to hand out sources for
it, including for the blob.

I won't mention the gray possibilities because it is just evil in the
first place to begin with.

>Additionally, I'm unsure of what is the meaning of
>
>"GPL and additional rights" [GNU Public License v2 rights and more]

I think (but I may be wrong) that e.g. "GPL+BSD" fall into this. (Which
not change the fact that you are still obliged to comply with the GPL.)

>
>Thank you,
>Nathan
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>

Jan
--

2007-08-06 10:41:16

by Remy Bohmer

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage

Hello Nathan,

There has been a lot of discussion about this in the past.
Read for example this thread: http://lkml.org/lkml/2006/12/13/370
This will probably clears some things up.

Remy

2007/8/6, Nathan Williams <[email protected]>:
> Hi,
>
> I'm working on a driver for an ADSL modem which requires the use of a
> binary library from the chipset manufacturer. All my source code is
> GPL, so that others are free to distribute and modify the driver.
> After asking the FSF for advice and working through their FAQ, I've
> given permission for the binary library file to be used with the GPL
> source code and be re-distributed with it.
>
> I would like to know if I'm permitted to use MODULE_LICENSE("GPL") in my module.
>
> Additionally, I'm unsure of what is the meaning of
>
> "GPL and additional rights" [GNU Public License v2 rights and more]
>
> Is it correct to say that my driver is licensed under GPL with
> additional rights to use the binary library file?
>
> Thank you,
> Nathan
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2007-08-06 12:25:47

by Krzysztof Halasa

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage

Hi,

"Nathan Williams" <[email protected]> writes:

> I'm working on a driver for an ADSL modem which requires the use of a
> binary library from the chipset manufacturer.

Legal things aside, the practical solutions are:

a) if the binary "library" is just firmware running on modem's CPU
(outside the host CPU and address space), then you should just
make it a file and use firmware_loader to load it to ADSL.
Having "open" firmware is nice but not a hard requirement.

b) if the binary blob is really a library to be run in kernel (host)
space then there is no point in writing such driver - there are
completely open-source drivers for ADSL devices and most (if not
all) people will prefer them over any binary library.

Perhaps you can convince the chipset manufacturer to open the source
or publish the complete docs, but I wouldn't count on it.
--
Krzysztof Halasa

2007-08-06 15:22:59

by David Schwartz

[permalink] [raw]
Subject: RE: MODULE_LICENSE usage


> I'm working on a driver for an ADSL modem which requires the use of a
> binary library from the chipset manufacturer. All my source code is
> GPL, so that others are free to distribute and modify the driver.
> After asking the FSF for advice and working through their FAQ, I've
> given permission for the binary library file to be used with the GPL
> source code and be re-distributed with it.
>
> I would like to know if I'm permitted to use
> MODULE_LICENSE("GPL") in my module.

I don't see any reason you cannot include the line 'MODULE_LICENSE("GPL")'
in the source code for your module so long as that source code is not a
derivative work of the binary. Whether or not you can distribute the
resulting binary is, however, a complex legal question.

> Additionally, I'm unsure of what is the meaning of
>
> "GPL and additional rights" [GNU Public License v2 rights and more]
>
> Is it correct to say that my driver is licensed under GPL with
> additional rights to use the binary library file?

No. The "additional right" to use the binary library file is not a right
under which your driver is licensed, so there are no additional rights to
your driver. The binary library itself is offered under rights much less
than the GPL.

What exactly is the license under which the binary is offered? If it's "may
be used with your driver" then you may have some interesting GPL issues when
people want to modify your driver and continue to use the binary firmware
with it.

Does this "binary library" actually run on the host computer? Or is it
firmware that runs on the modem only? Does it actually link in to the
driver?

DS


2007-08-07 03:29:58

by Nathan Williams

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage

> b) if the binary blob is really a library to be run in kernel (host)
> space then there is no point in writing such driver - there are
> completely open-source drivers for ADSL devices and most (if not
> all) people will prefer them over any binary library.
>
> Perhaps you can convince the chipset manufacturer to open the source
> or publish the complete docs, but I wouldn't count on it.
> --
> Krzysztof Halasa
>

The binary blob is run in the kernel. I wasn't aware of any
completely open-source drivers for ADSL modems, mine is a PCI ADSL
modem. I have been referred to the BeWAN PCI driver as a guide for
conforming to GPL, but they use a binary library as well.

> I don't see any reason you cannot include the line 'MODULE_LICENSE("GPL")'
> in the source code for your module so long as that source code is not a
> derivative work of the binary. Whether or not you can distribute the
> resulting binary is, however, a complex legal question.
>
> > Additionally, I'm unsure of what is the meaning of
> >
> > "GPL and additional rights" [GNU Public License v2 rights and more]
> >
> > Is it correct to say that my driver is licensed under GPL with
> > additional rights to use the binary library file?
>
> No. The "additional right" to use the binary library file is not a right
> under which your driver is licensed, so there are no additional rights to
> your driver. The binary library itself is offered under rights much less
> than the GPL.
>
> What exactly is the license under which the binary is offered? If it's "may
> be used with your driver" then you may have some interesting GPL issues when
> people want to modify your driver and continue to use the binary firmware
> with it.
>
> Does this "binary library" actually run on the host computer? Or is it
> firmware that runs on the modem only? Does it actually link in to the
> driver?
>
> DS

My company has been given documentation and the library source under
the terms of an NDA with the chipset manufacturer. We are permitted
to compile the library and distribute the resultant binary blob, but
not release the source to the library.

The binary blob is linked into the driver we have written. We don't
distribute this compiled module, customers are given the driver source
and the library blob, which they compile themselves.

Thanks for the help.

Nathan

2007-08-07 07:17:57

by Arnd Bergmann

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage

On Tuesday 07 August 2007, Nathan Williams wrote:
> My company has been given documentation and the library source under
> the terms of an NDA with the chipset manufacturer. ?We are permitted
> to compile the library and distribute the resultant binary blob, but
> not release the source to the library.

Are you permitted to use the documentation to produce a free driver
that is not derived from the closed source code? That would put you
legally on the safe side and make a lot of your customers happy.

Arnd <><

2007-08-07 15:10:32

by Alan

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage

> My company has been given documentation and the library source under
> the terms of an NDA with the chipset manufacturer. We are permitted
> to compile the library and distribute the resultant binary blob, but
> not release the source to the library.
>
> The binary blob is linked into the driver we have written. We don't
> distribute this compiled module, customers are given the driver source
> and the library blob, which they compile themselves.

So you distribute a kernel derived work without following the GPL. I hope
you've discussed that with your legal team in depth.

2007-08-07 18:23:48

by David Schwartz

[permalink] [raw]
Subject: RE: MODULE_LICENSE usage


> > My company has been given documentation and the library source under
> > the terms of an NDA with the chipset manufacturer. We are permitted
> > to compile the library and distribute the resultant binary blob, but
> > not release the source to the library.
> >
> > The binary blob is linked into the driver we have written. We don't
> > distribute this compiled module, customers are given the driver source
> > and the library blob, which they compile themselves.

> So you distribute a kernel derived work without following the GPL. I hope
> you've discussed that with your legal team in depth.

What "kernel derived work" would that be?

All he distributes is the binary blob and the source code to his driver. He
hasn't given sufficient information to establish that either of those is a
"kernel derived work". It's certainly possibly that they might be and
sensible to caution him that he's breaking the rules if they are, but you
can't establish that he's not following the GPL.

Of course, he would have a definitely problem if he, or anyone else,
distributed the resulting binary.

DS


2007-08-07 18:24:04

by David Schwartz

[permalink] [raw]
Subject: RE: MODULE_LICENSE usage


> My company has been given documentation and the library source under
> the terms of an NDA with the chipset manufacturer. We are permitted
> to compile the library and distribute the resultant binary blob, but
> not release the source to the library.

> The binary blob is linked into the driver we have written. We don't
> distribute this compiled module, customers are given the driver source
> and the library blob, which they compile themselves.

Make absolutely 100% sure that your driver source code is not a derivative
work of any existing kernel code. If it is, you may be violating the
copyright of that code just by distributing the source to your driver. If
your driver takes sufficient protectable elements both from the kernel and
the library, it cannot be distributed in source code form.

I would definitely consult a good lawyer to make sure you aren't breaking
any of the rules.

As for the MODULE_LICENSE tag, if it's supposed to indicate the library the
module is under after it's compiled, it's definitely not GPL or GPL with
additional rights. Since you can't get the source code to the entire module
and can't distribute the binary, it's under a proprietary license.

DS


2007-08-07 19:20:55

by Krzysztof Halasa

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage

"Nathan Williams" <[email protected]> writes:

> The binary blob is run in the kernel. I wasn't aware of any
> completely open-source drivers for ADSL modems, mine is a PCI ADSL
> modem.

People around here use Alcatel/Thomson "Speedtouch" and Sagem
"Fast" USB ADSLs. Linux has open-source drivers for both.
USB seems like an advantage in this case, too - you can connect
to any machine including non-PCI small network storage servers
with non-x86 CPU.

Hopefully you have a x86-64 version of the library as well.


You may want to check video cards stories, it seems either your
device is useful and it _will_ be reverse engineered and
eventually a open-source driver will be written, or your device
isn't useful and nobody will bother.

I both cases open-source from start is a clear win.
--
Krzysztof Halasa

2007-08-07 20:04:15

by Alan

[permalink] [raw]
Subject: Re: MODULE_LICENSE usage

> People around here use Alcatel/Thomson "Speedtouch" and Sagem
> "Fast" USB ADSLs. Linux has open-source drivers for both.
> USB seems like an advantage in this case, too - you can connect
> to any machine including non-PCI small network storage servers
> with non-x86 CPU.

In this part of the world external boxes are cheaper than PCI cards. The
PCI cards are also usually avoided even by windows people as many of them
do a lot of DSL processing using the main CPU and trash gaming
performance as a result.

If they do this in the library btw please remember that you can't use the
FPU/MMX/etc registers in kernel on x86 Linux.

> Hopefully you have a x86-64 version of the library as well.

And PowerPC .. and ...