Skip to contentSkip to conversation

MODULE_LICENSE("GPL")??

DISCUSSION Mark Hounschell 4 participants 10 messages Aug 1, 2012 – Aug 3, 2012

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
Quoted 1 line · 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).

Quoted 6 lines

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!

Quoted 3 lines

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

#2 lore raw
Quoted 37 lines · Alan Cox
Quoted 1 line · 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).

Quoted 6 lines

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!

Quoted 3 lines

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.

Quoted 5 lines

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

#3 lore raw
Quoted 2 lines · Mark Hounschell

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

#4 lore raw
Quoted 11 lines · Chris Friesen
Quoted 7 lines · Mark Hounschell

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

#5 lore raw
Quoted 1 line

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

#6 lore raw
Quoted 6 lines · Alan Cox
Quoted 1 line

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

#7 lore raw
Quoted 2 lines

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

#8 lore raw
In reply to Mark Hounschell
Quoted 11 lines · Mark Hounschell
Quoted 6 lines · Alan Cox
Quoted 1 line

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.

Quoted 2 lines

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

#9 lore raw
In reply to Mark Hounschell
Quoted 9 lines · Mark Hounschell

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.

Quoted 3 lines

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