LWN.net Logo

binary modules Modules and linking

binary modules Modules and linking

Posted Oct 3, 2003 22:04 UTC (Fri) by Gady (subscriber, #1141)
In reply to: binary modules Modules and linking by dwmw2
Parent article: LinkSys and the GPL - again

The entire discussion here centers around what is a "derived work" and what is a "mere aggregation" as in the last paragraph of section 2 of the GPL.

However, going back to Linus' comment about the terms for binary modules, we see that there is no way this comment can be interpreted except this: binary modules confirming with these coditions are considered an aggregation. A company which simply distributes a binary driver stand alone is undeniably complying with the GPL, hence these terms set by Linus are irrelevant. Thus this is the only possible interpretation of this comment.

While someone might claim that this is only Linus' interpretation of these two terms, this would not be quite so simple. Interpretations tend to take on a legal signifcance of their own with time. This is especially true if the interpretation stood the test in court, but even if this case, an interpretation made publicly and not openly refuted carries with it a certain legal weight. How much is of course for a court to decide, but this is certainly NOT just Linus' personal opinion.


(Log in to post comments)

binary modules Modules and linking

Posted Oct 3, 2003 23:47 UTC (Fri) by dwmw2 (subscriber, #2063) [Link]

The entire discussion here centers around what is a "derived work" and what is a "mere aggregation" as in the last paragraph of section 2 of the GPL.

And also the meaning of "as separate works" and "as part of a whole which is a work based on the Program."

A company which simply distributes a binary driver stand alone is undeniably complying with the GPL, hence these terms set by Linus are irrelevant.

It is not possible to create a kernel module without extensive use of the Linux kernel headers and interfaces, including many inline functions. It cannot be created as a work in isolation.

It was deemed necessary by Linus to make specific exception for userspace to use the ABI defined in those headers. Userspace makes little or no use of inline functions, uses a far smaller amount of the content of these headers than kernel modules do, and does not link dynamically to the kernel.

Such an exception would be redundant if the meaning of "derived work" intended by Linus and the original copyright holders did not, without such exception, include userspace programs using those headers and making system calls into the kernel.

The presence of the exception serves as a clarification, with relevance because it was present and accepted from the beginning, that the originally intended meaning of 'derived work' would, without the exception, have included userspace.

If userspace needs such an exception, it cannot possibly be found that kernel modules do not, since they are so much more closely based on the kernel.

It's clear that there is no exception for modules.

On what part of the above are you still confused?

Interpretations tend to take on a legal signifcance[sic] of their own with time. This is especially true if the interpretation stood the test in court, but even if this case, an interpretation made publicly and not openly refuted carries with it a certain legal weight.

How can it have been refuted without going to court? A court is the only form of proof that there can be. I shall assume you meant 'disputed' or 'rebuked'.

I believe you are thinking of the principle of equitable estoppel, to which I referred before. While that may restrain Linus himself from bringing a case against a distributor of binary-only modules, it doesn't affect third parties such as myself.

binary modules Modules and linking

Posted Oct 9, 2003 18:10 UTC (Thu) by AJWM (guest, #15888) [Link]

It is not possible to create a kernel module without extensive use of the Linux kernel headers and interfaces

While that may be true, it may also be irrelevant. Courts have ruled that mere use of header files does not constitute copyright infringement. Header files are more functional than expressive in nature, so a weaker standard applies. (Fair use may also apply.) This came up in the BSD vs ATT/ULS case, and was one of the reasons that the judge ruled that ATT ruled against ATT (there were other reasons, of course).

If that's the case, then a binary module (not derived from any GPL'd .c files, but possibly #including .h files) shipped by itself (think nVidia drivers) may well be allowable. That it is arguably non-functional without being loaded into the kernel is also irrelevant; copyright is about expression, not function.

binary modules Modules and linking

Posted Oct 10, 2003 12:54 UTC (Fri) by dwmw2 (subscriber, #2063) [Link]

"While that may be true, it may also be irrelevant."

I agree, since the GPL clearly requires, in some circumstances, that the source of even non-derived works must be released under the terms of the GPL.

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

binary modules Modules and linking

Posted Oct 10, 2003 11:58 UTC (Fri) by Wol (guest, #4433) [Link]

"The presence of the exception serves as a clarification, with relevance because it was present and accepted from the beginning, that the originally intended meaning of 'derived work' would, without the exception, have included userspace.

"If userspace needs such an exception, it cannot possibly be found that kernel modules do not, since they are so much more closely based on the kernel."

I think you will find that intended meaning of 'derived work' was NOT clear as to whether it included user space. The exception MAY NOT be needed, but was given in order to make the status of user space CLEAR and UNAMBIGUOUS whereas it was a grey area before.

Oh, btw, Linus opinion is more important than most peoples' over kernel copyright issues because he is a holder of copyrights in the kernel. Over and above that it is more important than ANYONE else because he is the holder of the kernel copyright. There is such a thing - it is separate from the individual copyrights that make up the kernel - and it overarches but does not override those individual copyrights. But as the owner of the overarching kernel copyright, a judge is bound to place far more weight on Linus' interpretation of the rules as they apply to the kernel, than he has to anybody else.

Cheers,
Wol

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds