新闻中心

NEWS CENTER

视点|基于GPL协议二次开发软件的著作权侵权之诉的实务观点梳理


Published:

2024-03-08

笔者在本文中结合典型司法案例,对基于GPL协议二次开发软件的著作权侵权诉讼的实务观点进行归纳与梳理。

引言

 

GPL协议(全称General Public License)是一种开源协议。截至目前,GPL一共有三个版本,其中GPLv2协议与GPLv3协议是目前大多数GPL开源软件所使用的开源协议。而GPL协议作为强Copyleft协议,不同于Apache、MIT、BSD等宽松(自由)协议,其具有强传染性:只要软件中包含有其他GPL协议的产品或代码,那么该软件就应当采用GPL许可协议且开源。目前国内基于开源协议二次开发软件产生的著作权纠纷案件所涉的许可协议大多数为GPL协议。故,笔者在本文中结合典型司法案例,对基于GPL协议二次开发软件的著作权侵权诉讼的实务观点进行归纳与梳理。

 

目录

 

一、GPL协议概述及其传染性特点

二、GPL协议的法律性质和效力

三、开发者可否在GPL协议中加入商业使用限制保留条款

四、被诉侵权人关于开源代码的抗辩能否成立

五、如何判断基于GPL协议二次开发软件是否侵犯他人著作权

六、结语

 

一、GPL协议概述及其传染性特点

GPL协议(全称General Public License)是一种开源协议,其创始人是自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者理查德·斯托曼。GPL协议发展至今总共有三个版本,包括1989年发布的GPLv1,1991年发布的GPLv2与2007年发布的GPLv3。Linux作为知名度最广的开源系统,就采用了GPL协议。

GPL协议的主要内容是:只要在一个软件中使用(使用指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,必须也是开源和免费。这就是所谓的“传染性”。而GPL的传染性可分为横向传染与纵向传染两种,纵向传染是直接在GPL的源码中进行修改,而修改后的程序应按照GPL协议要求开源;横向传染是程序利用了GPL源码或GPL源码片段,使用了GPL代码的部分以及衍生部分都应按照GPL协议要求开源。

如果上述被许可人违反GPL协议,则不得对开源软件进行复制、修改、再授权或发布。任何试图以其他方式复制、修改、再授权或者发布该程序的行为均无效,并且将自动终止基于该授权所享有的权利。

 

二、GPL协议的法律性质和效力

目前,国内的主流实务观点认为GPL协议的法律性质为附解除条件的著作权合同,应受到《民法典》与《著作权法》的调整。协议中的许可条款是版权许可的条件,如果用户违背条款规定,那么许可的前提条件已不复存在,则GPL协议终止适用,用户获得的授权也将自动终止。

广州知识产权法院首先在司法实践中对于GPL协议的法律性质和效力问题作出了明确回应,以其审理的案件中所涉及的GPLv3协议为例,法院认为:其一,GPL协议的内容具备合同特征。GPL3.0协议属于发生私法上效果的意思表示,而意思表示是民事法律行为的核心要素,因此GPL3.0协议是一种民事法律行为。该协议授予用户复制、修改、再发布等权利,实际上在授权人和用户间形成了权利变动,属于设立、变更、终止民事权利义务关系的民事法律行为。授权人许可的权利符合我国著作权法的相关规定;其采用开源许可证发布源代码,将自己的大部分著作权授予不特定用户,完全是出于自愿。用户在许可证下复制、修改或再发布源代码,通过行为对许可证作出承诺,也是出于自愿。用户在对源代码进行复制、修改或发布时许可证成立,同时许可证发生法律效力。其二,协议的形式亦具备合同特征。GPL3.0协议以电子文本方式表现其内容,而电子文本是一种有形的表现形式,属于以书面形式订立的合同。综上所述,GPL3.0协议具有合同性质,可认定为授权人与用户间订立的著作权协议,属于我国合同法律调整的范围。

关于违反GPL3.0协议的侵权责任:著作权法为了保护权利人的专有权,仅规定非权利人可以在如“合理使用”等范围内使用作品,诸如复制、修改、发行等权利则专属于权利人,任何人非经许可实施这些行为将构成侵权。根据GPL3.0协议第8条“终止授权”的约定,授权人许可用户在遵守许可证规定的前提下行使某些权利,但用户必须承担相应的义务。若用户违反GPL3.0协议的使用条件来复制、修改或传播受保护的作品,其通过GPL3.0协议获得的授权将会自动终止。对此,我国关于附条件的民事法律行为的法律规定:“民事法律行为可以附条件……附解除条件的民事法律行为,自条件成就时失效”。根据开源软件的特性,GPL3.0协议规定的使用条件(如开放源代码、标注著作权信息和修改信息等)系授权人许可用户自由使用的前提条件,亦即协议所附的解除条件。一旦用户违反了使用的前提条件,将导致GPL3.0协议在授权人与用户之间自动解除,用户基于协议获得的许可即时终止。用户实施的复制、修改、发布等行为,因失去权利来源而构成侵权。

 

明确违反开源软件许可证的侵权法律责任,一方面可以及时制止侵权行为,防止他人对开源软件的不正当利用;另一方面能够有效保护授权人的利益,使他们保有继续创作的动力,促进源代码共享和知识的传播。

 

三、开发者可否在GPL协议中加入商业使用限制保留条款

对于该问题作出回应的法院是广州知识产权法院,法院认为:开发者不可以在GPL协议中加入商业使用限制保留条款,因为商业使用限制保留条款与GPL协议的“Copyleft”特性矛盾,应属于非许可性附加条款。下面以GPLv3协议为例进行说明:

GPLv3协议第5条规定:无论如何将软件组织在一起,你必须按照本协议将整个软件向想要获得许可的人授权,本协议及符合第7条的附加条款就此适用于整个软件及其每一部分。该协议第7条规定:②当你发布受保护作品的副本时,你可以选择性删除副本或其部分的附加条款(当你修改程序时,附加条款可以要求在某些情况下将自身删除)。在你拥有或能授予恰当版权许可的受保护作品中,你可以在你添加的材料上附加许可。③尽管已存在本协议的其他条款,对你添加到受保护作品的材料,你可以(如果你获得该材料版权持有人的授权)以如下条款补充本协议:a)表示不提供担保责任或与本协议第15或16条不同的方式限制责任;或b)要求在此材料中或在包含适当的法律声明的程序中保留特定的合理法律声明或作者属性;或c)禁止误传材料的来源,或要求合理标示修改以别于原版;或d)限制以宣传为目的使用该材料的作者或授权人的名号;或e)降低授权级别以便在商标法下使用商品名称、商品标识或服务标识;或f)要求任何发布该材料(或其修改版)并对接收者提供契约型责任许诺的人,保证这种许诺不会给作者或授权人带来连带责任。④此外的非许可性附加条款都被视作第十条所说的“进一步的限制”。如果你接收到的程序或其部分,声称受本协议约束,并补充了这种进一步的限制条款,你可以删除这些条款。该协议第10条规定:②你不可以对本协议所授或确认的权利的行使施以进一步的限制。

