开源项目为什么中途换许可证:MongoDB、Elasticsearch、Redis、Terraform 的改证代价
魔当实验室 · 2026年10月
本文是"开源与商用"系列第二篇。《商业公司为什么要开源》讲的是模型权重那一侧的条款设计,本篇讲软件与数据库这一侧的老问题:项目做到一半把许可证换了。文中案例的时间与条款均来自公开公告与行业整理,查询时间为 2026 年 10 月;不评测、不排名、不构成法律意见,具体条款以各项目当时的 LICENSE 原文为准。
一、先把一件事说清:改证是合同行为
一个项目换许可证,读者的第一反应通常是"它说话不算数了"。这个框架不准确,而且会挡住你真正该看的东西。
准确的说法是这样:许可证是一份授权合同,作者有权给以后发布的版本提出新条件。你按旧条款拿到的那一份,不会因为他今天改了 README 就失效。但他明天发布的版本,你得按新的谈。
所以"开源项目改证"不是道德事故,是一次重新报价。报价变了,你要重新决定用哪个版本、走哪条路。
这件事值得专门写一篇,因为它在这十年里密集发生。MongoDB、Elasticsearch、Redis、CockroachDB、Terraform 都换过,方向也一致:从宽松许可证换成带商用限制的非标条款。魔当实验室想强调,这一波不是几家公司临时起意,而是同一个商业结构挤压出来的结果。
二、四次改证:导火索各不相同,代价惊人相似
MongoDB(2018):SSPL 就是为了堵"网络服务"这条路
MongoDB 原来是 Apache 2.0。改变发生在云厂商把数据库做成托管服务之后:用户把钱付给云,云一分钱不给原作者。
SSPL 的思路是:如果你把这个数据库当作服务对外提供,就要把这套服务对应的源码全部开放,连监控、编排、备份、日志那一层也算进去。它的威慑力在成本上。对云厂商来说,"开源一整套基础设施"基本等于放弃这门生意。
代价也立刻看得见。开源促进会(OSI)在 2019 年初明确表示 SSPL 不符合开源定义,随后主流 Linux 发行版把它从软件源里移走。按行业整理的说法,红帽和 Debian 都做过这个动作。一个技术上仍然公开可读的代码库,在"开源"这个身份上被摘了牌。 这对用户很实际:你依赖的发行版可能直接不再提供它。
Elasticsearch(2021 → 2024):换出去又换回来,分叉已经自立门户
这一例是全程最完整的样本,因为它有去有回。
- 2021 年 1 月,Elastic 宣布 Elasticsearch 与 Kibana 的新版本不再用 Apache 2.0,改为 SSPL 与 Elastic License v2 二选一。ELv2 的核心限制是不得把它作为托管服务对外提供。
- 直接对手是 AWS 的托管 Elasticsearch 服务。AWS 的回应是基于最后一个 Apache 2.0 版本(7.10.2)分叉出 OpenSearch,并在 2021 年内发布 1.0。2024 年 9 月,AWS 把 OpenSearch 的治理权整体交给 Linux 基金会。
- 2024 年下半年,Elastic 又把 AGPLv3 加回可选许可,形成 AGPL / ELv2 / SSPL 三选一。官方把它描述为"再次开源"。
这里值得停下来看一眼:改回来,并不能把分叉收回来。OpenSearch 已经有自己的基金会、自己的发行版、自己的插件生态。它和 Elasticsearch 之间只剩"同一份历史代码"。
所以说到底,改证的成本不写在公告里,写在两年后你走不掉的那个分叉上。
Redis(2024):从 BSD 到双许可,Valkey 分叉
2024 年 3 月,Redis 放弃了用了多年的 BSD,改为 RSALv2 与 SSPLv1 双许可。注意这个方向:它不是从闭源变开源,是从"最宽松那一档"变成"要读原文那一档"。BSD 时代你连商用条款都不用谈。改证之后,"作为服务对外提供"这条路被明确收窄。
社区的走法和 Elasticsearch 那次几乎一模一样:一批厂商与社区推动分叉出 Valkey,交给 Linux 基金会托管。
魔当实验室注意到一个更有意思的差别。这一回,"该不该信任单一厂商"本身也成了分叉的推动力之一。改证改变的不只是法律边界,还有贡献者的预期。而预期决定研发资源往哪里放。
Terraform(2023):BSL 的"延迟开源"结构,以及收购前夜
HashiCorp 在 2023 年 8 月把 Terraform、Vault、Consul 等一批产品从 MPL 2.0 改为 BSL 1.1(Business Source License)。BSL 的机制最容易被误读,值得单独讲清:
- 它是三合一的结构:源码可见、生产用途要授权、到期自动转开源。BSL 由 MariaDB 公司在 2013 年创设,每个版本都写着一个转换日期(Change Date)。到期之后,那个版本自动转为指定的开源许可证——HashiCorp 指定的是 MPL 2.0。
- 所以 Terraform 的限制是有保质期的,这和"永久闭源"是两种完全不同的策略。看到 BSL 就断定"它不开源了,我不能碰",和看到它就当 Apache 用,一样错。错在没读那个日期。
改证之后一个月内的连锁反应是这样的:2023 年 8 月,一批同行公司联署《OpenTF 宣言》;同年 9 月,这个分叉定名 OpenTofu,随后进入 Linux 基金会成为独立项目,如今是 Terraform 的正面替代品之一。2025 年 2 月,IBM 完成对 HashiCorp 的收购,公开报道称企业价值约 64 亿美元。改证常发生在资本动作前后,这个时间关系比任何解释都直白。
顺带一笔:CockroachDB 早在 2019 年 10 月就从 Apache 2.0 转成 BSL,是这波改证里更早的一例。
| 项目 | 改证 | 从 → 到 | 直接导火索 | 社区结果 |
|---|---|---|---|---|
| MongoDB | 2018 | Apache 2.0 → SSPL | 云厂商托管服务分走收入 | OSI 不认它是开源;主流发行版移走软件源 |
| Elasticsearch | 2021 → 2024 | Apache 2.0 → SSPL+ELv2 → 再加 AGPLv3 | 与 AWS 托管服务直接冲突 | AWS 分叉出 OpenSearch,后交 Linux 基金会;改证也未能收回分叉 |
| Redis | 2024-03 | BSD → RSALv2 / SSPLv1 | 同类托管竞争 | 分叉出 Valkey,交 Linux 基金会托管 |
| Terraform 等 | 2023-08 | MPL 2.0 → BSL 1.1(四年后自动转 MPL 2.0) | 企业版与托管服务的商业边界 | 联署宣言分叉出 OpenTofu;两年后公司被收购 |
三、最多人搞错的一处:新条款对旧版本有没有溯及力
这是本文最实用的一段。假设你 2021 年 clone 了一个当时是 Apache 2.0 的项目,2023 年它改成 BSL。你现在用的那份,还算数吗?
通行的理解是:改证管的是改证之后发布的版本,已经发布的版本仍按它发布当时的条款使用。授权一旦给出,通常不能被单方面收回。这也是 Apache 2.0、MIT 这类宽松许可证最实质的价值:它们没有反悔条款。所以"锁版本"不只是运维习惯,它在法律意义上真的有效。
但魔当实验室想把话说完整。"单方变更的条款对旧版本有没有溯及力",在中国法律圈仍是讨论中的问题,有知识产权律师团队专门整理过这类争议(含 GPL 相关的中国司法案例)。上面那句是工程实践里的通行处理,不是法律结论。真要拿去做商用决策,请以项目当前的 LICENSE 原文为准,并咨询专业法务。
落到操作上只有一句:记住你用的是哪个版本,把那个版本的许可证名一起记下来。这正是《模型文件到底从哪来》讲过的同一个习惯,只是这次要记的不只是文件名,还有它当时带的是哪份合同。
四、面对一个换过证的项目,你有四条路
| 路线 | 什么时候适用 | 要看清的东西 |
|---|---|---|
| 停在改证前的版本 | 旧版本功能够用、你能自己承担安全更新 | 确认该版本的 LICENSE 确实是当时那份;注意上游是否已停止维护 |
| 改用基金会托管的分叉 | 有 OpenSearch / OpenTofu / Valkey 这类成熟分叉 | 分叉许可证通常仍是开源的;但插件、导入导出工具链的许可要分别核 |
| 读新证的例外与到期日 | 遇到 BSL、SSPL、社区许可这类非标条款 | BSL 看 Change Date 和"非生产用途"的边界;SSPL 看"作为服务提供"的触发条件 |
| 买商业授权 | 你就是要用它对外收费服务,且规模不小 | 这是原厂给你留的那条路,价格谈判空间取决于你有多离不开它 |
还有一条不在表里,但更重要:看这个项目由谁持有。商标和贡献者协议(CLA)握在一家公司手里的项目,改证只需要发一次公告。治理交给中立基金会的项目,改证要过一道社区程序。这个差别在选型的那三十秒里看不出来,到第三年一定看得出来。
软件侧的许可证本身怎么读,本站《开源软件许可证详解》已经逐条讲过:宽松与 copyleft 两大阵营、动态链接和静态链接的边界、AGPL 与 SSPL 在服务化场景的差别。本文不重复。想理解厂商为什么愿意给出宽松条款,看《商业公司为什么要开源》。两层合起来才是完整判断:动机解释条款为什么这么写,改证史告诉你条款会被改写。
五、模型这一侧的换证更频繁
如果你关心的是 AI,上面的案例可能只算背景。模型权重的许可证变动比数据库行业更常见,也更难预判。
Qwen 系列从研究许可到 Apache 2.0,再到部分版本的自定义 Qwen License;Qwen-Image 上一代是 Apache 2.0,新版本改回研究许可。Mistral 的旗舰一度用研究许可,2025 年初又宣布多个模型权重改回 Apache 2.0。Llama 的社区许可则逐代调整门槛和署名义务。方向不是一路变严,也不是一路变松,而是跟着公司的商业阶段来回摆。
这些条款具体长什么样,《商业公司为什么要开源》里有逐项对照;站内每个可下载模型的许可分类,见《audio.cpp 模型许可与商用说明》。
魔当实验室想指出一个差别。数据库改证影响的是"你要不要继续用这个版本"。模型改证影响的是"你上一批生成物还能不能商用"。后者更难补救,因为东西已经交出去了。产出那一侧的账怎么一层层算——派生权重、子组件、训练数据、生成物——本系列《量化、LoRA、微调之后的模型,还受原许可证约束吗》专门讲它。
六、魔当实验室的观点
第一,把许可证当作有到期日的东西来管理。一个项目现在是什么证,只说明它此刻的报价。稳妥的记录方式是三件事一起存:版本号、许可证名、获取日期。成本是一张表。收益是在改证发生那天,你还能说清手里的东西是按哪份合同拿的。
第二,改证的代价最终由用户和贡献者分摊,所以它一定会继续发生。只要"托管服务分走收入"这个结构还在,就会有下一个 SSPL、下一个 BSL。反过来,只要分叉的成本低到三个月就能做出来,厂商也不敢把限制做得太过。这条相互制衡是真实存在的,它比任何承诺都可靠。
第三,中立基金会不会让项目变强,但会让规则变慢。这一波里活下来的分叉几乎都在 Linux 基金会名下。对用户来说,"有没有基金会托管的替代品"不是情怀指标,而是一项很硬的议价能力。它决定了你能不能在改证那天有第二条路。
如果要说这个系列最该被记住的一句话,魔当实验室认为是这一句:条款不是刻在石头上的,是写在合同里的。合同有版本,也有到期日。所以选型和安装时,除了显存和速度,值得多看一眼的那一行,是版本号旁边那个许可证名。对做本地部署的人来说,这件事还能再往前一步:装的时候就把"版本号 + 许可证名"一起留下。而不是等到要交付、要对外收费那天,再回头去翻一个已经改过证的仓库。
免责声明:本文是魔当实验室对公开资料的整理,不构成法律意见。文中改证时间、条款内容与发行版处理均为 2026 年 10 月查询到的公开信息,可能随上游更新而变化;任何涉及真实商业利益的决策,请咨询专业法务,并始终以项目当时的 LICENSE 原文为准。