违反GPL协议,法院判罚了!国内首例

整理 | 一君

出品 | OSC开源社区(ID:oschina2013)

近日,一起关于 GPL 版权纠纷案裁判文书公示。一审判决书显示,GPL3.0 协议是一种民事法律行为,具有合同性质,可认定为授权人与用户间订立的著作权协议,属于我国《合同法》调整的范围。一审判定两侵权被告公司赔偿原告公司经济损失及维权合理费用共计 50 万元,并停止侵权行为。

此判例可以说是中国首个明确 GPL3.0 协议的法律效力的案例。判决书显示,明确违反开源软件许可证的侵权法律责任,一方面可以及时制止侵权行为,防止他人对开源软件的不正当利用;另一方面能够有效保护授权人的利益,使他们保有继续创作的动力,促进源代码共享和知识的传播。

不过值得注意的是,本案中被告的侵权事实成立,是因为违反 GPL3.0 协议导致 GPL3.0 协议自动解除,被告失去了 GPL3.0 协议下的源代码授权保护,进而构成侵权。

判决书中对于违反 GPL3.0 协议的侵权责任明确如下:

关于违反 GPL3.0 协议的侵权责任。

著作权法为了保护权利人的专有权,仅规定非权利人可以在如“合理使用”等范围内使用作品,诸如复制、修改、发行等权利则专属于权利人,任何人非经许可实施这些行为将构成侵权。

根据 GPL3.0 协议第 8 条“终止授权”的约定,授权人许可用户在遵守许可证规定的前提下行使某些权利,但用户必须承担相应的义务。若用户违反 GPL3.0 协议的使用条件来复制、修改或传播受保护的作品,其通过 GPL3.0 协议获得的授权将会自动终止。

对此,我国《民法总则》第一百五十八条规定:“民事法律行为可以附条件……附解除条件的民事法律行为,自条件成就时失效”。

根据开源软件的特性,GPL3.0 协议规定的使用条件(如开放源代码、标注著作权信息和修改信息等)系授权人许可用户自由使用的前提条件,亦即协议所附的解除条件。一旦用户违反了使用的前提条件,将导致 GPL3.0 协议在授权人与用户之间自动解除,用户基于协议获得的许可即时终止。用户实施的复制、修改、发布等行为,因失去权利来源而构成侵权。

本文案件相关内容整理自一审判决书。

案件概况

原告:济宁市罗盒网络科技有限公司

被告:福建风灵创景科技有限公司(以下简称福建风灵公司) 

被告:北京风灵创景科技有限公司(以下简称北京风灵公司)

(福建风灵公司系被告北京风灵公司的全资子公司)

被告:深圳市腾讯计算机系统有限公司(以下简称腾讯公司)

原告济宁市罗盒网络科技有限公司独立开发“罗盒(VirtualApp)插件化框架虚拟引擎系统 V1.0(简称 VirtualApp V1.0)。VirtualApp 从 2016 年 7 月 8 日的版本开始引入开源协议,起初为 LGPL3.0 协议,2016 年 8 月 12 日更换为 GPL3.0 协议。

2017 年 10 月 29 日,原告公司在 VirtualApp 后续开源版本中删除“适用 GPL3.0 协议”的表述。

2017 年 11 月 8 日,原告公司为 VirtualApp V1.0 取得计算机软件著作权登记证书,依法享有 VirtualApp V1.0 软件著作权的全部权利。

2017 年 12 月 30 日由 Lody(原告公司股东、VirtualApp 项目人罗迪) 提交的更新(对应 Git 码为8e6d9cd925af55b53a7e93046c469dd69676c38b)的 CHINESE.md 文件内载明“VirtualApp(中文名为罗盒)2017 年 8 月份正式公司化运作,当您需要将 VirtualApp 用于商业用途时,请务必联系 QQ1*****购买商业授权……VirtualApp 源代码将于 2017 年 12 月 31 日停止更新”。

2018 年 9 月,原告调查发现名为“点心桌面”的软件使用了 VirtualApp V1.0 的代码,将两个软件源代码进行分析比对,两者间 421 个可比代码中有 308 个代码具有实质相似性,有 27 个代码具有高度相似性,有 78 个代码具有一般相似性。因此,被诉侵权软件与涉案软件构成实质相似。

