1 |
On Wed, 19 Aug 2015, Rich Freeman wrote: |
2 |
|
3 |
> On Wed, Aug 19, 2015 at 8:31 AM, Jeremi Piotrowski |
4 |
> <jeremi.piotrowski@×××××.com> wrote: |
5 |
> > On Wed, 19 Aug 2015, Rich Freeman wrote: |
6 |
> > |
7 |
> >> It sounds like you not only expect them to comply with the license, |
8 |
> >> but also with the kernel devs personal interpretation of copyright |
9 |
> >> law. |
10 |
> > |
11 |
> > What is a license but a statement of the intent of the authors as to what |
12 |
> > can and can't be done with their work? Well, it does have some legal force |
13 |
> > too... |
14 |
> |
15 |
> The only reason that licenses matter at all is that they have legal |
16 |
> force. They only matter to the degree that they do. |
17 |
|
18 |
This discussion has been going on ever since the kernel was first |
19 |
conceived, and some matters are still not entirely clear. I have tried |
20 |
reading about the subject and the discussion is always the same as the one |
21 |
we're having in this thread. |
22 |
|
23 |
What I consider a final word on the matter is pretty much written here: |
24 |
|
25 |
https://lwn.net/Articles/154602/ |
26 |
|
27 |
briefly: the kernel devs *have* consulted lawyers and believe EXPORT_SYMBOL_GPL |
28 |
has *some* legal meaning. |
29 |
|
30 |
But I am not a lawyer, nor do I want to be so let's tune down the law |
31 |
stuff and get back to technical issues. |
32 |
|
33 |
> > If you'd try to take away their right to decide about that next thing |
34 |
> > they'd do is modify the license to be even larger and explicitly cover all |
35 |
> > corner cases. |
36 |
> |
37 |
> And that would accomplish nothing, since companies would just ignore |
38 |
> any text which doesn't have a basis in law. |
39 |
|
40 |
They could, but I was under the impression that by using licensed software |
41 |
you agree to follow it's terms. And the binding nature of licenses is |
42 |
codified in copyright law. |
43 |
|
44 |
> The problem is that Linus's words mean nothing unless they're based in |
45 |
> law. You don't need to quote Linus. You need to quote laws, court |
46 |
> decisions, or treaties. |
47 |
|
48 |
Copyright law talks of licenses. Linus' talks about the license under |
49 |
which the kernel is licensed. Ergo, seems to me as though his words |
50 |
should have some authority, but I won't argue that. |
51 |
|
52 |
> And none of them say a word about linking creating a derived work. |
53 |
|
54 |
The FSF says that and who knows if they're actually right, but I believe |
55 |
so far everyone generally complies with their interpretation. |
56 |
|
57 |
> And would we really want to live in a world where they did? Do you |
58 |
> really want to need permission to use a product in a manner the author |
59 |
> didn't originally intend? |
60 |
|
61 |
Proprietary licenses already say that I can't do that, and it's the free |
62 |
licenses that tell me I can do whatever I want as long as I release the |
63 |
sources. Sounds reasonable to me. |
64 |
|
65 |
But again, I'm speaking mostly out of common sense and opinion here. |
66 |
Neither one of us is going to go around citing cases and laws as that |
67 |
would be a waste of bandwidth. |
68 |
|
69 |
> |
70 |
> Why not just write API wrappers? If somebody exposes an API called |
71 |
> do_this() using EXPORT_SYMBOL_GPL just write a module that is licensed |
72 |
> GPL, exposes an API called do_this_nonGPL() using EXPORT_SYMBOL, and |
73 |
> have do_this_nonGPL() just pass through a call to do_this(). |
74 |
|
75 |
From what I gather online, this is actually what Nvidia does (or did). |
76 |
They have an LGPL wrapper in their module, which interfaces with the |
77 |
kernel, and then talks to their proprietary blob. This [1] stackoverflow |
78 |
answer has a nice picture: |
79 |
|
80 |
/------------.-\ |
81 |
| Kernel | |
82 |
| | |
83 |
| /--------\ | |
84 |
| | Module | | /-------------------\ |
85 |
| | (LGPL) <========> proprietary code | |
86 |
| \--------/ | \-------------------/ |
87 |
\--------------/ |
88 |
|
89 |
[1]: http://stackoverflow.com/a/2721696 |
90 |
|
91 |
So they already go out of their way to comply with the terms of the kernel |
92 |
license. But they also need to deal with the breakage on each update. |
93 |
|
94 |
|
95 |
> All they have to do is have the human-readable license say non-GPL, |
96 |
> and have it report GPL to the kernel, and not ship the source. The |
97 |
> only recourse anybody has is to sue them, and it is doubtful that a |
98 |
> court is going to force them to comply, as they clearly indicated |
99 |
> their intent to not release the code as GPL. |
100 |
|
101 |
On the other hand they would also be clearly indicating to others that |
102 |
their code is GPL (if they did in fact add MODULE_LICENSE("GPL")). I may |
103 |
be wrong here, but if that is not in the least bit ambiguous then shoot me. |
104 |
|
105 |
|
106 |
> Also, you stated that the check is implemented in the build system. I |
107 |
> don't know if that is true, but if it is, then the module can simply |
108 |
> be built using a patched build system. I suspect the check is really |
109 |
> in the module loader, which the module builder would not have control |
110 |
> over. |
111 |
|
112 |
Some reasearch tells me that this checking is implemented in both the build |
113 |
system (consider it a warning) and in the module loader. |
114 |
|
115 |
To me it seems like it is not hard to bypass, but it would be *atleast* |
116 |
indecent. |