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 |