17611538698
info@21cto.com

全面简化:PHP 告别祖传自定制协议,全面拥抱标准 BSD‑3‑Clause 开源许可证

编程语言 0 13 12小时前

2020 年的一封邮件列表提问,开启了我耗时数年、推动 PHP 许可证全面简化为标准 BSD-3-Clause 的历程。

图片

一、缘起:一个合规难题


我从高中起就对软件版权问题充满兴趣,职业生涯大部分时间都在研究开源许可证。版权定义了人类对思想成果的所有权,而许可证则是分享这些成果的工具。

2020 年初,疫情封锁期间,开发者 Matthew Sheahan 在 php-general 邮件列表提出一个合规问题:他们团队要使用 phpdbg,但公司要求所有依赖必须采用 OSI(开放源代码促进会)正式批准的许可证。

尴尬的是:

  • PHP 官网宣称 PHP License 3.01 已获 OSI 批准;但 OSI 官方列表里,
只有 3.0 版正式获批;3.01 只是微小修订,内容几乎和 3.0 一致,却无法满足企业合规要求。

出于兴趣,我主动联系 OSI,申请追认 PHP License 3.01。2020 年 5 月,OSI 董事会正式通过批准。问题看似解决,却埋下了更大的思考:PHP 沿用多年的定制许可证,是否早已过时?

二、旧许可证:历史的产物,日渐复杂


PHP 从 PHP 3 开始就使用自己的定制许可证,由创始人 Rasmus Lerdorf 基于 Apache License 1.0 修改而来。PHP 4 引入 Zend 引擎后,又增加了 Zend Engine License,专门覆盖 /Zend 目录代码。

两套许可证都包含时代烙印:

  • 限制衍生产品使用 “PHP”“Zend” 商标;
  • 保留广告声明条款;
  • 仅允许 PHP Group 和 Zend 修改许可证;
  • 非 GPL 兼容;

但Zend Engine License 从未获 OSI 批准。随着时间推移,问题愈发明显:

经过 25 年同仓共生,PHP 与 Zend 引擎深度绑定,Zend 引擎早已无法独立拆分。两者共同构成 PHP 语言官方实现。—— PHP License Update RFC

旧许可证不仅维护成本高,还给发行商(如 Debian)带来合规困扰:修改再分发时,“衍生产品不能叫 PHP” 的条款模糊不清。

三、化繁为简:回归标准 BSD-3-Clause


仔细剥离两套许可证中仅与 PHP Group、Zend 相关的特殊条款后,剩下的核心授权规则,本质上就是修改版 BSD 许可证(BSD-3-Clause)

于是我们决定:

  • PHP License 4.0 = 标准 BSD-3-Clause
  • Zend Engine License 3.0 = 标准 BSD-3-Clause

不是二次修改,不是定制变体,直接采用标准协议,拥有官方 SPDX 标识符,被 OSI、FSF 和全球主流合规工具链一致认可。

新许可证带来三大改变:

  • GPL 兼容:彻底解决开源生态互用难题;无广告条款、无单一组织专属特权;
  • 发行商零歧义:企业合规审核不再纠结。
  • 核心承诺:贡献者授予的权利 完全不变


用户获得的权利 完全不变;新许可证向下完全兼容旧许可证;本次变更仅为简化表述、对齐行业标准,不改变授权实质。


四、推动落地:合规、共识、法律三重把关


将许可证改为 BSD-3-Clause,远不止写一篇 RFC 那么简单:

  • 权限确认:PHP License 规定修改权归 PHP Group,我逐一联系所有原始成员并取得书面同意;
  • 商业授权:Zend 被 Perforce 收购,我取得 Perforce 正式授权函,确认支持变更;
  • 法律审查:聘请专业律师全程审阅草案与社区讨论,规避法律风险;
  • 社区共识:设立 6 个月公开讨论期,最终 RFC 全票通过。


五、平滑过渡:旧项目无需重签协议


如果你正在使用 PHP License 3.01 授权的代码(包括 PECL 扩展):

根据 3.01 版第 5 条:

代码一旦按某一版本许可证发布,你可永久继续使用该版本;也可自由选择使用 PHP Group 后续发布的任何新版本许可证


这意味着:

  • 旧代码 无需修改授权声明
  • 无缝迁移到 BSD-3-Clause
  • 宽松、自由的授权精神完全延续


六、影响:企业合规告别纠结


本次变更直接解决长期痛点:

  • 要求 OSI 批准许可证的企业,不再需要特殊解释
  • 曾因 Zend Engine License 未获批准而卡壳的合规审核,直接终结
  • 即便你从未关注许可证细节,也值得了解:PHP 的法律基础,如今终于和语言精神、社区文化完全匹配

七、致谢:开源合规背后的无名英雄


这项跨越数年的简化工程,离不开每一位内核与社区参与者:

  • PHP 内核社区成员:长期深度参与 RFC 讨论;
  • PHP Group 元老:Thies、Stig、Shane、Andi、Rasmus、Sam、Sascha、Zeev、Jim、Andrei;
  • Perforce 团队:Matthew Weier O’Phinney、Sara Kilian;
  • 开源合规专家:Zak Greant、debian-legal、OSI license-discuss、FSF 合规团队、Pamela Chestek 律师。

源许可证不耀眼,却至关重要。能参与推动 PHP 法律基础现代化,我们深感荣幸。

作者:Bobby Borisov

编译:万能的大雄

https://linuxiac.com/php-proposes-switch-to-bsd-3-clause-license/

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信