引子
开源成为了程序员圈子的一股潮流,但是很多嗯都不是很清楚各种开源协议的内容,以及各个开源协议的区别,所以这篇文章对开源协议做一些简单的介绍,帮助大家了解一些常见的开源协议的条款和适用范围。
Apache v2 Licence
- 需要给代码的用户一份Apache Licence
- 如果修改了代码,需要在修改的文件汇总说明
- 在衍生的代码中需要带有原来代码中的协议、商标。专利声明和其他原来作者规定需要包含的说明
- 如果在发布的产品中添加Notice,则Notice文件中需要带有Apache Licence,可以增加自己的许可,但不可以对Apache Licence构成更改
MIT Licence
MIT与BSD许可证相近,但是赋予被授予人更大的权力与更小的限制
- 被授权人有权使用、复制、修改、合并、出版发行、散步、在授权、以及贩售软件的副本
- 被授权人可以根据程序修改授权条款内容
- 在软件和软件所有副本都必须包含版权声明和许可声明
- 该授权可以在自由、开源或非自由软件使用
- 可以与其他授权条款并存
GPL v2
GNU通用公共许可协议设计用于确保你享有分发自由软件的自由(你可以为此服务收费),确保你可以在需要的时候获得这些软件的源码,确保你可以修改这些软件或者在新的自由软件中复用其中某些片段,并且确保你在这方面享有知情权。
自由权利包括复制、分发和修改。源码是指所有修改作品及生成、安装、运行(对可执行作品而言)目标码所需的源码,包括控制上述行为的脚本,但其中不包括系统库、通用工具。
GPL v3
与v2类似,区别在于不仅要求用户公布修改的源代码,还阻止了其他一些