On Thursday 03 April 2008, Leo Mauler wrote:
--- Luke -Jr [email protected] wrote:
On Thursday 03 April 2008, Leo Mauler wrote:
--- Luke -Jr [email protected] wrote:
On Thursday 03 April 2008, Jeffrey Watts wrote:
All significant parties - the guy that wrote the GPL, the guy that wrote Linux - say what nVidia is doing is okay, and that the issue isn't what they are doing, but is instead a limitation of the license itself.
Greg, the guy I quoted earlier, is a Linux developer and copyright holder. Furthermore, none of the developers nor RMS are IP lawyers. The only citation of IP lawyers thus far in this discussion has been that binary modules are illegal.
There's a legal term which you should become aware of: "estoppel". In general it protects a party who would suffer detriment if:
- The defendant has done or said something to induce an expectation
- The plaintiff relied (reasonably) on the expectation...
- ...and would suffer detriment if that expectation were false.
In linux/COPYING we read that Linus has created an expectation that his copyright doesn't make binary drivers illegal simply through making system calls:
linux/COPYING says: "This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work"."
Again, nVidia's blobs are neither user programs nor merely use system calls.
Actually that isn't true. nVidia's driver uses a GPL'd "shim" or "wrapper", which means that the GPL'd wrapper makes all the system calls, and the nVidia driver makes calls only to the GPL'd wrapper.
I highly recommend reading http://en.wikipedia.org/wiki/System_call and learn that a system call is not merely "calling a function in the kernel". nVidia's driver does not (AFAIK) use system calls, and certainly does not ONLY use system calls.
Also, if you want to assert that the source code wrapper included is GPL, nVidia is clearly in violation for not including the license text with it, nor even a notice that it falls under the GPL. The only reference to the GPL relating to nVidia's driver is a comment in the Changelog stating that they "Removed all GPL'd code from nv.c.".
And if the wrapper were to be GPL'd, as is legally necessary from the fact that it is derived from Linux, it would be illegal to link it to nVidia's "kernel independent component", which is not GPL-compatible.
Since Linus, and your favorite kernel developer Greg Kroah-Hartman, have already signed off on giving ndiswrapper back its GPL status, it would seem that the "GPL wrapper for non-GPL code" option is alive and well and ACKNOWLEDGED BY GREG KROAH-HARTMAN.
Again, NDISwrapper is legal because it is GPL. The NDIS drivers are legal because they are derived from the NDIS spec, and not NDISwrapper. There is no comparison here.
Greg saw the change and acknowledged the change. Greg has thus given nVidia and any distribution which uses nVidia drivers (which use ndiswrapper-like wrappers to allow non-GPL'd code to work as legal Linux kernel modules) all the "estoppel" they'll ever need in court.
No, nVidia's wrapper is nothing like NDIS. It does not implement a generic API. Anything using nVidia's wrapper is inherently derived from the wrapper, since there is no other possible option they could conceivably be derived from.
This exception is not applicable to them.
This is also immaterial because the GPL merely refers to "derived works", and Linus has already delivered an opinion that nVidia's binary-only drivers aren't "derived works":
Linus had nothing to do with writing nVidia's driver, so how would he know? Besides, the infringing part is their source wrapper, not the binary blob.