近日,开放源代码促进会(Open Source Initiative,以下简称 OSI )在官网发布文章,转述了一项来自美国法院的判决:未获 OSI 开源许可证许可,而自称「开源」的软件属于虚假广告。
OSI 成立于 1998 年,是一个旨在推动开源软件发展的非盈利组织。多年来,OSI 在制定开源协议标准、促进开源推广上做出了重要贡献,是公认的开源「官方」组织。此次来自美国联邦第九巡回上诉法院的判决,也是从法律层面对 OSI 在开源领域的权威性进行了认定。
一
事件回顾
本次案件的判决方——第九巡回上诉法院,是美国 13 个联邦上诉法院中规模最大的一个,案件的原告是 Neo4j 及其瑞典子公司,而被告是 PureThink、LLC 和 iGov 三家公司。
Neo4j 是一个由 Neo4j 公司开发的高性能 NoSQL 图形数据库。2018 年,Neo4j 社区版从之前的 AGPL 改成新的 AGPLv3 和 Commons Clause 许可证的组合。因为 Commons Clause 不属于开源许可证,因此新的许可证组合被法院代称为「瑞典软件许可证」,它禁止软件的非付费用户转售代码或提供支持服务,也不在 OSI 认定的开源许可证列表中。
而后,被告 PureThink、LLC 和 iGov 三家公司基于 Neo4j 社区版开发了一款名为 ONgDB(Open Native Graph Database)的软件,以 AGPLv3 许可证分发,并在广告中自称「100% 免费与开源」。
法院认为,被告在 ONgDB 中删除 Neo4j 社区版的 Commons Clause 许可证部分是不恰当的,Neo4j 社区版所使用「瑞典软件许可证」也不能称为开源,因此被告在 ONgDB 广告中自称是开源属于虚假广告。法院要求被告停止对 Neo4j 的侵权,并禁止在广告中使用「开源」一词。
OSI 在官网文章中庆祝了法院的这一判决,并呼吁:当你不是开源时,就不要再说自己是开源了!
二
开源许可证
近年来,开源的发展如火如荼,仅 2019 年一年,就有 2000 多个新的开源软件被收录。在这些开源软件中,不乏存在各种问题,除了社会化协作不足、开发者权益保护缺失之外,一个重要问题就是开源许可证形同虚设。
目前主流的开源许可协议有 GPL、MPL、LGPL、BSD、MIT、Apache License 等,每个协议都有不同的版本。开源协议太宽松,会让作者丧失对开源软件的权利;协议太严格,又不利于开源软件的使用和传播。开发者在选择开源软件,或者准备开源自己的软件时,都会面对这么多选择不知所措。
由 Paul Bagwell 制作,阮一峰汉化
在不少人看来,开源仅仅就是将源代码公开,而真正严格意义上的开源软件,必须要使用经 OSI 批准的许可证进行开源许可。在 Neo4j 与 ONgDB 案件之后,更是从法律层面对这一个定义进行了确认:
软件公司想要在宣传和推广中使用「开源」一词,就必须使用获得 OSI 认证的开源许可证,否则就会被认定为是「假开源」。
目前,OSI 批准的开源软件许可证有 100 多个,大家常见的 MIT、Apache-2.0 与 GPL 等都在 OSI 认定的开源许可证列表中。值得一提的是就在 2020 年,OSI 批准了来自中国的木兰宽松许可证 v2,Mulan PSL v2 也成为了首个中英双语国际开源许可证。
三
专家解读
对于这条新闻,国外开发者纷纷发表了自己的看法:
wpyoga:请别再说 MongoDB 是开源了!它只是源代码可用,并不是开源。源代码可用与开源的区别在于:开源不歧视使用者。MongoDB 和 ElasticSearch 等源代码可用软件允许你用于私人用途,但如果公开你的服务,那你必须公布整个服务的源代码。他们打着「开源」的旗号,实际上并没有遵守开源的承诺。尽管 AGPLv3 有很多不足,但它是开源的,同时保护了用户和开发者的技术权益。
另一位则是表达了自己对 Neo4j 的批评:
medforddad:Neo4j 对自己许可证的描述我认为是违法的:「新许可证组合包含 AGPLv3 的,以及 Commons Clause 许可证中规定的其他限制」。如果你在 AGPLv3 的基础上添加了附加条款,使其不再是 AGPLv3,也不是开源,也不是自由软件,那你就不能称其为「带有一些附加条款的 AGPLv3」,企图把 AGPL 的名字留在那里混淆视听。
这次判决对开源开发者、开源公司及开源生态可能会造成哪些影响,我们也采访了几位业内的开源专家:
郭炜(Apache 软件基金会 Member、腾源会导师):
开源并不是简单的源代码开源,是在一个合作协议「开源许可证」的共识情况下各个开发者(以及所属的公司)进行协作和使用。简单来说,开源协议就是一个合同,一旦你使用了某一个开源项目,相当于你以这个开源协议和这个背后的开发者(开发公司)签署了这个合同。这样大家就可以理解这个合同内容本身有多么的重要。
对于之所以开源界比较认可 OSI 的协议是因为它在对于代码协议的分发自由、源代码完整性、不歧视等方面都有较多经验和判断,从而保证协议的公允性。OSI 认可的开源协议就如同基金会背书一样,更容易被大众所公认,可以确保而不是由某一家或者某几家公司控制协议和背后商业化,伤害以这个合同参与使用和开发的各方利益(例如 SSPL 就被认为违反了许可证不能限制其他软件不被 OSI 的认可)。
因此,美国这次判决更强调了 OSI 的权威性,OpenSource 没有使用 OSI 的开源协议,只能叫做「代码开放在 GitHub」。
现阶段中国的开源还在 0.8 阶段,相对于美国开源 3.0 阶段相差很远,所以对于中国的开源开发者和公司,如果你真的想公允的开放自己的源代码以获得更好的开源社区,还是强烈建议选择 OSI 标准的开源协议。我们先学会走,再学会跑。
姜宁(Apache 软件基金会董事、腾源会导师):
开源项目的许可协议总类繁多, 需要专业的法律知识才能很好的解读相关的条款。 OSI 通过 OSD 列举了开源软件许可协议十条原则,并且还对相关的软件许可协议进行认证,帮助大家甄别什么样的软件许可协议是开源软件许可协议。
现在有一些项目在大家熟知的开源许可协议基础添加了一些特殊条款来定义的自己的软件许可协议。对于这些新衍生出来的「李鬼」软件许可协议我们需要特别警惕,不能再用之前对知名软件许可协议的认知来看待这样的协议。
如果这些衍生的协议没有得到 OSI 的认证, 我们是不能把它们当成是开源许可协议的。因为这些特殊条款可能会违背 OSD 的原则,导致整个软件许可协议不能称之为开源许可协议。
推荐阅读
开源,从一个轮子说起|趣说开源 GitHub 限制俄罗斯使用代码,「开源无国界」是伪命题吗? 什么是开源的「第一性原理」?
腾源会是腾讯云成立的汇聚开源项目、开源爱好者、开源领导者的开放社区,致力于帮助开源项目健康成长、开源爱好者能交流协助、开源领导者能发挥领袖价值,让全球开源生态变得更加繁荣。
欢迎关注「腾源会」公众号,期待你的「在看」哦~👇