原告向法院起诉,庭审时明确诉请为判令如下:

1.被告福建风灵公司、被告北京风灵公司立即停止侵害原告的计算机软件著作权,即立即停止通过互联网提供所有版本的“点心桌面”软件的下载、安装和运营服务;

2.被告福建风灵公司、被告北京风灵公司赔偿原告经济损失 2000 万元;

3.被告福建风灵公司、被告北京风灵公司赔偿原告为制止侵权行为而支出的合理费用 50 万元;

4.被告福建风灵公司、被告北京风灵公司承担本案诉讼费用。

证据显示,被告福建风灵公司系被诉侵权软件“点心桌面”的著作权人。被告北京风灵公司亦被有关互联网平台标示为“点心桌面”的开发者,并被登记为“点心桌面”软件的著作权人。此外,提供被诉侵权软件下载、安装和运营服务的“点心桌面官网”和“应用宝”网站分别由被告福建风灵公司和腾讯公司经营。

立案之后,经查,被诉“点心桌面”App(V6.5.8)中使用了原告采用 GPL3.0 协议发布的VirtualApp,同时被告对此亦予以确认。

法院观点

法院认为,该案系侵害计算机软件著作权纠纷,涉及开源软件的相关问题。根据双方诉辩意见及举证情况,该案争议焦点有四方面。法院已就焦点问题给出明确观点。

(此部分为法院观点截选,详情可查看判决书原文。)

焦点一:GPL3.0 协议的法律效力。

法院明确 GPL3.0 协议具有合同性质,可认定为授权人与用户间订立的著作权协议,属于我国《合同法》调整的范围。

关于违反 GPL3.0 协议的侵权责任,明确若用户违反 GPL3.0 协议的使用条件来复制、修改或传播受保护的作品,其通过 GPL3.0 协议获得的授权将会自动终止。

焦点二:原告是否有权提起本案诉讼。

一是根据代码托管网站上的上传记录及证明等,原告公司可以证明是 VirtualApp 的著作权人。

二是原告提起本案诉讼无需贡献者的同意或授权,即有权提起诉讼。原因包括:原告公司股东罗迪作为项目人已将 VirtualApp 初始版本的源代码共计 31097 行在 Github 网站上公开发布,此系原告主张权利的基础;本案项目人对“主分支”中 VirtualApp 源代码的形成起到了决定作用;贡献者选择在 GPL3.0 协议的 VirtualApp 项目中上传自己的源代码,贡献者亦将按照 GPL3.0 协议许可其贡献,即视为同意将贡献内容许可给项目人及其他用户使用,并且若开源项目的起诉维权需经全体贡献者一致同意或授权,实则导致维权行为无从提起。综上,原告提起本案诉讼无需贡献者的同意或授权。

三是,GPL3.0 协议中仅限制授权人不得向用户主张任何专利权,而并未限制授权人对违反许可协议的用户主张著作权。因此,原告的诉讼行为并未违反 GPL3.0 协议关于争议解决方式的约定。

焦点三:被诉行为是否侵害原告的著作权。

一是原告虽将 VirtualApp 分为开源版本与商业版本,并且在后续开源版本中删除“适用 GPL3.0 协议”的影响问题。

原告在本案中系以 VirtualApp 开源版本而非商业版本作为其权利基础,故本案中不必对VirtualApp 开源版本与商业版本的关联及影响作出认定。而根据 GPL3.0 协议,若先前版本使用了 GPL3.0 协议,则后续版本也必然受 GPL3.0 协议的约束,因此 VirtualApp 后续开源版本仍然受 GPL3.0 协议的约束。

二是 GPL3.0 协议允许用户进行商用,授权人不得对此作出限制。所以原告主张“点心桌面”App进行商用违反 GPL3.0 协议及其附加条款缺乏理据,法院不予支持。

