权利:作者 詹毅,中国·上海 执业律师,华东政法大学兼职教授
声明:传播本文时,请于文首呈现以上权利信息。
开源,以源代码开放的理念,具有显著的产业生态效应。例如,Google公司当年收购Android,以开源软件Linux为内核研发了智能手机操作系统,在Apache许可证项下发布该源代码,以开源方式运行至今,获得了巨大的商业成功。
开源的共享特质,以及市场成功案例,吸引了越来越多的企业参与到开源事业上来。由于开源是在独特的法律架构(即开源许可证)上运行的,涉及版权、专利等知识产权问题,并与合同法、社区协议交织,因而做开源碰到的法律问题,往往比较复杂、专业。为此,本文分析总结了三个常见的法律点,供企业做开源时参考。
1 代码“贡献”后仍然有版权
“贡献”(“Contribution”)是开源软件领域特有的法律概念。例如,我国首张开源许可证Mulan PSL v1第0条规定:“贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。再如,Apache 2.0[1]、MPL 2.0[2]等开源许可证也规定了“Contribution”(“贡献” )。
为什么将作品(主要是源代码)称之为“贡献”呢?因为做开源,首先需要做的就是开放源代码,提供给公众分享。这种分享往往是不收取知识产权税的,而且还允许其它程序员、公司、高校或者机构一起来做源代码的改进、分发。
因此,将在开源许可证下开放分享、改进、分发的程序代码,叫做“贡献”(“Contribution”)比较形象化。而提交贡献的企业、程序员、机构等主体,则称之为“贡献者”。
即使有些开源许可证没有明确规定“贡献”(“Contribution”)这一用语,也在许可证条款里体现了这一用语的实质内容。
例如,GNU GPL 3.0第0条规定:“程序”指所有经在本许可证下许可的受版权保护的作品。每一被许可人即“你”,“被许可人”“接收人”可以是个人,也可以是组织[3]。
因此,“贡献”(“Contribution”)在开源软件领域,是基本的法律概念,也是许可证明示或者默示的条款。
由于人们对“贡献”的通常理解是“进奉或赠与”或者“对公众有所助益的事”[4]。那么,“贡献”(“Contribution”)是否意味着做开源,企业就需要象做公益捐赠一样,将源代码分享出去呢?企业开源的程序代码,是否成为了公共财产呢?
答案是否定的。将程序代码开源公布后,企业仍然是该程序的权利人,也即该程序代码的财产所有人。例如,GNU GPL 3.0该许可证第11条规定:“贡献者”,是指授权使用本许可证下的程序的版权所有人、或者授权使用该程序衍生作品的版权所有人[5]。
因此,开源改变的是,企业根据许可证设定的条件,将自己对程序所享有权利许可了出去,允许公众自由地进行运行、修改、分发,并非是放弃了对源代码的所享有的知识产权。
如果企业不许可,其他人擅自商业使用、修改、分发的,一般情形下仍然会构成侵权,依法应承担法律责任。
例如,小明用Java写了个小游戏程序。如果小明不开源,其他人能不能拿到网络上发布呢?答案是不能。因为小明对其开发的计算机程序享有版权,未经其许可,在网络上发布就属于侵权行为,应当承担法律责任。
现在小明想开源,就采用Mulan PSL v1作为开源的条件,大家可以在许可证允许的范围内,自由地分发,或者进行衍生的开发,不用担心违法了,但版权所有人仍然是小明。
需要指出的是,因“贡献”而许可出去的权利,是企业作为贡献者对开源的计算机程序所享有的版权。也即开源许可证的权利基础是版权法[6],包括复制权、发行权、改编权、信息网络传播权等。
例如,上文引用的GNU GPL 3.0该许可证第11条,规定了版权所有人对许可证项下程序的授权使用,明确了许可证的权利指的是版权。
司法案例也说明,开源许可证是在版权法基础上的协议。例如,在美国两件著名的开源案例:2008年的Jacobsen v. Katzer案[7]与2017年的Artifex Software, Inc. v. Hancom, Inc.案[8]里面,法院均认为开源许可证属于一种版权协议。
2 “贡献”前可以申请软件专利
既然开源许可证对“贡献”的规定,遵循的是版权法;那么,版权法上“思想表达两分法”原理,当然地适用于包括开源软件在内的计算机程序。
“思想表达两分法”,系指版权法不保护计算机程序等作品的思想,而只保护其表达。
版权法上的“思想”,与人们通常理解的“思想”在内涵上并不等同。根据法律规定,“开发软件所用的思想、处理过程、操作方法或者数学概念等”[9]都属于版权法上“思想”的范畴,版权法不提供保护。
例如,小明为了改进移动计算机设备存储容量,发明了一种利用虚拟设备文件系统扩充移动计算设备存储容量的方法[10],并写了一个计算机程序来实现。
这里面,小明写出来的源代码文本等程序代码属于“表达”,受版权保护,小明可以拿来做开源。
但程序所体现的方法,即扩充存储容量的方法,是一种实用的技术方案,因为其具有功能性而属于“思想”,版权法不保护。
很显然这个方法,才是小明设计的精华,构成小明软件开发的核心价值。这时,小明会想到将这一方法申请专利,即申请授予涉及计算机程序的发明专利权[11],合法地垄断这一技术方案的应用市场。
但问题是,小明已经准备将这个程序开源,即按照许可证提交“贡献”。那么在“贡献”前,小明可否将独创设计并通过程序实现的技术方案申请专利?如果获得专利权,对开源有什么影响?
首先,一般而言,开源许可证主要依据版权法,规定的是代码的版权权利上复制、修改、分发等事项,并没有禁止“贡献者”在开源前就程序相关的技术方案申请专利。
其次,一些开源许可证规定了专利限制条款,也表明贡献源代码与申请发明专利并不冲突。例如,Mulan PSL v1第0条规定:每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。
这也隐含了许可证并不禁止小明申请专利的意思,只是限制小明拿专利权来妨碍公众对源代码的使用、改进、分发。
Apache 2.0[12]等开源许可证也有类似的规定。但有一些开源许可证并未涉及专利问题,例如MIT,这类许可证是否存在默示的专利限制?还需要法律上进一步研究。
最后,由于源代码开源分享后,可能导致程序相关的技术方案为公众所知,从而无法达到专利法规定的授权条件。
因此,在贡献前申请专利,是企业应当考虑的步骤。虽然很多开源许可证都设定了专利限制条款,导致贡献者无法收取专利费。
但取得“贡献”的程序代码相关的专利权,对企业仍然具有重要意义,特别是在专利布局方面。而且,企业对于许可证范围之外的技术方案擅自实施行为,仍然有权提起专利侵权诉讼。
3 做“贡献”应考虑平台协议
不管选择什么开源许可证,企业向一个平台来提交“贡献”,参与许可证项下的项目,是做开源的通常步骤。这样企业与平台与(或)社区就建立了一系列复杂的法律上的合同关系,形成了“贡献”相关的协议群。这些协议对贡献以及贡献者的重要性,丝毫不逊色于开源许可证。
一般的情形下,在开源的世界里,平台发挥着数据仓库、项目托管、版本控制及代码发现的生态系统作用。
因此在与“贡献”相关的协议群里,平台协议具有普适性,无论“贡献”(“Contribution”)采取什么许可证,参与什么项目社区,往往都需要平台根据协议提供服务。
平台协议一般由贡献者以电子订约的形式在线签署,确定了各方的法律上的权利义务以及责任。如发生纠纷,协议的内容将成为重要的争端解决依据。
因此,企业做开源,如需要平台服务的(一般都需要),应认真考虑平台协议。平台协议的内容一般是格式化的标准内容,以GitHub Terms of Service为例,主要包括的条款有定义、账户、使用、代码仓库、版权侵权及DMCA解决、GitHub's API使用、支付、无担保声明、免责、违约赔偿、协议变更等。
只要不违反法律的强制性规定,不损害公序良俗,这些条款一般是有效的,对协议各方均具有法律上的约束力,做开源的企业或程序员应当履行条款确定的义务,承担相应的责任。
这里提示GitHub平台协议里两个值得注意的地方。
一是平台协议虽然属于平等主体之间民事的一种在线服务合同,但可能受到美国政府的管制,从而影响企业对“贡献”的分享、衍生开发、改进分发。
例如,GitHub平台规定,GitHub网站、企业服务器以及用户上传的产品、信息可能受贸易管制法规包括美国出口管理法规(EAR)的约束[14]。
做开源的企业应当充分注意到这一点及由此可能带来的法律风险与经营风险。二是如果各方因平台协议发生纠纷,哪里的法律以及由哪家的法院有权力来裁决。
例如,GitHub Terms of Service规定,除适用法律另有规定外,用户与GitHub之间的本协议以及对网站或服务的所有访问或使用,均受美国联邦法律和加利福尼亚州法律的管辖,但不包括冲突法的规定。
用户与GitHub同意位于加利福尼亚州旧金山市、县的法院的专属司法管辖权并作为法院地[15]。
而中国著名的开源平台“码云”的用户协议规定,本网站内容及本使用条款的解释和适用均适用中华人民共和国法律,由于使用本网站而产生的一切纠纷,除另有约定,均由中华人民共和国(奥思网络所在地)人民法院管辖[16]。
官司在哪里打,对企业的重要性不言而喻,因此建议企业做开源时,应充分评估协议里的“适用法律及管辖”条款。