在开源软件领域,权力在项目公司、云服务商和社区之间不断转移。当项目公司为了商业利益将开源许可改为更严格的限制(即“釜底抽薪”或 Rug Pull)时,社区可以通过“分叉”(Fork)项目来夺回控制权。通过分析 Elasticsearch、Terraform 和 Redis 的案例可以发现,被重新授权的原始项目使用量往往会下降,而由中立基金会支持、拥有多元贡献者的分叉项目则更具生命力。因此,保护一个项目的最佳方式是推动其中立治理,并积极引入更多外部贡献者。
权力失衡:云厂商与项目公司的博弈
大型云服务商通常在开源生态中拥有巨大权力,它们将开源软件打包成服务,但未必会回馈项目。这给主要开发和维护这些软件的公司带来了巨大的商业压力。
为了应对这种压力并增加收入,这些公司可能会采取一种强硬的权力手段:重新授权。
这种策略旨在通过切换到更严格的许可证,增加其他公司(尤其是云服务商)利用该项目盈利的难度。这就像从用户和贡献者脚下抽走地毯,虽然可能平衡了与云厂商的权力,却损害了社区的利益。
作为回应,社区也拥有自己的权力武器:分叉。贡献者和用户可以复制项目,在原有的开放许可下继续发展,从而再次改变权力平衡。
案例分析:重新授权与分叉的后果
通过观察几个著名的“釜底抽薪”事件,可以发现社区的反应和项目的后续发展呈现出不同模式。
Elasticsearch 与 OpenSearch: Elasticsearch 被重新授权后,亚马逊分叉出了 OpenSearch。然而,由于 OpenSearch 最初缺乏强大的社区基础,其贡献者长期由亚马逊主导。即使项目后期被移交给基金会,也未能显著吸引更多外部贡献者。这表明,在项目成立后再寻求中立托管,效果有限。
Terraform 与 OpenTofu: Hashicorp 将 Terraform 重新授权后,社区迅速在 Linux 基金会下创建了 OpenTofu 分叉。与之前不同,这个分叉由用户驱动,并从一开始就置于中立基金会之下,因此很快吸引了来自多家公司的贡献者,形成了一个活跃的开发者社区。
Redis 与 Valkey: Redis 的情况很特殊,因为它在被重新授权之前就拥有庞大的外部贡献者群体。当公司决定更改许可后,几乎所有外部贡献者都迅速转移到了 Valkey 这个分叉项目,使其从诞生之初就拥有一个强大而多元的社区。
总的来看,当一个项目被重新授权后,其使用量往往会下降,特别是当一个有竞争力的、由基金会支持的分叉出现时。
如何保护项目免受“釜底抽薪”
要避免项目被单一公司控制并最终被重新授权,可以采取以下措施:
寻求中立治理: 将项目置于中立的基金会(如 Linux 基金会或 CNCF)之下,可以显著降低风险。但需要警惕,如果项目贡献者仍然绝大多数来自同一家公司,风险依然存在。一个健康的项目应该拥有来自多个组织的领导者。
增加外部贡献者: 这是最有效的防御手段。一个项目拥有的外部贡献者越多,公司进行“釜底抽薪”所需承担的风险就越高。更多的外部参与者意味着更强大的社区抵抗力。
利用分叉的威慑力: OpenTofu 和 Valkey 等分叉的成功,已经让一些公司在考虑重新授权时变得更加谨慎。一个活跃、有能力进行分叉的社区本身就是一种强大的威慑力量。
任何人如果只是默默地使用一个项目,那他只是一个乘客;更好的方式是参与其中,成为驾驶者。