1 |
On Wed, Aug 19, 2015 at 8:31 AM, Jeremi Piotrowski |
2 |
<jeremi.piotrowski@×××××.com> wrote: |
3 |
> On Wed, 19 Aug 2015, Rich Freeman wrote: |
4 |
> |
5 |
>> It sounds like you not only expect them to comply with the license, |
6 |
>> but also with the kernel devs personal interpretation of copyright |
7 |
>> law. |
8 |
> |
9 |
> What is a license but a statement of the intent of the authors as to what |
10 |
> can and can't be done with their work? Well, it does have some legal force |
11 |
> too... |
12 |
|
13 |
The only reason that licenses matter at all is that they have legal |
14 |
force. They only matter to the degree that they do. |
15 |
|
16 |
If I went around selling licenses to drive cars, anybody who bought |
17 |
one would be a fool. I have no rights to sell such licenses, and they |
18 |
have no legal requirements to buy one from me. |
19 |
|
20 |
Likewise, the fact that the kernel authors WANT to control linking to |
21 |
their code means absolutely nothing. They have no legal right to do |
22 |
so, any more than a shovel manufacturer has the right to dictate what |
23 |
kinds of holes I dig. |
24 |
|
25 |
> |
26 |
> If you'd try to take away their right to decide about that next thing |
27 |
> they'd do is modify the license to be even larger and explicitly cover all |
28 |
> corner cases. |
29 |
|
30 |
And that would accomplish nothing, since companies would just ignore |
31 |
any text which doesn't have a basis in law. |
32 |
|
33 |
> |
34 |
> That has always been the issue but I'll allow myself to quote an email |
35 |
> on the matter: |
36 |
> From: Linus Torvalds <torvalds@××××.org> |
37 |
|
38 |
The problem is that Linus's words mean nothing unless they're based in |
39 |
law. You don't need to quote Linus. You need to quote laws, court |
40 |
decisions, or treaties. And none of them say a word about linking |
41 |
creating a derived work. And would we really want to live in a world |
42 |
where they did? Do you really want to need permission to use a |
43 |
product in a manner the author didn't originally intend? |
44 |
|
45 |
> |
46 |
> Apparently the Linux foundation considers some pieces to be *clearly* |
47 |
> GPL-only and these are marked as such. And I don't see a way for vendors |
48 |
> around this other than to avoid the usage of such symbols |
49 |
|
50 |
Why not just write API wrappers? If somebody exposes an API called |
51 |
do_this() using EXPORT_SYMBOL_GPL just write a module that is licensed |
52 |
GPL, exposes an API called do_this_nonGPL() using EXPORT_SYMBOL, and |
53 |
have do_this_nonGPL() just pass through a call to do_this(). |
54 |
|
55 |
This is a trivial measure to circumvent, as far as a I can tell. It |
56 |
is just a PITA to deal with. |
57 |
|
58 |
What is next, randomizing all the function/variable names on each new |
59 |
kernel release so that it is impossible to maintain any kernel code |
60 |
outside of the tree? Then we'll have smart configure scripts for |
61 |
external modules that try to determine the right name to use and |
62 |
wrapper header files. |
63 |
|
64 |
> |
65 |
> Who wants to go court when the current scheme is effective. The whole |
66 |
> issue of "derivative work" is more applicable to binary kernel modules |
67 |
> anyway. In this case we have the source code, and the kernel module build |
68 |
> system will not allow a module that claims a certain license to use |
69 |
> certain symbols. They (vendors) can: |
70 |
> |
71 |
> a) change their license to say "GPL" but then people would be allowed to |
72 |
> demand full source code from them including binary blobs. |
73 |
|
74 |
All they have to do is have the human-readable license say non-GPL, |
75 |
and have it report GPL to the kernel, and not ship the source. The |
76 |
only recourse anybody has is to sue them, and it is doubtful that a |
77 |
court is going to force them to comply, as they clearly indicated |
78 |
their intent to not release the code as GPL. You might be able to get |
79 |
away with redistributing the blob since the situation is a bit |
80 |
ambiguous, but I doubt the driver manufacturers care that much if you |
81 |
redistribute their blobs. |
82 |
|
83 |
I remember a fiasco a few years ago when a vendor exported the license |
84 |
as something like "GPL\0 does not apply." |
85 |
|
86 |
> |
87 |
> b) apply the patch you posted - not really practical, definitely |
88 |
> wouldn't be popular but I don't really see how that would be illegal. |
89 |
> Full GPL would apply to the kernel anyway. |
90 |
> |
91 |
> c) avoid the usage of such symbols. |
92 |
> |
93 |
> and they will do c) because they really don't have a choice. |
94 |
> |
95 |
|
96 |
As I pointed out they can just write a wrapper that exports GPL and |
97 |
re-exports all the symbols. |
98 |
|
99 |
Also, you stated that the check is implemented in the build system. I |
100 |
don't know if that is true, but if it is, then the module can simply |
101 |
be built using a patched build system. I suspect the check is really |
102 |
in the module loader, which the module builder would not have control |
103 |
over. |
104 |
|
105 |
-- |
106 |
Rich |