由上述协议内容可知,开源软件与商业软件的最大区别就在于开源软件作者将全部著作财产权利让渡给了使用者,开源软件是以放弃著作权相关权利的形式所进行的一种软件开发模式。虽然开源软件作者将著作财产权利让渡给软件使用者,但并没有放弃用商业化的方式促进开源软件产业的发展。开源软件不等于不能有商业开发。

GPLV3协议序言规定,所谓自由软件,强调的是自由,而非价格免费,GPLV3协议设计用于确保开发者享有发布自由软件副本的自由(如果开发者愿意,则可以为此服务收费)。这说明开源软件仍然可以用于商业运作模式,只是其本身并不被当做商品对待,但所有的商业运作其实是围绕着开源软件的衍生产品进行的,如进行软件支持、软件服务、集成开源软件创新、以开源软件为基础开发附加值产品等。开放源代码首创行动组织”(OpenSourceInitiative)对开源软件的10个定义中包含“不能歧视任何领域”,比如不得规定软件不能用于商业目的。在商业开发过程中,开源软件选择盈利模式时,受开源许可协议的限制。不同的许可协议,开发者或公司对项目源代码有不同的控制力,因而能提供的服务也不同。商业软件一般通过控制软件源代码、出售软件许可来获益。开源软件盈利模式多样,主要通过商业化服务模式来获得商业利益。开源软件常用的盈利模式包括:硬件捆绑、增值产品、技术支持、广告业务等。企业为开源软件找到合适的商业模式,在参与开源中获益,这是企业长期支持开源的动力,也是开源社区能长期蓬勃发展的基础。

而GPLv3协议是一种针对软件和其他作品的Copyleft许可协议,使得软件可以自由使用。GPLv3协议保证用户拥有共享和修改一个程序全部版本的自由,使得软件面向所有用户均保持为自由软件。开发者基于GPL开发的程序中,如果添加商业使用限制保留条款对于用户使用其源代码的目的进行限制,则也会限制用户范围,即只有非商业用途的用户才可以使用其源代码,这显然与GPLv3协议的“Copyleft”特性矛盾。该限制保留条款也不属于第7条规定的可以添加的6种补充附加条款之一,应属于非许可性附加条款,属于第10条中的“进一步限制”,因此开发者无权在适用GPLv3协议的程序项目中添加商业使用限制保留条款,后续基于该源码再次开发的程序无需遵循该限制保留条款。

 

四、被诉侵权人关于开源代码的抗辩能否成立

被诉侵权人关于开源代码的抗辩能否成立的问题,可参考最高人民法院在(2019)最高法知民终663号民事判决中的观点。

