Gentoo Archives: gentoo-user

From: Rich Freeman <rich0@g.o>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Re: [WAS: keyboard stops working] Recent kernels block the loading of non-GPL kernel modules
Date: Wed, 19 Aug 2015 13:17:17
Message-Id: CAGfcS_nuUapFHd6CTz9BUnBWnkTagSOa91HUvBB0A7i2pqzLvA@mail.gmail.com
In Reply to: Re: [gentoo-user] Re: [WAS: keyboard stops working] Recent kernels block the loading of non-GPL kernel modules by Jeremi Piotrowski
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

Replies