木兰许可证 ≠ 木兰宽松许可证 ≠ 木兰公共许可证
月初,蚂蚁金服自研的数据库产品 OceanBase 宣布开源,采用木兰公共协议 MulanPubL-2.0 版,有文章将此协议简称为“木兰许可证”。
实际上,这种简称容易造成混乱。木兰系列许可证包含“木兰宽松许可证”和“木兰公共许可证”,均由北京大学作为牵头单位,依托全国信标委云计算标准工作组和中国开源云联盟,联合开源生态圈产学研优势团队和个体、尤其是开源法务和律师,起草、修订并发布。
木兰系列许可证幕后的负责人北大教授周明辉表示,宽松版本和公共版本都用了木兰前置词,是希望木兰形成体系和生态,一起繁荣发展,同时并不提倡大家使用“木兰许可证”去指代其中一个,容易造成混乱。
在木兰系列许可证中,木兰宽松许可证第 2 版(Mulan PSL2)已在 2020 年 2 月 14 日,通过开源促进会 OSI 的批准,成为中国第一个具有国际通用性的开源许可证,也是目前木兰系列知名度最高的许可证。因此,时常有人用“木兰许可证/协议”指代木兰宽松许可证第 2 版,但这种指代也并不准确。
许可证 | 英文简称 | 发布时间 |
木兰宽松许可证第1版 | MulanPSL | 2019年8月 |
木兰宽松许可证第2版 | MulanPSL2 | 2020年1月 |
木兰公共许可证第1版 | MulanPubL-1.0 | 2020年12月 |
木兰公共许可证第2版 | MulanPubL-2.0 | 2021年5月 |
木兰宽松许可证和木兰公共许可证间存在较大差异。均以第 2 版为例,木兰宽松许可证和木兰公共许可证的差别集中在“分发限制”上。
木兰公共版许可证类似 GPL,会传染,要求接受者必须开放源代码。而木兰宽松许可证的“分发限制”中仅仅要求保留代码中的许可证声明,并未要求再次分发时的许可证设置,不具有“传染”特质。
下图为两版许可证“分发限制”的详细对比,在约束对象(蓝色高亮部分)的表述上,公共版更为精准。
宽松许可证中的【软件】与公共许可证中的【您接收到的“贡献”或您的“衍生作品”】可以理解为在描述同一对象。周明辉表示,由于公共许可证制定时间较晚,同时两个版本的上下文存在差异,所以在制定公共版时用了更为精准和贴切理解的描述。
许可证 | 木兰宽松许可证第 2 版 | 木兰公共许可证第 2 版 |
分发限制 | 您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。 | 您可以将您接收到的“贡献”或您的“衍生作品”以源程序形式或可执行形式重新“分发”,但必须满足下列条件: (1)您必须向接收者提供“本许可证”的副本,并保留“贡献”中的版权、商标、专利及免责声明;并且, (2)如果您“分发”您接收到的“贡献”,您必须使用“本许可证”提供该“贡献”的源代码副本;如果您 “分发”您的“衍生作品”,您必须: (i)随“衍生作品”提供使用“本许可证”“分发”的您的“衍生作品”的“对应源代码”。如果您通过下载链接提供前述“对应源代码”,则您应将下载链接地址置于“衍生作品”或其随附文档中的明显位置,有效期自该“衍生作品”“分发”之日起不少于三年,并确保接收者可以获得“对应源代码”;或者, (ii)随“衍生作品”向接收者提供一个书面要约,表明您愿意提供根据“本许可证”“分发”的您“衍生作品”的“对应源代码”。该书面要约应置于“衍生作品”中的明显位置,并确保接收者根据书面要约可获取“对应源代码”的时间从您接到该请求之日起不得超过三个月,且有效期自该“衍生作品”“分发”之日起不少于三年。 |
木兰公共许可证第 2 版对接受到的“贡献”和“衍生作品”分别有详细规定。
定义方面,“贡献” 是指:
由“贡献者”许可在“本许可证”下的受版权法保护的作品,包括最初“贡献者”许可在“本许可证”下的作品及后续“贡献者”许可在“本许可证”下的“衍生作品”。
“衍生作品” 是指:
基于“贡献”创作的作品,具体包括对全部或部分“贡献”进行修改、重写、翻译、注释、组合或与之链接(包括动态链接或静态链接)而形成的作品。仅与“贡献”进行进程间通信或系统调用的作品是独立作品,不属于“衍生作品”。
具体规定方面,对于接收到的“贡献”,必须沿用许可证做二次分发。对于“衍生作品”,不仅需要沿用该许可证,还需要在明显位置提供“衍生作品”对应的源码下载地址,约束有效期均为3 年。
木兰系列许可证原文地址:https://license.coscl.org.cn/MulanPubL-2.0/index.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GitHub 推出 AI 编程工具,Stack Overflow:那我走?
GitHub 推出了名为"GitHub Copilot"的工具,官网对其的描述是 "Your AI pair programmer"。直译过来即为AI 结对编程工具。 GitHub Copilot 官网:https://copilot.github.com/ 根据官网的介绍,GitHub Copilot 不仅只是一个代码自动补全工具,其底层技术采用了由 OpenAI 打造的新 AI 系统——Codex,目前经过了数十亿行公开代码的训练,与大多数代码辅助工具相比,它可以理解更多的上下文。无论是文档、注释、函数名,还是代码本身,GitHub Copilot 都会基于开发者提供的上下文来合成匹配的代码。开发者可通过GitHub Copilot 在编辑器中获取有关整行代码或完整函数的建议。 GitHub Copilot 运作流程如下图所示: GitHub Copilot 主要功能: 将注释转换为代码:在注释中描述需要实现的逻辑,GitHub Copilot 可帮助完成代码。 自动填充重复代码:GitHub Copilot 对于快速生成模板和重复代码的场景十分有用。给它提供一些例子,它就会生成其...
- 下一篇
利用 Canvas 绘画一个未闭合的带进度条的圆环
最终效果图 一、定义变量 定义半径,定义圆环厚度,定义圆心位置、定义默认填充颜色 let radius = 75 let thickness= 10 let innerRadius = radius - thickness let x = 75 let y = 75 var canvas = document.getElementById('tutorial'); var ctx = canvas.getContext('2d'); ctx.fillStyle = "#f2d7d7"; 二、画第一个圆弧 ctx.beginPath(); ctx.arc(x, y, radius, Math.PI * 1.5, Math.PI) 注意 beginPath() 这个方法,生成路径的第一步。本质上,路径是由很多子路径构成,这些子路径都是在一个列表中,所有的子路径(线、弧形、等等)构成图形。而每次这个方法调用之后,列表清空重置,然后我们就可以重新绘制新的图形。 也就是说,这个方法可以用来给 Canvas图像 分组,绘制新的图形如果不调用此方法,那么新的图形会和前面的图形连接在一起 三、画第一个...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用