写点什么

开源还能造假?Neo4j 状告 3 家公司虚假宣传开源,法院判定胜诉

  • 2022-03-23
  • 本文字数:2920 字

    阅读完需:约 10 分钟

开源还能造假?Neo4j 状告3家公司虚假宣传开源,法院判定胜诉

 去年,Neo4j 和 Graph Foundation 签订了保密和解协议,Graph Foundation 同意不再宣称其 ONgDB 是 Neo4j EE(Neo4j 企业版)的“100%免费和开源版本”。近期,法院也对 Neo4j 起诉的另外两家企业——PureThink 和 iGov,做出了类似的裁决。

 

Neo4j 起诉三家公司的原因是,Graph Foundation、PureThink 和 iGov 都将 ONgDB 作为 Neo4j EE 的“免费和开源”版本提供服务并做广告宣传。

 

发生了什么?

 

Neo4j 是一款由 Neo4j 公司开发的高性能 NoSQL 图形数据库。ONgDB 则是 Graph Foundation 以开源方式运营的项目。ONgDB 自 Neo4j EE(Neo4j 企业版)分叉而来,其初始版本的源代码来自 Neo4j EE 代码库完全闭源之前的代码。

 

2018 年 5 月,Neo4j EE 放弃了 GNU Affero 通用公共许可证(AGPL),采用了一个新的许可证。该许可证包含了 AGPLv3 中的条款和 Commons Clause 许可证中的额外限制,被法院称成为“Neo4j 瑞士软件许可证”。这个新的许可证禁止非付费用户转售代码或提供一些支持服务,不在 OSI 认定的开源许可证列表中。2018 年 11 月,Neo4j 公司以仅商业许可的方式发布了 Neo4j EE 3.5 版本。

 

本来开源分叉是很常见的,但这件事情的问题在于,ONgDB 及其公司一直宣称自己是开源的 Neo4j EE,造成很多混淆。目前 ONgDB 已经完全改版,弃用了所有与 Neo4j 相关的商标信息。

 

目前,该组织停止了对 ONgDB 版本 3.4、3.5 和 3.6 的支持,并发布了 AGPLv3 许可的 Neo4j EE 版本 3.4.0.rc02 的分支 ONgDB 1.0,用户商用时需要遵守对应的开源协议,而 ONgDB 的社区版开源协议为 GPLv3。

 

而 PureThink 是一家成立于 2002 年的软件开发公司,主要服务对象为美国政府部门。根据裁决协议,在签署的 Neo4j EE 购买协议中,双方约定 Neo4j 商标仅用于 Neo4j EE 及其相关支持服务营销和转售商业许可,以换取转售许可的共享收入。

 

但是,PureThink 开发了 Neo4j 的“政府版”并意图销售给美国国税局(IRS)。PureThink 发布版本中仅有 AGPLv3 许可证。在被要求查看原版之后,PureThink 表示 IRS 可以使用 Neo4j EE 的开源版本,并向 PureThink 支付咨询费用。Neo4j 与 PureThink 合约到期后,PureThink 和 iGov 继续营销该“政府版”,并宣扬 ONgDB 是 Neo4j EE 的免费开源版本。

 

去年 5 月,法官审理了针对 PureThink 的诉讼,iGov 同意了 Neo4j 的部分简易判决动议,禁止被告侵犯原告的 Neo4j 商标,并不得将 ONgDB “作为 Neo4j EE 的免费开源替代品……”

 

之后,被告提出上诉,美国第九巡回上诉法院在今年 2 月确认了下级法院的裁决。法院认为,PureThink 公司删除 Commons Clause 这一行为是不合理的,所以其在广告中声称 ONgDB 软件是开源的,可以被认定为虚假广告。

 

法院最终判决,禁止 PureThink 宣传、推广或者提及“ONgDB 是一个免费和开源的源代码”、“可直接替换相同版本的 Neo4j 企业版”等任何可能误导消费者的声明。

 

真假开源之争

 

3 月 17 日,OSI 发文庆祝法院的裁决。该组织在文章中评论道:“如果明明不是开源,就不要再说自己是开源了”,并表示“法院只是确认了我们早已知道的事实——开源是一个艺术术语,指的是在特定类型的许可下获得许可的软件,而该许可是否经过 OSI 批准则是用户采用的一个至关重要的因素。”

 

独立技术律师Kyle E. Mitchell反驳了 OSI 的文章,称其是“自私的、误导性的和错误的”,法院并未就“开源”的含义做出任何法律裁决。他指出,整个诉讼给出的最关键信号是法院裁定 PureThink 无权从文件中删除 Commons Clause。

 

Commons Clause 作为限制许可软件销售的附加条件,在 2018 年初由多家开源公司共同创建,并由 FOSSA 公开贡献,其初衷就是限制云厂商使用开源代码提供商业服务,但不回馈社区的行为。

 

Commons Clause 当初发布时,就在开源社区引发了强烈反响。支持者认为这是开源许可道路上合理而积极的演变,让开源公司能够在投入开源项目的同时成功运营业务。而反对者认为这违背了开源精神。更重要的是,许多公司为保证自己符合开源理念,只使用获得 OSI 批准的许可证许可的开源软件。在增加了 Commons Clause 之后,此类项目可能面临威胁。

 

当时,Debian、Mozilla 和 The Document Foundation 等支持的 OSI 就发文表示:“开源”如果没有单一的、标准的定义,那么我们所知道的软件开发则是不可能的。任何人都能定义开源就会没有信任,没有信任就没有社区、没有协作,也没有创新。

 

OSI 在近日的发文中也表示,“通过添加非自由的 Commons Clause 创建一个不同的许可证,该软件就不能被描述为开源,否则就是非法的虚假广告。”但 Mitchell 认为,这是对判决的误读。

 

Mitchell 指出,法院将最初的 Neo4j 版本视为开源,在 Neo4j 添加了 Commons Clause 后,仍然被法院认为是“开源”的:

 

2018 年 5 月,原告发布了 Neo4j EE 3.4 版,他们继续在开源许可下提供;但是他们用了更严格的许可取代 AGPL,其中包括 AGPLv3 中的条款和 Commons Clause 提供的附加限制。

 

只有在 Neo4j 独家获得商业许可时,法院认为,这才标志着开源发布的结束:

 

2018 年 11 月,原告仅在商业许可下发布了 Neo4j EE 3.5 版。从那时起,原告不再在开源基础上提供 Neo4j EE。

 

“造成问题的原因是取消了 Commons Clause,双方的律师也都是围绕这点争论的。”Mitchell 表示。

 

事实上,Redis Labs 曾短暂地使用过 Commons Clause,但因为这项条款下的软件是否开源问题而放弃。

 

2018 年 8 月,Redis Labs 宣布决定将 Commons Clause 作为附加条款添加到其针对某些附加模块的自由开源许可证中。该条款使源代码具有可用性,但使用者无法“出售”模块,其中包括将它们作为商业服务来提供。

 

但半年后,Redis Labs 就宣布放弃 Commons Clause ,转而采用了新的可用源许可 RSAL。“它(Commons Clause)不起作用。对于这些模块是否是开源的,人们一直很困惑。它们不是开源的。” Redis Labs 首席营销官 Manish Gupta 解释道。

 

谁定义“开源”?

 

“我喜欢自由软件,虽然现在还不清楚是哪种自由。”那什么是开源、谁来定义开源呢?

 

OSI 虽然被公认为开源“官方”组织,但也有开发者不认为该由 OSI 来定义开源。“我不认为你、开源倡议组织 (OSI) 或其他任何人能够单独给真正的开源下定义。”开发者Martin Tournoij曾在自己的个人博客中表示,“我不反对开源定义(OSD),但以它来评判所有对开源的使用是行不通的。纠正数以百万计的人‘开源用错了’,并不是完成任何有意义的事情的好策略——这并不能促进开源的使用。”

 

