GPL concerns halt Kororaa live CD (NewsForge)
GPL concerns halt Kororaa live CD (NewsForge)
Posted May 16, 2006 12:35 UTC (Tue) by jayorke (guest, #10685)Parent article: GPL concerns halt Kororaa live CD (NewsForge)
If binary drivers containing no GPL code but simply existing on the same CD or sitting on top of a GPL system is a violation of the GPL then the GPL is getting a little scary. It sounds almost like DRM law to say what one can and can't put on a CD when one has right to use and distribute both. What next? Maybe the next version of the GPL might consider visiting a propreitary website with a GPL browser to be a GPL violation. GPL should be about protecting GPL'd code freedom and not about restricting the rights of non-GPL'd code and those who wish to use it.
Posted May 16, 2006 13:25 UTC (Tue)
by arjan (subscriber, #36785)
[Link] (6 responses)
the gpl doesn't restrict what you say it restricts, it has restrictions on shipping the GPL code. (or rather, copyright law has those restrictions and the GPL doesn't waive those)
the difference is subtle but important: it's not "you can not ship [that other thing] if ..", it's "you cannot ship [me] if ..".
(and as for the binary drivers that don't contain GPL code.. that's tricky, Compiled binary drivers do tend to contain GPL code! What I mean is that nvidia ships blob+glue, when you compile that into a driver that gets mixed with the kernel code (via #include's) and as a result of that actual code (not just definitions) get put into the final resulting binary. If that is enough to make things "derived" or any other kind of problem is a matter for lawyers. But to blanketly say "no GPL code" is too simple. And this also means that there is a difference between distributing blob+glue as nvidia does and a final compiled thing as Kororaa apparently put on the cd)
Posted May 16, 2006 20:23 UTC (Tue)
by grouch (guest, #27289)
[Link] (4 responses)
And this also means that there is a difference between distributing blob+glue as nvidia does and a final compiled thing as Kororaa apparently put on the cd)
So even though the final blob+glue is tolerated because of the extra clause preceding the GPL in the Linux source COPYING file, the compiling of the blob+glue links it to other GPL software and triggers 2.a. in the GPL Terms and Conditions?
If a LiveCD put off that compiling until boot time, leaving the binary blob just sitting ostracized on the CD, this would avoid the problem of distributing blob+glue. It could, for example, go through the nVidia (nVidious, RMS says) installer at boot. It would be nice if a warning about binary drivers and a choice was presented to the user before compiling and installing, but the separation would be sufficient to avoid the situation you describe.
Posted May 17, 2006 0:46 UTC (Wed)
by arjan (subscriber, #36785)
[Link] (2 responses)
maybe I'm missing something but I didn't see a clause added to the kernel COPYING file that allows binary modules, all I see is an explenation from Linus that he considers *user space* applications that use normal syscalls indepdent and not a derived work. But not a word about kernel modules....
Posted May 17, 2006 1:45 UTC (Wed)
by grouch (guest, #27289)
[Link] (1 responses)
maybe I'm missing something but I didn't see a clause added to the kernel COPYING file that allows binary modules, all I see is an explenation from Linus that he considers *user space* applications that use normal syscalls indepdent and not a derived work. But not a word about kernel modules....
I think the problem is more my lack of clarity than you missing something. I wasn't suggesting shipping the ready-compiled driver; just the separate parts in the same way that nVidia is allowed to do. The confusion appears to be from my misuse of the terms you had selected in your previous comment. Sorry about that.
Including the same things that nVidia ships on the same CD as the kernel and the rest of the operating system would be "mere aggregation". It would be unusable as shipped and require the user to decide to compile it. That compiling produces the "taint", which is a thing that is not distributable under GPL.
Posted May 17, 2006 2:54 UTC (Wed)
by grouch (guest, #27289)
[Link]
There is no exception clause for binary modules and I realize that my wording about the kernel tolerating binary modules can be taken to imply that. The extra clause, IIUC, is directed at the following part of the GPL:
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
The sticky part that triggered the extra clause, again as I understand it, is that about "a work based on the Program". The nVidia installer is pretty much useless without Linux and a bunch of GNU software. The clarification by Torvalds of a derived work pretty well eliminates the argument that the installer is "based on the Program". This is "tolerated".
"[M]ere aggregation" applies to the unusable, closed blob in 1. above, before compiling. A CD is not violating the terms of the GPL if that blob is just saved on the CD with GPL software. The user can choose to compile and use that finished module in 3. above, but cannot redistribute that part under the terms of the GPL.
Posted May 17, 2006 11:34 UTC (Wed)
by sladen (guest, #27402)
[Link]
It is distribution of the combined ["linked"] work which is presenting the issue. For anyone wondering, Ubuntu side-steps this issue (after having received a similar treatened shake-down) with the following; in:
Which is executed on bootup, The keys bits of which are: Hence ensuring that the linked result only ever exists in a
Posted May 17, 2006 2:50 UTC (Wed)
by jayorke (guest, #10685)
[Link]
Posted May 16, 2006 20:19 UTC (Tue)
by proski (subscriber, #104)
[Link] (2 responses)
GPL v3 explains the meaning of aggregation, because it's designed to work uniformly in different jurisdictions. If you want that definition changed, you should submit your comments to FSF.
Posted May 17, 2006 6:12 UTC (Wed)
by blkf (guest, #37412)
[Link] (1 responses)
Posted May 17, 2006 14:13 UTC (Wed)
by proski (subscriber, #104)
[Link]
I think you missed the point ;)GPL concerns halt Kororaa live CD (NewsForge)
GPL concerns halt Kororaa live CD (NewsForge)
> So even though the final blob+glue is tolerated because of the extra clauseGPL concerns halt Kororaa live CD (NewsForge)
> preceding the GPL in the Linux source COPYING file, the compiling of the
> blob+glue links it to other GPL software and triggers 2.a. in the GPL Terms
> and Conditions?
GPL concerns halt Kororaa live CD (NewsForge)
Follow-up, because I realized I'm still lacking clarity in my response.
GPL concerns halt Kororaa live CD (NewsForge)
For those wondering how Ubuntu does it.
/etc/init.d/linux-restricted-modules-common
log_begin_msg "Preparing restricted drivers..."
mount -t tmpfs -o mode=0755 tmpfs /lib/modules/"$KVER"/volatile/
...
ld_static -d -r -o /lib/modules/"$KVER"/volatile/$module.ko $module/*
tmpfs
location—stored in volatile RAM—which is then lost at shutdown. As a result the combined result is never distributed; and neither can the components be directly used with each other.
If glue is GPL'd and blob is binary and compiling glue doesn't require the code to blob then is there a violation of the code. The idea that a CD is a greater work in the eyes of the GPL an non-GPL code on the CD is a violation is equally scary. Would a computer sold with GPL software on it also be a greater work because it is all in the same package? Don't expect to see Linux sold on many PCs if zealots can't find a balance of protecting GPL code freedom and allowing non-GPL components to co-exist.GPL concerns halt Kororaa live CD (NewsForge)
The distinction between derived works and aggregations is not made by GPL, it's made by the copyright law. The license can say that certain kinds of derived works don't require all code to be GPLed. For example, LGPL makes an exception for linking.
GPL concerns halt Kororaa live CD (NewsForge)
Linus donot support GPL v3...GPL concerns halt Kororaa live CD (NewsForge)
There is more software on the CD than just Linux kernel. Besides, the original poster mentioned future versions of GPL.
GPL concerns halt Kororaa live CD (NewsForge)