要不是GPL,索赔2千万就要成功了!

这个案子很有趣,也很独特,这里和大家分享一下。

有趣在于:被告差点要玩完了,居然借助GPL,来了个神反转。

独特在于:被告用GPL抗辩成功,以及最终对被告采取了惩罚性判决,都是很罕见的。

741be243475ccbcb25cdaf7fb1e67d37.jpeg

一、故事大概

有个公司叫A,做了一个投标软件:a。

有个公司叫B,也做了个投标软件:b。

所谓投标软件,就是帮助投标方制作电子版投标文件,并打包上传招投标平台的软件。

2017年年中,A在南京某招投标平台(以下简称平台)上发现,b和a非常类似,基本可以肯定就是抄自己的。

A发现自己有个员工C在2016年离职,2017年初去了新成立的B公司,3个月后,就出现了b。

A断定是C把源码偷走的,于是把B和C告上了法庭。

A是怎么发现B抄自己的呢:A将b反编译后,发现和a的源码相似度很高,而且反编译后的b里面还出现A公司名称、英文缩写以及一些很难用巧合来解释的相同的非公开信息。

2018年10月,A向南京市中级人民法院提起诉讼,要求赔偿385.5万元,2020年12月,法院判B、C赔A钱130万元。

不过,A、B、C都不服,提起上诉,2021年5月,最高人民法院二审判决驳回上诉,维持原判。

本来这事就算终结了,没想到,2021年,在A诉讼B的三年后,A发现B居然还在卖b,怒不可遏,又一次把B和C告上法庭。

B非常头疼,因为这次A索赔的金额很高,多达2000万,而且很可能要败诉。

A还特别指出,B这属于明知故犯,希望法院(南京市中级人民法院)对B和C适用惩罚性赔款。如果法院确认,罚的可就是1至5倍了!

二、为什么索赔2千万h2>

A在2018年第一次诉讼的时候,要求B和C赔385万元。

依据是:A发现截至2018年5月29日,b在平台上的下载使用次数为3.8万多次,A也是平台的供应商,A知道每下载使用一次给100元,所以索赔380多万元。但最后,法院综合考虑代码相似度以及不同时期平台付费情况的变化,确定A的损失为130万元。

A在2021年第二次诉讼的时候,要求B和C赔2000万元。

依据是:截至2021年8月30日,b已经被累计下载使用约42万次,扣除2018年诉讼时已经主张的3.8万次,下载使用次数达到38万次,按照平台的计算标准(开始是每次100元,后来有调整),被告获利达3500万元以上。A一开始索赔300万,后根据代码比对量调整诉讼请求,改为索赔2000万元。

A强调,B在最高人民法院终审判决后,仍然提供被诉侵权软件的下载,具有非常明显的主观故意持续实施侵权行为,并导致原告受损巨大,情节非常严重。按照《最高人民法院关于审理侵害知识产权民事案件适用惩罚性赔偿的解释》相关规定,应当承担惩罚性赔偿责任。

三、被告是如何巧妙逃脱的

提供证据的时候,为了证明B侵权,A提交了a的源码供质证,B的律师能看到a的源码。但B拒不提交源码,A只能通过反编译方式证明b抄了a。

B抗辩的难度很大,B的律师殚精竭虑,一筹莫展,盯着a的源码发呆2,突然发现在a里面,用了开源软件,而这个软件用了GPL!

这个SharpZipLib(以下简称),是一个C#语言写的开源压缩算法库,在招标文件制作完成后,a用它实现文件压缩打包,然后上传招投标平台。

这就是GPL所谓的。这也是很多商业软件不敢用GPL软件的原因,因为用了以后还不开源,可能就会有人来维权!

B的律师发现a用了GPL软件,大喜过望,可以用这个来反击A啊,你该开源而不开源,侵了别人的权,还好意思告我侵权p>

但并不是这么简单,还有一道难关要翻越:

zip库虽然用了GPL许可证,但并不是单纯的GPL,而是加了一个例外。这个例外就是:如果你的软件和本zip库在功能上是独立的,而且你只是链接了本库,那我不传染你,你本来是啥许可证还是啥。如果你改了本软件然后发布的话,你必须用GPL发布,你可以加这个例外,也可以不加。

B的律师最关心的就是,a到底是怎么用这个zip库的,是不是满足例外的要求。

经过仔细查找,B的律师发现:

