Messages in this thread Patch in this message | | | Date | Sun, 2 May 2004 08:43:45 -0400 | From | Sean Estabrooks <> | Subject | Re: [PATCH] clarify message and give support contact for non-GPL modules |
| |
On Sat, 1 May 2004 21:02:20 -0400 Marc Boucher <marc@linuxant.com> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |