linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "D. Hazelton" <dhazelton@enter.net>
To: davids@webmaster.com
Cc: "Linux-Kernel@Vger. Kernel. Org" <linux-kernel@vger.kernel.org>
Subject: Re: GPL only modules
Date: Sun, 17 Dec 2006 16:46:40 -0500	[thread overview]
Message-ID: <200612171646.40655.dhazelton@enter.net> (raw)
In-Reply-To: <MDEHLPKNGKAHNMBLJOLKGEPFAGAC.davids@webmaster.com>

On Sunday 17 December 2006 16:32, David Schwartz wrote:
> > I would argue that this is _particularly_ pertinent with regards to
> > Linux.  For example, if you look at many of our atomics or locking
> > operations a good number of them (depending on architecture and
> > version) are inline assembly that are directly output into the code
> > which uses them.  As a result any binary module which uses those
> > functions from the Linux headers is fairly directly a derivative work
> > of the GPL headers because it contains machine code translated
> > literally from GPLed assembly code found therein.  There are also a
> > fair number of large perhaps-wrongly inline functions of which the
> > use of any one would be likely to make the resulting binary
> > "derivative".
>
> That's not protectable expression under United States law. See Lexmark v.
> Static Controls and the analogous case of the TLP (ignore the DMCA stuff in
> that case, that's not relevant). If you want to make that kind of content
> protectable, you have to get it out of the header files.
>
> You cannot protect, by copyright, every reasonably practical way of
> performing a function. Only a patent can do that. If taking something is
> reasonably necessary to express a particular idea (and a Linux module for
> the ATI X850 card is an idea), then that something cannot be protected by
> copyright when it is used to express that idea. (Even if it would clearly
> be protectably expression in another context.)
>
> The premise of copyright is that there are millions of equally-good ways to
> express the same idea or perform the same function, and you creatively pick
> one, and that choice is protected. But if I'm developing a Linux module for
> a particular network card, choosing to use the Linux kernel header files is
> the only practical choice to perform that particular function. So their
> content is not protectable when used in that context. (If you make another
> way to do it, then the content becomes protectable in that context again.)
>
> IANAL.
>
> DS

Agreed. You missed the point. 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.

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* 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.

But as David said - IANAL

D. Hazelton

  reply	other threads:[~2006-12-17 22:23 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 [this message]
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
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=200612171646.40655.dhazelton@enter.net \
    --to=dhazelton@enter.net \
    --cc=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).