三是被诉“点心桌面”App(V6.5.8)本应当遵循 GPL3.0 协议向公众无偿开放源代码,但被告福建风灵公司拒不履行 GPL3.0 协议规定的使用条件。根据 GPL3.0 协议第 8 条自动终止授权的约定及《民法总则》第一百五十八条的规定,被告福建风灵公司通过该协议获得的授权已因解除条件的成就而自动终止。被告福建风灵公司对 VirtualApp 实施的复制、修改、发布等行为,因失去权利来源而构成侵权。

焦点四:若侵权成立,被告应承担的法律责任。

被告福建风灵公司作为“点心桌面”App(V6.5.8)的开发、运营和发布者,依法应承担停止侵害 VirtualApp 著作权的行为。鉴于被告福建风灵公司系被告北京风灵公司的全资子公司的情形,原告指控两被告共同承担侵权责任合法有据,法院予以支持。

被告腾讯公司对其“应用宝官网”上可能存在的侵权行为制定了相关规则、设置了投诉渠道,且对被诉软件作了及时下架处理。原告亦未对被告腾讯公司提出具体诉请。因此,被告腾讯公司无需承担法律责任。

关于赔偿问题,原告主张以被告福建风灵公司、被告北京风灵公司的侵权获利来计算。鉴于开源许可协议缔约方式和缔约主体的特殊性,导致违约或侵权行为更具隐蔽性,相应法律责任的承担应有助于敦促缔约方诚信履行开源义务,确保开源社区规范、持久的发展。开源软件大多都是免费的,但授权人付出的开发成本是必然存在的,按照侵权获利来承担赔偿责任更为公平合理。

最终,法院酌情确定赔偿数额为 50 万元。原告为制止本案侵权行为所支出的合理费用,计算在赔偿损失数额范围之内。

关于此案的更多细节和法院观点,详情可登陆中国裁判文书网查看此案(2019)粤03民初3928号一审判决书。

一审判决书:

https://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=05f553bd178d4354bb48ad5100c1314f(中国裁判文书网地址)

https://www.iphouse.cn/cases/detail/woznd0v9pek4jx35ovdj8y5gxrm371q2.html?keyword=GPL(其他网站地址)

律师解读

我们邀请专注 TMT 领域的知识产权问题的邓超律师(18611123013)就此案件做相关解读。后续邓超律师将发表深度解读文章,敬请期待!

问题一:此案对后续有关开源软件版权纠纷案件有何具体参考意义?

这个案子据我所知,被告上诉了,所以现在这个判决还没有生效,最后法院怎么认定,还没有最终定论。

但毫无疑问的一点是,违反许可证的义务是会遭到权利人的侵权索赔的。

因为以往国内开源主要是拿来主义,使用国外的代码比较多,但随着国内开发者的不断成熟。将来相关的纠纷会越来越多,这就要求法务和开发人员了解开源的相关问题。

问题二:为什么此案件中,“点心桌面”未被强制开源?

没有要求强制开源是因为原告没有提出这样的要求,那么法院是一个被动的审判机关,不告不理,只被动审理原告提出的请求。

在这个案件中,原告没有选择合同,也就是许可证违约,而是选择了版权侵权这条救济途径。一般而言,版权侵权要比合同违约的救济力度要大,无论从各个方面,这在国内和在美国都是如此。

问题三:如果原告提出了开源的诉求,会如何?

如果原告选择了合同违约这条途径,法院是不是会支持被告将代码强制开源这个问题其实很值得探讨,我个人初步的观点是,法院不一定会支持这种诉请。关于这个事情,我准备近期写篇文章,但我现在初步的看法是要求代码强制开源,在法院不太可能得到支持。

所以,如果违反 GPL 许可证的义务,那么将代码全部开源,更多的是一种理论上的可能。在实践中,以中国和美国的法院为例,我理解支持这种诉求的可能性都非常低。

延伸阅读

GPL 解读文章:

人话解读GPLv3:https://my.oschina.net/vigor23/blog/4951596

论“GPL就是给软件开发者们准备的坑”:https://my.oschina.net/vigor23/blog/4954734

开源软件、自由软件、Copyleft、CC都是啥,傻傻分不清楚?:https://my.oschina.net/vigor23/blog/5138356

