public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: MODULE_LICENSE and EXPORT_SYMBOL_GPL
@ 2001-10-18 16:05 Roy Murphy
  2001-10-18 15:17 ` Arjan van de Ven
  0 siblings, 1 reply; 25+ messages in thread
From: Roy Murphy @ 2001-10-18 16:05 UTC (permalink / raw)
  To: linux-kernel

'Twas brillig when Keith Owens scrobe:
>EXPORT_SYMBOL_GPL 
>
>Some kernel developers are unhappy with providing external interfaces
>to their code, only to see those interfaces being used by binary only 
>modules. They view it as their work being appropriated. Whether you 
>agree with that view or not is completely irrelevant, the person who 
>owns the copyright decides how their work can be used. 

The GPL takes its strength and power from Copyright Law.  Copyright law 
allows certain exclusive rights to authors.  Among these are: 
distribution, public performance and the preparation of derivative 
works.  Copyright Law (at least in the US) reserves certain rights to 
the Public, notably the right to make Fair Uses.  Because of Fair Use, 
the statement above "the person who owns the copyright decides how 
their work can be used." is demonstrably false in a US Copyright 
context.

Some elements of authorship are copyrightable, other elements are not.  
One clear exception in US Copyright Law is "methods of operation" which 
are not copyrightable.  The canonical example of this the pattern of a 
standard transmission shift.  The pattern, intimately tied to the 
manner in which the device is used, has been standardized because its 
design could be copied and used by all manufacturers.

Exported interfaces are "methods of operation" in the sense of US 
Copyright Law.  Copyright Law affords no protection to "methods of 
operation".  The GPL, which gains its strength from Copyright Law, also 
has no rights in this area.  If a GPLed module does not want other code 
using its interfaces, they should not be exported.

This is an example of overreaching copyright control which is just as 
aggregious as CSS on DVDs.
 

^ permalink raw reply	[flat|nested] 25+ messages in thread
* Re: MODULE_LICENSE and EXPORT_SYMBOL_GPL
@ 2001-10-19 18:03 Roy Murphy
  0 siblings, 0 replies; 25+ messages in thread
From: Roy Murphy @ 2001-10-19 18:03 UTC (permalink / raw)
  To: linux-kernel

'Twas brillig when Taral scrobe:
>You're quite right. Module insertion is linking. And distributing a 
>kernel with binary-only modules already inserted would be a GPL 
>violation. What modules do is let people do the link at the last stage 
>-- the end user. The GPL does not restrict what end-users do with your 
>code if it doesn't involve redistribution. 

The point was made earlier that a module might include some code expanded from
a macro in a kernel header file.  Producers of binary 
modules could adopt a "clean room" approach (as the first cloners of 
the IBM PC BIOS did) and have one group write a technical specification 
for any necessary kernel headers and have a second group implement 
substitute headers from the specification.

>I also think this is somewhat ridiculous. If I (the binary module 
>maker) distribute a program which effectively replicates the 
>functionality of insmod without the licence checking, and distribute 
>that program with my module, am I violating any restrictions? I don't 
>think so, since it's the end-user that ends up linking the kernel to 
>the module. No linked products are actually distributed... 

In the US it may be a violation of the DCMA prohibition on 
circumvention of "effective access controls" (and perhaps violations of 
corresponding laws in some European countries).  Though that's a whole 
'nother huge legal morass.
 

^ permalink raw reply	[flat|nested] 25+ messages in thread
* Re: MODULE_LICENSE and EXPORT_SYMBOL_GPL
@ 2001-10-18 16:43 Roy Murphy
  2001-10-18 15:49 ` Arjan van de Ven
                   ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Roy Murphy @ 2001-10-18 16:43 UTC (permalink / raw)
  To: Arjan van de Ven, Roy Murphy, linux-kernel

'Twas brillig when Arjan van de Ven scrobe:
>I think you're missing one thing: binary only modules are only allowed
>because of an exception license grant Linus made for functions that are
>marked EXPORT_SYMBOL(). EXPORT_SYMBOL_GPL() just says "not part of 
>this exception grant"....

With all respect to Linus, I don't believe that module insertion is an 
exclusive right granted to authors that is within Linus' legal power as holder
of the Copyright to the kernel to grant or to restrict.  Does Microsoft have
a legal right to disallow any third-party drivers from 
registering themselves with the OS?  Does Linus?
 

