企业使用开源软件的重要合规要点

2022-12-18  作者:朱杰,陈超  

开源软件已在软件行业占据大半壁江山,据统计,目前约95%以上的软件开发人员及企业已经开始使用开源软件。但是由于我国开源软件的运用及知识产权保护制度绝大部分借鉴自国外,国内企业对于开源软件使用的风险及救济方式知之甚少,这些风险可能成为使用开源软件的企业,尤其是借助开源软件实现迅速发展的科技企业的绊脚石。因此,如何实现开源软件的合规使用,业内企业应当给予相当的重视。


纯粹的理论及规范分析略显晦涩,不利于非法律人理解。因此,为更好地帮助业内企业及开发人员在开发、发布、使用开源软件时规避风险,实现方案落地,避免因开源软件侵权而带来的诉讼及损失,笔者将以我国十分典型的案例作“引”,逐一解读所涉开源风险并给出建议,以供企业在使用开源软件的过程中参考。本案虽然相对较久远,但是由于国内涉及开源许可证的案例并不多,因此本判决仍具有相当的参考价值。


读前须知

一、何为开源软件?

简单来说,开源软件就是把软件程序与源代码文件一起打包上传至社区平台,用户既可以自由地使用该软件的全部功能,也可以根据自己的需求修改源代码,甚至修改、编制成衍生产品再次发布出去。开源软件具有以下特点:

image.png

二、什么是GPL开源许可证?

开源许可证是为了给开源软件提供有效的法律保护,明确知识产权及使用规则的协议。GPL协议来源于RSM和GNU(GNU is Not Unix)运动,1985年,查理斯托曼创立了自由软件基金会,RSM为全面覆盖GNU项目开发的软件,便创建了GPL许可证。根据GPLv3相关条款,当某一开源软件适用GPLv3发布时,其再发布需要满足如下条件:

1.所有以GPLv3发布的源代码的衍生,必须按照GPLv3发布,意味着再发布不可更改适用其他类型许可证;

2.不论以何种形式发布,都必须同时上传源代码;

3.确保软件始终以开放源代码形式发布,保护开源成果不被作为商业发售;

4.贡献者明确授予专利权。


image.png


关于开源许可协议的法律性质,国内外通说认为开源许可证具有合同性质,是一种预先制定并经过OSI(Open Source Initiative)认可的格式条款协议。根据要约说观点认为,开源软件及源代码的发布可以视为要约的发出,用户复制、修改、再发行的行为可以视为承诺,因此,在用户使用开源代码时,开源许可协议即成立,该协议经过了完整的合同成立流程,在双方当事人间建立了合同关系。开源许可协议是一种格式化合同,由协议制定者预先制定,并经专门机构OSI认证发布,供开发人员自行选择。


三、开源风险一览

开源软件在带来节省成本、促进传播、推动创新等诸多好处的同时,也面临着诸多风险,企业或开发者在使用开源时,应当对开源所面临的风险有一个基本的认识。开源软件主要面临如下风险。


1672195340533.png



1.被迫开源风险

由于一些开源许可证规定了当使用开源代码时,衍生的软件也应当适用该许可证或进行开源,从而导致衍生软件被迫的开源。企业应当结合自身产品特性选择许可证,避免许可证带来的“传染性”风险。以下案例中对这点会有更详细论述。


2.违约风险

实践中一般将开源许可证认定为合同,因此,当开发者或者用户不遵守许可证约定时,可能会承担违约风险。


3.知识产权风险

开源软件可以受到著作权法、专利权法、计算机软件条例、商业秘密乃至商标法的保护,在我国开源软件侵权主要集中在著作权的侵害,因此,企业应对此着重关注。


4.数据安全及隐私风险

随着我国数据安全“监管严年”到来,数据安全合规成为众多企业重要工作,稍有不慎将面临严厉的行政处罚及高额罚金,因此,企业在使用开源软件时,不应忽视这一点。由于开源软件的上传和获得监管不严,企业极有可能引入存在恶意代码、病毒的软件,从而造成数据、隐私泄露,得不偿失。


基本案情 

2019年3月4日,广州知产法院受理济宁市罗盒网络科技有限公司(以下简称“罗盒公司”)与被告广州市玩友网络科技有限公司(以下简称“玩友公司”)、深圳冠准航科技有限公司、深圳奥斯坦科技有限公司、祥运实业(深圳)有限公司(以下简称“其余被告”)侵害计算机软件著作权纠纷一案,并于2020年11月3日适用普通程序进行审理。


image.png

