2020 年的一封邮件列表提问,开启了我耗时数年、推动 PHP 许可证全面简化为标准 BSD-3-Clause 的历程。
我从高中起就对软件版权问题充满兴趣,职业生涯大部分时间都在研究开源许可证。版权定义了人类对思想成果的所有权,而许可证则是分享这些成果的工具。
2020 年初,疫情封锁期间,开发者 Matthew Sheahan 在 php-general 邮件列表提出一个合规问题:他们团队要使用 phpdbg,但公司要求所有依赖必须采用 OSI(开放源代码促进会)正式批准的许可证。
尴尬的是:
出于兴趣,我主动联系 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 目录代码。
两套许可证都包含时代烙印:
经过 25 年同仓共生,PHP 与 Zend 引擎深度绑定,Zend 引擎早已无法独立拆分。两者共同构成 PHP 语言官方实现。—— PHP License Update RFC
旧许可证不仅维护成本高,还给发行商(如 Debian)带来合规困扰:修改再分发时,“衍生产品不能叫 PHP” 的条款模糊不清。
仔细剥离两套许可证中仅与 PHP Group、Zend 相关的特殊条款后,剩下的核心授权规则,本质上就是修改版 BSD 许可证(BSD-3-Clause)。
于是我们决定:
不是二次修改,不是定制变体,直接采用标准协议,拥有官方 SPDX 标识符,被 OSI、FSF 和全球主流合规工具链一致认可。
新许可证带来三大改变:
用户获得的权利 完全不变;新许可证向下完全兼容旧许可证;本次变更仅为简化表述、对齐行业标准,不改变授权实质。
将许可证改为 BSD-3-Clause,远不止写一篇 RFC 那么简单:
如果你正在使用 PHP License 3.01 授权的代码(包括 PECL 扩展):
根据 3.01 版第 5 条:
代码一旦按某一版本许可证发布,你可永久继续使用该版本;也可自由选择使用 PHP Group 后续发布的任何新版本许可证。
这意味着:
本次变更直接解决长期痛点:
这项跨越数年的简化工程,离不开每一位内核与社区参与者:
开
源许可证不耀眼,却至关重要。能参与推动 PHP 法律基础现代化,我们深感荣幸。
作者:Bobby Borisov
编译:万能的大雄
https://linuxiac.com/php-proposes-switch-to-bsd-3-clause-license/
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 微信公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。