Void Main wrote:I still don't know that it's a cut and dry violation. I understand that if SUSE or Redhat distribute binary modules that it could be considered a violation but if a vendor ships a module I'm not sure that it would technically be a violation. It doesn't include any GPL code, although it does depend on a GPL program (the kernel) to be useful.
If the module can be considered a derivative work then anybody redistributing it should be able to provide the source code on demand, shouldn't they? I don't see how it would be any different to a vendor and an OS distributor. It doesn't matter that you're not shipping Linux, the module must be available under the GPL (
if it is considered a derivative work of Linux).
Nvidia's playing it safe anyhow.
If the user of the kernel wants to load a binary module there is absolutely nothing wrong with that as there is no distribution.
Yep.
I guess as you see it nVidia could be violating the GPL because the FSF might consider that module to be a derivative.
No, Nvidia's playing it safe. The linking (assuming it can be called that) with the kernel happens at install time, by the user, with Nvidia's installer. They ship the smallest amount of source code they can to make this possible.
I'm not sure if ATi do anything similar.
Question is, would the courts consider it a derivative? I am sure SCO would certainly consider it a derivative.

I'm actually not certain that even the FSF would consider kernel modules a derivative. Is a kernel modules relationship to the kernel "linking"? I know what static and dynamic linking is when it comes to libraries but the is the kernel technically a "library"?
I'm not sure. The kernel loads the modules itself, doing a similar thing to 'ld'.
http://www.cyberciti.biz/tips/build-lin ... -tree.htmlLooking at that (and looking at chapter 2 of
this book).. Since you need the kernel headers installed to compile a module, the modules must've #included parts of the linux-kernel-headers at compile time - in particular /usr/include/linux/module.h which
seems to be under the GPL too (nothing in the file suggests otherwise).
Is that enough to make modules derivative works?
As for linking I'm not sure, there's certainly nothing involving the traditional ld, the kernel has it's own solution, and I don't know how it works. It might be something to do with the System.maps that are generated when the kernel is compiled. EDIT: reading (at least the first few parts of) that chapter would probably yield a good understanding of how the linking works, but I don't have the time atm.
I appreciate your input as you seem to be pretty knowledgeable regarding the GPL. This raises my curiosity about your background in this area.

I have enjoyed learning as much as I can about the GPL and I pick up new things all the time about it. Then it's fun to keep up with the Groklaw happenings to see how the legal process actually works (excruciatingly slow is the one word that comes to mind). This kernel module stuff is one area that is still very gray in my noggin regarding GPL compatibility.
Yeah, I'm pretty much the same

IANAL, just interested in this sort of stuff. It'd be interesting to say the least if someone did try to request compliance/press suit (who could? I still amn't sure) e.g. against ATi. I think that's the only way the record would be set straight, but it'll not likely happen.