罗盒公司称:其于2017年11月8日获得“Virtual”软件著作权,并基于推广的目的,将该软件发布在GitHub平台并公开了软件源代码,声明任何人将该软件用于商业途径,需要取得罗盒公司授权。被告玩友公司开发的“微信视频美颜软件及衍生版本软件”在网上提供下载安装服务并由其余被告代收取费用,罗盒公司主张,“微信视频美颜软件及衍生版本”与其“Virtual”软件代码的约三分之一具有高度相似性,过半代码具有实质相似性,因此构成实质相似。经测算,被告公司获取利益达六千余万,各被告构成共同侵权,应向罗盒公司承担侵权责任。罗盒公司据此提出请求,要求被告各公司停止侵害罗盒公司所有的”Virtual软件“的复制权、发行权、网络传播权;被告各公司赔偿罗盒公司各项经济损失及维权费用合计1515万元并承担本案诉讼费。

image.png


被告玩友公司辩称:首先,罗盒公司并非”Virtual”著作权人,不是本案适格原告。其理由是,该软件的贡献者多达32人,罗盒公司只是其中之一,其将“Virtual”开源至GitHub平台的行为未经其他权利人许可,侵犯了其他权利人的权利,应属无效;其次,”Virtual”项目经修改后适用GPLv3协议,玩友公司依据该协议在GitHub平台下载并修改、发行代码的行为,不存在侵权情形;再者,罗盒公司未经“Virtual”其他权利人许可,私自上传发布源代码并据为私有,违背了开源社区自由、共享的基本准则;最后,基于开源软件无担保的性质,罗盒公司对其上传的开源代码不负任何质量担保责任,玩友公司在此基础上投入大量成本,自主研发,其功能与“Virtual”差异明显。其余被告辩称:其余被告与玩友公司仅为合作关系,代收用户付款,并无实质上的侵权行为,且在合作之初,其余被告已尽到形式审查义务,无力对开源软件进行实质审查,玩友公司与第三者产生的侵权纠纷与其余被告无关。法院判决:一、被告玩友公司立即停止侵害罗盒公司发行权、网络传播权的行为;二、玩友公司于本判决生效之日起十日内赔偿罗盒公司经济损失及维权合理费用合计五十万元;三、驳回罗盒公司其他诉讼请求。以下笔者结合上述案例进行分析,并提出企业、开发者在使用开源软件时防范风险的建议。


一、开源软件项目权利主体如何认定?

玩友公司辩称,罗盒公司并非适格原告,但本案在审理中,法院审查发现,国家版权局于2017年11月8日颁发的软著登字第2198812号《计算机软件著作权登记证书》显示,上述罗盒公司的“Virtual软件”开发完成时间为2015年2月28日,首次发表时间为2015年7月18日,著作权人为罗盒公司。根据《计算机软件保护条例》第九条、《最高人民法院关于审理著作权民事纠纷案件适用法律若干问题的解释》第七条第一款规定,可以认定罗盒公司为Virtual软件”的著作权人,其为本案适格原告。


image.png

同时,针对被告玩友公司抗辩称”Virtual”还有其他贡献者,罗盒公司无权私自上传并开源。法院认为,贡献者在明知罗盒公司上传的软件采用了GPLv3协议,仍然选择加入项目并作出贡献,应当视为贡献者接受GPLv3协议的约束,愿意将贡献成果给予罗盒公司及其他用户使用。笔者了解到,GitHub的项目管理者(本案中是“罗盒公司股东罗迪”)可以在官网上传独立编写的源代码,并自由选择某一种许可证。项目管理者可以自主创建主分支,其他贡献者若想加入项目进行修改,可由贡献者向项目管理者提出申请,由项目管理者拉取贡献者进入项目后,进行修改、使用,同时自己所贡献的代码也可由项目管理者或其他用户使用。因此,作为项目管理者的罗迪上传初始源代码后,该源代码著作权就应由罗盒公司主张,罗盒公司对“Virtual”享有著作权已证明无异议。其次,共同创作作品要求客观上有共同创作行为,主观上贡献者有独创性贡献,本案中,贡献者向项目管理者提出加入项目的申请,项目管理者拉取贡献者进入项目的行为,其实已经表明了双方进行共同创作的意思,同时该项目早已在GitHub平台进行,贡献者其后才加入项目,所以其对于项目管理者开源的行为已通过默示的方式进行了许可。因此,罗盒公司为主分项目权利人,贡献者为分支项目权利人,罗盒公司开源“Virtual”的行为并未侵害其他贡献者的权利。笔者建议,企业在作为开源项目发起者、管理者时,为避免后续因贡献者加入导致权利关系复杂化而引起权属风险,可以与其他贡献者通过线上或线下书面约定,就项目发起者、管理者和贡献者的权利进行明确。若发起者采用的开源许可协议中并无商业使用的相关条款,而某一方参与者又有商业使用的需求时,可另行向权利人请求使用许可。


二、开源软件用户修改、完善开源代码后在网上发行是否侵害开发者权利?

