开源协议:Java程序员需要了解的几个开源协议

        今天工作任务要写些跟开源协议相关约定介绍说明所以在网上搜索了些资料以供参考下面列出了几个比较常见开源协议如果想要了解其他协议和详细了解这些协议我个人推荐这个网址:http://www.opensource.org/licenses/

  Mozilla Public License

  MPL License允许免费重发布、免费修改但要求修改后代码版权归软件Software发起者这种授权维护了商业软件Software利益它要求基于这种软件Software得修改无偿贡献版权给该软件Software这样围绕该软件Software得所有代码得版权都集中在发起开发人得手中但MPL是允许修改无偿使用得MPL软件Software对链接没有要求

  BSD开源协议

  BSD开源协议是个给于使用者很大自由协议可以自由使用修改源代码也可以将修改后代码作为开源或者专有软件Software再发布 当你发布使用了BSD协议代码或则以BSD协议代码为基础做 2次开发自己产品时需要满足 3个条件:

  1. 如果再发布产品中包含源代码则在源代码中必须带有原来代码中BSD协议

  2. 如果再发布只是 2进制类库/软件Software则需要在类库/软件Software文档和版权声明中包含原来代码中BSD协议

  3. 不可以用开源代码作者/机构名字和原来产品名字做市场推广

  BSD代码鼓励代码共享但需要尊重代码作者著作权BSD由于允许使用者修改和重新发布代码也允许使用或在BSD代码上开发商业软件Software发布和销售因此是对商业集成很友好协议而很多公司企业在选用开源产品时候都首选BSD协议可以完全控制这些第 3方代码在必要时候可以修改或者 2次开发

  Apache Licence 2.0

  Apache Licence是著名非盈利开源组织Apache采用协议该协议和BSD类似同样鼓励代码共享和尊重原作者著作权同样允许代码修改再发布(作为开源或商业软件Software)需要满足条件:

  1. 需要给代码用户份Apache Licence

  2. 如果你修改了代码需要再被修改文件中介绍说明

  3. 在延伸代码中(修改和有源代码衍生代码中)需要带有原来代码中协议商标专利声明和其他原来作者规定需要包含介绍说明

  4. 如果再发布产品中包含个Notice文件则在Notice文件中需要带有Apache Licence你可以在Notice中增加自己许可但不可以表现为对Apache Licence构成更改

  Apache Licence也是对商业应用友好许可使用者也可以在需要时候修改代码来满足需要并作为开源或商业产品发布/销售

  GPL

  GPL许可证是自由软件Software应用最广泛软件Software许可证人们可以修改程式个或几个副本或程式任何部分以此形成基於这些程式衍生作品必须在修改过档案中附有明显介绍说明:您修改了此档案及任何修改日期 您必须让您发布或出版作品包括本程式全部或部分或内含本程式全部或部分所衍生作品允许第 3方在此许可证条款下使用并且不得此项授权行为而收费

  LGPL

  Linux就是采用了GPLGPL协议和BSD, Apache Licence等鼓励代码重用许可很不GPL出发点是代码开源/免费使用和引用/修改/衍生代码开源/免费使用但不允许修改后和衍生代码做为闭源商业软件Software发布和销售这也就是为什么我们能用免费各种linux包括商业公司linux和linux上各种各样由个人组织以及商业软件Software公司开发免费软件Software了

  GPL协议主要内容是只要在个软件Software中使用(“使用”指类库引用修改后代码或者衍生代码)GPL协议产品则该软件Software产品必须也采用GPL协议既必须也是开源和免费这就是所谓”传染性”GPL协议产品作为个单独产品使用没有任何问题还可以享受免费优势

  由于GPL严格要求使用了GPL类库软件Software产品必须使用GPL协议对于使用GPL协议开源代码商业软件Software或者对代码有保密要求部门就不适合集成/采用作为类库和 2次开发基础

  其它细节如再发布时候需要伴随GPL协议等和BSD/Apache等类似

  Public Do

  公共域授权将软件Software授权为公共域这些软件Software包没有授权协议任何人都可以随意使用它

  Artistic许可

  使作者保持对进步开发控制

Tags:  五种开源协议的比较 开源协议栈 开源协议比较 开源协议

延伸阅读

最新评论

发表评论