PHP社区正在进行一场酝酿近二十年的许可证变革。由核心开发者Ben Ramsey主导的RFC提案建议,废除自2006年起沿用的双许可证模式(PHP License v3.01与Zend License v2.0),全面替换为标准化的BSD三条款许可证。社区投票已于3月14日启动,截止时间为2026年4月4日。

PHP的许可证历史堪称曲折。1995年至2006年间,项目先后七次变更或修改许可条款。PHP最初采用GPLv2,1998年发布的PHP 3改为双许可(GPLv2 + 自定义PHP License),创始人Rasmus Lerdorf的初衷是「让商业实体也能尝试商业版本」。2000年PHP 4.0引入Zend Engine后,Zend目录采用了Zend Technologies提供的独立许可,项目也彻底放弃了GPLv2。
然而,这套自定义许可体系在过去近二十年中制造了越来越多的麻烦。PHP License 3.01的文本明确规定仅适用于由「PHP Group」分发的软件,但讽刺的是,PHP Group并非一个真实存在的法律实体,而仅仅是十位早期核心开发者的名单。这一模糊性给Debian等发行版带来了长期的法律困惑,也阻碍了PHP代码在其他项目中的自由复用。
Ramsey为此展开了长达数年的幕后协调。他已与PHP Group的全部成员逐一沟通并获得同意,同时也取得了Zend现任母公司Perforce Software(2015年由Rogue Wave Software收购Zend,2019年Perforce收购Rogue Wave)的批准。在法律层面,他与开源促进会的许可证委员会主席Pamela Chestek合作,确保变更的合规性。
关于是否需要全体代码贡献者同意,RFC提出了一个关键论点:PHP从未要求贡献者签署CLA,贡献者保留各自代码的版权,但默认以项目相同条款授权。由于3-clause BSD许可不会削减既有权利,因此技术上无需逐一征得同意。尽管如此,Ramsey仍将讨论期保持至少六个月以示对社区的尊重。
此次变更还将顺带解决一个悬而未决的GPL兼容性问题。目前PHP构建时可选择性链接GNU Readline和GDBM两个GPLv3库,但在PHP License 3.01下存在许可不兼容。切换至BSD后,这一障碍将彻底消除。根据最新修订,许可证变更将在「下一个PHP版本」中生效,而非特定等到PHP 9.0。
截至文章发稿时,已有47位有投票权的开发者投下赞成票,2人弃权,尚未出现反对声音。
参考来源:https://lwn.net/Articles/1063993/