.重要开源协定的比较以及区别
1.BSD开源协议(original BSD license、FreeBSD license、Original BSD license)
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件(2-Clause则不带第三条):
1>. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2.>.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
3>. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
要点:商业软件可以使用,也可以修改使用BSD协议的代码。
BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
2.Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0)
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
1>. 需要给代码的用户一份Apache Licence;
2>. 如果你修改了代码,需要再被修改的文件中说明;
3>. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明;
4. >如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
3.GPL(GNU General Public License)
GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
GPL具有“传染性”,只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用 GPL协议,既必须也是开源和免费。
GPL对商业发布的限制(引自Java视线论坛的Robbin):
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。
4>.开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,所以商业软件就不适合采用使用GPL协议的开源代码。
4.LGPL(GNU Lesser General Public License)
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品
MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.
转载于:https://blog.51cto.com/9480860/1637497
.重要开源协定的比较以及区别相关推荐
- 开源软件与自由软件的区别——个人体会
如今,计算机开源软件项目如潮水般涌来,各个领域都有着出色的表现.这就让我对开源的含义产生了兴趣. 于是花了一些时间在网络上搜索相关的信息.在此过程中,还发现了与之相似的--自由软件的定义.不过国内很多 ...
- Qt的开源版本与商业版区别及LGPL与闭源程序
原文地址:http://blog.51cto.com/devbean/313477 最近一直在学习 Qt.Qt 有两个许可证:LGPL 和商业协议.这两个协议在现在的 Qt 版本中的代码是完全一致的( ...
- 官方iPhone SDK和开源工具链
当Jobs宣称"iPhone SDK提供的是和苹果内部开发人员使用的相同的工具"时,他显然忘了在iPhone SDK发布之前几个月,就有人开始使用开源的Open Tool Chai ...
- 如何选择开源许可证如何修改项目使其符合某种开源许可证
作者:zyl910 很多文章介绍了详细的解说了各种开源许可证及它们的区别.但是,具体该选择哪一种许可证?如何修改项目使其符合某种开源许可证?就很少见到指导了.于是本文探讨这两个问题. 一.如何选择开源 ...
- 为了不让代码“作恶”,能否将道德条款纳入开源许可证?
随着特朗普政府反移民政策的执行,成千上万的移民儿童与父母分离,美国移民和海关执法局(ICE)也因此成为众矢之的. 所以,当开源开发者 Seth Vargo 发现前东家 -- Chef 公司最近与 IC ...
- 软件协会发布开源软件与商业软件知识产权报告
日前,中国软件行业协会发布了<有关开放源代码软件与商业软件知识产权的研究报告>(以下简称<研究报告>),明确提出"反对政府直接支持或干预任何形式的软件商业模式 ...
- 可以将道德条款纳入开源许可证吗?
开源开发者 Seth Vargo 发现 Chef 公司最近与 ICE(美国移民和海关执法局) 签订了合同后,进行删库抗议,从 Chef DevOps 中撤回了他的开源项目 Chef Sugar.后来 ...
- 华为的鸿蒙系统和苹果的操作系统有什么区别?
鸿蒙与苹果系统相媲美应该不需要两到三年.我作为领导人,说话要保守一点,不能把下面人逼得太紧,但对于他们来说,不需要这么长时间. 你觉得两者的区别是,开源和闭源的区别吗?我觉得不是!在我看来,苹果的系统 ...
- 从 2,000 到 25,000 工程师,微软开源如何制霸 GitHub?
[CSDN 编者按]自微软"豪掷千金"收购 GitHub 以来,其在开源方面的动作也一直不断.在这些背后,离不开微软强大的工程师团队.可以说,微软在开源方面的心血付出不是一般公司可 ...
最新文章
- 技术的那些事儿_3_西方技术管理的精髓
- mysql如何植入到oracle_MySQL产品的生命周期
- mysql 查看表v空间自增涨_mysql文件结构及InnoDB引擎表空间整理
- CSS3动画 - 地球 - 指南针旋转
- input传给java_java inputstream 传递给 py 处理
- 【Qt教程】2.4 - Qt5 控件 - QListWidget列表框
- 第10组17通信三班228网络协议抓包分析
- COMSOL6.0 版本新功能:求解大型瞬态声学问题
- mysql课程设计论文_课程设计项目源码,课程设计毕业设计项目,计算机毕业设计网 - 代码货栈...
- SonarQube 持续集成代码质量管理
- 2021国考申论三个月学习计划
- Focal loss分析
- php 错误 异常,PHP错误异常处理
- AD19-DRC检查
- PKI CA RA KMC
- 做了7年开源数据库开发,我学到了什么?
- php获取时间到微妙,php 获取毫秒时间戳
- 爬虫的智能化解析之使用Diffbot自动解析页面
- 百城价格房价周期和郑州、武汉房价比较分析
- 三菱FX系列PLC电池电压低导致程序参数丢失,PROG.E报警灯闪烁的解决办法
热门文章
- c++ websocket客户端_你要的websocket都在这,收好不谢~~~
- Matlab实用程序--图形应用-三维曲线图
- Matlab实用程序--图形应用-区域图形
- 2021-05-08 docker save与docker export的镜像区别
- 2020-12-09 深度学习 卷积核/过滤器、特征图(featue map)、卷积层
- Vue2.0 $set()的正确使用方式
- 斐波那契的数列的计算python-python斐波那契数列的计算方法
- 时间日期格式转换_JAVA
- 二叉树的先序/中序/后序(递归、非递归)+层序遍历
- 利用SIFt特征点和RANSAC方法进行物体识别(利用openCV和vs2010实现)