
在 PHP 的早期成长阶段,项目在许可证上的变革频率颇高:自 1995 年到 2006 年间,PHP 共进行了七次许可证变革或条目调剂。最初,PHP 是在 GPLv2 下宣布的;1998 年宣布的 PHP 3 则采取了 GPLv2 与新 PHP License 的双重授权方法,这一新许可证以 Apache License 1.0 为基本,由 PHP 开创人 Rasmus Lerdorf 制订,目标是让 PHP 对贸易用户更“友爱”,同时仍保持自由软件属性。Lerdorf 当时表示,欲望在确保 PHP 始终免费的前提下,让贸易公司可以在不让重要供献者感到“被占便宜”的前提下测验测验贸易化版本。
不过,最第一版本的自定义 PHP 许可证包含一条须要获得 PHP 开辟团队书面许可才能进行贸易再分发的条目,这在实践中被证实难以操作,最终在 PHP 3.0.14 版本中被删除。该版本附带的 LICENSE 文件甚至没有标明许可证版本号。
2000 年 5 月宣布的 PHP 4.0 是一次重大年夜重构,引入了由 Zeev Suraski 和 Andi Gutmans 编写的 Zend 引擎,这两人随后创办了 Zend Technologies,欲望在自力于 PHP 的路径上贸易化 Zend 引擎。Zend 向 PHP 项目供给授权,使其可以将 Zend 引擎集成进 PHP,并承诺相干代码将保持在 Zend 许可证或相符开源定义(OSD)的其他许可证之下,尽管 Zend License 本身并未获得开源促进会(OSI)正式赞成。此后,PHP 源码树中 Zend 目次下的代码便采取 Zend 许可证;PHP 4.0 同时完全放弃了 GPLv2,转而采取 PHP License 2.02。
评论辩论中也出现了一些具体问题。例如,Derick Rethans 询问为何必须比及 PHP 9,而不是在 8.5 之后的“下一版本”就进行变革。Ramsey 回应称,这并无技巧或司法上的硬性来由,只是出于版本节拍的直觉断定,假如社区认为在 PHP 8.6 中完成变革更合适,他也不否决。此后,RFC 便将实施时光从“PHP 9”调剂为“下一版本”。
在随后的几年中,PHP License 持续被微调:PHP 3.0 版本的许可证曾获得 OSI 赞成,但之后又做了一次小幅修改,形成了 PHP License 3.01。该次修改仅调剂了版权年份以及对 PHP 和 Zend 申谢文字的表述方法,并未改变授权权力本身。然而,这个新版本从未再经由 OSI 审核。更麻烦的是,许可证文本外面上只实用于由“PHP Group”宣布的软件,而这一“PHP Group”本身并非实际的司法实体,而是十名早期 PHP 开辟者的列表。这一模糊性让部分人认为,其他主体宣布的软件并不克不及合法地采取 PHP License 作为授权文本,从而对如 Debian 等项目造成了实际困扰。Ramsey 在 RFC 中专门梳理了这段汗青背景。
在当前的 RFC 中,Ramsey 提出,自下一个重要版本起(最初写的是 PHP 9.0,后更新为“下一版本的 PHP”),用 BSD 三条目许可证同一调换今朝的 PHP License 和 Zend License。他表示,在撰写这一提案时,本身已与 OSI 许可证委员会主席 Pamela Chestek 合作,处理相干司法问题与疑问。
Ramsey 称,他已经与所有 PHP Group 成员沟经由过程,每位成员都已表示支撑这一变革。同时,他还获得了 Perforce Software 的许可——Perforce 于 2019 年经由过程收购 Rogue Wave 将 Zend 纳入旗下,而 Rogue Wave 在 2015 年收购了 Zend。有人可能会疑问:既然多年来有如斯浩瀚小我向 PHP 提交卸码,是否须要每一位供献者都赞成才能更改许可证?在 RFC 中,Ramsey 的不雅点是:不须要。PHP 并未请求供献者签订将版权转移给项目标 CLA,是以供献者保存其供献代码的版权;但在他们未明白声明其他授权条目的前提下,可以视为他们以项目当前的许可证向项目授予应用其供献的权力。
换言之,供献者对本身所提交卸码享有版权,但在未指定其他许可证的情况下,其供献是按项目所采取的许可证授权给项目应用的。Ramsey 进一步指出,平日在变革开源项目许可证时,须要取得所有版权方的赞成,因为新许可证可能会改变授予用户的权力范围。但在此案例中,改用 BSD 三条目许可证并不会改变除 PHP Group 和 Perforce Software 外其他供献者所授予的权力。是以,他认为项目并不须要一一收罗所有供献者的明白许可。
尽管 RFC 指出从司法上并不强迫请求一一征得赞成,但出于“礼貌”推敲,Ramsey 提议将评论辩论期至少保持六个月,以确保所有好处相干方有充分机会表达看法。自 2025 年 7 月提出 RFC 以来,他多次宣布更新并提示社区该议题仍在评论辩论中;截至今朝,尚未出现本质性否决看法。
另一位开辟者 Peter Kokot 则建议,应对与 GPL 的兼容性进行更清楚的解释,以便在将来与 GPL 授权软件协同时削减疑虑。他指出,PHP 在构建时可以选择链接两个 GPLv3 许可证的库:GNU Readline 和 GNU dbm (GDBM)。他欲望慢慢放弃在构建阶段链接这些 GPL 库的选项,以便让打包者不再为潜在的不兼容问题担心,最终彻底移除对 GDBM 和 Readline 的链接可能性。Ramsey 回应称,在现有 PHP License 3.01 下,因为对用户附加了一些额外限制,该许可证与 GPL 不兼容,这种不兼容今朝无法清除;然而若改用 Modified BSD 许可证,只要最终组合包整体以 GPL 条目宣布,就不存在此类兼容性问题,这也将明显简化发行版打包工作。
2026 年 3 月 14 日,Ramsey 宣布对该 RFC 正式开启投票。投票成果以公开方法记录在 PHP Wiki 的 RFC 页面上。今朝尚不肯定拥有投票权的总人数——2019 年统计显示当时共有 180 名具有投票资格的开辟者。投票开端后不久,已有 47 人投下赞成票,2 人选择弃权。从早期成果看,社区对该提议的立场高度正面,但在投票法度榜样停止前,成果仍不克不及视为板上钉钉。无论最终成果若何,此次许可证清理和简化工作显然离不开 Ramsey 以前数年在幕落后行的沟通、调和与推动。

发表评论 取消回复