Re: [PATCH] clarify message and give support contact for non-GPLmodules

From: Sean Estabrooks
Date: Sun May 02 2004 - 07:48:20 EST


On Sat, 1 May 2004 21:02:20 -0400
Marc Boucher <marc@xxxxxxxxxxxx> wrote:

> Understood. So perhaps we should call it "open" and "proprietary" which
> are clear, well known words. "tainted" is honestly confusing/hard to
> understand for many ordinary users, especially international/non-native
> speakers who do not encounter the word that often (thankfully ;-).

No. It's tainted. And hopefully if the user is concerned or confused about this
word they will educate themself on the issues involved. They might even
then support hardware companies that support open source development.
Nobody is forcing anything on them, and the module will still load and run.

Linux is an open source operating system. There is nothing wrong with
promoting and protecting the code and license.

I've been looking at the latest version of the patch and thinking that it is really
wrong for any message to be displayed only once. If the user is unfortunate
enough to be loading two or more closed-source modules, the second
module should not be hidden by the first. The author of the second module
should not have their name hidden just because another module was loaded
first.

So here is another attempt at the patch. I think it addresses everything
that has been criticized. It makes sure the author of all non-GPL modules
are shown and returns the message to be a warning instead of info:

--- linux-2.6.6-rc3-bk3/kernel/module.c 2004-05-01 16:06:46.769778360 -0400
+++ linux-2.6.6-rc3-bk3-mb/kernel/module.c 2004-05-01 16:38:02.563614352 -0400
@@ -1125,15 +1125,19 @@
|| strcmp(license, "Dual MPL/GPL") == 0);
}

-static void set_license(struct module *mod, const char *license)
+static void set_license(struct module *mod, const char *license, const char *author)
{
if (!license)
license = "unspecified";

mod->license_gplok = license_is_gpl_compatible(license);
- if (!mod->license_gplok) {
- printk(KERN_WARNING "%s: module license '%s' taints kernel.\n",
- mod->name, license);
+ if (!mod->license_gplok) {
+ printk(KERN_WARNING "%s: module has non-GPL license (%s) **KERNEL IS NOW TAINTED**.\n", mod->name, license);
+ printk(KERN_WARNING "%s: Please consider supporting those who provide GPL licensed drivers\n", mod->name);
+ if(author)
+ printk(KERN_WARNING "%s: Tainted kernel means support is only available from: %s\n", mod->name, author);
+ else
+ printk(KERN_WARNING "%s: Tainted kernel means support is only available from the author of this driver\n", mod->name);
tainted |= TAINT_PROPRIETARY_MODULE;
}
}
@@ -1470,7 +1473,9 @@
module_unload_init(mod);

/* Set up license info based on the info section */
- set_license(mod, get_modinfo(sechdrs, infoindex, "license"));
+ set_license(mod,
+ get_modinfo(sechdrs, infoindex, "license"),
+ get_modinfo(sechdrs, infoindex, "author"));

/* Fix up syms, so that st_value is a pointer to location. */
err = simplify_symbols(sechdrs, symindex, strtab, versindex, pcpuindex,

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/