前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一图说明常见开源协议

一图说明常见开源协议

作者头像
Mr.Teen
发布2023-06-05 19:35:31
2.8K0
发布2023-06-05 19:35:31
举报
常见的开源许可协议.jpg
常见的开源许可协议.jpg

常见两类开源

开源协议上百种。常见的开源许可协议主要有 ApacheMITBSDGPLLGPLMPL等,可以大致分为两大类:宽松型开源许可协议和传染型开源许可协议。

1、宽松型

其中宽松型开源许可协议有ApacheMITBSD

协议说明

  • 1、BSD(二条款版)分发软件时,必须保留原始的许可证声明。
  • 2、BSD(三条款版)分发软件时,必须保留原始的许可证声明。不得使用原始作者的名字为软件促销。
  • 3、MIT 分发软件时,必须保留原始的许可证声明,与 BSD(二条款版)基本一致。
  • 4、Apache 2 分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。

基本特点:

  • 1、没有使用限制。用户可以使用代码,做任何想做的事情。
  • 2、没有担保。不保证代码质量,用户自担风险。
  • 3、披露要求(notice requirement)用户必须披露原始作者。

2、传染型

传染型开源许可协议有GPL 、LGPL、MPL

协议说明

  • 1、Affero GPL (AGPL) 如果云服务(即 SAAS)用到的代码是该许可证,那么云服务的代码也必须开源。
  • 2、GPL 如果项目包含了 GPL 许可证的代码,那么整个项目都必须使用 GPL 许可证。
  • 3、LGPL 如果项目采用动态链接调用该许可证的库,项目可以不用开源。
  • 4、Mozilla(MPL) 只要该许可证的代码在单独的文件中,新增的其他文件可以不用开源。

区别:

  • 1、GPL 开源授权协议的库开发的软件,也必须要开源;GPL允许用户使用、修改和分发软件,只要他们提供访问源代码权限和他们所做的任何更改。 但是 GPL 并不要求仅通过网络与软件交互的用户共享其源代码。
  • 2、AGPL 是 GPL 的扩展,包括对与软件交互的用户的附加要求 通过网络软件。 这些用户还必须共享他们的源代码和他们对软件所做的任何更改。这意味着如果您使用 AGPL 许可的程序并在您的服务器上运行它并通过网络将其提供给其他人,您还必须 这些用户可用的源代码。 这在 GPL 下不是必需的。简而言之,AGPL 是比 GPL 更严格的许可,因为它要求用户在通过网络使用软件时共享他们的源代码。
  • 3、基于 LGPL 开源协议的库开发的软件,视是否只是调用来看,如果只是连接、调用,则可以封闭源代码,否则也必须要开源。

其他类型

此外如:SSPL等,还有存在目前无法分类的情况:

SSPL

MongoDB 再2018 年 10 月 16 日创建的一个新许可证SSPL。这个是官方修改开源协议(从 AGPL 到 SSPL,基于修改协议前的最后一个稳定版本4.0.3),存在较大争议,开放源代码促进会 OSI 甚至认为 SSPL 就不是开源许可协议。

cc

还有一类是 Creative Commons(CC)知识共享协议。严格意义上说该协议并不能说是真正的开源协议, 它们大多是被使用于设计类、在线文档、博客文章的工程上。CC 协议种类繁多, 每一种都授权特定的权利。

主要包含:

  • 作者可声明得权益

* 署名(Attribution,简写为by):必须提到原作者;

* 非商业用途(Noncommercial,简写为nc):不得用于盈利性目的;

* 禁止演绎(No Derivative Works,简写为nd):不得修改原作品;

* 相同方式共享(Share Alike,简写为sa):如果允许修改原作品,那么必须使用相同的许可证发布;

  • 使用者可获得权益

* 复制作品;

* 散发作品;

* 公开展示或表演作品;

* 将作品完全一致地转化成另一种格式。

阮一峰的博客文章对CC有更完善得说明。谈谈创作共用许可证(Creative Commons licenses)

如果是大陆地区一般使用 CC 2.5cc 3.0 的声明

