2012-08-01 21:24:36

by Mark Hounschell

[permalink] [raw]
Subject: MODULE_LICENSE("GPL")??

What would happen if NVIDIA used this define in their proprietary driver? I
ask because I am currently in a situation where I believe I may be about to
use a product that may be doing this very thing. We had to sign a license
agreement to get the kernel driver source for this product. What we
received contained the kernel driver source and user land library stuff.
The source code for the kernel driver has MODULE_LICENSE("GPL") defined.
The only license info in the package received was NOT the GPL license.

On this particular vendors web site they offer unrestricted downloads of
binary packages for their product/s that are for specific DIST kernels. But
to get the source requires signing a license agreement that is NOT GPL.

Thanks


2012-08-01 21:40:01

by Alan

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

On Wed, 01 Aug 2012 17:24:33 -0400
Mark Hounschell <[email protected]> wrote:

> What would happen if NVIDIA used this define in their proprietary driver? I

Ask a lawyer but I believe Nvidia has more sense than that both
politically and legally. They walk a very fine line as it is (and IMHO
the wrong side of it but one day I guess a court will figure out where
the line actually is).

> ask because I am currently in a situation where I believe I may be about to
> use a product that may be doing this very thing. We had to sign a license
> agreement to get the kernel driver source for this product. What we
> received contained the kernel driver source and user land library stuff.
> The source code for the kernel driver has MODULE_LICENSE("GPL") defined.
> The only license info in the package received was NOT the GPL license.

You cannot combine GPL and non GPL code, and since you are aware of the
fact there is a problem then you are probably a knowing infringer, which
is not a good situation to be in (triple damages in the US). If the module
license tag says it is GPL then I would talk to your lawyer about
it - you might actually be able to argue that it is therefore GPL
but I'm not a lawyer and you *really* don't want to try that stunt without
advice!

> On this particular vendors web site they offer unrestricted downloads of
> binary packages for their product/s that are for specific DIST kernels. But
> to get the source requires signing a license agreement that is NOT GPL.

Talk to the Free Software Conservancy and gpl-violations.org.

Beyond that have a detailed discussion with your lawyer on the licence,
on "knowing infringment" and in particular check your insurance as most
legal insurance won't cover you in such a situation. If you redistribute
such material you are likely to also be liable, which can be very
expensive.

All of this comes down to one thing - you need to ask a lawyer legal
questions. I think you can already answer the "what happens if you get
caught" political questions. Given that maybe you don't need to ask a
lawyer but just say no ?

Alan

2012-08-01 21:42:51

by Chris Friesen

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

On 08/01/2012 03:24 PM, Mark Hounschell wrote:
> What would happen if NVIDIA used this define in their proprietary
> driver? I ask because I am currently in a situation where I believe I
> may be about to use a product that may be doing this very thing. We had
> to sign a license agreement to get the kernel driver source for this
> product. What we received contained the kernel driver source and user
> land library stuff. The source code for the kernel driver has
> MODULE_LICENSE("GPL") defined. The only license info in the package
> received was NOT the GPL license.
>
> On this particular vendors web site they offer unrestricted downloads of
> binary packages for their product/s that are for specific DIST kernels.
> But to get the source requires signing a license agreement that is NOT GPL.

There are two cases.

1) They're using GPL-exported symbols in a module that they're trying to
claim is not licensed under the GPL. In this case someone with suitable
copyright standing could talk to them and get them to release the code
or rewrite it to not depend on GPL-only symbols.

2) You want to use their code under the GPL. In this case you should
probably talk to your legal people. If you released the code under the
GPL and they sued you for it you might be able to argue that that
statement implies that the module is licensed under the GPL. But it
might be an expensive argument.

Chris

2012-08-02 12:19:39

by Mark Hounschell

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

On 08/01/2012 05:43 PM, Alan Cox wrote:
> On Wed, 01 Aug 2012 17:24:33 -0400
> Mark Hounschell <[email protected]> wrote:
>
>> What would happen if NVIDIA used this define in their proprietary driver? I
>
> Ask a lawyer but I believe Nvidia has more sense than that both
> politically and legally. They walk a very fine line as it is (and IMHO
> the wrong side of it but one day I guess a court will figure out where
> the line actually is).
>
>> ask because I am currently in a situation where I believe I may be about to
>> use a product that may be doing this very thing. We had to sign a license
>> agreement to get the kernel driver source for this product. What we
>> received contained the kernel driver source and user land library stuff.
>> The source code for the kernel driver has MODULE_LICENSE("GPL") defined.
>> The only license info in the package received was NOT the GPL license.
>
> You cannot combine GPL and non GPL code, and since you are aware of the
> fact there is a problem then you are probably a knowing infringer, which
> is not a good situation to be in (triple damages in the US). If the module
> license tag says it is GPL then I would talk to your lawyer about
> it - you might actually be able to argue that it is therefore GPL
> but I'm not a lawyer and you *really* don't want to try that stunt without
> advice!
>
>> On this particular vendors web site they offer unrestricted downloads of
>> binary packages for their product/s that are for specific DIST kernels. But
>> to get the source requires signing a license agreement that is NOT GPL.
>
> Talk to the Free Software Conservancy and gpl-violations.org.
>
> Beyond that have a detailed discussion with your lawyer on the licence,
> on "knowing infringment" and in particular check your insurance as most
> legal insurance won't cover you in such a situation. If you redistribute
> such material you are likely to also be liable, which can be very
> expensive.
>
> All of this comes down to one thing - you need to ask a lawyer legal
> questions. I think you can already answer the "what happens if you get
> caught" political questions. Given that maybe you don't need to ask a
> lawyer but just say no ?
>