在(2019)最高法知民终663号案中,被诉侵权人与原告共同确认,原告网站的前端代码中使用了GPL许可协议下的开源代码。被诉侵权人认为,原告使用了适用于GPLv2软件许可协议下的开源代码,根据GPL许可协议相关内容,原告无权对其网站整个软件主张著作权。对此,法院认为:原告明确其主张权利的代码为后端代码。前端代码开发主要是指前端用户可见的操作界面如页面布局、交互效果等页面设计的一种实现方式,后端代码开发则主要是指后端用户不可见的服务端相关逻辑功能等模块的实现,二者展示方式不同、所用技术不同、分工亦有明显区别,属于可独立的程序。根据GPL协议的相关规定,GPL协议的许可客体是在GPL协议许可下批准的受版权保护的程序以及基于该程序的衍生产品或修订版本。就本案情况而言,原告主张的权利的后端代码中已排除开源代码,原告虽在其前端代码中使用了开源代码,但其后端代码程序并非其前端程序的衍生品或修订版本,故根据GPL协议的相关规定,该协议对涉案权利代码并无拘束力。据此,被诉侵权人的相关抗辩理由不能成立。

参考实践中,为解决GPL协议过于严格的问题,谷歌公司发布的安卓操作系统通过将系统分为多个独立的不同层级框架,并对每个层级适用不同的开源授权许可协议。谷歌公司在安卓操作系统的内核使用了遵循GPL许可协议的开源Linux内核,那么个人或企业为安卓系统开发的应用软件也必须遵循GPL进行公开,这将严重降低企业和个人开发者参与安卓系统开发的积极性,妨碍整个开源操作系统生态环境的建立。谷歌公司为了解决该问题,通过将GPL的适用局限在安卓系统独立的底层Linux内核空间中,而在上层的类库和应用框架以及用户空间部分则适用较为宽松的ASL开源软件许可协议。由于上层的类库和应用框架以及用户空间部分并不视为底层Linux内核的衍生产品,因此避开了GPL许可协议传染至整个安卓系统,那么安卓系统上层的硬件驱动和应用框架程序就是独立的,其开发者适用ASL进行开发,可以自由选择是否公开其源代码。

由上述内容可知,即使开发者在前端代码中使用基于GPL协议的开源代码,如果其能举证证明后端代码程序并非其前端程序的衍生品或修订版,且前后端代码相互独立,那么后端代码不需要受到GPL协议的约束,也无需开源。

但需要注意的是,如果被诉侵权人未能举证其使用的GPL开源代码是独立的,或在各个独立的不同层级框架中适用不同的开源授权许可证,则应承担举证不能的责任,其基于GPL协议代码二次开发的程序整体应遵循GPL协议,如果其未向用户提供源代码,则其行为违反了GPL的规定。GPL协议自动终止,其行为应构成侵权。

 

五、如何判断基于GPL协议二次开发软件是否侵犯他人著作权

根据法院的审判思路,著作权侵权案件中判断被诉侵权作品是否使用了享有著作权作品的方法一般适用“接触加实质性相似”。

关于接触可能性,一般判断被诉侵权人是否有接触原告在先发布的程序的可能性。而关于实质性相似,则应基于比对结果及技术分析,将被诉侵权的基于GPL协议二次开发的软件反编译,获得源代码,与涉案的原软件源代码进行人工比对,统计出相似行,查看抽样比对的程序文件在程序逻辑和结构方面是否存在较多部分的实质相同,函数变量命名特点是否相同或相似,GUID、第三方程序选择适用、随机数、书写(包含注释)的缺陷、错误等等是否相同或相似。特别是代码中的书写错误,一般来说,两个不存在实质性相似的程序中代码多次出现相同的书写错误或注释错误的概率极低,所以相同的书写错误更有助于判断是否存在实质性相似。

根据上述判断方式综合分析,可以得出基于GPL协议二次开发软件与原软件是否存在实质相似的内容,以及实质性相似的比例的结论,如比例较高,则构成实质性相似,二次开发者(被诉侵权人)应当承担停止侵权、赔偿损失的法律责任。

 

六、结语

正如广州知识产权法院在审理基于GPL协议二次开发软件侵害计算机软件著作权纠纷中案件的总结:虽然开源软件的知识创作和保护模式与传统的知识产权制度本身存在冲突或对峙,作为抗衡知识创造者垄断权的运动载体,它不断挑战知识产权的内在法律秩序,但其本身并不否认知识产权相关法律的功能,甚至还需要依赖知识产权制度框架的合理设计得以存在和兴盛。开源软件是基于开放、自由和共享的理念,软件著作权人以许可协议的方式授予使用人在遵守许可限制条件下,可自由使用、复制、改编、再发布的软件,它的法律基础是著作权许可。也就是说,开源软件的“自由”体现为通过著作权许可给予的自由,而不是自由得没有知识产权。开源软件的权利人不但没有完全放弃著作权,而且还可通过开源软件许可协议寻求著作权保护。从而形成了传统软件保护的Copyright许可方式和开源软件保护的Copyleft许可方式共存的交叉保护方式。

 

综上,开源软件依赖现有著作权法及相关法律体系的保护,只有在授权方享有著作权的基础上,其适用开源许可协议让渡部分权利才有法理依据。

关键词: