To view parent comment, click here.
To read all comments associated with this story, please click here.
Butters is right. This "compile by yourself is legal" clause is one (if not the main) reason why the attempt to block all binary kernel modules as of 2008/01/01 suggested by GKH recently was turned down[1].
With respect to the binary video drivers from NVIDIA and ATI the two crucial points are
- That distributions can't distribute the already linked binary kernel modules (like for example in the incident with the Kororaa Live CD[2])
- Whether the wrapper code for the binary blob itself can be considered a derivative work of the kernel, or just a code "using the structures provided by the kernel"
I have little experience with the latter issue (although it seems to be a proverbial grey area that is here to remain), but the first is almost clearly in violation of the GPL and should therefore be avoided.
Hope that clears things up
[1]http://article.gmane.org/gmane.linux.kernel/475890
[2]http://en.wikipedia.org/wiki/Kororaa#Kororaa_XGL_Live_CD_and_the_GP...
According to butters, the license of the kernel module doesn't matter, as long as you don't distribute the linked binary. And that's exactly what NVidia is doing: they're not distributing linked binary kernel modules.
Actually, they are. nVidia does make binary modules compiled against specific versions of Suse distribution kernels available for download, for instance.
Their legal department seems comfortable with the fact that their binary blob is not derivative of the kernel, since it is OS-agnostic and the exact same blob is used on Windows and *nix. I suspect their legal department is correct.
Actually, AFAIK -- and someone correct me if I'm wrong -- the binary modules are NOT LINKED (even when "compiled against" or basically using the kernel source/headers from a specific distro). I think all drivers for *nix OSs are like that: they are essentially like *.o object files and are NOT LINKED until loaded into the kernel.
There is not a pre-established dependency in the *.ko or drivers of where to find its external functions. In other words, there is no nothing in the module themselves that state they strictly require a linux kernel. It's theoretically possible to load and link those modules against a different kernel. To "link" means to establish a dependency for symbol resolution. But in these cases, the drivers don't care where they find their external symbols as long as they're found.
On the other hand, compiling the modules into the kernel as part of the kernel boot image then distributing it, would I think violate the GPL.




Member since:
2005-11-11
Uhm... no? I quote butters:
"Probably by using the (unfortunately not so well known) fact that NO free software license places restrictions on how you USE the code (as opposed to distributing the code). Rest assured that you are free to link code licensed under incompatible licenses to your heart's content as long as you don't distribute the linked binary."
According to butters, the license of the kernel module doesn't matter, as long as you don't distribute the linked binary. And that's exactly what NVidia is doing: they're not distributing linked binary kernel modules.