From: davidsen@tmr.com (bill davidsen)
To: linux-kernel@vger.kernel.org
Subject: Re: Linux GPL and binary module exception clause?
Date: 9 Dec 2003 20:26:12 GMT [thread overview]
Message-ID: <br5b54$nbj$1@gatekeeper.tmr.com> (raw)
In-Reply-To: 3FD4C9C8.6040709@opersys.com
In article <3FD4C9C8.6040709@opersys.com>,
Karim Yaghmour <karim@opersys.com> wrote:
|
| David Woodhouse wrote:
| > So you have a loadable module made of two sections; a GPL'd wrapper
| > layer clearly based on the kernel, and your original driver. The latter
| > is clearly an identifiable section of that compound work which is _not_
| > derived from Linux and which can reasonably be considered an independent
| > and separate work in itself.
|
| I didn't exactly specify how the interfacing would be done because that's
| besides the point I'm trying to make (in fact, it's the later part of my
| email which was most important). But here's two other ways to do it just
| for the sake of discussion:
| a) Hard-wired assembly in the driver that calls on the appropriate address
| with the proper structure offsets etc. No headers used here.
Well, the addresses and offset specs came from *somewhere*, and I would
love to hear someone argue that they "just seemed like good values," or
that reading the header file and then using absolute numbers isn't
derivative.
| b) User-space interrupt callbacks. Start app -> mlockall -> open GPL
| driver -> use ioctl to pass callback address -> open /dev/mem -> ...
| I've skipped a few things, but the essentials are there. Basically, you
| get the interrupts in user-space and can access whatever you want through
| /dev/mem.
|
| Sure the above isn't as powerful as a properly coded driver for Linux,
| but it should work for a few things.
And people who would do this so they can violate the spirit of the GPL
without violating the language would sue if someone reverse engineered
their secret code...
|
| > The GPL and its terms do not apply to that section when you distribute
| > it as a separate work.
|
| Right, but my argument has little to do with the GPL. In fact, as I
| said before (http://www.embeddedtux.org/pipermail/etux/2003-October/000415.html),
| I don't personally think the GPL has all the answers to this issue. Not
| just that, but I don't really see myself debating with any kernel developer
| what the law says he has the right to do or not do with his code. It just
| seems to me that the copyright holder has the upper hand here. What I'm
| really looking for is to understand how to apply the GPL to binary-only
| modules given the copyright holders' interpretation. So far, I have heard
| the following (this is a summary, so please correct me if you think I've
| miss-characterized your take on this):
|
| Linus Torvalds: modules API not a GPL barrier, must prove your work is not a
| derived work - preexisted Linux. Ex.: NVidia is clearly not a derived work.
| Alan Cox: Unclear if Linus can dictate terms for binary-only modules since
| he's not the only copyright owner. Talk to your lawyer.
| Russell King: Linus isn't the only copyright owner and hence can't change
| the terms outright.
| Theodore Ts'o: Modules API constitutes license barrier.
| David Woodhouse: There's no such barrier and applications tightly packaged
| with the kernel (i.e. embedded systems) _may_ be subject to derived work
| clauses of the GPL.
| etc.
|
| Frankly, I don't know what to make of all this. I wish I could collect the
| input of all kernel developers to come up with a table of X owns N% of
| kernel copyright and his statement about binary-only modules is best
| characterized as A, B, C, or D, or ... where each of these is an already
| stated position about such modules. We could then come up with a weighed
| percentage of validity for each of A, B, C, ... The exercise may not have
| any legal weight, especially since as Linus stated a judge may just give
| him more credence than any other kernel developer, but it would at least
| tell kernel developers where they all stand on this issue.
|
| As it stands now, however, it seems to me that any kernel developer
| attempting to enforce the GPL across the modules API would have quite a
| few problems. Mainly because:
| 1) There is no clear consensus among the copyright holders as to how
| the GPL is to be interpreted across the modules API.
| 2) Established technical practice has been that hardware manufacturers
| do indeed ship drivers with different licenses than those of the host
| OS.
|
| I had mentioned #2 elsewhere before
| (http://www.embeddedtux.org/pipermail/etux/2003-October/000415.html) and
| it has been discussed in this thread by other folks in slightly different
| words. However, it may be that #1 could end up causing the most damage in
| the case where a kernel developer, or a few, try to prosecute a real case
| of binary-only module infringement on the GPL.
|
| In sum, I agree with Jonathan Corbet's assessment that it's about time
| that kernel developers agree where the axe falls. Not just for outsiders,
| but also for themselves.
I don't think the opinion of the copyright holders counts a bit, the
text of the license and the opinion of a court count. And based on
asking a total of one lawyer, any Linux user has standing to sue because
(if) the copyright infringement interferes with the user's right to use
the software. I report that opinion without defending it, the lawyer was
unwilling to be named.
| Cheers,
|
| Karim
| --
| Author, Speaker, Developer, Consultant
| Pushing Embedded and Real-Time Linux Systems Beyond the Limits
| http://www.opersys.com || karim@opersys.com || 514-812-4145
--
bill davidsen <davidsen@tmr.com>
CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.
next prev parent reply other threads:[~2003-12-09 20:39 UTC|newest]
Thread overview: 258+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-03 21:31 Linux GPL and binary module exception clause? 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 [this message]
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
2003-12-03 22:58 Xose Vazquez Perez
2003-12-03 23:22 Jason Kingsland
[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-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
2003-12-05 11:35 Adam J. Richter
2003-12-05 11:25 ` David Schwartz
2003-12-05 15:36 ` Valdis.Kletnieks
[not found] <732BE51FE9901143AE04411A11CC465602F155F3@evtexc02.tc.fluke.com>
2003-12-05 17:05 ` David Dyck
2003-12-05 18:51 ` Jesse Pollard
2003-12-05 22:43 gary ng
2003-12-05 23:11 ` Linus Torvalds
2003-12-06 0:07 ` gary ng
2003-12-06 12:31 Matt
2003-12-07 2:34 gary ng
2003-12-08 16:08 ` Alex Bennee
2003-12-08 16:26 ` gary ng
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-10 19:06 Manfred Spraul
[not found] <fa.go3ahvi.h68o2q@ifi.uio.no>
[not found] ` <fa.nk4vl6d.g0181@ifi.uio.no>
2003-12-12 3:03 ` walt
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
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='br5b54$nbj$1@gatekeeper.tmr.com' \
--to=davidsen@tmr.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).