^ permalink raw reply	[flat|nested] 25+ messages in thread
* MODULE_LICENSE and EXPORT_SYMBOL_GPL
@ 2001-10-18  3:23 Keith Owens
  2001-10-18  4:03 ` Alexander Viro
  2001-10-19  7:16 ` Kai Henningsen
  0 siblings, 2 replies; 25+ messages in thread
From: Keith Owens @ 2001-10-18  3:23 UTC (permalink / raw)
  To: linux-kernel

That has been a lot of uninformed and confused comment on l-k about
MODULE_LICENSE and EXPORT_SYMBOL_GPL.  I will try to make this as
simple as possible, to improve the signal to noise ration on this list.

Don't bother cc'ing me on any replies.  Also I don't care what your
view of the GPL is or should be.

MODULE_LICENSE

MODULE_LICENSE() allows kernel developers to identify kernels that have
been tainted by modules whose source code is not generally available.
No source code means that only the supplier can debug the problem so
send the bug report to them, not l-k.  Precisely which license string
indicates that source is freely available is still being fine tuned.

A module without a license must be assumed to be proprietary.  Not all
existing modules have a MODULE_LICENSE() yet but most do, the rest are
not far behind.  For code that is not in the standard kernel tree, it
is up to the supplier to set the license string accordingly.  I
recommend that binary only modules contain a string like :-

  MODULE_LICENSE("Proprietary.  Send bug reports to joe.bloggs@somewhere")

Modutils marks the kernel as tainted when it loads a module without a
GPL compatible MODULE_LICENSE(), reporting the license string so users
know where to send bug reports.  Oops reports the tainted status of the
kernel.  Kernel developers can decide if they want to look at tainted
bug reports or not.  End of story.

Somebody raised the red herring of linking proprietary code into the
kernel.  If you compile and link code into the kernel and do not
provide the source then you cannot distribute the resulting kernel.  To
do so is a breach of GPL conditions, read the GPL if you don't believe
me.  There is nothing to stop you building your own kernel with binary
only code and using it internally, but any bugs are your problem and
you cannot distribute the result.

EXPORT_SYMBOL_GPL

Some kernel developers are unhappy with providing external interfaces
to their code, only to see those interfaces being used by binary only
modules.  They view it as their work being appropriated.  Whether you
agree with that view or not is completely irrelevant, the person who
owns the copyright decides how their work can be used.

EXPORT_SYMBOL_GPL() allows for new interfaces to be marked as only
available to modules with a GPL compatible license.  This is
independent of the kernel tainting, but obviously takes advantage of
MODULE_LICENSE() strings.

EXPORT_SYMBOL_GPL() may only be used for new exported symbols, Linus
has spoken.  I believe the phrase involved killer penguins with
chainsaws for anybody who changed existing exported interfaces.

System calls are not affected and cannot be, that is yet another red
herring.  Anybody who thinks otherwise does not understand the GPL.
System calls define how user space code accesses the kernel, nobody
pretends that a binary only user space program cannot use a syscall.


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

end of thread, other threads:[~2001-10-21 20:14 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-18 16:05 MODULE_LICENSE and EXPORT_SYMBOL_GPL Roy Murphy
2001-10-18 15:17 ` Arjan van de Ven
2001-10-19 15:30   ` Taral
2001-10-21 15:22     ` Alan Cox
2001-10-21 20:16       ` Taral
2001-10-19 17:06   ` David Woodhouse
  -- strict thread matches above, loose matches on Subject: below --
2001-10-19 18:03 Roy Murphy
2001-10-18 16:43 Roy Murphy
2001-10-18 15:49 ` Arjan van de Ven
2001-10-18 18:42   ` Tim Bird
2001-10-19 15:38   ` Taral
2001-10-18 16:07 ` Jan-Benedict Glaw
2001-10-18 22:38   ` David Lang
2001-10-19  0:46     ` John Alvord
2001-10-18 23:57       ` David Lang
2001-10-19 12:44         ` Reid Hekman
2001-10-19 20:07           ` David Lang
2001-10-20  0:00             ` Reid Hekman
2001-10-20  6:38             ` Keith Owens
2001-10-21 15:06               ` Alan Cox
2001-10-21 15:47 ` Alan Cox
2001-10-18  3:23 Keith Owens
2001-10-18  4:03 ` Alexander Viro
2001-10-19  7:16 ` Kai Henningsen
2001-10-19  8:26   ` Nils Philippsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox