“完全自由开源的 Rust 语言项目,现在却被自由软件基金会的 GPL 许可证给阻拦了,是什么情况呢?
给 Rust 编译器 merge rustc_codegen_gcc 后端的 MCP[1] ( Merge rustc_codegen_gcc backend as compiler/rustc_codegen_gcc issues#442[2] ) 遭遇了开源许可证的问题。
`rustc_codegen_gcc`[3] 是 由 antoyo[4] 实现的新的 Rust 编译器后端,基于 rust_codegen_ssa 开发 和 来自于 GCC 的 libgccjit 库。有了 rustc_codegen_gcc , Rust 可以通过 GCC 生成代码,在某些场景可以享受 GCC 产生的优化。
rustc_codegen_gcc 目前通过了整个核心测试套件;其余测试套件的工作正在进行中。rustc_codegen_gcc 受益于现有的基础设施,将测试注释为需要特定的后端,这样它就不会试图通过 LLVM 特定的测试。本来打算在 MCP 通过以后提交 PR,但是现在许可证上出现了问题。
rustc_codegen_gcc 使用与rustc相同的许可:双MIT / Apache-2.0。rustc_codegen_gcc所依赖的libgccjit库使用与GCC相同的许可。GPLv3-or-later。最初认为,这完全不会影响 rustc 的用户,也不会影响不构建或发布 GCC 后台的 rustc 的分销商。
但是经过 Rust 基金会与相关律师一起审查了这个许可证后,同意以下条款:
但是发现了一些问题:
为了解决许可证上述问题,Rust 编译器团队成员提出解决方案:
然后,libgccjit 的作者也来回复:
就在上个月, GCC 指导委员会也宣布将放弃长期以来要求所有代码贡献的版权转让给 FSF 的政策[7]。GCC 指导委员会表示,GCC 将继续在 GPLv3 下开发,但不再需要 FSF 的版权转让。相反,贡献者可以在他们的 Git 信息中使用带有 Signed-off-by 标签的 Developer Certificate of Origin(开发者起源证书)。
自由软件基金会成立于1985年。那时,Amiga 1000[8]计算机已经问世,C++ 成为了那时主宰计算机的编程语言,Aldus 的 PageMaker[9] 刚刚发布,计算机网络开始萌芽。同一年,Wham! 的 Careless Whisper[10] 风靡各地。
时光一晃,三十年过去了。FSF 代表的开源的旧世界观,能否和现代化的开源社区完美融合呢?这是一个问题,毕竟 捍卫 GPL 的法律工作已经做的足够完善了。
你怎么看待这个问题?请留言。
[1]
MCP: https://forge.rust-lang.org/compiler/mcp.html
[2]
Merge rustc_codegen_gcc backend as compiler/rustc_codegen_gcc issues#442: https://github.com/rust-lang/compiler-team/issues/442
[3]
rustc_codegen_gcc
: https://github.com/antoyo/rustc_codegen_gcc
[4]
antoyo: https://github.com/antoyo
[5]
文件夹: https://github.com/antoyo/rustc_codegen_gcc/tree/master/gcc-patches
[6]
邮件列表主题: https://gcc.gnu.org/legacy-ml/jit/2017-q3/msg00014.html
[7]
GCC 指导委员会也宣布将放弃长期以来要求所有代码贡献的版权转让给 FSF 的政策: https://gcc.gnu.org/pipermail/gcc/2021-June/236182.html
[8]
Amiga 1000: https://en.wikipedia.org/wiki/Amiga_1000
[9]
Aldus 的 PageMaker: https://en.wikipedia.org/wiki/Adobe_PageMaker
[10]
Careless Whisper: https://www.youtube.com/watch?v=izGwDsrQ1eQ