In-kernel driver or FUSE based?
In-kernel driver or FUSE based?
Posted Aug 26, 2009 21:30 UTC (Wed) by rickmoen (subscriber, #6943)In reply to: In-kernel driver or FUSE based? by corbet
Parent article: Tuxera signs up with Microsoft
corbet wrote:
You missed something: there is no special GPL exemption for loadable modules. They must comply with GPLv2, period. As has been remarked, the fact that they are a module does not itself say much about compliance; it's really a matter of whether the module is a derived product of the kernel or not.
More exactly, anyone distributing modules whose licensing doesn't comply with the terms of GPLv2, and which module is a derivative work of someone else's code in the kernel, commits the tort of copyright violation against the latter person.
Fuzzy line? Not as much as you might think. The key point of contention, which few in these discussions ever seem willing to actually study, is the legal term of art "derivative work" -- and it's really not all that difficult to understand. In USA law, the ruling case (concerning non-literal copying of copyrighted works) is CAI v. Altai, Inc., (2nd Circuit, 1992), which provided a mechanism (abstraction, filtration, comparison) for judges to isolate "expressive elements" of the work alleged to have been derived from, as opposed to "functional elements". Purely functional elements within a copyrighted work (elements dictated by efficiency, elements dictated by external factors, standard programming techniques and program features), along with elements taken from the public domain, inherently don't qualify for copyright coverage in the first place. (Why inherently? Because of 17 U.S.C. 102(b), clarifying that if you want a monopoly properly covered by patent, i.e., "any idea, procedure, process, system, method of operation, concept, principle, or discovery", then you can't get it using copyright.)
Don't take my word for that, Jon. Read Justice John M. Walker's opinion. It's pretty short, and very clear.
Among other things, on account of those considerations, the oft-heard contention that works needing the kernel's GPL-only exported symbols are inherently derivative works of (something in) the kernel seems doubtful on its face: Those seem like the very picture of a "functional element", in which category Walker (quoting Nimmer) lists elements dictated by "compatibility requirements of other programs with which a program is designed to operate in conjunction".
The notion that derivative work theory has anything to do with the nature of linking, or of use or non-use of this-or-that programming interface, has always been hooey. It's about time that these misconceptions were dropped.
Rick Moen
rick@linuxmafia.com
