linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "David Schwartz" <davids@webmaster.com>
To: "Linux-Kernel@Vger. Kernel. Org" <linux-kernel@vger.kernel.org>
Subject: RE: GPL only modules
Date: Mon, 18 Dec 2006 09:16:31 -0800	[thread overview]
Message-ID: <MDEHLPKNGKAHNMBLJOLKKECHAHAC.davids@webmaster.com> (raw)
In-Reply-To: <200612171646.40655.dhazelton@enter.net>


Combined responses to save bandwidth and reduce the number of times people
have to press "d".

> Agreed. You missed the point.

I don't understand how you could lead with "agreed" and then proceed to
completely ignore the entire point I just made.

> Since the Linux Kernel header files
> contain a
> chunk of the source code for the kernel in the form of the macros
> for locking
> et. al. then using the headers - including that code in your
> module - makes
> it a derivative work.

No, it does not. The header files are purely function and not expressive in
this case. Copyright only protects one choice among many equally-practical
choices for expressing the same idea or performing the same function.

> Actually, thinking about it, the way a Linux driver module works actually
> seems to make *ANY* driver a derivative work, because they are
> loaded into
> the kernels memory space and cannot function without having that done.

If every practical way of expressing an idea contains something, then that
something is *not* protectable when used to express an idea of that kind.

> *IF* the "Usermode Driver" interface that is being worked on ever proves
> useful then, and only then, could you consider it *NOT* a
> derivative work.
> Because then the only thing it is using *IS* an interface, not complete
> chunks of the source as generated when the pre-processor finishes running
> through the file.

No, you have it completely backwards.

If a usermode driver interface was equally practical to develop a particular
type of driver, then using the kernel headers would make the driver a
derivative work. Because, in that case, the choice to use the kernel headers
would be a creative choice -- one chosen method among many equally practical
one.

Copyright only protects creative choices, not purely functional ones.

"A Linux 2.6 driver for the ATI X800 graphics chipset" is an idea. If the
only reasonably practical way to express that idea is with the Linux kernel
header files, then using the Linux kernel header files is scenes a fair, not
protected content.

For example, you cannot discuss the Napeleonic wars with using the word
"Napoleon", at least, not nearly as well. So nobody can claim copyright on
the word "Napoleon" when used to describe those wars because it is
deomnstrably *superior*. Only patents protect "best ways". Copyrights
protected "the way I choose among thousands of equally-good ways".

See Lexmark v. Static Controls and the Sega and Atari cases. This is clearly
a cases where "[w]hile, hypothetically, there might be a myriad of ways in
which a programmer may effectuate certain functions within a program . . .
efficiency concerns may so narrow the practical range of choice as to make
only one or two forms of expression workable options." "In order to
characterize a choice between alleged programming alternatives as
expressive, in short, the alternatives must be feasible within real-world
constraints."

The inclusion of the kernel header files in a kernel module is not
expressive, it's purely functional. The kernel header files are simply not
protectable expression when used in a kernel module.

-

>The difference - really - at least for static linking - is that "ln"
>makes modifications to each piece to make them work together, and in
>the case of a library, makes a selection of the parts of the library
>as needed by the rest of the program.  What ends up in the executable
>is not just a set of verbatim copies of the input files packed
>together, but rather a single program where the various parts have
>been modified so as to fit together and create a whole.  Thus it seems
>quite reasonable to me to say that a statically linked binary is a
>derived work of all of the object files and libraries that were linked
>together to form it.  IANAL, of course.

The linker makes no creative choices, so it does not produce a "work" for
copyright purposes. If it does not even produce a work, it cannot produce a
derivative work.

The question is not whether the combination is verbatim or transformative
but whether it is creative or mechanical. The linker combines things in a
mechanical and purely functional way.

A tar/gzip does the same thing. The compressed output for the third file may
be as dependent on the content of the second file as on the content of the
third file and in a very real sense will contain aspects of both of their
structures.

"Mere aggregation" does not mean a literal splicing of the raw code for two
or more files. It means a purely functional combination dictated completely
by technical concerns and lacking any creative input.

DS



  parent reply	other threads:[~2006-12-18 17:17 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-16 18:27 GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19] Ricardo Galli
