linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Controversy over dynamic linking -- how to end the panic
@ 2001-06-21 18:14 Eric S. Raymond
  2001-06-21 18:30 ` Alan Cox
                   ` (6 more replies)
  0 siblings, 7 replies; 42+ messages in thread
From: Eric S. Raymond @ 2001-06-21 18:14 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel

As you know, there's been another flap recently about the GPL status
of loadable kernel modules.  You have a note that touches on this in
the kernel COPYING file, but it is not sufficient to resolve the
questions that keep coming up.

Earlier today I was contacted by a principal at a well-known Linux
company who was in a mild panic over recent arguments by Alan Cox and
David Miller.  This company (not VA or Red Hat, BTW) fears that their
customers will run from Linux if they get the idea that linking
drivers to the kernel might force them open.

I wrote back as follows:

>Alan's posting beginning "Linus opinion on this is irrelevant" is not a
>`perspective' that he can be argued out of.  He is not arguing about whether
>allowing proprietary binary modules is good, bad, or indifferent.
>
>Alan is merely stating legal facts as he understands them -- and, in
>fact, I agree with his assessment.  The key question is whether the
>particular kind of linking involved with loading binary modules
>propagates derivative-work status under copyright law.  This is a legal
>question a court may rule on someday.  Until one does, anyone who
>relies on such linking is taking a legal risk.
>
>Alan is not quite right that Linus's opinion is irrelevant.  It is irrelevant
>to the underlying legal question, but not to the associated business risk.
>
>As copyright holder of the Linux kernel, Linus is the only person with
>standing to sue for license violation.  Therefore, when he says
>"binary modules are OK", he is stating a policy intention which your
>customers may include in their evaluation of legal risk.  This means
>that in order for them to lose, a court must rule that module linking
>propagates derivative-work status *and* Linus must reverse himself and
>sue.

So I'm proposing a solution.  We can't resolve the underlying legal
question yet, but you can make your policy clearer.

In the existing kernel COPYING file:

>   NOTE! This copyright does *not* cover user programs that use kernel
> services by normal system calls - this is merely considered normal use
> of the kernel, and does *not* fall under the heading of "derived work".
> Also note that the GPL below is copyrighted by the Free Software
> Foundation, but the instance of code that it refers to (the Linux
> kernel) is copyrighted by me and others who actually wrote it.

I suggest replacing this with something resembling the following:

------------------------------------------------------------------------
The GPL license reproduced below is copyrighted by the Free Software 
Foundation, but the Linux kernel is copyrighted by me and others who 
actually wrote it.

The GPL license requires that derivative works of the Linux kernel
also fall under GPL terms, including the requirement to disclose
source.  The meaning of "derivative work" has been well established
for traditional media, and those precedents can be applied to
inclusion of source code in a straightforward way.  But as of
mid-2001, neither case nor statute law has yet settled under what
circumstances *binary* linkage of code to a kernel makes that code a
derivative work of the kernel.

To calm down the lawyers, I as the principal kernel maintainer and
anthology copyright holder on the code am therefore adding the
following interpretations to the kernel license:

1. Userland programs which request kernel services via normal system
   calls *are not* to be considered derivative works of the kernel.

2. A driver or other kernel component which is statically linked to
   the kernel *is* to be considered a derivative work.

3. A kernel module loaded at runtime, after kernel build, *is not*
   to be considered a derivative work.

These terms are to be considered part of the kernel license, applying
to all code included in the kernel distribution.  They define your
rights to use the code in *this* distribution, however any future court
may rule on the underlying legal question and regardless of how the
license or interpretations attached to future distributions may change.
------------------------------------------------------------------------

I believe this would express the present policy clearly enough to soothe
jittery nerves at a lot of companies that are worried about this issue.
-- 
		<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>

Government: If you refuse to pay unjust taxes, your property will be
confiscated. If you attempt to defend your property, you will be arrested.  If
you resist arrest, you will be clubbed. If you defend yourself against
clubbing, you will be shot dead. These procedures are known as the Rule of
Law.

	-- Edward Abbey

^ permalink raw reply	[flat|nested] 42+ messages in thread
* Re: Controversy over dynamic linking -- how to end the panic
@ 2001-06-21 19:22 Disconnect
  2001-06-21 19:24 ` Alan Cox
  0 siblings, 1 reply; 42+ messages in thread
From: Disconnect @ 2001-06-21 19:22 UTC (permalink / raw)
  To: Alan Cox, linux-kernel

In-Reply-To: <E15D9u7-0001xo-00@the-village.bc.nu>

On Thu, 21 Jun 2001, Alan Cox did have cause to say:

> An application is clearly not a derivative work in the general case, and they
> are linked with glibc which is LGPL and gives the users the choice and right
> to run non-free apps. 

