So, in the face of a technical mechanism designed to enforce the author’s beliefs about the copyright status of callers of this function, Oracle deliberately circumvent that technical mechanism by simply re-exporting the same function under a new name. It should be emphasised that calling an EXPORT_SYMBOL_GPL() function does not inherently cause the caller to become a derivative work of the kernel – it only represents the original author’s opinion of whether it would. You’d still need a court case to find out for sure. But if it turns out that the use of ktime_get() does cause a work to become derivative, Oracle would find it fairly difficult to argue that their infringement was accidental.
Aside from the obvious jab at Oracle for being an untrustworthy company, what I found interesting about this story is how legal concerns have crept all the way down to the very lowest levels of the Linux kernel.
It must be a nightmare to keep track of all this stuff and having to develop Oracle’s DTrace for Linux. You can’t just have fun coding away creating the best, most efficient, and most optimal code – nope, you have to code the best, most efficient legal workaround.
Oracle are the good guys, they would never intentionally subvert an API for their own gain. As they proved in court recently, APIs are copyrightable and thus sacrosanct. Anyone subverting an API produced by someone else is just a filthy dirty liar who deserved to be sued in court for the next decade.
Did I get that right, Nelson?