2006-12-16 21:01 ` Linus Torvalds
2006-12-17  0:22   ` Ricardo Galli
2006-12-17  4:10     ` Theodore Tso
2006-12-17 13:54   ` GPL only modules Alexandre Oliva
2006-12-17 15:56     ` Ricardo Galli
2006-12-17 16:25     ` Kyle Moffett
2006-12-17 21:32       ` David Schwartz
2006-12-17 21:46         ` D. Hazelton
2006-12-18 15:47           ` Dave Neuer
2006-12-18 17:46             ` D. Hazelton
2006-12-18 21:01               ` Dave Neuer
2006-12-18 17:16           ` David Schwartz [this message]
2006-12-19  6:35             ` D. Hazelton
2006-12-19 16:39               ` David Lang
2006-12-18 19:41       ` Alexandre Oliva
2006-12-18 22:14         ` Christoph Hellwig
2006-12-19  3:42         ` D. Hazelton
2006-12-20  1:02           ` Alexandre Oliva
2006-12-20 23:28             ` Scott Preece
2006-12-17 17:59     ` Linus Torvalds
2006-12-17 22:45       ` Paul Mackerras
2006-12-18  6:50         ` Junio C Hamano
2006-12-18 23:16           ` Paul Mackerras
2006-12-18 15:38       ` Dave Neuer
2006-12-18 17:02         ` Theodore Tso
2006-12-18 17:23           ` Dave Neuer
2006-12-18 19:27       ` Alexandre Oliva
2006-12-18 19:42         ` Linus Torvalds
2006-12-18 20:37           ` Alexandre Oliva
2006-12-18 20:50             ` Linus Torvalds
2006-12-18 21:23               ` David Schwartz
2006-12-18 22:35                 ` Scott Preece
2006-12-19  1:29                   ` David Schwartz
2006-12-19 16:55                     ` Scott Preece
2006-12-20  0:09                     ` Alexandre Oliva
2006-12-20  0:06                 ` Alexandre Oliva
2006-12-18 22:06               ` Jeff V. Merkey
2006-12-18 23:28               ` Alexandre Oliva
2006-12-19  1:35                 ` David Schwartz
2006-12-19  2:38                   ` D. Hazelton
2006-12-19 12:42                     ` Horst H. von Brand
2006-12-20  0:20                   ` Alexandre Oliva
2006-12-18 23:52               ` Paul Mackerras
2006-12-18 23:59                 ` Linus Torvalds
2006-12-19  0:43                   ` Paul Mackerras
2006-12-19  1:39                 ` David Schwartz
2006-12-19  4:20               ` Daniel Barkalow
2006-12-20 19:14                 ` David Schwartz
2006-12-20 23:08                   ` Scott Preece
2006-12-20 23:26                     ` David Schwartz
2006-12-19  7:39               ` Giacomo A. Catenazzi
2006-12-19  7:40               ` Giacomo A. Catenazzi
2006-12-19  8:00           ` Sanjoy Mahajan
2006-12-19 13:09             ` Horst H. von Brand
2006-12-19 17:27               ` Sanjoy Mahajan
2006-12-20  1:06               ` Alexandre Oliva
  -- strict thread matches above, loose matches on Subject: below --
2006-12-14  0:32 GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19] Greg KH
2006-12-14  0:43 ` Jonathan Corbet
2006-12-14  0:55 ` Greg KH
2006-12-14  4:15   ` Linus Torvalds
2006-12-14 15:46     ` Jeff Garzik
2006-12-14 17:03       ` Linus Torvalds
2006-12-14 17:08         ` Chris Wedgwood
2006-12-14 17:38           ` Christoph Hellwig
2006-12-14 17:52             ` Chris Wedgwood
2006-12-14 18:09               ` Jan Engelhardt
2006-12-18 10:28                 ` GPL only modules Eric W. Biederman
2006-12-14 18:15               ` GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19] Eric Sandeen
2006-12-14 18:39                 ` Chris Wedgwood
2006-12-14 19:42                   ` Scott Preece
2006-12-14 19:34                     ` Jeff V. Merkey
2006-12-15  5:28                       ` GPL only modules Alexandre Oliva

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=MDEHLPKNGKAHNMBLJOLKKECHAHAC.davids@webmaster.com \
    --to=davids@webmaster.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).