IANAL, and this may be a dumb question, but what about LGPLing the driver
abstraction layer and/or headers? (Presuming of course there -is- a driver
abstraction layer that would work for 99% of the drivers.)  That leaves
the kernel safe (since LGPL says link whatever under whichever license,
GPL is valid for kernel core) and -specifically- allows any license you
like for HW/SW vendors who want to make modules.

---
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1 [www.ebb.org/ungeek]
GIT/CC/CM/AT d--(-)@ s+:-- a-->? C++++$ ULBS*++++$ P- L+++>+++++ 
E--- W+++ N+@ o+>$ K? w--->+++++ O- M V-- PS+() PE Y+@ PGP++() t
5--- X-- R tv+@ b++++>$ DI++++ D++(+++) G++ e* h(-)* r++ y++
------END GEEK CODE BLOCK------

^ permalink raw reply	[flat|nested] 42+ messages in thread
* Re: Controversy over dynamic linking -- how to end the panic
@ 2001-06-21 19:25 Jesse Pollard
  0 siblings, 0 replies; 42+ messages in thread
From: Jesse Pollard @ 2001-06-21 19:25 UTC (permalink / raw)
  To: jgolds, Eric S. Raymond; +Cc: torvalds, linux-kernel

---------  Received message begins Here  ---------

> 
> "Eric S. Raymond" wrote:
> > ------------------------------------------------------------------------
> > The GPL license reproduced below is copyrighted by the Free Software
> > Foundation, but the Linux kernel is copyrighted by me and others who
> > actually wrote it.
> > 
> > The GPL license requires that derivative works of the Linux kernel
> > also fall under GPL terms, including the requirement to disclose
> > source.  The meaning of "derivative work" has been well established
> > for traditional media, and those precedents can be applied to
> > inclusion of source code in a straightforward way.  But as of
> > mid-2001, neither case nor statute law has yet settled under what
> > circumstances *binary* linkage of code to a kernel makes that code a
> > derivative work of the kernel.
> > 
> > To calm down the lawyers, I as the principal kernel maintainer and
> > anthology copyright holder on the code am therefore adding the
> > following interpretations to the kernel license:
> > 
> > 1. Userland programs which request kernel services via normal system
> >    calls *are not* to be considered derivative works of the kernel.
> > 
> > 2. A driver or other kernel component which is statically linked to
> >    the kernel *is* to be considered a derivative work.
> > 
> > 3. A kernel module loaded at runtime, after kernel build, *is not*
> >    to be considered a derivative work.
> > 
> > These terms are to be considered part of the kernel license, applying
> > to all code included in the kernel distribution.  They define your
> > rights to use the code in *this* distribution, however any future court
> > may rule on the underlying legal question and regardless of how the
> > license or interpretations attached to future distributions may change.
> 
> I disagree with 2.  Consider the following:
> 
> - GPL library foo is used by application bar.  bar must be GPL because
> foo is.  I agree with this.
> - Non-GPL library foo is used by GPL application bar.  foo does NOT
> become GPL just because bar is, even if bar statically linked foo in.
> 
> The kernel is the equivalent of an application.  If someone needs to
> statically link in a driver, which is the equivalent of a library, I
> don't see how that should make the driver GPL.

Isn't this all covered by the LGPL ? (Library GPL)

If the kernel is counted as a library (by the module, or the module
counted as a library by the kernel) doesn't that fit with the LGPL
definition? I believe the LGPL covers the runtime library.

This was hashed out some time ago - If I remember correctly Linus didn't
favor the LGPL for kernel because that ment the interface between
the kernel and modules had to become more "static", restricting the
future enhancements of the kernel/module interface.

-------------------------------------------------------------------------
Jesse I Pollard, II
Email: pollard@navo.hpc.mil

Any opinions expressed are solely my own.

^ permalink raw reply	[flat|nested] 42+ messages in thread
* Re: Controversy over dynamic linking -- how to end the panic
@ 2001-06-21 21:43 Timur Tabi
  0 siblings, 0 replies; 42+ messages in thread
From: Timur Tabi @ 2001-06-21 21:43 UTC (permalink / raw)
  To: Linux Kernel Mailing list

** Reply to message from Andrew Pimlott <andrew@pimlott.ne.mediaone.net> on
Thu, 21 Jun 2001 17:30:06 -0400


> I'm not sure whether you are right or wrong--but such a conclusion
> would be grossly unfair.  I think a strong case would be made that
> existing practice wrt Linux is independent of existing practice wrt
> GNU, and that everyone involved knows that Linus's GPL is not the
> FSF's GPL.  And I think that the FSF (and their lawyers) would
> advance this claim vigorously.