a并不是直接调用zip库的,而是写一个cs文件(即C#语言的源文件),对zip库做了一个简单的封装,然后把这个文件和zip库的源文件,一并做成一个DLL库,然后a的主程序调用这个库。

B的律师抓住这点,抗辩声称A并没有按照“例外”里面说的方法调用zip库,而是做了一层封装,所以a被GPL感染了,a应该开源。抗辩的关键点是:A这个项目自己就是侵权的,不应该再告别人侵权。

而法院接受了这个说法,判决认为:

A自己没有遵循开源协议,有错在先。有侵权错误的A,去告有侵权错误的B,虽然是侵权对象不同,但都是知识产权侵权,法院如果判B侵权,就是偏袒了A。所以法院不支持A的控诉。

四、B最终还是被判赔钱

但是最终,法院还是判了B侵权并赔钱,为什么呢p>

因为a分为两部分:“主程序”(用来制作标书、压缩和上传标书)和“预览程序”(查看标书),“主程序”调用了zip库,但“预览程序”并没有。

由于法院坚持认为a被GPL传染,A退而求其次,在律师争取下,最终,法院认定,a的“主程序”被传染了,但“预览程序”没有。

经过细致的代码对比,法院最终确定a和b的“预览程序”相似度达到79%,构成实质性相似。综合考虑代码行数、功能作用、相似度、平台付费等情况,法院确定被告的侵权获利为XXX万元(这里目前不便透露)

更为重要的是,这次判决适用了惩罚性赔款,因为B明知自己侵权,上次已经被判侵权并赔款了,仍然提供侵权软件的下载和营利,属于故意侵权、重复侵权。

《著作权法》第五十四条中规定:“根据对故意侵犯著作权或者与著作权有关的权利,情节严重的,可以在按照上述方法确定数额的一倍以上五倍以下给予赔偿。”

所以,法院决定3倍惩罚,判B赔偿3倍的XXX万元。(不再罚C。)

这仅仅是“预览程序”侵权造成的后果,“主程序”的大小是预览程序的20倍左右,如果不是GPL,赔下来真是大几千万元了!

五、深思:GPL真能传染到a的主程序吗

zip库作为一个压缩软件,在有的情况下,能传染到一个投标软件p>

我觉得并不能,我觉得法院、被告对此都存在不同程度的认识误区。

本案的关键在于如何理解许可证中那个“例外”。那个“例外”到底想说明什么p>

简单说就是:

1、如果你的程序并不是压缩类程序,你仅仅是调用我,那我不传染你,不影响你。

2、如果你本身是一个压缩软件,你调用我,那就要用GPL;或者你改我,形成一个我的衍生程序,那也要用GPL。

本案中,投标主体程序肯定是独立于压缩程序的。

要考察的是,A的调用方法对吗,A有没有改这个zip库p>

考虑下面几种情况:

1、A把zip库的源码放在自己项目中,自己编译,然后调用,符合例外吗。

符合。

A编译生成动态库zip.dll,然后自己的主程序调用(link)这个dll,这一点也不违规。

这和直接下载官方给的ICSharpCode.SharpZipLib.dll,然后调用,在实质上没有不同。

或者,A以静态形式编译出zip.lib,然后完成静态链接,这也完全符合例外,而不是非要用官方给的静态库,事实上官方也从来没有给出过静态库。

如果学术一点讨论,许可证原文中的“link”是指覆盖编程层面和编译层面的“调用”,还是专指编译技术术语“链接”为,写在许可证里link,如果不加专门说明,肯定是指自然语言“调用”,并不特指编译术语link。而且,这并不值得讨论,因为所有源码层面的函数间调用(call),最终都会体现为编译阶段的链接(link)。

2、A对zip库做了非实质性改动,编译后使用,符合例外吗。

我认为符合。

是不是实质性改动,我觉得比较重要。你在源码中增加了几行空行,显然不是实质性改动;你修改了几处注释里的拼写错误,我觉得显然也不算;仅仅把一个函数中的局部变量改名,我觉得也不算。

你写了一个新文件1.cs,里面有一个函数fun1(),这个函数只是简单调用了zip库中原有的函数fun(),这算实质性改动吗得大多数程序员,都不会认为这是实质性改动。

A正是这种做法:A仅仅写了一个1.cs文件,按照zip库的示例代码,写了一个简单的函数fun1( ),封装了具体的zip压缩函数fun( ),然后,在a的主程序中调用fun1( )函数。

事实上,任何人要用zip库,类似fun1( )这样的调用代码也是少不了的。只不过,A没有把1.cs文件放在主程序中,而是放在了zip库的源代码目录中,并编译生成了zip.dll。

这并不是实质性改动,事实上,这属于上面第1种情况中的静态编译调用。

3、A如果对zip库做了实质性改动,能隔离传染吗strong>

能。

即便退一步来讲,就算A实质性地改进了这个库,做出一个衍生作品,那么仍然传染不到a的主程序。

比如A给这个衍生作品起个名字叫,然后,按照zip库的要求,A把Azip按照“GPL+例外”发布。然后,a用主程序调用Azip,就完全不会被传染了。

所以,即便所有人都认为A对zip库做了实质性改动,那也只是a中的Azip侵权了,a的主程序并不侵权。

六、反思:A到底犯了什么错

A到底犯了什么错,要到手的钱就没了呢。

1、A没有充分注意到开源许可证

大概率情况下,A没有注意到自己用了一个“GPL+例外”的开源软件。

A的所有员工,那些年,都没有认真阅读这个许可证,更没有按照其要求执行。

简单来说,就没把这当回事。

2、A没有认真考虑过许可证合规

A没有认真考虑过“传染性”这件事。

虽然现在这种用法,我认为zip库的GPL也传染不到a的主程序,但毕竟要说服法庭才行。

但按照上一节我分析的情况3,A只要把Azip开源出来,就可以抵挡任何严苛的质疑,而这并不费什么劲。

3、A没有及时跟进zip库这个开源项目

我写这篇文章的时候,看了一下这个zip库在github上的代码。

令我大吃一惊的是,这个项目用的居然是MIT许可证!不是我所以为的“GPL+例外”!

查了一下历史,原来早在2016年5月份,zip库就改为MIT了。

如果A能及时跟进和更新zip库,那就一点问题都没有了,MIT可没有传染性。

要知道,A可是2018年才开始告B的。

改了再告啊。

文|卫剑钒

附录:

参考文献:

  1. 看看中国法院是怎么对待GPL协议的 

  2. 全国第一起民事生效判决——GPL抗辩获得法院支持

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92476 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月25日
下一篇 2022年9月25日

相关推荐