作为一位经常要开发各种业务的开发人员来说,为了要完成项目的进度,经常会去下载对应的开源工具来协助开发。正所谓站在巨人的肩膀上才可以看的远嘛,但是有些肩膀可以站,有些肩膀就不是随意可以站的哦,在这个阳光明媚的午后,就给大家分享一个常用的6种开源协议的文章吧。
1. GPL
GPL协议的主要内容是只要在一个软件中使用GPL的产品,(其中“使用”指的是类库调用,修改后的代码或者衍生代码),则该软件产品必须采用GPL协议,即必须也是开源和免费的。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合将其作为类库和二次开发。
2. BSD
BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使用了BSD协议的代码,或者以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
3. MIT
MIT许可证之名源自麻省理工学院,又称「X条款」(X License)或「X11条款」(X11 License。MIT的主要约束如下:
被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软件及软件的副本。
被授权人可根据程式的需要修改授权条款为适当的内容。
在软件和软件的所有副本中都必须包含版权声明和许可声明。
4. Mozilla
允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,它要求基于这种软件的修改无偿贡献版权给该软件。
5. Apache
Apache Licence是著名的非盈利开源组织Apache采用的协议。Apache协议的要求如下:
如果你修改了Apache许可的代码,需要在被修改的文件中说明。
在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不能改变本产品仍然是有Apache协议授权的。
6. LGPL
宽松公共许可证(Lesser General Public License)或库通用公共许可证(Library General Public License)。
基于 LGPL 的软件也允许商业化销售,但不允许封闭源代码。
如果您对遵循 LGPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承 LGPL 协议,不允许封闭源代码。但是如果您的程序对遵循 LGPL 的软件进行任何链接、调用而不是包含,则允许封闭源代码。
下面的图片,则更好地表示了六种开源协议的权利和义务。