Well, that's a can of worms we DON'T want to open.  What's to stop Microsoft
from claiming their own interpretaion of the GPL?  The whole point behind the
GPL (and any license) is that it cannot be vaguely interpreted by various
individuals and companies.

> (Besides, it's really in nobody's best interest to take the GPL
> before a judge, so I think that rough consensus and community
> dynamics will continue to drive the interpretation of the GPL.)

Well, what if one company create a Linux application and used the "Linus GPL"
instead of the "FSF GPL" to defend its practices?  I think there's some
situation going on right now about an company that released a non-GPL Linux
media player (or something like that) that links in someone else's GPL code.

Besides, isn't the "Linus GPL" somewhere between the "FSF GPL" and the LGPL?


-- 
Timur Tabi - ttabi@interactivesi.com
Interactive Silicon - http://www.interactivesi.com


-- 
Timur Tabi - ttabi@interactivesi.com
Interactive Silicon - http://www.interactivesi.com


^ permalink raw reply	[flat|nested] 42+ messages in thread
* Re: Controversy over dynamic linking -- how to end the panic
@ 2001-06-22  3:05 Rick Hohensee
  2001-06-22  4:05 ` kumon
  2001-06-23 22:29 ` Scott Wood
  0 siblings, 2 replies; 42+ messages in thread
From: Rick Hohensee @ 2001-06-22  3:05 UTC (permalink / raw)
  To: linux-kernel

andrew@pimlott.ne.mediaone.net (Andrew Pimlott)
>I agree entirely that Linus, as creator of the license, is
>privileged with respect to interpretation of the license.  I

Richard Stallman is the creator of the license. It's his greatest work.
Linus is in no way priviledged as to interpretation of it, other than
tolerance on the part of the parties that own the copyright to the
license.

The GPL is about "the program". As far as I'm concerned, modules are the
kernel, "the program".  The way to stem any panic that may exist, if you
want to allow binary-only modules (which sucks*, but whatever), is to LGPL
or "KGPL" the kernel. What is being allowed now is in violation of the
GPL. 


Rick Hohensee
www.clienux.com


*How 'bout a nice binary-only Forth running the kernel? Metacompiling
kernel routines into the Forth dictionary and such. Sound creepy? Good.


^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2001-06-23 22:29 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-21 18:14 Controversy over dynamic linking -- how to end the panic Eric S. Raymond
2001-06-21 18:30 ` Alan Cox
2001-06-21 19:17   ` Eric S. Raymond
2001-06-21 19:51     ` Andrew Pimlott
2001-06-21 20:13       ` Eric S. Raymond
2001-06-21 20:46         ` Andrew Pimlott
2001-06-21 21:02         ` Timur Tabi
2001-06-21 21:05           ` Andrew Pimlott
2001-06-21 21:17           ` Timur Tabi
2001-06-21 20:17       ` David S. Miller
2001-06-21 20:29       ` Timur Tabi
2001-06-21 18:39 ` Jeff Golds
2001-06-21 18:51   ` Jeff Mahoney
2001-06-21 20:02   ` Steve Brueggeman
2001-06-21 18:46 ` Timur Tabi
2001-06-21 19:03   ` Timur Tabi
2001-06-21 19:53     ` Erik Mouw
2001-06-21 19:04   ` Mike Harrold
2001-06-21 19:14     ` Alan Cox
2001-06-21 20:12       ` Marco Colombo
2001-06-21 21:14         ` Alan Cox
2001-06-21 20:31       ` Timur Tabi
2001-06-21 19:08   ` Timur Tabi
2001-06-21 19:17     ` Alexander Viro
2001-06-21 20:01   ` Wei Weng
2001-06-21 19:06     ` Alan Cox
2001-06-21 19:34       ` Jonathan Lundell
2001-06-21 20:17         ` D. Stimits
2001-06-22 11:32   ` Rob Landley
2001-06-21 20:34 ` Craig Milo Rogers
2001-06-21 21:35   ` Controversy over dynamic linking -- how to end the panic (long) Alex Bligh - linux-kernel
2001-06-22 12:32   ` Fair Use (Was Re: Controversy over dynamic linking -- how to end the panic) Rob Landley
2001-06-22  1:29 ` Controversy over dynamic linking -- how to end the panic Andrea Arcangeli
2001-06-22 10:44 ` David Woodhouse
2001-06-23 20:11 ` Fabrice Gautier
2001-06-21 19:22 Disconnect
2001-06-21 19:24 ` Alan Cox
2001-06-21 19:25 Jesse Pollard
2001-06-21 21:43 Timur Tabi
2001-06-22  3:05 Rick Hohensee
2001-06-22  4:05 ` kumon
2001-06-23 22:29 ` Scott Wood

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).