使用MODULE_LICENSE宏的骗局2001年,在2.6内核的开发过程中,一个MODULE_LICENSE宏就开始引用,允许一个模块直接声明它的授权(licensed)。到目前为止支持有五种自由软件模块的授权模式:"GPL", "GPL v2", "GPL and additional rights", "Dual BSD/GPL", and "Dual MPL/GPL",使用此外版权的源代码加入内核,这个内核会被称为脏的(tainted)在编译时警告用户。头文件include/linux/module.h列出了这个宏的三个原因:允许用户察看授权信息,以便确认安装的是不是自由开源的版本,开发社区忽略那些没有开放源代码的模块的BUG报告,出售者可通过这个信息确定自己的版权政策。 Carl Daniel Hailfinger最近报告说这个宏被Linuxant咨询公司滥用。在他们的模块里,MODULE_LICENSE定义为"GPL\0for files in the \"GPL\" directory; for others, only LICENSE file applies"。放在GPL后面的\0明显是为了欺骗现存的MODULE_LICENSE宏,让其把这个模块当作GPL模块,然后把它混入“不脏”的内核。 随后有些简短的讨论,如何应付这种类型的滥用,Linux创始人Linus Torvalds提交了他的修改方案,然后说“嘿,这的确很有趣,玩这种游戏反而很明确地告诉所有人,欺骗侵害已经发生了,他们应该和律师谈谈这件事。” 模块支持的主要负责人Rusty Russell感谢Linus的补丁,但是答复道“我宁愿不变化,只要他们想采用骗术,我们干什么都是浪费时间”他也提交了一个补丁,这个补丁在文件里添加了一个标题:"Arms race forces bloat upon module users."
|