开源协议选择

1) 如果您想为GPL世界添砖加瓦,或者项目引用了GPL许可证的模块,那么当然得使用GPL许可证;

2) 如果您想分享自己的编程心得,不想让许可证限制了知识的传播,这时可使用MIT许可证;

3) 如果您想更强的控制源代码,或者考虑商业化,那么推荐Apache许可证。

4) 如果是文章文档类一般选择cc协议

MIT是约束最少的, GPL是约束最多的; 如果是个人随意作品,建议MIT许可; 如果是公司或者需要严格保护,建议 GPL。

https://choosealicense.rustwiki.org/ 这个网站可以指导开发者选择一个适合的协议

开源合规

1、主要是开发者、企业在使用、修改、分发、商业化等方面了解各个软件的开源协议。

2、避免开源软件不同开源协议带来的法律风险、公关危机与安全隐患等问题。

3、了解开源风险的典型案例,对开源风险的防控措施能提前准备。

开源协议相关事件

1、mysql 被 Oracle 收购后变更开源协议,支持GPLv2 许可证 和 商业许可证,由此也衍生出了多个mysql版本:MariaDB (mysql 5.1的衍生)、Percona Server、MepSQL、Drizzle、OurDelta等。相关文章说明

2、core-js 决定更改开源协议. 2023-2-14 github readme

3、ffmpeg 中的gpl、lgpl开关 编译参考

ffmpeg 有大量可选依赖,很多依赖和 ffmpeg 的 lgpl 协议并不兼容,有的是 gpl ,有的甚至是 nonfree ,GPL版有x264和x265,LGPL版没有,按需选择。默认FFmpeg的configure编译是不带GPL部分代码的,我们可以基于FFmpeg的库进行第三方程序的开发而不需要开源。但是如果我们修改了FFmpeg的部分代码,则需要开源这部分代码。

参考文献:

《description software licenses》 https://paulmillr.com/media/posts/simple-description-of-popular-software-licenses/open-source-licenses-en.png

《GNU General Public License (GPL)》. http://www.opensource.org/licenses/gpl-license

《详细介绍 GPL 协议》. 红薯, 2009-11-30. http://www.oschina.net/question/12_2826

《The MIT License (MIT)》. http://www.opensource.org/licenses/mit-license.php

《详细介绍 MIT 协议》. 红薯, 2009-11-30. http://www.oschina.net/question/12_2829

《Apache License, Version 2.0》. http://www.apache.org/licenses/LICENSE-2.0

《详细介绍 Apache Licene 2.0 协议》. 红薯, 2009-11-30. http://www.oschina.net/question/12_2828

《The BSD 3-Clause License》. http://opensource.org/licenses/BSD-3-Clause

《The BSD 2-Clause License》. http://opensource.org/licenses/BSD-2-Clause

《详细介绍 BSD 开源协议》. 红薯, 2009-11-30. http://www.oschina.net/question/12_2825

《如何选择开源许可证?》. 阮一峰, 2011-05-02. http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

《开源许可证教程》. 阮一峰, 2017-10-11. https://www.ruanyifeng.com/blog/2017/10/open-source-license-tutorial.html

《9个主流的开源许可协议整理》. Univasity, 2011-12-05. http://univasity.iteye.com/blog/1292658


本文转自于wesee.club

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常见两类开源
    • 1、宽松型
      • 2、传染型
      • 其他类型
        • SSPL
          • cc
          • 开源协议选择
          • 开源合规
          • 开源协议相关事件
          • 参考文献:
          相关产品与服务
          云数据库 MariaDB
          腾讯云数据库 MariaDB(TencentDB for MariaDB) 让您轻松在云端部署、使用 MariaDB 数据库。MariaDB 是在 MySQL 版权被 Oracle 收购后,由 MySQL 创始人 Monty 创立,其版权授予了“MariaDB基金会(非营利性组织)”以保证 MariaDB 永远开源,良好的开源策略,是企业级应用的最优选择,主流开源社区系统/软件的数据库系统,均已默认配置 MariaDB。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档