写点什么

开源还能造假?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:044236

评论

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

JAVA 九种排序算法详解(中)

加百利

Java 数组 排序 7月日更

2022秋招vue面试题+答案

buchila11

Vue Vue 3

Serverless 崛起背后的五大挑战

Serverless Devs

Serverless

Java开发从二面被拒到收割阿里架构offer,我花了一年时间,复盘成功经历!

Java架构追梦

Java 阿里巴巴 架构 offer 成长笔记

BHDEX币挖矿APP系统开发内容

Nacos配置中心交互模型是 push 还是 pull ?你应该这么回答

程序员小富

Java 编程 程序员 分布式 nacos

聚星公社软件开发|聚星公社APP系统开发

微摩尔WMO软件系统开发介绍

真happy软件开发|真happy系统APP开发

从结构体、内存池初始化到申请释放,详细解读鸿蒙轻内核的动态内存管理

华为云开发者联盟

鸿蒙

如何做需求分析?

万事ONES

产品经理 需求分析 ONES

数字化转型提升太平洋保险风险治理能力

数据湖洞见

大数据

从零实现一个 k-v 存储引擎

roseduan

存储 Go 语言 KV存储引擎 存储系统

NumPy_2021.07.05

Flychen

并发王者课-铂金6:青出于蓝-Condition如何把等待与通知玩出新花样

MetaThoughts

Java 多线程 并发

云图说 | 华为云医疗智能体智联大健康:AI医学影像

华为云开发者联盟

AI 医学影像 医疗智能体 华为云医疗智能体 大健康

DDD笔记

topsion

聊聊数据仓库中维度表设计的二三事

云祁

数据仓库 维度建模 7月日更

今天,「浪潮云说」直播间开讲啦!

云计算

Go 学习笔记之 整型数据类型

架构精进之路

Go 语言 7月日更

快看吧系统开发|快看吧软件APP开发

项目经理的职责和权限分别是什么?

万事ONES

项目管理 ONES 项目经理

系统故障防不胜防?不存在的,让大佬来给你上一课!

TakinTalks稳定性社区

高可用 测试 全链路压测 测试工具 生产环境全链路压测

《持之以恒的从事运动》二

Changing Lin

Camtasia实用技巧之智能聚焦

淋雨

视频剪辑 Camtasia 专业录屏

北鲲云超算平台——致力于提高科研效率,降低计算成本的云超算平台

北鲲云

XRP瑞波币系统开发|XRP瑞波币软件APP开发

国家网信办:“滴滴出行” 下架整改!

学神来啦

GIN钱包挖矿系统开发|GIN钱包挖矿软件APP开发

如何给MindSpore添加一个新的硬件后端?快速构建测试环境!

华为云开发者联盟

AI 模型 框架 mindspore

免费分享学习Java框架Netty的优秀图书

Java入门到架构

Java 书籍推荐

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