1、前言
之前百度要求内部全面停止使用 React / React Native,原因是facebook在自己的很多开源库的开源许可协议中的附加专利条款(Additional patent grant)引起了激烈争论:
1 | React is BSD licensed. We also provide an additional patent grant. |
所以,自己也了解了一下相关的开源协议,虽然看了又看,懂了又不懂,所以就记录一下吧!
2、开源协议
这里先放一张 阮一峰 制作的图片:
Apache License 2.0
这是一个著名的非盈利开源组织Apache采用的协议,它励代码共享和尊重原作者的著作权,同时也允许代码修改,再发布(作为开源或商业软件)。
要求
在代码中保留作者提供的协议和版权信息
如果修改了代码,则必须在被修改的文件中进行说明。
允许的权利
商用、分发、修改、专利授权、私用、附加协议
禁止项
禁止因使用等造成影响责任承担、也就是说免责申明
不能使用相应的商标。
提示:商业软件可以使用,也可以修改使用Apache协议的代码。
GPLv3
此协议是应用最为广泛的开源协议,拥有较强的版权自由要求,也赋予和保证了开源项目开发者广泛的权利。基本上,它允许用户合法复制,分发和修改软件,但衍生代码的分发需开源并且也要遵守此协议。此协议有许多变种,不同变种的要求略有不同。
要求
修改后的源码也需要公开
版权及协议也要于此协议一致
修改后,需要在相应的文件做说明,
允许
商用,分发,修改,专利授权,私用
禁止
禁止因使用等造成影响责任承担、也就是说免责申明
静止在软件分发传播过程中附加上原来没有的协议条款等
提示:商业软件不能使用GPL协议的代码。
LGPL
其主要用于一些代码库,LGPL比起GPL它授予的权限较少,LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。因此使用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。注意是以类库的形式使用,也就是说如果修改了源代码的话则也必须使用LGPL协议贡献源码出来。
要求
公开使用了LGPL部分的代码,其余部分不需要公开。
可以库引用的方式用于商业软件。
在代码中保留作者提供的协议和版权信息
允许
商用、分发、修改、专利授权、私用、附加协议
禁止
禁止承担责任,(免责申明)、
提示:商业软件可以使用,但不能修改LGPL协议的代码。
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品
MIT
宽松简单且精要的一个协议。在适当标明来源及免责的情况下,它允许你对代码进行任何形式的使用,也就是原作者只想保留版权,而无任何其他了限制,而你必须在发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。
要求
在代码中保留作者提供的协议和版权信息
允许
商用、分发、修改、私用、附加协议
禁止
禁止承担责任,(免责申明)
提示:商业软件可以使用,也可以修改MIT协议的代码,甚至可以出售MIT协议的代码。
BSD
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。与MIT协议只存在细微差异。差别为MIT可以使用原名称进行宣传,而BSD不可以。
要求
在代码中保留作者提供的协议和版权信息
允许
商用、分发、修改、私用、附加协议
禁止
禁止承担责任,(免责申明)
提示:商业软件可以使用,也可以修改使用BSD协议的代码。
Mozilla 2.0
是由Mozilla基金创建维护的。此协议旨在较为宽松的BSD协议和更加互惠的GPL协议中寻找一个折衷点,允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,它要求基于这种软件得修改无偿贡献版权给该软件。
要求
公开源代码
在代码中保留作者提供的协议和版权信息
允许
商用、分发、修改、专利授权、私用、附加协议
禁止
禁止承担责任,(免责申明)
禁止使用商标
提示:商业软件可以使用,也可以修改MPL协议的代码,但修改后的代码版权归软件的发起者。
The Unlicense
The Unlicense是一个放弃所有权利的许可证,没有任何限制,它一般用在致力于公有领域的产品。
注:开源许可证也可用于非软件产品,尤其是那些能够被当做源码编辑和管理的产品,如开源硬件设计等。
如果你的产品不是软件产品(数据、多媒体等),也有一些开源许可证可供选择。
Creative Commons许可证
Creative Commons简称CC,中国大陆正式名称为知识共享。传统的著作权通常为两种极端,一种是”保留所有权利”,另一种是“不保留任何权利”(即公有领域,public domain)。知识共享则试图在两者中间广大的灰色地带保有弹性,使创作者可以“保留部分权利”。创作者可与大众分享创作,授予其他人再散布的权利,却又能保留其他某些权利。知识共享一般用于设计,摄影,图片作品的开放式分享,并提供多种可供选择的授权形式及条款组合:
署名(Attribution,简写为BY):必须提到原作者。
非商业用途(Noncommercial,简写为NC):不得用于盈利性目的。
禁止演绎(No Derivative Works,简写为ND):不得修改原作品,不得再创作。
相同方式共享(Share Alike,简写为SA):允许修改原作品,但必须使用相同的许可证发布。
注:许可协议不能同时包含“相同方式共享”和“禁止演绎”许可要素,“相同方式共享”要素仅适用于演绎作品。
这些授权形式可以结合起来用,如CC BY,CC BY-NC-SA等。
参考
- 如何看待百度要求内部全面停止使用 React / React Native?
- 如何选择开源许可证?- 阮一峰
- 如何选择和使用开源许可协议 | Eleveneat’s Blog
- 如何选择开源许可证?- 简书
- 十分钟理清常见的开源协议
- 如有疑问,欢迎在评论区一起讨论!
- 如有不正确的地方,欢迎指导!
> 注:本文首发于 [iHTCboy's blog](https://iHTCboy.com),如若转载,请注来源