夜天之书 #6(Copyleft 相关解读):https://my.oschina.net/u/4489239/blog/5252879

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开篇 — 【面向对象设计模式学习】

说明: 关于设计模式的文章网上已经很多了,本人也只是想参考别人的文章来系统地学习一下设计模式,因此,这个系列并不是一个系列教程,而仅仅是作为本人学习设计模式的一个学习笔记,此外,由于本人能…

python中random什么意思_python中的random

random.randint(a,b) 用于生成一个指定范围内的整数&#xff0c;a为下限&#xff0c;b为上限&#xff0c;生成的随机整数a<n<b;若ab&#xff0c;则na&#xff1b;若a>b&#xff0c;报错 import random random.randint(10,20)#输入18 random.randint(10,10)#输出10 ran…

魔方数算法

魔方数是什么,就是从1...x个自然数排列,每一行,每一列,对角线的和都相等的矩阵(方阵?). 我有一些想法,但是暂时还没有找到解决的灵活方案. 首先,每一行相当,那就是数列的总数Z/行数z (这个是行,列,对角线的统一和). 列的情况也类似Z/列数z 对角线的情况比较复杂,找不到规律.但…

又来了!深度学习PyTorch与TensorFlow到底哪家强?

全世界只有3.14 % 的人关注了爆炸吧知识自从2012年深度学习再一次声名鹊起以来&#xff0c;许多机器学习框架都争先恐后地要成为研究人员和行业从业者的新宠。面对如些众多的选择&#xff0c;人们很难判断最流行的框架到底是什么。在某些情况下&#xff0c;深度学习或深度迁移学…

mysql从多个表查询数据类型_MySQL 之 多表查询

阅读目录一.多表联合查询#创建部门CREATE TABLE IF NOT EXISTSdept (didint not null auto_increment PRIMARY KEY,dnameVARCHAR(50) not null COMMENT 部门名称)ENGINEINNODB DEFAULTcharset utf8;#添加部门数据INSERT INTO dept VALUES (1, 教学部);INSERT INTO dept VALUES …

注意指针修饰符的准确含义

首先从一起多线程无锁算法的事故说起,以下是一个无锁栈的实现测试,但在开-O2以上优化的情况下它却无法正常工作: #include "lf_stack.h" #include "kn_list.h" #include "kn_time.h" #include "kn_thread.h" #include "kn_atomic…

通过 GitExtensions 来使用 Git 子模块功能

通过 GitExtensions 来使用 Git 子模块功能目录一、前言二、Git 子模块三、子模块更改提交四、更新子模块五、[附] 去除最近的提交记录独立观察员 2021 年 9 月 5 日一、前言众所周知&#xff0c;编程&#xff0c;尤其是面向对象编程的一个重要思想就是 “封装”&#xff0c;可…

Linux系列-Red Hat5平台下的Postfix邮件服务搭建(二)

咱们接着上次的说&#xff0c;本次没有小标题。想了半天也没想出个好名子来&#xff0c;因为这次我们要做三件事&#xff1a;1.搭建基于Postfix的webmail&#xff1b;2.设置用户别名和邮件群组&#xff1b;3.设置邮件大小、邮箱空间的限制。环境还是之前的&#xff0c;做之前可…

单片机断电后静态存储区里面还有数据吗_单片机启动流程和存储架构详解

最近在给公司的ADAS DCU做内存分配&#xff08;Memory Allocation&#xff09;&#xff0c;在这儿记录一下相关知识点&#xff0c;也算是给中文社区做贡献了。目录&#xff1a;1. ECU启动流程2. 存储空间解析3. TC397单片机的Memory Map和一些备注1. ECU启动流程图总比文字直观…

[WCF安全系列]认证与凭证:用户名/密码认证与Windows认证

如果要给认证下一个定义&#xff0c;我个人的倾向这样的定义&#xff1a;认证是确定被认证方的真实身份和他或她申明&#xff08;Claim&#xff09;的身份是否相符的行为。认证方需要被认证方提供相应的身份证明材料&#xff0c;以鉴定本身的身份是否与声称的身份相符。在计算机…

培养有见识的孩子,这6部适合孩子的纪录片,在家也能涨知识!