OK, thanks. Just to verify they actually had a "need" to specify GPL, I
changed it to proprietary to see if they in fact were using GPL-only
symbols. It compiled without complaint. As I've seen in the past, and one
reason why our drivers are GPL, they won't even build if a GPL exported
symbol is referenced. IE

Building modules, stage 2.
MODPOST 1 modules
FATAL: modpost: GPL-incompatible module somemod.ko uses GPL-only symbol
'somesymbol'

This particular driver does in fact build cleanly after changing the GPL
to PROPRIETARY. I haven't actually purchased the product yet so am unable
to load it, but can I assume that if I don't have a build issue when
specifying PROPRIETARY, that they are in fact NOT using GPL symbols and
maybe they just thought they needed to specify GPL for some reason or another?

Thanks
Mark

2012-08-03 05:11:26

by Chris Friesen

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

On 08/02/2012 06:19 AM, Mark Hounschell wrote:
>
> This particular driver does in fact build cleanly after changing the
> GPL to PROPRIETARY. I haven't actually purchased the product yet so am
> unable to load it, but can I assume that if I don't have a build issue
> when specifying PROPRIETARY, that they are in fact NOT using GPL
> symbols and maybe they just thought they needed to specify GPL for
> some reason or another?

Why not just ask the authors?

Chris

2012-08-03 12:04:43

by Mark Hounschell

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

On 08/03/2012 01:10 AM, Chris Friesen wrote:
> On 08/02/2012 06:19 AM, Mark Hounschell wrote:
>>
>> This particular driver does in fact build cleanly after changing the GPL
>> to PROPRIETARY. I haven't actually purchased the product yet so am unable
>> to load it, but can I assume that if I don't have a build issue when
>> specifying PROPRIETARY, that they are in fact NOT using GPL symbols and
>> maybe they just thought they needed to specify GPL for some reason or
>> another?
>
> Why not just ask the authors?
>

Well, I will before I actually distribute it to anyone. It's still not set
in stone that I'm going to use their product but since I now know that it
at least builds as NOT GPL, I just thought someone here could confirm my
assumption that that actually meant they were NOT using GPL symbols.

Thanks
Mark

2012-08-03 13:25:03

by Alan

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

> assumption that that actually meant they were NOT using GPL symbols.

All symbols in the Linux kernel are to GPL code and all linking dynamic
or otherwise is subject to the GPL licence. That is you need to be able
to show anything non-free linked with it such as a kernel module is not a
derivative work.

Alan

2012-08-03 14:11:12

by Mark Hounschell

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

On 08/03/2012 09:29 AM, Alan Cox wrote:
>> assumption that that actually meant they were NOT using GPL symbols.
>
> All symbols in the Linux kernel are to GPL code and all linking dynamic
> or otherwise is subject to the GPL licence. That is you need to be able
> to show anything non-free linked with it such as a kernel module is not a
> derivative work.

Why then is there EXPORT_SYMBOL_GPL and EXPORT_SYMBOL? As long as you have
them both, one can and will, assume that what you say above is not the intent.

Again, our Linux kernel drivers are and always were GPL and at least partly
so because of EXPORT_SYMBOL_GPL.

Mark



2012-08-03 14:16:34

by Alan

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

> Why then is there EXPORT_SYMBOL_GPL and EXPORT_SYMBOL? As long as you have
> them both, one can and will, assume that what you say above is not the intent

Then I would look back at the list and previous statements where the
intent has repeatedly been made clear by several developers.

EXPORT_SYMBOL_GPL was intended to mark internal symbols that absolutely
couldn't be used by something non derivative.

Alan

2012-08-03 18:20:07

by Theodore Ts'o

[permalink] [raw]
Subject: Re: MODULE_LICENSE("GPL")??

On Fri, Aug 03, 2012 at 10:10:54AM -0400, Mark Hounschell wrote:
> On 08/03/2012 09:29 AM, Alan Cox wrote:
> >>assumption that that actually meant they were NOT using GPL symbols.
> >
> >All symbols in the Linux kernel are to GPL code and all linking dynamic
> >or otherwise is subject to the GPL licence. That is you need to be able
> >to show anything non-free linked with it such as a kernel module is not a
> >derivative work.
>
> Why then is there EXPORT_SYMBOL_GPL and EXPORT_SYMBOL? As long as
> you have them both, one can and will, assume that what you say above
> is not the intent.

The question of whether or not a program or driver which dynamically
links with GPL'ed code becomes a derivitive work of the GPL'ed code is
a complex one. This is especially true if you use GPL'ed header files
that include inline functions or complex CPP macros. Whether or not
this is actually the case may very well depend on your local legal
jourisdiction, and it's ultimately something where no one on this list
can give you legal advice.

If the drivers are distributed under the GPL, then it's obviously
safe. If they distributed under some other license, you will need to
consult with your lawyers.

> Again, our Linux kernel drivers are and always were GPL and at least
> partly so because of EXPORT_SYMBOL_GPL.

Well, that's obviously something that we would all prefer, since
avoiding needing to talk to lawyers is always a Good Thing (tm).
<grin>

One of the more important reasons is that this removes one of the key
barriers towards getting the driver included in the kernel sources,
which can be a huge advantage from a code maintenance point of view,
and given that more embedded Linux device manufacturers are more
conscious of their obligations under the GPL, it can be an advantage
during the RFP/hardware selection process.

- Ted