linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Adam J. Richter" <adam@yggdrasil.com>
To: linux-kernel@vger.kernel.org
Subject: Re: Linux GPL and binary module exception clause?
Date: Fri, 5 Dec 2003 03:35:02 -0800	[thread overview]
Message-ID: <200312051135.hB5BZ2V06015@adam.yggdrasil.com> (raw)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 7883 bytes --]

	I am not a lawyer, so please do not rely on what I say as
legal advice.

	Even for proprietary Linux kernel modules that do not contain
a byte of GPL'ed code, I see at least two levels of potential copyright
infringement.  I think the conversation has largely missed the second,
and more important case: contributory infringment, but I really have
to start with the direct infringement to explain clearly.

	The direct infringement occurs occurs when a user creates an
infringing work in RAM, which I think is restrictable for works that
are licensed rather than sold due to the US 9th circuit federal
appeals court decision MAI Systems Corp. v. Peak Computer [1]:

| [39] We have found no case which specifically holds that the copying of 
| software into RAM creates a "copy" under the Copyright Act. However, 
| it is generally accepted that the loading of software into a computer 
| constitutes the creation of a copy under the Copyright Act. See 
| e.g. Vault Corp. v. Quaid Software Ltd., 847 F.2d 255, 260 (5th 
| Cir. 1988) ("the act of loading a program from a medium of storage 
| into a computer's memory creates a copy of the program"); 2 Nimmer on 
| Copyright, § 8.08 at 8-105 (1983) ("Inputting a computer program 
| entails the preparation of a copy."); Final Report of the National 
| Commission on the New Technological Uses of Copyrighted Works, at 13 
| (1978) ("the placement of a work into a computer is the preparation of 
| a copy"). We recognize that these authorities are somewhat troubling 
| since they do not specify that a copy is created regardless of whether 
| the software is loaded into the RAM, the hard disk or the read only 
| memory ("ROM"). However, since we find that the copy created in the 
| RAM can be "perceived, reproduced, or otherwise communicated," we hold 
| that the loading of software into the RAM creates a copy under the 
| Copyright Act. 17 U.S.C. § 101. We affirm the district court's grant 
| of summary judgment as well as the permanent injunction as it relates 
| to this issue. 
[...]
| 5. Since MAI licensed its software, the Peak customers do
| not qualify as "owners" of the software and are not eligible for
| protection under § 117.
 
	I believe this standard was applied specifically to operating
systems by Triad Systems Corp. v. Southeastern Express [2].

	By the way, I believe the MAI decision was narrowed slightly
by the Digital Millennium Copyright Act[3], but only to allow third
party maintenance organizations to reboot computers that they maintain.

	These decisions apparently limit the copyright exception
originally recommended by the CONTU panel [4] for making it legal to
run copyrighted programs in RAM [5].

	Although I recnetly heard a copyright lawyer say that there
are a string of cases supporting the doctrine that copying to RAM is
restrictable by copyright, I should also point out that these are
cases that I turned up some time ago in a google search.  This may be
an example of how a little knowledge can be a dangerous thing.  I do
not, for example, know what legal references the Free Software
Foundation used to convince NeXT Computer that they had to release the
source code to their Objective C GCC object files.


	The second, more practically restrictable, potential form of
infringement is contributory infringement by those who distribute
proprietary kernel modules, such as authors, FTP site maintainers,
vendors, and their employees.  Even if proprietary Linux kernel module
is shipped as an object which has other uses besides being linked into
Linux, it invariably requires "glue" code to work in Linux.  _Even
when the "glue" code is open source_, if it's only substantial use is
to form part of an infringing work in RAM, then it is a contributory
infringement device.  Here is a diagram to help illustrate:

		 -----------------------------------
		| Core Linux kernel:		    |
		| Covered by GPL and other          |
		| compatible free software licenses |
		 -----------------------------------
				|
				|
				|
				|
		 -----------------------------------
                | Glue code:                        |
		| Perhaps released under	    |
		| GPL-compatible license, but still |
	        | contributory infringement to      |
	        | distribute, because it has no     |
		| substantial non-infringing use.   |
		 -----------------------------------
				|
				|
				|
				|
		 -----------------------------------
		| Proprietary object: perhaps used  |
		| in drivers for other OS's too.    |
                | May have substantial              |
                | non-infringing use, and be legal  |
		| to distribute, but still direct   |
		| copyright infringement by end user|
		| to load into kernel.              |
		 -----------------------------------


	The glue code may be part of the proprietary module or may be
distributed as a separate middle layer module.  This code usually has
no "substantial non-infringing use", thereby failing the test
established for contributory copyright infringement from the 1984 US
Supreme court decision, Sony Corporation of America v. Universal City
Studios, Inc. [6], which basically set the common law test for
contributory copyright infringement to be the same as the statutory
standard for contributory patent infringement [7].

	Granted, it may be possible to write multi-purpose
GPL-compatible glue code, every byte of which has a substantial
non-infringing use.  For those cases, distribution might not be
restrictable, but it would still be copyright infringement by the end
user to load the module into a running Linux kernel.

	I am not claiming that these are the only possible legal
problems or potential copyright problems with proprietary kernel
modules.  There are other possible infringement scenarios, such as
direct infringement in proprietary source code that is comingled with
GPL'ed source code, or direct infringement in object code that
contains some GPL'ed inline routines.  Kernels running with
proprietary modules also might not be covered by the "free for GPL'ed
use" patent grants [8, 9, 10].

	I must reiterate, however, that I am not a lawyer.  So, please
do not rely on what I say as legal advice.  The most consequential
action that anyone should take based on this message is to ask a
lawyer about it.


[1] MAI Systems Corp. v. Peak Ccomputer, Inc., 991 F.2d 511 (1993).
    http://www.law.cornell.edu/copyright/cases/991_F2d_511.htm

[2] Triad Systems v. Southeastern Express, 64 F.3d 1330 (1995).
    http://www.eff.org/IP/triad_v_southeastern_64f3d1330_decision.html

[3] The Digital Millenium Copyright Act of 1998.
    www.loc.gov/copyright/legislation/dmca.pdf

[4] United States Code, Title 17 (Copyright), Section 117,
    (Limitation on exclusive rights: computer programs)
    http://www.bitlaw.com/source/17usc/117.html

[5] Final Report of the National Commission on New Technology Uses
    [CONTU] of Copyrighted Works, chapter 3:
    http://digital-law-online.info/CONTU/contu6.html

[6] Sony Corporation of America v. Universal City Studios, Inc.
    ("the betamax decision")
    http://www.eff.org/Legal/Cases/sony_v_universal_decision.html

[7] For "substantial noninfringing use", see United States Code, Title 35
    (Patents) Section 271 (Infringement of Patent), paragraphs (c) and (f)(2).
    http://www.bitlaw.com/source/35usc/271.html

[8] "Yodaiken clarifies the Open RTLinux Patent License"
    http://linuxdevices.com/articles/AT6164867514.html

[9] "The RTLinux Open Patent License, version 2.0"
    http://www.fsmlabs.com/products/rtlinuxpro/rtlinux_patent.html

[10] "GPL patent grant for 19 patents"
     http://www.advogato.org/article/89.html


Adam J. Richter     __     ______________   575 Oroville Road
adam@yggdrasil.com     \ /                  Milpitas, California 95035
+1 408 309-6081         | g g d r a s i l   United States of America

             reply	other threads:[~2003-12-05 10:35 UTC|newest]

Thread overview: 258+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-05 11:35 Adam J. Richter [this message]
2003-12-05 11:25 ` Linux GPL and binary module exception clause? David Schwartz
2003-12-05 15:36   ` Valdis.Kletnieks
  -- strict thread matches above, loose matches on Subject: below --
2003-12-18  9:12 Randy Zagar
2003-12-18  9:51 ` Thorsten Glaser
2003-12-18  9:55 ` Daniel Newby
2003-12-18 14:24 ` Jesse Pollard
2003-12-19  7:56 ` Andre Hedrick
     [not found] <fa.go3ahvi.h68o2q@ifi.uio.no>
     [not found] ` <fa.nk4vl6d.g0181@ifi.uio.no>
2003-12-12  3:03   ` walt
2003-12-10 19:06 Manfred Spraul
2003-12-09  6:20 Paul Zimmerman
2003-12-09 13:22 ` Andrew Walrond
2003-12-09 14:12   ` Dale Whitchurch
2003-12-09 20:47     ` bill davidsen
2003-12-09 23:47     ` David Schwartz
2003-12-10 14:30     ` Jesse Pollard
2003-12-10 14:17 ` Jesse Pollard
2003-12-10 16:10   ` Richard B. Johnson
2003-12-10 17:58   ` Andre Hedrick
2003-12-11 15:01     ` Jesse Pollard
2003-12-07  2:34 gary ng
2003-12-08 16:08 ` Alex Bennee
2003-12-08 16:26   ` gary ng
2003-12-06 12:31 Matt
2003-12-05 22:43 gary ng
2003-12-05 23:11 ` Linus Torvalds
2003-12-06  0:07   ` gary ng
     [not found] <732BE51FE9901143AE04411A11CC465602F155F3@evtexc02.tc.fluke.com>
2003-12-05 17:05 ` David Dyck
2003-12-05 18:51   ` Jesse Pollard
2003-12-04 23:50 Paul Adams
2003-12-05  0:07 ` Nick Piggin
2003-12-05  2:07   ` Kendall Bennett
2003-12-05 15:57     ` Thierry Vignaud
2003-12-05  4:23   ` Peter Chubb
2003-12-05  4:42     ` Nick Piggin
2003-12-05  8:23       ` Peter Chubb
2003-12-05 17:19         ` Linus Torvalds
2003-12-05 18:42           ` Jeremy Fitzhardinge
2003-12-05  5:13     ` Valdis.Kletnieks
2003-12-05  5:26       ` Hua Zhong
2003-12-05  6:34       ` David Schwartz
2003-12-05  6:58         ` Linus Torvalds
2003-12-05 11:16           ` David Schwartz
2003-12-05 13:34             ` Anders Karlsson
2003-12-05 14:03             ` Ryan Anderson
2003-12-05 16:38               ` Shawn Willden
2003-12-05 16:54                 ` Arjan van de Ven
2003-12-05 17:03                   ` Shawn Willden
2003-12-05 22:36                   ` Derek Fawcus
2003-12-05 17:34                 ` Linus Torvalds
2003-12-05 17:35               ` Hua Zhong
2003-12-05 18:12                 ` Filip Van Raemdonck
2003-12-05 18:37                   ` Hua Zhong
2003-12-05 19:56                     ` 'Filip Van Raemdonck'
2003-12-05 20:26                       ` Hua Zhong
2003-12-06  0:08                         ` Filip Van Raemdonck
2003-12-05 19:55               ` David Schwartz
2003-12-05 20:14                 ` Linus Torvalds
2003-12-05 21:16                   ` Shawn Willden
2003-12-08 15:38                 ` Jesse Pollard
2003-12-05 14:59             ` Jesse Pollard
2003-12-05 19:15               ` Kendall Bennett
2003-12-05 18:44           ` Kendall Bennett
2003-12-05 19:09             ` Valdis.Kletnieks
2003-12-05 19:22               ` Arjan van de Ven
2003-12-10 13:52                 ` Andre Hedrick
2003-12-10 15:18                   ` Linus Torvalds
2003-12-10 15:32                     ` Larry McVoy
2003-12-10 16:21                       ` Linus Torvalds
2003-12-10 16:34                         ` Larry McVoy
2003-12-10 17:10                           ` Linus Torvalds
2003-12-10 17:25                             ` Chris Friesen
2003-12-10 17:58                               ` Linus Torvalds
2003-12-10 17:56                             ` Larry McVoy
2003-12-10 18:02                               ` Linus Torvalds
2003-12-10 18:08                                 ` Larry McVoy
2003-12-10 18:17                                   ` Linus Torvalds
2003-12-10 18:38                                     ` Larry McVoy
2003-12-10 19:15                                       ` Linus Torvalds
2003-12-10 18:37                                   ` Jan-Benedict Glaw
2003-12-10 19:51                                 ` Hua Zhong
2003-12-10 20:09                                 ` Andre Hedrick
2003-12-11  1:24                               ` Andrew Pimlott
2003-12-11  7:43                               ` Rob Landley
2003-12-11  8:11                                 ` Hua Zhong
2003-12-11  8:37                                   ` Rob Landley
2003-12-11 18:22                                     ` Hua Zhong
2003-12-11 21:20                                     ` Andre Hedrick
2003-12-11 21:59                                       ` Rob Landley
2003-12-11 22:42                                         ` Andre Hedrick
2003-12-12  5:39                                           ` Rob Landley
2003-12-12  7:21                                             ` Andre Hedrick
2003-12-12  7:39                                               ` Rob Landley
2003-12-12  7:56                                                 ` Andre Hedrick
2003-12-12  9:27                                                   ` Rob Landley
2003-12-10 18:14                             ` David Schwartz
2003-12-10 18:21                               ` Linus Torvalds
2003-12-10 19:48                             ` Kendall Bennett
2003-12-11  7:32                           ` Rob Landley
2003-12-11 14:03                             ` Geert Uytterhoeven
2003-12-10 22:49                         ` Oliver Hunt
2003-12-10 17:15                     ` Hua Zhong
2003-12-10 17:42                       ` Linus Torvalds
2003-12-10 19:32                         ` Andre Hedrick
2003-12-10 22:43                           ` Jason Kingsland
2003-12-10 22:49                             ` Andre Hedrick
2003-12-10 23:11                           ` Linus Torvalds
2003-12-10 23:24                             ` Andre Hedrick
2003-12-10 19:48                         ` Kendall Bennett
2003-12-10 21:15                           ` viro
2003-12-10 22:36                             ` Kendall Bennett
2003-12-10 23:13                               ` viro
2003-12-11 15:29                               ` Jesse Pollard
2003-12-11 18:47                                 ` Kendall Bennett
2003-12-11 18:55                                   ` Nick Piggin
2003-12-11 22:18                                   ` Jesse Pollard
2003-12-10 22:18                           ` Larry McVoy
2003-12-10 22:25                             ` Andre Hedrick
2003-12-10 23:38                             ` Linus Torvalds
2003-12-11  1:03                               ` Larry McVoy
2003-12-11 14:46                                 ` Ingo Molnar
2003-12-10 23:39                             ` Andrea Arcangeli
2003-12-11 17:44                             ` Robin Rosenberg
2003-12-11 17:56                               ` Valdis.Kletnieks
2003-12-11 18:16                                 ` Nick Piggin
2003-12-11 18:50                                 ` Mihai RUSU
2003-12-11 18:37                               ` David Schwartz
2003-12-11 12:04                         ` David Woodhouse
2003-12-10 17:49                       ` Jörn Engel
2003-12-10 18:16                     ` Andre Hedrick
2003-12-05 19:25               ` Kendall Bennett
2003-12-05 19:26             ` Linus Torvalds
2003-12-05 15:50         ` Valdis.Kletnieks
2003-12-05 18:44         ` Kendall Bennett
2003-12-06  0:02           ` Maciej Zenczykowski
2003-12-05 18:44       ` Kendall Bennett
2003-12-10 13:16       ` Andre Hedrick
2003-12-10 15:02         ` Jesse Pollard
2003-12-10 20:37           ` Theodore Ts'o
2003-12-11 16:26             ` Jesse Pollard
2003-12-05 13:52   ` Richard B. Johnson
2003-12-05  0:09 ` Oliver Hunt
2003-12-05 10:55   ` Russell King
2003-12-05  0:46 ` Erik Andersen
2003-12-05  0:58   ` Zwane Mwaikambo
2003-12-05  1:03     ` Erik Andersen
2003-12-05  1:21       ` Larry McVoy
2003-12-05  1:30         ` Hua Zhong
2003-12-05  1:58         ` Linus Torvalds
2003-12-06  3:00           ` Larry McVoy
2003-12-06  4:39             ` Linus Torvalds
2003-12-06  5:14               ` Larry McVoy
2003-12-06  5:48                 ` Linus Torvalds
2003-12-06 17:14                   ` Larry McVoy
2003-12-06 15:38                 ` Theodore Ts'o
2003-12-06 16:47                   ` Jason Kingsland
2003-12-06 21:30                   ` David Schwartz
2003-12-06 21:42                     ` Larry McVoy
2003-12-07 13:01               ` Ingo Molnar
2003-12-07 22:11                 ` Rob Landley
2003-12-06 14:13             ` Andrew Pimlott
2003-12-06 17:50               ` Larry McVoy
2003-12-06 21:19                 ` Theodore Ts'o
2003-12-06 21:45                   ` Larry McVoy
2003-12-08 16:34                 ` Andrew Pimlott
2003-12-11 12:37           ` David Woodhouse
2003-12-11 12:42             ` Andre Hedrick
2003-12-11 12:58               ` David Woodhouse
2003-12-12 20:26                 ` Brian Beattie
2003-12-13 12:03                   ` David Woodhouse
2003-12-13 15:04                     ` jeff millar
2003-12-13 17:27                     ` Gene Heskett
2003-12-11 13:54             ` Andrew Pimlott
2003-12-11 15:12               ` David Woodhouse
2003-12-05  3:58         ` Jason Kingsland
2003-12-05  1:58   ` David Schwartz
2003-12-05  4:58     ` Erik Andersen
2003-12-05  6:34       ` David Schwartz
2003-12-05  6:43         ` Linus Torvalds
2003-12-05  2:07   ` Kendall Bennett
2003-12-05  7:39     ` Stefan Smietanowski
2003-12-05  1:47 ` Linus Torvalds
2003-12-10 12:57   ` Andre Hedrick
2003-12-10 15:14     ` Linus Torvalds
2003-12-10 15:25       ` Larry McVoy
2003-12-10 18:58         ` Andre Hedrick
2003-12-12 19:40     ` Pavel Machek
2003-12-12 22:08       ` Andre Hedrick
2003-12-12 23:06         ` Jamie Lokier
2003-12-12 23:43         ` Pavel Machek
2003-12-15 18:01     ` Adam Sampson
2003-12-15 21:12       ` Andre Hedrick
     [not found] <YPep.5Y5.21@gated-at.bofh.it>
     [not found] ` <Z3AK-Qw-13@gated-at.bofh.it>
2003-12-04 17:05   ` Ihar 'Philips' Filipau
2003-12-04 17:57     ` Thierry Vignaud
2003-12-05 11:11     ` Helge Hafting
2003-12-05 12:12       ` Stefan Smietanowski
2003-12-05 14:51         ` Ihar 'Philips' Filipau
2003-12-03 23:22 Jason Kingsland
2003-12-03 22:58 Xose Vazquez Perez
2003-12-03 21:31 Kendall Bennett
2003-12-03 21:47 ` Arjan van de Ven
2003-12-03 23:33   ` Kendall Bennett
2003-12-03 22:11 ` Richard B. Johnson
2003-12-03 23:33   ` Kendall Bennett
2003-12-03 23:40   ` bill davidsen
2003-12-04  0:00 ` Linus Torvalds
2003-12-04  0:23   ` Linus Torvalds
2003-12-04  6:25     ` Karim Yaghmour
2003-12-06  0:08       ` David Woodhouse
2003-12-06  2:28         ` Larry McVoy
2003-12-06  9:55           ` David Woodhouse
2003-12-06 10:51             ` Geert Uytterhoeven
2003-12-08 18:58         ` Karim Yaghmour
2003-12-09 20:26           ` bill davidsen
2003-12-09 21:46             ` Craig Milo Rogers
2003-12-12 11:36               ` Jamie Lokier
2003-12-12 15:27                 ` Bill Davidsen
2003-12-10 14:09         ` Andre Hedrick
2003-12-10 14:25           ` David Woodhouse
2003-12-10 14:46             ` Larry McVoy
2003-12-10 15:05               ` David Woodhouse
2003-12-10 15:11                 ` Larry McVoy
2003-12-10 15:49                   ` Aron Rubin
2003-12-10 15:59                   ` David Woodhouse
2003-12-10 16:06                     ` Larry McVoy
2003-12-10 16:22                       ` David Woodhouse
2003-12-10 18:38                     ` Andre Hedrick
2003-12-04 19:24     ` viro
2003-12-13  0:11       ` Nix
2003-12-13  0:25         ` viro
2003-12-13 15:01           ` Nix
2003-12-04  0:29   ` Kendall Bennett
2003-12-04  0:52   ` Aaron Smith
2003-12-04  1:47     ` David Lang
2003-12-04  1:20       ` Aaron Smith
2003-12-04  4:48       ` Jamie Lokier
2003-12-04 15:21   ` Jason Kingsland
2003-12-04 15:58     ` Linus Torvalds
2003-12-05  1:58     ` David Schwartz
2003-12-05  2:43       ` Jason Kingsland
2003-12-05 13:09         ` Pat Erley
2003-12-05 18:44         ` Kendall Bennett
2003-12-10 13:06         ` Andre Hedrick
2003-12-05 13:49       ` Maciej Zenczykowski
2003-12-10 13:43         ` Andre Hedrick
2003-12-10 16:07           ` Linus Torvalds
2003-12-10 18:33             ` Andre Hedrick
2003-12-10 19:20               ` Linus Torvalds
2003-12-10 20:15                 ` Andre Hedrick
2003-12-10 21:04                   ` Ingo Molnar
2003-12-10 21:05                     ` Andre Hedrick
2003-12-10 21:17                       ` Ingo Molnar
2003-12-10 22:59                         ` Andre Hedrick
2003-12-11  0:58                           ` Rob Love
2003-12-11 10:56                           ` Xavier Bestel
2003-12-11  7:26             ` Rob Landley
2003-12-05 17:29   ` Jason Kingsland
2003-12-05 17:50     ` Linus Torvalds

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200312051135.hB5BZ2V06015@adam.yggdrasil.com \
    --to=adam@yggdrasil.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).