全世界只有3.14 % 的人关注了爆炸吧知识对孩子来说&#xff0c;好的纪录片就像打开了一扇新世界的大门&#xff0c;让他们了解更多世界的奇妙之处。BBC&#xff08;英国广播公司&#xff09;的纪录片题材广泛、制作精良。看这些经典的纪录片&#xff0c;既可以追溯上下数千年的…

Beta版本发布报告

项目名称学霸系统写手机客户端项目版本Beta版本负责人北京航空航天大学计算机学院 hots团队联系方式http://www.cnblogs.com/hotsbuaa/要求发布日期2014-12-28第一阶段基本功能已经完成&#xff0c;因此第二阶段的任务是&#xff1a;美化UI&#xff0c;修复接口&#xff0c;修复…

mysql连接主备_mysql主备配置方法

1. 选择两台机器(这里选的centos6.5 final)&#xff0c;安装相同版本的mysqlyum installmysql ;yum install mysql-server;2. 启动mysqlservice mysqld start3. 登录两个mysql&#xff0c;执行如下命令GRANT REPLICATION SLAVE,REPLICATION CLIENT on *.* to replmysql机器IP i…

linux下tar解压特定的目录

今天碰到一个客户的网站出问题&#xff0c;需要恢复&#xff1b;可我备份都是用打包的&#xff0c;如果要恢复某个目录&#xff0c;就需要全部解压&#xff0c;才能恢复&#xff1b;这样很费事。所以我请教了很多牛人&#xff0c;有没有解压压缩包里面特定的目录&#xff0c;可…

Dapr牵手.NET学习笔记:开篇

dapr&#xff0c;一个为分布式应用程序的运行时&#xff0c;为开发者在对接分布式组件时&#xff0c;提供了便利。使用dapr带来的好处可扩展性&#xff0c;因为它是通过sidecar的理概念来集成其他运行时的。同时dapr还提供了多种语言的SDK。关于dapr更多介绍&#xff0c;官方文…

vue 一个页面有点请求需要同时发送_前端性能优化,这些你都需要知道

来源: 海洋里的魔鬼鱼前言最近花了一些时间在项目的性能优化上&#xff0c;背后做了很多工作&#xff0c;但是最后依然没有达到自己想要的结果&#xff0c;有些失望&#xff0c;但是还是记录下自己的执着。性能优化总结&#xff1a;减少请求次数、减小资源大小、提高响应和加载…

男人能有什么错呢?

1 这上菜方式厉害了&#xff01;2 谁上学的时候还没转过笔了&#xff01;3 和朋友的塑料友情 图自别叫我P图仔4 非洲最致命的猫&#xff01;传说能撂倒长颈鹿&#xff01;大家估量一下&#xff01;5 狗子&#xff1a;你放开我好吗&#xff1f;&#xff1f;6 这位小姐姐真的很酷…

LDAP启动cacao提示Invalid file permission

问题处理步骤&#xff1a; 1、LDAP实例停止 2、DSCC控制台启动&#xff0c;提示cacao已停止…… 3、启动caocaorootrusky bin]# ./cacaoadm startInvalid file permission: [/home/ldap/dsee6/cacao_2/etc/opt/sun/cacao/instances/default/security] [rwxrwxr-x]. Problem val…

[019] C#基础:理解装箱与拆箱

.NET大牛之路 • 王亮精致码农 • 2021.08.27前面我们讲到 .NET 平台支持的两大数据类型&#xff1a;值类型和引用类型。值类型比引用类型更高效&#xff0c;因为它没有指针引用&#xff0c;不用分配在托管堆中&#xff0c;也不用被 GC 回收。但有时候你可能偶尔需要将一种类型…

H3C 5510 交换机DHCP设置

DHCP不能发现网络上非DHCP客户机已经在使用的IP地址&#xff1b;当网络上存在多个DHCP服务器时&#xff0c;一个DHCP服务器不能查出已被其它服务器租出去的IP地址&#xff1b;DHCP服务器不能跨路由器与客户机通信&#xff0c;除非路由器允许BOOTP转发。PC发出的广播包&#xff…