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