Gentoo Archives: gentoo-user

From: Jeremi Piotrowski <jeremi.piotrowski@×××××.com>
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 22:32:01
Message-Id: alpine.LNX.2.20.1508192340360.22659@gentoo-tp.localdomain
In Reply to: Re: [gentoo-user] Re: [WAS: keyboard stops working] Recent kernels block the loading of non-GPL kernel modules by Rich Freeman
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.

Replies