目录
在开源领域中,许可协议是指开源社区为了维护作者和贡献者的合法权利,保证软件不被一些商业机构或个人窃取,影响软件的发展而开发的协议。其中,GPL是开源许可协议中非常流行的许可协议之一。
一、基本概念
GNU通用公共许可协议(英语:GNU General Public License,缩写GNU GPL 或 GPL),GPL是由理查德·斯托曼于1989年编写,最初提供给列入GNU项目的一些软件程序所使用。
GPL是*软件和开源软件的最流行许可证。到2004年4月,GPL已占Freshmeat上所列的*软件的约75%,SourceForge的约68%。类似的,2001年一项关于Red Hat Linux 7.1的调查显示一般的代码都以GPL发布。
二、协议特点
2.1 传染性
GPL协议具有一个很显著的特点“传染性” :即当具有GPL协议的软件与其它协议的软件相组合或者GPL的衍生产品,必须按照GPL的条款分发。“衍生产品”通常被解释为包含GPL代码或动态链接到GPL库的软件。GPL下所有衍生产品都必须属于GPL,许可证是根据著作权法运行的。
2.2 可商用
GPL软件可以用于盈利,可以以任何价格出售,可以作为创建专有软件的工具(例如:GPL协议的编译器)。
三、使用者的*
0. *运行
可以按照自己的意愿运行软件;
1. *修改
可以按自己的意愿修改软件;
2. *复制
可以*分发软件副本;
3. *分发
可以将你修改过的软件版本再分发给其他人,从而回馈开源,促进开源;
四、符合GPL协议的软件
著名的GPL*软件包括EMACS,Linux内核(并非所有Linux发行版的内核都是开源的)和GCC。
五、GPL发展阶段
GPLv1:解决了软件经销商只分发软件的二进制,而不提供软件源码的问题;要求符合GPL的软件与其它软件组合后的整体必须以GPLv1条款分发,限制了经销商增加许可证的限制;
GPLv2:规定被许可人只有在满足所有许可证的义务下才可以分发包含GPL许可的软件,就算有相互矛盾的义务,许可证的义务也可能不被切断,阻止任何一方使用专利侵权索赔或其他诉讼来损害用户在许可证下的*;
GPLv3:提高了与许多开放源代码软件许可证(如Apache许可证版本2.0)和GNU Affero通用公共许可证(GPLv2无法组合)的兼容性;比较有意思的是,林纳斯·托瓦兹(Linux内核的发明人及该计划的合作者)决定不采用GPLv3作为Linux内核的许可协议,仍然使用GPLv2许可。
六、总结
GPL 维护了代码所有者的合法权益,保证了代码以及其衍生产品的开源,从而促进了代码的开源,让众多的软件开发者不断地从中收益,同时也不断的回馈开源社区,让开源队伍越来越壮大!
后面还会对其它的开源协议进行介绍,敬请期待!
六、参考文献
[1] https://en.wikipedia.org/wiki/GNU_General_Public_License
[2] https://opensource.org/licenses/GPL-3.0