文 | 白开水
出品 | OSC开源社区(ID:oschina2013)
早在 2015 年,LLVM 社区就发起了对代码进行重新授权的提案,希望能从现有的 NCSA 许可证更改为 Apache 2.0。NCSA 是基于 MIT/X11 和 BSD 3 的许可证,更换许可证的目的一是降低代码贡献的门槛,鼓励更多人参与;二是提供对现有的贡献者专利保护;三是确保 LLVM 运行时库可以被其他开源和专有编译器使用。然而时至今日,这项工作还在进行当中。根据介绍,其当下的进度为正努力追踪一些过去的贡献者,以收集他们对协议变更的认可阶段。目前,LLVM 方面已成功获得超过 94% 的旧代码重新许可的批准;正在朝实现近 100% 而努力,以便可以合法地将协议变更为 Apache 2.0。官方博客详细介绍了 LLVM 多年来在不同阶段针对许可变更所做的工作:在 2015 年之前的几年里,其发现了 LLVM 当时的许可存在一些问题;2015 年到 2017 年间,工作重点则在于选择最适合的许可证类型。决定做好后,团队在近几年的工作就是致力于让这个新许可覆盖所有代码;其中就包括获得现有代码的所有版权所有者的同意,这也是现下有关重新许可工作的重点内容。也许我们无法为过去的每一项贡献达成协议。在这种情况下,我们有很多选择,以达到我们可以宣称 LLVM 项目中的所有代码都被新的 LLVM 许可所覆盖。我们把这一阶段的重新授权称为"the end game"。
LLVM 方面绘制了一张图,以显示此项工作截至 2021 年 11 月的状态。其中每个矩形代表一个人所做的贡献,每个矩形的大小代表该人贡献了多少行代码:当矩形为绿色时,意味着该开发者的所有贡献都被再许可协议完全覆盖;为橙色时,意味着尚未收到该贡献者的许可回复。当矩形为橙色并带有绿星时,则意味着此人的一些贡献已被新协议覆盖,一些则没有。例如,当这个人在一段时间内为多家公司工作,而到目前为止只有其中一些公司同意重新授权时,就会发生这种情况。LLVM 方面已有超过 94% 的 2001 年至 2019 年间的所有贡献的代码行被新许可所覆盖;只剩下 5% 左右的代码行还未成功变更协议。为了促使目标的达成,该团队希望能够得到更多 LLVM 社区的帮助。此 Google 电子表格显示了他们仍在尝试获得批准但迄今为止未能成功沟通的其余个人和组织。更多详情可查看官方博客:https://blog.llvm.org/posts/2021-11-18-relicensing-update/