分享开源协议对照表及常用开源协议介绍
开源协议是一种法律文件,它定义了使用、修改和分发软件的规则。常见的开源协议有GPL、LGPL、MIT、Apache 2.0等。这些协议都有各自的特点和适用范围。例如,GPL要求所有使用或修改该软件的人都必须将源代码公开,而LGPL则允许将库与应用程序一起发布,但必须保留原始版权声明。MIT协议则相对宽松,允许自由使用、复制、修改和分发代码,但必须在副本中包含版权声明。
开源协议对照表
BSD协议
BSD协议全称为“Berkely Software Distribution”,中文译为“伯克利软件发行版”。其最早用于伯克利UNIX操作系统上的开源贡献。
允许:
允许修改源码
允许源码再发布
允许商业软件发布和销售
约束:
如果再次发布的产品中包含源代码,需要在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 对商业比较友好,很多公司在选用开源产品的时候都首选 BSD 协议,因为可以完全控制这些第三方的代码,甚至在必要的时候可以修改或者二次开发。
Apache Licence 2.0
apache是一个有着全球影响力的开源组织,其推行的apache licence 2.0 与BSD十分类似。
允许:
允许使用方进行二次开发和商用
约束:
需要给代码的用户一份Apache Licence
如果你修改了代码,需要在被修改的文件中说明。
在延伸的代码中(修改和包含源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
如果再次发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
GPL协议
GPL协议全称为“GNU General Public License”,中文名称为“GNU通用公共许可证”,主要是协议具有强制开源性,不利于商业化使用。
约束:
1、始终保持源码开放
无论是面向开发人员还是非开发人员,都需要确保二次开发后的产品整个源码可见;无论是以何种介质方式提供,即便是提供二进制可执行代码也必须附上产品源码。
2、不要求版权和署名
只要满足第一个条件,你无需在源码或在声明中备注前述开源作者等相关信息,整体表现为纯粹的反版权。
3、允许对使用方收取一定的服务费
但必须非常清晰地界定,这个费用与代码成果无关,是一笔感谢费而已。
只要软件中包含了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,因此这个协议并不适合商用软件。
遵循 GPL 协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议的
MIT协议
MIT协议全称为“Massachusetts Institute of Technology”,中文译为“麻省理工学院许可协议”,该协议与BSD、Apache Licence 2.0颇为相似。
约束:
1、开源软件使用者有权使用、复制、修改、合并、出版发行、再授权等一系列二次开发权利和不受限的商业行为。
2、 更为惊人的是使用者可以做出与MIT条款相反的一些授权声明。