Alan Cox to NVIDIA: You Can't Use DMA-BUF
DMA-BUF is a recent kernel feature that allows multiple GPUs to quickly copy data into each others' framebuffers. A use case would be the NVIDIA Optimus that pairs a fast GPU with an Intel integrated GPU, where the NVIDIA GPU writes into the Intel framebuffer when it is active. But, NVIDIA won't be able to use this infrastructure because it's GPL. Alan Cox replied on LKML to a request from one of their engineers to mark the API non-GPL: "NAK. This needs at the very least the approval of all rights holders for
the files concerned and all code exposed by this change. Also I'd note if you are trying to do this for the purpose of combining
it with proprietary code then you are still in my view as a (and the view
of many other) rights holder to the kernel likely to be in breach
of the GPL requirements for a derivative work. You may consider that
formal notification of my viewpoint. Your corporate legal team can
explain to you why the fact you are now aware of my view is important to
them."
The rest of the thread is worth a read (a guy from RedHat agrees that this code is GPL and cannot become non-GPL without relicensing from a major subset of graphics system contributors). This has a ripple effect: it means that all of the ARM SoC GPU drivers can't use it either, and it may prevent any proprietary drivers for the proposed DRI version 3.
The GPL is a bad thing.
Not because it's viral, because it's become much worse. A religion, and alas religions have their fanatics.
APIs GPL only? Seriously guys, WHAT THE FUCK?
Just a few months ago everybody celebrated when Oracle lost miserably in court. Oracle tried to argue that Java API is copyrighted and Google have to pay insane amount of money for reimplementing Java-like language. It didn't work out. Also, it is not US only thing, there was a similar ruling in EU court that was also taken into consideration.
Now we have a linux developer (whom I respect deeply), who claims that parts of the linux kernel API is copyrighted and it could only be used under GPL.
I'm sorry but you can't have it both ways.
But this is not the worst thing in the situation. Let's assume that using the DMA-BUF by NVidia is indeed covered by GPL. The only thing that would be forbidden by GPL is the redistribution of the compiled module. All the users would be forced to compile one on their own.
And here comes the biggest absurd of all. There is a system in place to prevent that. It checks if kernel entry points are GPL and refuses to link with non-GPL code. This system is only causing problems to the users, nothing else.
Any distribution or company would have somebody smart enough to find the defines in the code and patch them (to allow compilation on the user system in accordance to GPL).
All this system does is violate the spirit of GPL.