当Adobe, Microsoft, Google, Oracle等软件巨头对开源软件越来越青睐,标志着“开源”的时代已经到来。 从开源运动兴起以来,开源协议的版本越来越多,被OSI承认的就有50多!面多这么多选择,我们都手足无措了,因为协议的内容实在是冗长难懂。而对于一般开源爱好者来说,真正关心的是在开源的环境下协议能不能保护作者的权利。
开源协议一般由以下几个重要部分组成:
- 署名:开发者一般都希望自己的工作得到承认,所以都在软件上署名。
- 衍生作品版权:指当其他人使用或者修改软件之后,新的软件版权的归属。
- 衍生作品协议:指当其他人使用或者修改软件之后再发布时,应该使用什么样的协议。
而衍生作品又分为使用衍生和修改衍生两种,前者指在自己的软件中使用原软件,而后者对原软件的源码修改后再发布。
根据以上分析,对常见的开源协议比较如下:
开源协议 | 使用衍生的协议 | 修改衍生的协议 | 衍生作品版权 | 署名 |
---|---|---|---|---|
Mozilla Public License | MPL | MPL | 发起者 | 原软件及其许可 |
GPL | GPL | GPL | 作者 | 原软件及其许可 |
LGPL | * | LGPL | 作者 | 原软件及其许可 |
BSD/MIT/Apache | * | * | 作者 | 原软件及其许可 |
从表中不难看出,GPL具有很强的传染性,所有衍生作品必须是GPL的,这能够保护开源软件的开放性。MPL更加鼓励开源精神,不过不给开发者任何权利。而BSD/MIT/Apache则属于商业友好的开源协议,因为没有要求衍生作品也开源,这就得到很多商业公司的青睐。LGPL则介于商业友好和不友好之间,可以在商业软件中使用,但不能修改。