2 月 14 日,开源促进会(OSI,Open Source Initiative)批准了来自中国的木兰开源许可证第二版(MulanPSL v2),木兰许可正式成为一个国际化开源软件许可证(或称“协议”)。这意味着中国现在拥有了具有国际通用性、可被任一国际开源基金会或开源社区支持采用,并为任一开源项目提供服务的开源许可证。
OSI 是定义“开源”、制定开源协议标准的组织,符合 OSI 开源定义的许可证被认定为开源许可证,目前其批准的开源软件协议有 100 多个,比如目前比较流行的 MIT、Apache-2.0 与 BSD 3-Clause 等都在 OSI 认定的开源许可证列表中。而 Mulan PSL 是国内首个被公认的“国产开源软件协议”。
此次被 OSI 认证的是木兰的第二个版本,而实际上,去年 8 月份木兰就发布了第一个版本《木兰宽松许可证,第 1 版》,当时正值国内与国际社会因“中美贸易战”影响到开源领域而对开源的“自主把控”能力议论纷纷。
在这样的大背景下,当前木兰的第二个版本通过了国际公认的 OSI 认证,成为一个国际性的开源软件许可,我们觉得有必要对此次事件进行一些深入了解,于是第一时间邀约了木兰协议幕后的负责人北大教授周明辉,请她分享了相关情况。
从 0 到 1,木兰协议走向国际
2019 年 12 月 3 日周明辉向 OSI 的 License-Review mailing-list(开源软件许可审查邮件列表)提交了第一版本木兰(Mulan PSL v1)的认证申请,随后 OSI 社区在邮件列表中对木兰展开了公开讨论。
讨论主要集中在两点:
Mulan PSL v1 与现有协议之间的区别,如 BSD+patents;
多语言问题,Mulan PSL 采用中英双语,但两种语言的解释可能冲突从而存在潜在风险。
周明辉对 Mulan PSL 与现有开源协议的相似性做出了详细解释,指出 Mulan PSL 的优势在于更完善的专利授权,双方之后也针对多语言的解决方案进行了多轮讨论。
经过咨询国内法务专家,30 日周明辉提交了木兰协议的新版本 Mulan PSL v2,该版本增加了语言条款,声明中文为规范语言,也就是在与英文版本发生冲突时以中文为准。
此后有人对协议中英文版中的“Software”、“Affiliates”以及专利授权中“agent, patent licensee or assignee”等英文表述提出了建议。采纳他们的建议之后,周明辉于今年 1 月 6 日再次向 OSI 提交了更新后的 Mulan PSL v2。此后,邮件列表中对于木兰协议的特性以及语言问题不再有疑问。
到了 2 月 11 日,OSI 许可证审查委员会发出邮件,建议将 Mulan PSL v2 批准为“国际类别(International)”开源许可证,同时表示“中文版开源许可证可以鼓励中国社区参与开源,同时也是对已批准许可证列表的宝贵补充”。
最后经过 OSI 董事会的审查,2020 年 2 月 14 日,董事会正式发出邮件,批准 Mulan PSL v2 为国际类别开源软件许可证。
这是国内首个通过 OSI 认证的开源协议,看似简单地完成了申请与认证的过程,但是周明辉介绍,这需要有大量的前期准备工作。“Mulan PSL v2 能被 OSI 认证通过取决于几点。第一,我们在提交申请之前做了非常细致的工作,有大量贡献者的付出,包括法律专家和技术专家,以及国家电子标准研究院的有力支撑。”
此外开源社区和国家与个人身份在这其中也促成了此次认证。“OSI 社区是开放的,邮件列表中并没有对 Mulan PSL 的本质(是否满足开源十条定义)提出质疑,相反,大家对如何完善该许可证给出了很好的建议,我们也正是基于这些建议,对 Mulan PSL v1 进行修订,以更好符合国际化标准”,周明辉补充到:“此外,我相信中国目前在全球的经济发展情况及地位让全世界人民对我们中国的需求有一份尊重。最后我个人北大教授的身份也让 OSI 社区对协议的质量多了一份信任。”
回答这个问题的时候,周明辉提到,去年在制定木兰协议的时候面临的困难最终被一一克服,才能成就今日的进展。
首先,木兰许可证的制定必须建立在对现有开源许可证的充分理解之上,而对现有开源许可证的准确分析是比较困难且耗时的,北大、西南大学与中科院软件所等参与协议制定的老师与同学为此贡献了很多时间和精力。
其次,木兰许可证制定的初衷是推出一个便于开发者理解、保护开发者利益且广泛使用的中国本土开源许可证,因此如何充分保护开发者利益以及如何突显中国特色也是制定木兰许可证的难点。“国内企业的法务专家为该项目提供了非常好的咨询”,周明辉解释:“此外,开发者还普遍关注木兰许可证与其它知名开源软件协议的兼容性,而这需要进一步与相关开源软件基金会沟通确认。”
而另一大挑战是,制定木兰协议原本是希望它能服务于广大开源社区和开源项目,包括国内与国际,这不仅需要首先获得中文社区的认同,还需要与国际接轨,否则将难以获得普遍信任。“而这,正是此次进行 OSI 认证的一大动力”,周明辉说到。
为什么能通过 OSI 认证
OSI 创始人 Bruce Perens 曾表示,目前只需要 AGPLv3、LGPLv3 与 Apache v2 这三个必要的开源协议就已足够(虽然 Bruce 已经退出 OSI),那木兰有哪些优势,得以通过 OSI 的认证呢?
前边也有提到,在申请 OSI 认证的时候,邮件列表中周明辉需要先解释木兰相比其它知名协议的区别与优势。
总结起来,与众多开源协议相比,Mulan PSL 在其它协议的基础上进行了以下优化:
许可证内容以中英文双语表述,中英文版本具有同等法律效力,方便更多的开源参与者阅读使用,简化了中国使用者进行法律解释时的复杂度。
明确授予用户永久性、全球性、免费的、非独占的、不可撤销的版权和专利许可,并针对目前专利联盟存在的互诉漏洞问题,明确规定禁止“贡献者”或“关联实体”直接或间接地(通过代理、专利被许可人或受让人)进行专利诉讼或其它维权行动,否则终止专利授权。
明确不提供对“贡献者”的商品名称、商标、服务标志等的商标许可,保护“贡献者”的切身利益。
木兰协议经技术专家和法律专家共同修订,在明确合同双方行为约束的前提下尽可能地精简条款、优化表述,降低产生法律纠纷的风险。
正是这些更加明确和精简的特性以及中文特色,触动了 OSI,最终将木兰协议加入认证列表。值得一提的是,在审查委员会发出的邮件中我们也可以看到 OSI 对于中文开源许可的期待,OSI 表示:“中文开源许可证将促进华人社区发布开源软件,这是对已批准许可证的重要补充。”
而大家会疑惑,MulanPSL v2 版本通过 OSI 认证,是否意味着 v1 本身就不符合开源定义,在开源生态中不具有实际意义?周明辉解释,Mulan PSL v2 与 Mulan PSL v1 本质上没有区别,Mulan PSL v2 是在 Mulan PSL v1 基础上的进一步完善。认证过程中,OSI 及社区其他专家并没有表示 Mulan PSL v1 不符合开源定义,仅对规范语言和部分英文表述问题给出了相关建议。
周明辉也给出了 MulanPSL v2 对 MulanPSL v1 的具体改进:
增加“语言”条款,声明了“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本任何冲突不一致,以中文版为准。
为适应一些国家对担保免责条款的显著性要求,MulanPSL v2 在英文版中采用大写突显担保免责条款。
为了减少英文表述产生的歧义问题和语言习惯问题,MulanPSL v2 修订了“软件”(Software)和“关联实体”(Affiliates)的定义,以及“授予专利许可”(Grant of Patent License)条款的相关表述。
关于木兰特性以及 v2 相比 v1 的改进,因为当前开源与云的争端不断,在去年木兰 v1 出来的时候就有律师建议可以在协议条款中加上针对云的一些内容,我们也抛出了相关问题。
周明辉表示,Mulan PSL 的定位是宽松版许可证,对如何“使用、修改、复制、分发”开源软件没有额外限制,仅要求保留各类声明和许可证副本,因此也并未对“云”做任何限制。同时她也补充到:“今后在制定木兰系列其它类型的许可证时,我们可能会考虑到‘云’场景。”
有什么意义?
其实国内此前也有一此个人/公司发起自己的“国产开源协议”,但是并没有像木兰去年推出时引起的轰动,纠其原因主要有两点,一是木兰协议的出身背景,二是国际形势使然。
木兰协议作为国家重点研发计划“云计算和大数据开源社区生态系统”的子任务,由北京大学牵头,依托全国信标委云计算标准工作组和中国开源云联盟,联合国内开源生态圈产学研各界优势团队、开源社区以及拥有丰富知识产权相关经验的众多律师,共同研制而成。
国际形势方面,主要关注当时两大引爆事件:
全球最大的开源软件基金会 ASF(Apache 软件基金会)的管理办法中明确说明其遵循美国出口法律,所以它旗下的所有项目亦受到美国出口法律的管制。而 ASF 旗下开源项目的名单中有许多耳熟能详的项目,比如 Kafka、Solr、Hadoop 与 Spark 等;
全球最大源码托管平台 GitHub 表示:GitHub.com、GitHub Enterprise Server 以及您上传到任一产品的信息可能受美国出口管制法律的约束,包括美国出口管理条例(EAR)。并且实际上其已经对古巴与朝鲜等地实施限制。
消息一出,国际国内开源界议论纷纷,关于开源生态如何自立,做到在逼不得已无法与国际接轨的情况下能够健康发展的措施也被提上议程。
于是我们看到华为在加快国产开源操作系统鸿蒙的研发,看到国内第一个开源软件基金会在紧急筹备,也看到了第一个国产开源协议木兰的诞生。
而目前来看,木兰已经被国际开源领域最官方的组织 OSI 认证,周明辉表示,开源是人类在互联网发展进程中探索出的一种面向全球的大规模协作生产方式,它以开放共享、合作共赢为宗旨,有效地推进了全球化进程。
“政治会有博弈,国家会有冲突,但互联网承载的开源在各种各样的利益之外,深刻地体现着人类的善良特性,并不断构造最先进的生产方式。它深刻地体现着,从互联网延伸到的每个角落,每个人都可以参与,以自己最喜欢的方式,参与到一个大众的活动中来,群策群力,能者为王,协作生产一个既服务别人也服务自己然后大众都能获利的产品”,她补充到:“另外,我们中国从开源受益良多,目前我们有更多的能力,那我们就可以承担多一点的责任,让开源界、让世界更好。从自己做起。”
具体到木兰协议此次里程碑的意义,周明辉表示,一方面这意味着木兰协议(v2)本身正式具有国际通用性,可被任一国际开源基金会与开源社区支持采用,为任一开源项目提供服务,这是中国开源社区对国际开源社区的贡献。而这也正如 OSI 所言,将会极大地鼓励华人开发者参与开源。
另一方面,木兰协议是首个由中国开源产业界联合编制并通过 OSI 认证的开源软件许可证,这标志着我国开源界立足中国推进开源取得的进展,加强了我们持续推进开源的信心。
期盼:关山度若飞
“自从木兰发布以来,我们对于业界采用情况进行了积极的跟踪与梳理,我们目前可以看到码云 Gitee 上采用木兰协议的开源项目已经超过 1000,其中包括华为等知名企业项目”,周明辉向我们介绍了木兰协议当前的采用情况。
木兰协议最初版本于 2019 年 8 月 5 日发布,发布后为国内众多开发者陆续采用,码云 Gitee 也已于 8 月率先支持木兰协议,并于 v2 通过 OSI 认证当天跟进支持该新版协议。目前平台上已经有不少项目采用该许可,详情可查看:Gitee 上采用木兰的开源项目。
Gitee 上的采用反映的是国内对于木兰协议的支持情况,“而从 OSI 以及认证过程中邮件列表的反映来看,国际上对木兰协议也是非常支持的”,周明辉解释,中国有上千万的程序员,这些人代表了成千上万的互联网和软硬件公司,他们会对互联网技术和开源世界产生深远影响,这一点在她与 OSI 的邮件列表中得到了认可。
此外,Linux 基金会在今年 1 月 14 日的开源领导力峰会上也明确表示支持基于木兰协议的开源项目托管到 Linux 基金会,同时 Tweet 上也有不少评论表明国外个人开发者对木兰协议的喜爱与支持。
当然,这样还不够,“木兰也只是个开源许可证,核心产出还需要体现在我们将要不断开源的项目和技术上,以及相关的开源生态上”,周明辉谈到了接下来木兰相关生态的一些规划:“一方面基于木兰开源社区,继续推广木兰协议的使用;另一方面加强与其它国际开源社区沟通合作,真正将木兰协议推向国际化;同时以此为契机,将继续推进开源开发技术和开源治理策略的发展。”
《木兰辞》有言:万里赴戎机,关山度若飞。翱翔着翻越关隘和山岭,或许这正是木兰协议团队当时以“木兰”为名的原因。在此我们也希望木兰协议乃至国内的开源生态能够发展得越来越好。
嘉宾介绍
周明辉,北大计算机科学与技术系教授,主要研究开源开发方法和技术,目前对开源生态的演变过程非常感兴趣。主要涉及的领域包括大数据挖掘、软件工程与开源数字社会学等。
特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。