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 11:00:27
Message-Id: CAGfcS_n2+hYTA=YpiZkaV8ixHgtLLiXHipSAhv-ANUN9tO_XZg@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 Michael Orlitzky
1 On Tue, Aug 18, 2015 at 11:12 PM, Michael Orlitzky <mjo@g.o> wrote:
2 > On 08/18/2015 08:39 PM, Dale wrote:
3 >>
4 >> Here's a clue. Why doesn't the kernel devs let users decide what
5 >> drivers they are comfy with using? If they don't like the drivers, then
6 >> make it so that users have to install their own just like we have for
7 >> ages but don't disable them or make them not load and work.
8 >
9 > A lot of people build and distribute kernels. The EXPORT_SYMBOL_GPL
10 > thing is there to prevent those people from linking closed-source
11 > modules against certain parts of the kernel, because the result would
12 > not be distributable under the GPL. The legal issue is there regardless:
13 > you can't link closed-source stuff to GPL code and then distribute the
14 > result.
15 >
16
17 I don't really buy into that argument here.
18
19 What makes nvidia.ko a derivative-work of the kernel? It doesn't
20 contain any code not written by them.
21
22 I can buy into the argument that once it is loaded into memory and
23 linked against the kernel that the image in RAM becomes a derivative
24 work, but nobody is making copies of that image or redistributing it.
25
26 Take a 1950s science-fiction movie. If you add voice-over and call it
27 Mystery Science Theater 3000 that is a derivative work, because it
28 incorporates parts of the original work. If you put the voice-over on
29 separate media and call it Rifftrax it isn't a derivative work,
30 because it doesn't incorporate any elements of the original. That
31 remains true even if it is dynamically linked to the original by
32 adding an instruction to unpause the recording when the movie title
33 appears.
34
35 The whole GPL-prevents-linking argument seems rather tenuous to me,
36 and as far as I'm aware it has never been upheld by a court. It is of
37 course accepted as gospel in FOSS circles, but as far as I can tell it
38 is based on arguments that are similar to those employed by the likes
39 of Oracle and SCO wanting to copyright enums and APIs.
40
41 If somebody distributes a modified kernel I buy that they have to
42 publish the source code. If somebody says "take your kernel image and
43 insert this blob of bytes at address foo" I don't see how making or
44 obeying that statement is illegal. Well, a dynamic library or kernel
45 module is just a standardized way of doing just that.
46
47 The patch I wrote is arguably a derivative work of the kernel
48 (reproduced here for convenience):
49
50 diff --git a/include/linux/export.h b/include/linux/export.h
51 index 96e45ea..b1bc4c3 100644
52 --- a/include/linux/export.h
53 +++ b/include/linux/export.h
54 @@ -69,7 +69,7 @@ extern struct module __this_module;
55 __EXPORT_SYMBOL(sym, "")
56
57 #define EXPORT_SYMBOL_GPL(sym) \
58 - __EXPORT_SYMBOL(sym, "_gpl")
59 + __EXPORT_SYMBOL(sym, "")
60
61 #define EXPORT_SYMBOL_GPL_FUTURE(sym) \
62 __EXPORT_SYMBOL(sym, "_gpl_future")
63
64 Now, instead of writing that suppose I instead had written this: "Edit
65 the file include/linux/export.h, go to line 72 and remote the text
66 enclosed in quotation marks, leaving an empty string." Would that
67 statement be a derivative work in any way of the kernel? That would
68 be like arguing that I own the rights to anything anybody says which
69 happens to mention my name.
70
71 --
72 Rich

Replies

Subject Author
Re: [gentoo-user] Re: [WAS: keyboard stops working] Recent kernels block the loading of non-GPL kernel modules Fernando Rodriguez <frodriguez.developer@×××××××.com>