There are basically only three solutions to this problem:
1) Change the license of Linux to make module linking more permissive
2) Change the license of the Nvidia driver to be GPL-compatible
3) Design and implement a new interface that doesn't create derivative works when modules link to it
There is no "Alan and Linus relent and decide it's okay" option. They don't have that authority under copyright law.
The whole defence for Nvidia's driver (and the reason why Linus tolerates it, despite hating it) is that it is a driver which runs on several operating systems and as such it is not derivative of the Linux kernel, it merely interfaces with it. It does the same thing on all systems, so it can run just fine without Linux. It ran on Windows before it ran on Linux, and it can run just fine without Linux, so there is a good argument that the current blob is not derivative of Linux kernel code.
However, if you start adding functionality which uses specialised internal functions of the GPLed kernel, which only exists in the Linux kernel, and for the express purpose of tight cooperation with other (partly GPL) drivers which only exist inside the Linux kernel, then it is hard to argue that these parts of your blob are not derivative work of the kernel. You can argue the X11 also works on BSDs, so it's not derivative of that, but DMA_BUF is Linux-only, and GPL to boot. You can't claim it's generic: without Linux, it cannot possibly work. It was especially written only to work with a special, Linux-only subsystem. That's as derivative as you can get. And if you GPL those parts as per licence requirements, then you have to GPL it all.
Nvidia's strategy worked well as long as they didn't touch any part of Linux and did it all themselves. Optimus screwed them up -- you can't avoid GPL code, and you can't simply wish the licence away like they are trying to.
This is an excellent summary of the situation. I wanted to post it again, so it doesn't get lost in the middle of that troll-fest.
It's unfortunate that so many people are unable to look at the situation from a legal standpoint like this. All people seem to want to do is blame someone (both sides do this) and advocate doing things that blatantly break the law.
NVidia could implement DMA-BUF on one of the BSDs their driver supports.
The Oracle/Google lawsuit over Java established fairly clearly that an API is not copyrighted, so NVidia should be clear to implement a clean-room version of the DMA-BUF API on top of the BSD kernel of their choice.
If there are any parts of the API that don't match up cleanly across the BSD/Linux divide, they should just abstract that away. They can then commit those abstractions back into the linux DMA-BUF code under the GPL license, and still be good to go.
Then they just need to add that into their driver, and they can claim that it's a common API across multiple OS's which means that it can't be making their code a derivative of the linux kernel (gpl2) code.
Last edited by smitty3268; 10-18-2012 at 10:46 PM.
This is of course the main problem with GPL and the zealots. Linux needs a different license, probably BSD or MIT or something in between a permissive license and the GPL, but it's not possible to ask every developer who ever contributed to Linux to do that. All that's necessary is to dual-license the related code under a more permissive license, but that would make Alan Cox bitch like a human centipede.
Alan Cox and Linus Torvalds, the 2 big mouths who haven't really written anything meaningful in the last 10 years tell nvidia to fuck off when they are actually trying to integrate better with Linux. There's now a good chance that nvidia will simply tell those two to fuck off in return.
FreeBSD will have no problem taking over the Linux/nvidia market because their license is vastly superior and isn't driven by communist philosophy
Last edited by joe_gunner; 10-18-2012 at 11:14 PM.
I SHOULD BE ABLE TO USE THE NVIDIA BLOB AND DMA-BUF AS I SEE FIT FOR MY OWN PERSONAL NEEDS.
And you are. There is nothing saying that you can't do that. You just need to get the source code of the blob and then compile it to link and work with DMA-BUF. For your personal needs only, of course, not distribution.
brilliant ! :D
Originally Posted by kirillkh
Alan has been very vocal about rejecting the NVIDIA-requested change as he doesn't want NVIDIA's binary -- but widely-used -- graphics driver to support the DMA-BUF infrastructure.
This is simply a slander. It says little about Alan, but much about Michael.
indeed, fucking shameful :/
Originally Posted by TheCycoONE
It sounds like a lot of people here would rather be using BSD.
my thoughts exactly. and yet, *BSD isn't very popular among such people (other, maybe, as a server OS in their workplace), with its almost complete lack of desktop support features (like any decent open-source video-drivers), go figure !
Originally Posted by Rigaldo
So even if I mostly said that as a joke, I stand by it, since I'd prefer the best experience for Linux users and the best fate for Linux.
like they say: "the road to hell is paved with good intentions".
sometimes you just have to stop acting like a bitch and doing reprehensible things, even if they feel good.
Originally Posted by boast
No room for people who just care about getting the best, be it open or closed. Gotta choose one extreme or the other.
uh-huh, you can't just be going around, while taking and doing anything you like / deem "best" for yourself. gotta make compromises, have moral & ethical borders.
and all of you, but-what's-the-point-of-a-Free-OS-without-our-lovely-proprietary-crap-motherfuckers, please, go fuck yourself and, after that, go buy yourself some Windows® licences. m'kay ?