继深圳市中级人民法院在2021年4月作出一审判决的罗盒公司与福建风灵公司案[1]后,广州知识产权法院最近公开的罗盒公司与玩友公司一案的判决[2]中,除了就开源协议的法律性质作了进一步的明确,还对开源协议的发展、分类、域外司法观点等进行了深度分析和解读,并就GPLV3协议的相关规则作了详细梳理。广州知识产权法院的该判决书全文3万余字,不仅在认定本案争议焦点中就开源软件的著作权归属、原告诉讼资格、开源软件协议的法律性质以及违反开源软件协议约定的行为认定,围绕案件事实进行了详细论述以及法律论证,还在判决中就开源软件的发展,域外司法观点,开源软件涉及的诸多问题进行了阐明(例如“软件集合包”汇编作品中的独立作品之间是否互相发生传染,合作作品的判断标准,开源软件其他贡献者提交代码是否对软件著作权产生实质影响),同时还明确了重视和支持开源发展的司法态度。本案无疑为开源和闭源软件的混合经营指明航向,对开源软件合规治理具有重要的司法指导意义。
案情概述
本案原告济宁市罗盒网络科技有限公司(下简称“罗盒公司”)于2017年11月8日获得了“罗盒(VirtualApp)插件化框架虚拟引擎系统”(简称:VirtualApp)V1.0软件的计算机软件著作权登记证书,权利取得方式为受让。该软件由罗盒公司的股东之一罗迪(Lody)在2015年开发完成并于2016年7月7日在Github网站上传了VirtualApp的初始源代码,并附加了LGPL3.0协议。2016年9月10日罗迪将LGPL3.0协议变更为GPL3.0协议,并在2017年1月24日更新了声明,即任何人不得免费使用该源代码,若需使用本项目,请与作者联系。随后在2017年7月、10月和12月,罗迪多次更新了需要购买商业授权的声明,并在2017年10月29日删除了Github网站上的VirtualApp所附带的GPL3.0协议。
罗盒公司认为本案被告广州市玩友网络科技有限公司(以下简称“玩友公司”)通过“华为应用市场”“应用宝”等平台提供下载的“微信视频美颜版”“微信视频美颜相机版App”“微信视频美颜相机”“微信视频美颜相机版”四款软件与原告享有著作权的VritualApp软件构成实质性相似,侵害其软件著作权,故将玩友公司以及相关具有合作关系的三个公司作为共同被告,提起诉讼,要求法院判令被告立即停止侵害罗盒公司的VirtualApp计算机软件著作权中的复制权、发行权、信息网络传播权,并连带赔偿罗盒公司经济损失1500万元和合理费用15万元。
案件争议焦点以及法律分析
一审法院查明本案相关事实后,归纳了三个争议焦点:1.罗盒公司是否有权提起本案诉讼;2.被诉侵权行为是否侵害罗盒公司的复制权、发行权和信息网络传播权;3.若侵权成立,被告应如何承担民事责任。这三个争议焦点集中在开源软件著作权权属、侵权行为认定和侵权责任认定三个核心问题。围绕这三个争议焦点,法院结合开源软件贡献者人数众多的客观事实、开源软件协议发展历程和分类、美国和德国对GPL协议性质的司法观点和相关判例,论证我国相关法律规定和行业发展情况,分别就合作作品问题、开源软件协议的法律性质、侵权行为认定等细节问题进行了深入分析。
一、原告是否为本案适格主体,是否有权单独起诉
被告玩友公司认为原告主张权利并提供对比鉴定的计算机软件代码系托管在GitHub上的开源项目VirtualApp的VirtualApp-master版本源代码,参与编写该源代码程序的人数多达32位,且该开源程序项目为不可分割使用的合作作品,原告在未取得全部权利人一致同意后,无权主张相关作品的著作权。就此问题,法院从四个层面予以论述,并认为原告系相关著作权的权利人,有权提起诉讼。
首先,罗盒公司于2017年取得VirtualApp计算机软件著作权登记证书,并且涉案软件开源项目的发起者、管理者及联系方式均指向罗盒公司法定代表人和股东,因此罗盒公司系涉案软件著作权人。
其次,罗盒公司起诉不需要其他贡献者授权。第一,罗盒公司于2016年将VirtualApp初始版本代码上传至GitHub官网开源发布,这一事实系罗盒公司主张权利的基础和“涉案软件的核心基础”。贡献者提交的代码是在此基础上不断升级优化,提交代码的流程为贡献者创建拉取申请,经项目管理者同意后才会进入主分支中。这表明,贡献者提交的代码能否并入涉案软件主分支由项目管理人决定,且项目管理人提交的代码量占整个涉案软件代码量的绝大部分,因此其他贡献者提交的代码并未对涉案软件著作权产生实质影响。第二,判断是否为合作作品应考虑以下因素:作者为两个或两个以上、主观上有共同进行作品创作的合意、客观上有共同创作作品的行为、合作作者贡献了独创性的表达。贡献者创建拉取申请,经项目管理者同意后进入主分支,这显然符合前两个要素。但是,玩友公司并未举证证明贡献者提交的代码是否属于有独创性表达的创作,仅根据贡献者提交的代码行数无法判断其是否有独创性。因此本案无法认定涉案软件属于合作作品。
再次,涉案VirtualApp适用了LGPLV3协议或GPLV3协议,贡献者在申请将其代码合并入主分支时默认同意适用LGPLV3协议或GPLV3协议,即同意将其代码开源贡献给项目管理者和其他用户在授权许可协议范围内自由使用。
最后,法院认为,开源软件项目的贡献者往往人数众多,互不相识且散布于全球各地,只要项目保持开源则贡献者数量会持续动态地增加,即使涉案软件属合作作品,就在案证据难以查清所有权利人的基本情况下,若开源项目要求必须经过所有贡献者的授权才能提起诉讼,那么将导致开源软件维权无从提起。
二、GPLV3协议的法律性质问题以及在GPLV3协议中加入商业使用限制保留是否有效
为判断被诉侵权行为是否侵害罗盒公司的复制权、发行权和信息网络传播权的问题,法院就GPLV3协议的法律性质和效力、在GPLV3协议中加入商业使用限制保留是否有效,结合开源授权许可协议的发展历程及分类、域外对GPL开源授权许可协议性质的认定、我国相关法律规定和行业发展特点、GPLV3协议的特性和宗旨等,进行了充分论述。
法院认为,GPLV3协议具有合同性质,是授权方和用户订立的格式化著作权协议,属于我国合同法[3]调整的范围。首先,GPLV3协议内容具备合同特征,属于广义合同范畴,也是授权方和用户之间形成的以开源软件源代码为目的的一种民事法律行为,在用户复制、修改、发行该源代码时协议成立并生效。其次,GPLV3协议是非典型合同,开源软件的作者向不特定的使用者让渡其著作权的部分人身权利和全部财产权利,权利授予的对象是不确定的,以换取使用者承诺遵守开源许可协议的许可条件和义务。再次,GPLV3协议是格式合同,为特定开源项目开发而预先拟定,由著作权持有人向软件程序使用者提出的合同条款,对协议的承诺是通过行为作出,即GPLV3协议第9条规定,一旦修改和传播一个受保护作品,就表明其接受本协议。
在认定GPLV3协议具有合同性质之后,法院进一步说明,开源软件与商业软件的最大区别就在于开源软件作者将全部著作财产权利让渡给了使用者,开源软件是以放弃著作权相关权利的形式所进行的一种软件开发模式。虽然开源软件作者将著作财产权利让渡给软件使用者,但并没有放弃用商业化的方式促进开源软件产业的发展。开源软件不等于不能有商业开发。GPLV3协议序言规定,所谓自由软件,强调的是自由,而非价格免费,GPLV3协议设计用于确保你享有发布自由软件副本的自由(如果你愿意,你可以为此服务收费)。这说明开源软件仍然可以用于商业运作模式,只是其本身并不被当作商品对待,但所有的商业运作其实是围绕着开源软件的衍生产品进行的,如进行软件支持、软件服务、集成开源软件创新、以开源软件为基础开发附加值产品等。企业为开源软件找到合适的商业模式,在参与开源中获益,这是企业长期支持开源的动力,也是开源社区能长期蓬勃发展的基础。具体到本案中,GPLV3协议是一种针对软件和其他作品的“著佐权”(Copyleft)许可协议,使得软件可以自由使用。GPLV3协议保证用户拥有共享和修改一个程序全部版本的自由,使得软件面向所有用户均保持为自由软件。
据此,法院认为,原告罗盒公司的商业使用限制保留条款对于用户使用其源代码的目的进行了限制,从而也限制了用户范围,即只有非商业用途的用户才可以使用其源代码,这显然与GPLV3协议的“著佐权”特性矛盾。该限制保留条款也不属于第7条规定的可以添加的6种补充附加条款之一,应属于非许可性附加条款,属于第10条中的“进一步限制”,因此罗盒公司无权在适用GPLV3协议的涉案VirtualApp项目中添加商业使用限制保留条款。因此,被告玩友公司无需遵循该限制保留条款。
另外,由于GPLV3协议第10条规定,“你不可以对本协议所授或确认的权利的行使施以进一步的限制。”因此,罗盒公司在涉案项目中作出的声明“当您需要将VA用于商业途径时,需要进行授权”,是否违反前述第10条规定出现争议。法院认为,开源软件作者将著作财产权利让渡给软件使用者,但并没有放弃用商业化的方式促进开源软件产业的发展,然而罗盒公司的商业使用限制保留条款对于用户使用其源代码的目的进行了限制,从而也限制了用户范围,即只有非商业用途的用户才可以使用其源代码,这显然与GPLV3协议的“著佐权”特性矛盾,属于非许可性附加条款,属于第10条中的“进一步限制”,因此罗盒公司无权在适用GPLV3协议的涉案VirtualApp项目中添加商业使用限制保留条款。
三、玩友公司收取被诉软件会员费行为不违反GPLV3协议,但未公开被诉侵权软件源代码违反GPLV3协议
承前认定,GPLV3协议旨在保证用户可以自由使用源代码而非免费使用源代码,开源并不等于免费。限制开源软件商业使用与GPLV3协议的宗旨相抵触,若强制要求所有开源软件都完全免费或限制商业使用,那么开发者的工作价值将无从体现,这显然与开源授权许可协议的宗旨相矛盾。法院认为,GPLV3协议既然是一种软件知识产权的保护方式,它并不排斥软件开发者从软件中获取利益,只是盈利的方式有所改变:从过去依赖软件拷贝的销售,转向主要提供软件及信息服务。具体地说,作为软件程序或源代码是不收费的,作为软件的文档一般也不收费,而对开源软件提供专业技术服务,如技术支持、培训、咨询、系统集成或其他专业服务,以及由此派生的增值业务,则是可以收费的。
结合从玩友公司被控侵权软件的“用户协议”第五条“用户注意事项”规定,你理解并同意支付相关费用(运营维护费用及技术支持费用)以维持本软件的持续运营,法院认为本案被诉侵权软件收取会员费是用于运营维护和技术支持,而下载软件是不需要支付费用的。因此,玩友公司收取被诉侵权软件的会员费并不违反GPLV3协议的规定。
但玩友公司提供下载被诉侵权软件安装包的同时,用户无法下载到该软件的源代码。GPLV3协议有以下相关条款:序言规定,如果你发布这种程序的副本,无论以收费还是免费的模式,你必须把你获得的自由同样给予副本的接受者,你必须确保他们也能收到或得到源代码,而且你必须向他们展示这些条款以确保他们知道自己享有这样的权利。用户依据GPLV3协议授权可以获取软件源代码进行修改、再发布,那么就必须保证其他用户可以获取到修改后的源代码,这也是GPLV3协议保持开源传染性的核心要求。因此,法院认为玩友公司至少应当公开被诉侵权软件中使用了涉案软件沙盒分身功能部分的源代码,并且沙盒分身部分功能代码是作为被诉侵权软件的衍生部分而整体发布的,玩友公司并未举证证明沙盒分身功能部分源代码是独立的,因此被诉侵权软件应整体适用GPLV3协议,玩友公司应开源整个被诉侵权软件的源代码。
四、关于对违反开源软件许可协议的行为存在违约救济和侵权救济两种方式的认定
结合以上认定,法院指出,对违反开源软件许可协议的行为存在违约救济和侵权救济两种方式,这两种救济方式虽然都能某种程度上弥补权利人的损失,但违约之债和侵权之债的救济形式和力度均有差别。违约当事人的损害赔偿责任范围小于侵权行为人的损害赔偿责任范围;违约责任的守约方的法律救济措施主要包括继续履行和损害赔偿,侵权责任的受害人的法律救济措施除包括停止侵害、损害赔偿、恢复原状等外,还包括临时禁令救济措施。从美国和德国案例分析可知,其均是将违反开源软件许可协议的授权许可条件义务纳入侵权责任的调整范围。违反开源许可协议可以寻求违约救济或者侵权救济,两者竞合,由当事人自行选择。
在本案中,经法院释明后,罗盒公司明确其主张的是玩友公司同时违反商业使用限制保留条款以及GPLV3开源协议,其行为构成侵权,应承担侵权责任。因此,法院从侵权角度评述了玩友公司的被诉行为。
法院认为,根据《中华人民共和国合同法》第四十五条规定“当事人对合同的效力可以约定附条件。附生效条件的合同,自条件成就时生效。附解除条件的合同,自条件成就时失效。”承前认定,GPLV3协议具有合同性质,据此,GPLV3协议属于附解除条件的著作权合同,许可条款是版权许可的条件,如果用户违背条款规定,那么许可的前提条件已不复存在,则GPLV3协议终止适用,用户获得的授权也将自动终止。如前所述,玩友公司未向用户提供被诉侵权软件源代码下载已经违反GPLV3协议规定,则玩友公司对涉案软件源代码的复制、发布行为因失去权利来源而构成侵权。
判决亮点
本案与2021年4月深圳中院对罗盒公司诉风灵公司案的判决,不仅认可了开源协议的合法性,更是明确承认了在中国法下开源许可协议的合同属性,对于违反开源许可协议的行为存在违约救济和侵权救济两种方式。值得称赞的是,本案判决书不仅对案件本身进行了说理,更是详细梳理了开源软件的发展历史、个性特征,介绍了域外司法观点和详细案例,澄清了当前对开源软件协议的认识误区,展示了诸多亮点。
一、详细梳理了GPLV3协议的相关规则,包括“软件集合包”汇编作品中的独立作品之间互不传染
在本案判决书中,法院用一个独立篇幅详细介绍了GPLV3协议的重要条款和相关规则,例如:
第10条载明“对下游接收者的自动授权......②你不可以对本协议所授或确认的权利的行使施以进一步的限制。例如,你不可以索要授权费或版税,或就行使本协议所授权利索要其他费用;你也不能发起诉讼(包括交互诉讼和反诉),宣称制作、使用、销售、许诺销售、进口本程序或其部分的行为侵害了任何专利权”。根据该规则,法院在随后的论述中,认为本案罗盒公司在涉案VirtualApp项目中声明“当您需要将VA用于商业途径时,需要进行授权”,该限制保留条款也不属于第7条规定的可以添加的6种补充附加条款之一,应属于非许可性附加条款,属于第10条“进一步限制”,因此罗盒公司无权在适用GPLV3协议的涉案VirtualApp项目中添加商业使用限制保留条款。
GPLV3协议第5条规定“本授权下的受保护作品和其他与之分离的单独作品组成的一个汇编作品中,后者并非前者的自然延伸,与前者并未混合在一起,也未意图在某种存储或分发媒介上组成一个更大的程序,如果这种汇编作品及其产生的版权并非用于限制单独作品给予汇编作品用户的访问及其他合法权利时,则它被称为‘软件集合包’。在“‘软件集合包’中含有本授权项下的作品,不会导致‘软件集合包’中的其他软件作品也适用本协议”。GPLV3协议的强传染性在汇编作品的分离作品之间不发生,这是在开源软件的基础上开发商业软件的关键条款,通过采取适当的编程接口连接,可以降低软件源代码运行时的融合程度,从而回避开源许可协议带来的软件开发侵权风险。
二、就开源软件涉及的合作作品问题,进一步明确了相关判断标准
鉴于开源软件贡献者众多的特征,本案法院对涉及的合作作品的判断标准,进行了进一步明确,“判断是否为合作作品应考虑以下因素:作者为两个或两个以上、主观上有共同进行作品创作的合意、客观上有共同创作作品的行为、合作作者贡献了独创性的表达”,法院认为软件源代码开源的本意是“通过互联网媒介,集合全球开发者的智慧,尽可能使软件最佳化,从而促进知识的传播”。项目管理者和贡献者之间显然存在共同创作的合意,但是若不能证明贡献者有独创性表达,则不宜认定涉案开源软件构成合作作品。并且,即便认定构成合作作品,也不影响项目发起人在不经过贡献者授权情况下的起诉权利,因为一方面贡献者申请合并代码即表示“同意将其代码开源贡献给项目管理者和其他用户在授权许可协议范围内自由使用”。法院同时也认为,“开源软件项目的贡献者往往人数众多,互不相识且散布于全球各地,只要项目保持开源则贡献者数量会持续动态地增加。即使涉案软件属合作作品,就在案证据难以查清所有权利人的基本情况下,若开源项目要求必须经过所有贡献者的授权才能提起诉讼,那么将导致开源软件维权无从提起”。
三、对GPL协议的法律性质和效力作了进一步深度分析,并解读了域外司法观点
法院详细介绍了开源授权许可协议的发展历程和分类,从严苛到宽松主要可以分为(1)使用开源代码的程序必须公开源代码,这类最严苛,例如GPL协议,具有“病毒效应”;(2)使用并且修改开源代码的程序必须公开源代码,这类相对宽松,例如LGPL协议,新增代码不需要采用相同的许可协议发布;(3)使用或修改开源代码的程序不强制公开源代码,这类最为宽松,例如BSD、ASL等,只需要声明使用了该开源软件许可协议即可。
法院给出了对域外GPL协议性质的认定观点,美国的判例表明不同时期、不同级别法院对开源软件性质认定不同进而适用的救济措施有别,德国法院则认可GPL协议效力,倾向于将GPL开源许可协议所设定的条件认定为附解除条件的合同。当被许可人违反该条件时,GPL许可协议属无效,被许可人的行为便构成了侵权行为,开源软件权利人可以根据德国《著作权法》提起侵权诉讼。
本案判决认可GPL协议效力,认同“附解除条件的合同的思路”。与德国法院适用著作权侵权救济的判决倾向不同,本案判决明确指出,权利人有权选择违约救济或侵权救济,违约和侵权二者竞合。此前文章中笔者也提到,罗盒公司与福建风灵公司案中并没有提到维权方式二选一的问题(相关链接:解读我国首个明确开源软件协议性质的判决),而本判决对此给出了更明确的司法指示,对权利人在此类案件中的维权方式选择有很大参考意义。
四、判决书中明文表示重视和支持开源发展,并为开源和闭源软件的混合经营指明航向
本案判决书中,也多次就开源的发展和保护进行强调,例如法院在认定开源协议具有合同性质属于我国合同法调整的范围后,随即强调,软件开源授权许可协议倡导开放、共享、平等、协作精神,开源软件原作者让渡其著作权财产权和部分人身权给用户继续开发软件,鼓励自由使用、自由复制、自由修改、自由发行源代码,目的是创立一种自由开发、使用和传播的环境。当前,包括GPL在内的各种开源许可协议已被众多的国际组织、国家政府以及一些政治团体在立法上给予支持。我国政府也高度重视开源的发展,“十四五”规划提到“完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务”,中国开源云联盟(COSCL)也发布中国首个开源协议-木兰宽松许可协议(MulanPSL),并通过“开放源代码首创行动组织”(Open SourceInitiative)认证,致力于构建开源生态。因此,开源许可协议已经成为国际行业内公认的有效契约文本,遵守协议文本规定也是信守诚实信用原则的体现。只有各方均信守开源授权许可协议中的条款,才能让软件源代码持续开源传播下去,繁荣软件市场,保证公众能享受到开源软件带来的成果。
同时,法院在本判决书中指出,由于开源代码和闭源代码的保护路径差异,二者结合时会发生不可避免的冲突,对此法院提出化解冲突的理论建议,“在开源代码基础上进行再创新,并选择保持源代码闭源时,应当选择较为宽松的许可协议,避免因融合程度过高导致所有源代码都必须公开,不公开则可能构成侵权。若无法回避许可协议之间的冲突,应当采取简单的编程接口连接,降低软件源代码运行时的融合程度”。另外,具体到GPL协议,由于该协议对于开源的要求极为严苛,具有“强传染性”,对此法院提到谷歌公司的处理方法,在安卓移动操作系统中,将系统分为多个独立的不同层级框架,并对每个层级适用不同的开源授权许可协议,将上层衍生产品与作为内核的开源代码程序分离,从而避开了GPL许可协议传染至整个安卓系统。究其背后原因,在于GPLV3协议中对于“软件集合包”汇编作品中的独立作品之间互相不发生传染的规定。
此外,法院在判决书中也指出,商业软件与开源软件的盈利模式存在很大差异。不像商业软件一般通过控制软件源代码、出售软件许可来获益,开源软件常用的盈利模式包括:硬件捆绑、增值产品、技术支持、广告业务等,即主要提供软件及信息服务。具体而言,作为软件程序或源代码是不收费的,作为软件的文档一般也不收费,而对开源软件提供专业技术服务,如技术支持、培训、咨询、系统集成或其他专业服务,以及由此派生的增值业务,则是可以收费的。开源软件的全部技术包括编写源代码技术和工程化实现技术,前者即软件的全部源代码是完全公开的,后者包含工程经验、技术秘密和商业秘密等是不公开的。简而言之,如果软件可以视作下列组成等式,即:软件=程序+文档+支持+培训+服务,虽然代表“软件形态”的程序、文档可以免费,但作为“软件服务”的支持等环节可以收费。
本案的影响和思考
随着软件开源产业的日益发展,相关法律纠纷必然会呈上升趋势。本案对开源协议诸多问题的梳理,对未来类似案件的判决具有重要的参考意义和指导价值。同时,我们也认为,本案判决也就以往司法判决中涉及的开源代码的计算机软件著作权侵权案件带来一定的启发,例如在一些案件中,被告抗辩并举证了原告所主张的软件中使用了开源代码,法院则应当就原告所主张的软件是否受开源协议约束以及相关开源规则(传染性如何)如何进行查明。同时本案判决,也对软件相关行业的从业人员具有极大的教育作用,开源软件并非免费软件,并非不受限制的自由使用,相关行业在使用开源代码时,需要谨慎选择开源软件和明确开源协议的版本、内容及相关条件,避免潜在的法律纠纷发生。此外,本案明确了违反开源许可协议可以寻求违约救济或者侵权救济,两者竞合,由当事人自行选择。本案原告选择了侵权救济,后面我们也可期待违约救济的案例出现。
最后,引用本案判决提到的“开源软件的自由体现为通过著作权许可给予的自由,而不是自由得没有知识产权”。开源软件的权利人不但没有完全放弃著作权,而且还可通过开源软件许可协议寻求著作权保护。从而形成了传统软件保护的Copyright许可方式和开源软件保护的Copyleft许可方式共存的交叉保护方式。此外,开源软件不仅涉及著作权人的利益,也涉及使用者的利益。在美国近期发生的“SFCvVizio案”中,原告并非涉案开源软件的软件著作权人,但原告认为被告使用开源软件但拒绝按开源软件协议要求公开其软件的行为违反了开源软件协议的约定,要求被告向其开放软件源代码。我们也可期待未来出现更多开源软件的维权方式。
注释:
1.(2019)粤03民初3928号
2.(2019)粤73知民初207号
3.本案当时适用《中华人民共和国合同法》。