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
-- strict thread matches above, loose matches on Subject: below --
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.