Re: [PATCH] Blacklist binary-only modules lying about their license

Rogier Wolff
2004-05-10T06:26:01Z

On Fri, Apr 30, 2004 at 12:30:25PM -0400, Chris Friesen wrote:
> Marc Boucher wrote:
> >
> >Chris,
> >
> >people should, before insulting us publicly or make unsubstantiated
> >claims that we "lie" or engage in "illegal" actions, perhaps consult a
> >lawyer, and simultaneously use the opportunity to enquire about the
> >meaning of "slander".
>
> The C string library considers a null to terminate the string. You added a
> null after the "GPL". It appears to me that this is telling the kernel that
> the module is licensed as "GPL", even though it is obvious to a person

How about the following:

The MODULE_LICENCE macro is a technical way of indicating the licence
to the kernel. There are various ways of putting "comments and remarks"
about the licence in the source code, but techically, if
strcmp (MODULE_LICENCE, "GPL") == 0
then the module is licenced under GPL. (*)

For example, I like the following licence:

MODULE_LICENCE ("GPL");
/* The GPL licence allows you to distribute changes yourself,
but in fact I would prefer if you contact me with your
patches */

Now it might be that some vendors have written aditional comments
in such a way that they make it into the binary. Fine.

If some vendor tells the kernel that it's licence is "GPL" then
that's fine. The kernel then has the right to point the users to their
rights.

So I would support that new kernels to do something like:

if (module_is_probably_lying ()) {
printk (KERN_WARN "Loading module XXX, which indicates "
"that it has a GPL licence. This gives YOU\n");
printf (KERN_WARN "(the user) certain rights. Read "
"about those rights at: www.fsf.org/.....\n");
printf (KERN_WARN "and www.kernel.org/linux-gpl-modules.html\n");
}

The linux-gpl-modules.html URL would explain that some vendors
are telling the kernel that their module is under GPL, but are
refusing to release source code. The users should be urged to politely
ask the vendor for the source.

Roger.

(*) There could be bugs in code. For example,

errorcode = somefunction (....);
if (errorcode = ERR_FILE_NOT_FOUND) {
/* Handle the not found case */

}

is perfectly clear to humans what was meant, but the computer understands
otherwise. It is quite possible that the vendors involved in this case
will claim they might have had a bug in their code.

--
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2600998 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
**** "Linux is like a wigwam - no windows, no gates, apache inside!" ****