本案中,关于玩友公司是否侵害罗盒公司复制权、发行权、网络传播权的问题,法院认为,根据《最高人民法院关于审理侵害信息网络传播权民事纠纷案件适用法律若干问题的规定》第三条规定:“网络用户、网络服务提供者未经许可,通过信息网络提供权利人享有信息网络传播权的作品、表演、录音录像制品,除法律、行政法规另有规定外,人民法院应当认定其构成侵害信息网络传播权行为........”本案中,玩友公司将其“微信视频美颜软件”及衍生版本上传到华为应用市场、应用宝等平台供用户下载,侵害罗盒公司“Virtual软件”的网络传播权。


通过以上阐述,读者可能会疑惑,既然开源软件的目的和宗旨就是让用户自由复制、使用、再发行,为什么玩友公司使用罗盒公司开源代码开发出新产品后发布的行为又侵害了罗盒公司的网络传播权呢?笔者认为,开源软件及开源许可证虽然是为了使软件自由的传播,但是并不意味着没有任何限制,如果没有对开源软件的使用没有一定的规制,将可能大大打击开发者的创作积极性,违背开源运动推动创新、抵制垄断的初衷。而此处所言的限制,即指开发者将软件开源后所没有放弃的那部分权利,目前市面上存在的各种开源许可证,核心内容就是对开发者放弃何种权利,保留何种权利进行了约定,因此当开发者选定了某种开源许可证后,用户应当严格遵守许可证规定,否则仍然对开发者构成侵权。当企业或个人选择使用开源软件时,就视为自愿接受开源许可证的约束,这是开源模式能够良好运行的基础。笔者建议,开发者应当在选取开源许可证前,结合软件的性质和特点、结合自身开源的目的,针对性地选择最适合的许可证,避免不当的选择使自己陷入风险,得不偿失;而用户方应当结合使用开源软件的用途、方式、需求,选择合适的开源软件,避免因违反开源许可证的规定承担侵权责任。


三、开发者、项目管理者能否在开源许可证增添条款?

本案中,项目管理者罗迪于2017年7月3日在“Virtual”项目中声明“当您需要将VA用于商业途径时,需要进行授权”,此后该声明一直保留。罗盒公司据此主张玩友公司使用“Virtual软件”并进行商业发布的行为构成侵权。法院认为,玩友公司无需遵循罗盒公司的商业限制条款,罗盒公司增添商业限制条款缺乏依据。


笔者通过对GPLv3协议的查询发现,该协议对是否能够增添商业限制条款有明确的规定。根据GPLv3协议前言规定:“为了保护您的权利,我们需要防止他人否认您的这些权利或要求您放弃这些权利。因此,如果您分发或修改软件的副本时也应尊重他人自由。例如,您分发程序的副本时,无论是免费还是收费,都必须将您获得的相同自由传递给使用者,确保他们也可以获得源代码。”

image.png

GPLv3协议第七条对”附加条款“进行规定:“附加条款“是通过对本协议的一个或多个条件作出的例外情形用于补充本协议的条款.......尽管本协议有其他条款,对于您添加到作品中的材料,您可以用以下条款补充本协议的条款:a) 以不同于本协议第 15 和 16 条的条款;b) 要求保留该材料或包含该材料的作品显示的合理法律声明或作者归属;c) 禁止歪曲该材料的来源,或要求以合理的方式将此类材料的修改版本标记为与原始版本不同;d) 限制出于宣传目的使用许可人或材料作者的姓名;e) 拒绝根据商标法授予使用某些商号、商标或服务标识的权利,或者要求任何传送该材料(或该材料的修改版本)的人向该材料的许可人和作者赔偿,并承担对接受者的合同责任。所有其他非许可性附加条款均被视为第 10 节含义内的“进一步限制”。如果您收到的程序或其任何部分包含声明其受本协议约束的通知及“进一步限制”,您可以删除该术语........”

image.png

GPLL3.0协议第十条规定:“您不得在根据本协议授予或确认的权利之外施加任何进一步的限制。例如,不得为行使权利而征收许可费、特许权使用费或其他费用,不得因制造、使用、销售、提供出售或进口本程序或其任何部分的行为提起诉讼(包括诉讼中的交叉索赔或反诉)要求任何专利权利。”


image.png

除以上具体性规定,OSI协会对开源软件“非歧视性”的原则性规定的内涵也表明,开发者不得对开源软件用于商业目的进行限制。

image.png

