【案例导读】
主张他人软件侵权的权利人,自身在开发阶段使用了受GPLv2协议约束的开源代码,被诉侵权人依据GPLv2协议抗辩不侵权的,该抗辩能否成立?软件权利人是否有权主张他人的侵权责任?被控侵权人是否应该就使用该软件支付费用?对于以上问题,以下法院的一审判决给出了答案。
【争议阶段】
建站软件对于使用相关代码的网站批量维权
【涉及技术问题】
GPL许可协议的传染性及隔离措施
【案情简介】
**一、【事情起因】**C公司开发了Z软件,并登记了软件著作权。后C公司发现被告Y公司网站使用了Z软件相似的源代码,但并未向C公司支付授权费用,故C公司将Y公司起诉至法院。
**二、【被告辩称】**Y公司辩称:Z软件是以GPL协议对外许可发布的开源软件,Y公司获得了许可,不应支付费用。Z软件所附的许可协议中禁止商业使用的条款,属于GPL协议禁止添加的限制条款,属于无效条款。
**三、【一审法院判决】**Y公司因GPL协议获得了对涉案软件的使用授权,并未侵犯C公司软件的复制权,Y公司无需支付授权费用。
一审法院认为:
**(一)关于Z软件历史版本曾使用GPL协议,后续版本是否可以取消使用GPL协议?**根据GPL协议的相关条款,在一个软件由单个作者完成、不存在其他贡献者的情况下,即使软件在先版本使用了GPL许可,该GPL许可并未强制作者在后发布的软件版本仍然延续GPL许可,单个作者可以自由决定延续或者取消使用GPL许可。
(二)关于Z软件使用包含GPL代码的Z1/Z2/Z3库,是否被传染的问题。
1、对于Z2库,其许可协议是MIT/GPL/LGPL可选,而作为选项之一的MIT许可协议,属于一种宽松软件许可证,该协议只要求必须在源代码和二进制文件中保留版权和许可声明,没有其他限制,该许可允许软件开发者在自由软件或专有软件中使用、许可和再分发包含MIT协议的程序。因此对于Y公司所辩称的因Z软件包含Z2库的引用,而导致Y公司因GPL协议获得了许可的意见,不予采纳。
2、对于Z1库,其许可协议为LGPL并非GPL,LGPL与GPL的区别可以概括为:LGPL许可证允许专有软件使用该函数库;而普通的GPL许可证在仅允许在自由软件中使用该函数库,因此对于Y公司所辩称的因Z软件包含Z1库的引用,而导致Y公司因GPL协议获得了许可的意见,本院不予采纳。
3、对于Z3库,略。
【实务操作启示】
由以上案例分析,笔者尝试归纳如下启示要点,供开发者在软件开发使用开源代码等实务操作中,作为参考:
略。
【关联裁判规则】
【南京中院:南京某公司诉江苏某公司侵害计算机软件著作权纠纷案(一审)】
原告涉案软件的主程序部分受GPL协议约束,因此原告必须公开源代码。原告未公开开源该部分软件源代码。审理期间经本院询问,原告表示不会在本案中公开开源涉案软件源代码。
原告违反了GPLV2协议要求提供相应源代码的义务,违反了GPL协议,构成违约,同时导致授权人与原告之间的授权自动解除,原告基于GPL协议获得的许可终止,原告对原GPL开源代码的继续使用系无权使用。原告起诉被告行为不当,构成侵权,但其自身首先应当规范使用开源代码,遵守开源协议,并证明自身权利的正当和合法,否则即会导致一个不当、不法的行为人指责另一个实施相同行为的不当、不法行为人的逻辑怪圏。法院如果基于原告的该权利认定其他行为人构成计算机软件侵权,即会保护原告未来公司的不当行为带来的利益,势必赋于其特殊法律地位和特别商事利益,不符合公平、诚信原则。
【最高法院:北京A公司诉B公司侵害计算机软件著作权纠纷案(二审)】
第一,前端代码一般是关于用户可见部分的编码,用以实现操作界面如页面布局、交互效果等页面设计;而后端代码一般是涉及用户不可见部分的编码,用以实现服务端的相关逻辑功能。同时,前端代码与后端代码是可以分别独立打包、部署的。因此,前端代码与后端代码在展示方式、所用技术、功能分工等上均存在明显不同,不能因前端代码与后端代码之间存在交互配合就认定二者属于一体,原审法院认定前端代码与后端代码相互独立并无不当。
第二,A公司作为权利人在本案中明确放弃以前端代码主张权利,仅以后端代码主张权利,因此涉案软件仅为后端代码而非B公司所称前端文件和后端文件共同构成涉案软件。
第三,根据2007年6月29日发布的GPL协议第3版第5条关于“一个受保护程序和其它独立程序的联合作品,在既不是该程序的自然扩展,也不是为了生成更大的程序,且联合作品和产生的版权未用于限制编译用户的访问或超出个别程序许可的合法权利时,被称为聚合体。包含受保护程序的聚合体并不会使本许可应用于该聚合体的其他部分”的规定,B公司所称GPL协议的“传染性”应当是指GPL协议的许可客体不仅限于受保护程序本身,还包括受保护程序的衍生程序或修订版本,但不包括与其联合的其他独立程序。本案中,虽然A公司认可其前端代码中使用了GPL协议下的开源代码,但其主张权利的是后端代码,其后端代码是独立于前端代码的其他程序,并不受GPL协议的约束,无需强制开源。综上,B公司的上诉理由不能成立。