“不同群体之间对‘什么构成开源’存在相当大的分歧,所以在没有前提下声称单独的某一方可以定义和仲裁开源,这对我来说似乎很疯狂。”有开发者说道,“或者您已经忘记了自己与社区之间的差异,就像是‘如果不与我们站在一起,你就是反对开源’。无论如何,都不会让我将 OSI 作为指南针。不确定是谁选举他们成为开源之王。”

 

此外,还有开发者指出,一些公司仅仅因为他们的源代码在 GitHub 上就在推广时将其产品称为“开源”,即使许可证与任何专有许可证一样具有限制性。

 

“开源如果被滥用,则可能是欺诈性的。”开源软件发起人之一 Bruce Perens 评价道。如今,开源已经成为科技企业发展的标配,但也伴随着一些虚假开源宣传的事情发生。建造健康、可持续的开源生态仍任重而道远。


2022-03-23 18:043847

评论

发布
暂无评论
发现更多内容

元宇宙早已注定毁灭?《雪崩》中预言的末日病毒

脑极体

雪崩

架构实战营 - 模块二作业

Geek_92ba6f

架构设计 微信朋友圈

训练实战营模块二

Geek_408c99

Kafka监控与指标之UnderReplicatedPartitions

石臻臻的杂货铺

Kafk 10月月更

Kafka消费客户端协调器讲解(GroupCoordinator)

石臻臻的杂货铺

kafka 10月月更

如何使用 CSS 提高页面性能?

CoderBin

CSS 面试 前端 优化 10月月更

新书上市|豆瓣8.6,首部全面披露中国游戏发展史的奇书!

图灵社区

【愚公系列】2022年10月 Go教学课程 030-结构体继承

愚公搬代码

10月月更

新书上市|豆瓣8.6,首部全面披露中国游戏发展史的奇书!

图灵教育

游戏

Spring Boot「07」Loading initial data 02

Samson

Java spring Spring Boot 学习笔记 10月月更

面试突击90:过滤器和拦截器有什么区别?

王磊

TSDB在高速公路大数据平台的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

什么时候用Goroutine?什么时候用Channel?

王中阳Go

Go 并发 channel goroutine 10月月更

架构实战训练营模块2-朋友圈复杂度分析

阿姆斯壮

#架构实战营 架构实战训练营9期

微信朋友圈高性能复杂度分析

兜里贼缺钱

【算法】剑指offer-调整数组顺序&&数组出现超过一半的数字

芒果酱

c++ 算法 10月月更

致MonoCats社群的一封信:邀请您与我们在以太坊开启新篇章

股市老人

Java基础(七)| 类、对象、封装和构造详解

timerring

Java 对象 封装 构造 10月月更

大数据ELK(二十七):数据可视化(Visualize)

Lansonli

10月月更 Visualize

【ArchSummit】通过ArchSummit 全球架构师峰会对企业数字化转型的思考

小明Java问道之路

云原生 企业数字化转型 全球架构师峰会 ArchSummit 10月月更

架构师的十八般武艺:架构治理

agnostic

架构治理

Smart Finance:熊市下,GameFi P2E热潮仍能得到延续

股市老人

架构师的十八般武艺:后记

agnostic

架构师

一文搞懂CAN FD总线协议帧格式

不脱发的程序猿

汽车电子 CAN FD 一文搞懂CAN FD总线

【Go实现】实践GoF的23种设计模式:代理模式

元闰子

Go 设计模式 代理模式

「趣学前端」开耍CSS的3D转换,不会玩滑板但能画滑板

叶一一

CSS 前端 10月月更

Vue整合HighCharts和ECharts实现数据可视化

闫同学

Vue 前端 10月月更

【从0到1学算法】6.Select Sort算法

Geek_65222d

10月月更

Go RPC入门指南:RPC的使用边界在哪里?如何实现跨语言调用?

王中阳Go

php Go RPC RPC框架 10月月更

打造安全的Open RAN

俞凡

架构 安全 OpenRAN

开源还能造假?Neo4j 状告3家公司虚假宣传开源,法院判定胜诉_开源_褚杏娟_InfoQ精选文章