GPL and Linux loadable kernel modules
Posted Aug 13, 2005 16:43 UTC (Sat) by Duncan
In reply to: GPL and Linux loadable kernel modules
Parent article: Interview: Eben Moglen
> But I'm surprised that Moglen believes
> everyone agrees that GPL doesn't permit
> linking non-GPL modules dynamically.
> From reading LWN, I believe it's a well
> established fact that there's
> disagreement on that.
First, not to be niggling, but as one who claims to have a law degree
(which I'm not disputing), you should know how much difference similar but
not identical words can make. Moglen did /not/ say he believes "everyone"
agrees... What he DID say is "I think we would all agree"... (That's a
The significance of "we would all agree" vs. "everyone agrees" should be
quite apparent. One, "everyone", without a specific exception appended,
tends to paint one into a corner, because it's /very/ easy to disprove,
with even a /single/ exception. "We" is a plural pronoun, and even
modified by "all", remains vague enough to allow exceptions. In
particular, "we" implies a group of which he considers himself a part, but
the group isn't specifically defined within the interview. Within
context, particularly inclusive of the second factor below, I took the
"we ... all" to mean "informed involved parties." Specifically, that
would mean "kernel maintainers and other significant contributors who have
taken the time to become informed on the subject, together with legal
council." That specifically excludes "everyone", altho because "we"
wasn't specifically defined, that remains personal opinion, the way /I/
Still considering the phrase "we would all agree", there's the term
"would". Within context, that lends support to the above "informed"
interpretation. Specifically, "would" implies some qualification or
condition, that "we all agree" /if/ said qualification "would" be met.
Within context, the implication is that "we would all agree" ... /if/ we
all took the time to study the issues...
Together, then, the two parts of the phrase he chose do /not/ necessarily
imply the all-inclusive "everyone" that was your interpretation. Rather,
the phrasing used indicates a somewhat more selective group, and only then
conditionally, with the implied condition being that of having taken the
time to be informed on the subject. Being rather less all-inclusive, the
statement he made (as quoted), as opposed to the statement you attributed
to him, is significantly easier to defend, and to understand.
Second, and similar to you, from my reading of LWN (and other community
sources such as NewsForge), the "well established" disagreement appears to
me to be specifically with the conditions applied to the Linux
kernel, /not/ to the GPL in general.
Again, the distinction can be subtle, but it's quite important,
particularly so in understanding the point Moglen was (IMV) trying to
make. The Linux kernel is an exception in GPL licensed software, due to
the fact that its license, as contained within the COPYING file, contains
a preamble to the GPL. Go ahead and look it up. It's worth reading.
The point Moglen was making was this: The GPL, as applied to the kernel,
already has specific exception clauses (or clarifications, as the case may
be argued) applied, so it's /not/ /just/ the terms of the GPL that apply,
it's the GPL already modified. The "informed" as implied by the "we would
all agree" as discussed above, will already understand this Linux kernel
exception, and read his comments with it in mind.
Further to the point, there was honest debate as to whether userland was
covered by the code sharing requirements of the GPL, particularly where
such userland made use of kernel headers. Since glibc makes use of kernel
headers, and most of userland in turn links against it, one could argue
that nearly the entire Linux userland was subject to the terms of the GPL.
That didn't fit Linus' idea of the conditions he wanted for the kernel at
all, so he put an end to the debate with the GPL preamble in the COPYING
file, specifically allowing proprietary source userland applications.
It is within the context of this history that Moglen makes his comments to
the effect that were the license pure GPL /only/, without the preamble and
other to this day not specifically stated exceptions, he thinks "we would
all agree" that kernel linking, static or dynamic, would violate the GPL.
His argument is that such other exceptions need to be stated specifically,
allowed or disallowed with a clear delineation, as has already been made
with the preamble and with the GPL-only function declarations.
It is within that context that I read his arguments, and believe that he's
right, were the GPL /only/ to be applied, there'd be little controversy,
all closed kernel modules would be a violation of the license, period.
The reason there's controversy at all, is due to the very reasonable
exceptions already made, along with hints, both in Linus' remarks, and in
the written form of the specifically GPL-only kernel symbols, that other
not-specifically-delineated exceptions exist as well. Because these
exceptions apply specifically to the kernel, not to the GPL or other GPL
licensed software, the controversy isn't on the GPL itself, and I believe
his statement that "we would all agree", within the context outlined, is a
fairly safe statement to make.
All in my opinion as specifically NOT a lawyer, and NOT a kernel level
coder, either, just a (hopefully) astute consumer of legal opinion on the
topic at hand.
to post comments)