因此,笔者认为,在采用GPLv3协议的情况下,如果开发者、项目管理者增加的条款不属于GPLv3协议第七条中可以附加的情形,而属于第十条规定的“进一步限制”,即违背了该许可协议的规定,同时也违背了开源许可证的原则性规定,不会被法院支持。那么,除了GPLv3协议外,其他许可证协议是否也要求不能增添“进一步”条款呢?目前较为流行的开源许可证主要包括:GNU系列的AGPLv3、GPLv3、LGPLv3、Mozilla Public License2.0、Apache License2.0等,其中AGPLv3、GPLv3条款中对“附加条款”和“进一步条款”进行了规定,Mozilla Public License2.0、Apache License2.0无此类条款,也即意味着,目前市面上的许可证协议对开发者、项目管理者是否能够增加条款、能增加何种条款的规定不一,因此,笔者建议,企业或个人如果需要增加部分条款,以实现特定目的,应当尽可能对各种条款进行了解,可以选择GPLv3、GPLv3或有类似规定的许可证,避免因选择不当导致增加的条款无效,从而导致目的落空。


四、开源许可证是否都具有“传染性”?

本案中,玩友公司使用了罗盒公司代码后,对自己的软件并未进行开源,据此,罗盒公司认为玩友公司违反了GPLv3协议的规定,法院认为,玩友公司虽主张被诉侵权软件中只有沙盒分身使用了被诉部分源代码,但被诉侵权软件仍应遵循GPL V3协议向用户开放源代码下载,玩友公司未向用户提供被诉侵权软件源代码下载已经违反GPL V3协议的规定。


此处所谓“传染性”,一般有两种含义,符合任意一种的情形的许可证可以称为具有“传染性”,第一是当用户使用了开源软件开发出新软件后需要再发行时,许可证是否要求该用户将新软件的代码开源,有此种要求被称为具有“传染性”;第二是指当用户要再发行新软件时,是否必须采用前一种开源软件的许可证,如果是,则称为具有“传染性”。笔者认为,根据GPLv3前言规定:“为了保护您的权利,我们需要防止他人否认您的这些权利或要求您放弃这些权利。因此,如果您分发或修改软件的副本时也应尊重他人自由。例如,您分发程序的副本时,无论是免费还是收费,都必须将您获得的相同自由传递给使用者,确保他们也可以获得源代码。”也就是说,当用户实际复制、修改、发行了适用GPLv3协议的开源软件时,即代表自己也将遵循该协议的规定,将自己修改后的软件源代码进行开源,这也是GPL系列协议“强传染性”的主要体现。那么,除了GPLv3协议具有“传染性”外,其他许可证协议是否具有?同样以上述提到的GNU系列的AGPLv3、GPLv3、LGPLv3、Mozilla Public License2.0、Apache License2.0等协议作为例子。如AGPLv3协议前言规定:“AGPLv3许可证专门设计用于确保修改后的源代码可用到开源社区,即要求网络服务器的运营商将修改版本的源代码提供给该服务器的用户。因此,公开使用修改版,就可公开访问的服务器,使公众可以访问源修改版本的代码”;LGPLv3协议第二条规定应当“传达修改后的版本”;Mozilla Public License2.0、Apache License2.0则无此类规定。因此,笔者建议,当用户使用开源软件进行在开发时,应考虑是否愿意将新开发的软件进行开源,是否愿意采用同样的许可证进行,否则可能导致再开发的新软件被迫开源,减损了商业使用的价值。


结    语

开源软件起源于美国,虽然我国在二十年前就已经引入了开源软件,但是直至今日,我国无论是相关立法规范、司法判例,还是实务研究都比较欠缺,这又与我国开源软件的使用和发展的迅速形成了强烈对比和冲突,即立法、司法实务跟不上产业的发展,使用开源软件的企业和用户面临着较大的知识产权风险。因此,要想对开源软件实践各环节中侵权风险妥善应对,还应当结合并分析国内外实际案例,出具更多更具体的应对方案。同时,由于企业及开发者可能更多关注的是软件的质量和效率,因此对于开源各环节中可能出现的风险并未给予应有重视,由此导致违约风险、侵权风险、数据安全风险、隐私风险等,因此,无论是开发者上传平台进行开源,还是用户下载源代码进行使用、分发,都应当在根据需求慎重选择适合的许可证,严格遵循许可证规定,并积极运用法律体系保护合法权益。


注   释

[1]https://www.oschina.net/news/159435

[2]https://www.oschina.net/news/133373/opensource-for-the-fourteenth-five-year-plan
[3]王志强,伍胜,肖国强,张自力,刘志有,彭景.开源许可证合规性研究[J].软件学报,2022,33(08):3035-3058.DOI:10.13328/j.cnki.jos.006374.
[4]肖建华,柴芳墨.论开源软件的著作权风险及相应对策[J].河北法学,2017,35(06):2-11.DOI:10.16494/j.cnki.1002-3933.2017.06.001.
[5]潘亮.开源软件司法保护探析[J].电子知识产权,2022(06):50-56.
返回