原因是云巨头们使用开源工具,却不给予任何回报。
数据库开发商Redis Labs将该公司开发的Redis模块由AGPL改成了Apache v2.0和Commons Clause(共用条款)相结合的许可证,因而对销售许可证涵盖的软件作了限制。
许可证方面的这个变化意味着自行开发的Redis模块(RediSearch、Redis Graph、ReJSON、ReBloom和Redis-ML)不再是通常所定义的开源软件,它们而是成为“可用的源代码”。
实际上,新许可证限制了云提供商向客户提供这些Redis模块的能力;Redis Labs可能旨在成为包含这些附加组件的服务的唯一销售商。然而,Redis数据库代码仍采用BSD许可证。
Redis Labs并不是唯一一家做出这种改变的公司。5月份,开发Neo4j图形数据库的Neo4j在其AGPL许可证中添加了Commons Clause。
Redis Labs的联合创始人兼***技术官伊夫塔奇•舒尔曼(Yiftach Shoolman)在周三的一篇博文中针对许可证的这一变化给出了理由,声称云提供商得益于开源软件,却没有给予任何回报。
他说:“多年来,云服务提供商一直在销售基于并不是由它们开发的开源代码的云服务(价值数亿美元),白白享用开源社区的技术成果。”他特别提到了像Docker、Elasticsearch、 Hadoop、Redis和Spark这些广泛采用的项目。“这挫伤了开源社区致力于开发开源代码的积极性,因为任何潜在的好处都归云提供商所有,而不是归代码开发人员或他们的赞助商所有。”
Redis Labs竭力收回开源许可证授予的部分自由这种做法并没有博得开源社区成员的喝彩。
意在掌控
在发给IT外媒The Register的电子邮件中,为美国爱达荷州国立实验室提供咨询的开源许可专家保罗•伯格(Paul Berg)表示,与其说这是帮助开源开发人员的举措,还不如说是竭力将合作开发Redis模块的开发人员的成果交由Redis Labs来控制。
他说:“这是一种传统的专有软件许可证,旨在支持传统的商业软件销售商业模式;由于缺少近期成功的企业采用它们的证据,这种商业模式可能过时了。”
伯格表示,虽然基于云的服务对开源许可的原则提出了挑战,但这些原则并不涉及软件开发人员是否可以从他们的工作中赚钱。他认为,开源许可的广泛采用表明,限制性更强的选择(比如Commons Clause)存在一种固有的经济劣势。
他解释:“云给开源许可证带来的挑战是,这类许可证的目的实际上是消除所有垄断,让用户可以全面控制软件。”
伯格表示,问题在于使用而不是分发软件的云提供商不是通过知识产权法取得垄断,而是通过物流方面的优势取得垄断。而注重知识产权的许可证解决不了这个问题。
伯格认为,云计算的吸引力并不在于开源软件,而在于与硬件、维护、物理位置和电力消耗有关的规模经济效应。
开源项目组织(OSI)的副总裁VM•布拉瑟(VM Brasseur)在一篇博文中炮轰了这个变化,特别指出Commons Clause销售禁令含糊不清。她预计这家公司会面临法律问题。
OSI总裁西蒙•菲普斯(Simon Phipps)发推文称许可证的这个变化“废除了软件自由”。
开源软件开发人员德鲁•德沃尔特(Drew DeVault)在博文中措辞更为激烈,声称“Commons Clause将毁了开源。”
他写道:“无法从你的开源工作中赚钱很糟糕。别的公司利用你的工作成果为它们自己赚钱,这确实糟透了。但是Commons Clause没有给出支持开源软件的解决方案,而是给出了将开源软件变成专有软件的框架。”
心理恐吓战术
Commons Clause的开发者兼FOSSA的创始人凯文•王(Kevin Wang)通过推文作出了回应,声称这个意料之外的举措是“下意识的心理恐吓战术(FUD)”,承诺会在今后几天作出更详细的回应。FOSSA专业开发开源许可证管理软件。
王在Hacker News上谈论时说:“起草Commons Clause是一种被动的举措,旨在应对某些特定的不良行为”,他暗指许多云公司使用开源代码,却没有补偿像Redis这些帮助维护开源代码的公司。
谷歌的软件工程总监丹尼尔•柏林(Daniel Berlin)回复道:“不,这不是不良行为,这是对开源经济模式的根本误解,有人也想要吃你的蛋糕。”谷歌正是Redis可能很反感的那种云公司。
伯格认为Redis Labs未必在Commons Clause这顶伞下成功地躲避。他认为,开源分摊了技术成本,正如云计算公司分摊了基础设施成本那样;正因为如此,相比专有代码,开源代码会继续提供优势。