我之前也曾问过类似的问题,但是这次我想专注于go语言。我一直在阅读Go语言的Wiki页面,并意识到摘要中有一个许可部分,内容为BSDstyle + Patentgrant。我知道还有一个gcc前端go,我猜想它有类似GPL许可证的内容,尽管在Wiki页面中没有提及它,这使我感到奇怪:
go
BSDstyle + Patentgrant
gcc
GPL
所提到的BSD许可证是否旨在:
BSD
是否有这些区别?
一个实用的答案会受到欢迎(即我如何可以授权源或二进制?),以及旧的语言对比(C,C++,Java如果有的话)..
C
C++
Java
Go的大多数部分均按照三条款BSD样式许可和专利授权进行许可。这包括gc编译器,标准库和其他相关工具。我知道有两个值得注意的例外:
在语言规范和其他文件的网站都在Creative Commons Attribution 3.0许可协议进行许可。滚动到golang.org上任何页面的最底部以查看。(我想这意味着某些源代码注释是以相同方式获得许可的,这似乎有些奇怪。)
gccgo的前端与Go的其余部分使用相同的BSD样式许可,但是由于必须与gcc的其余部分链接,因此它实际上是GPLv3。(请注意,与janneb的主张相反,gccgo不与其他编译器共享任何代码。它确实共享一些运行时代码。)
正在进行不断的工作以分离出依赖于gcc的gccgo前端部分,以便将其用作其他Go编译器(例如基于LLVM的编译器)的前端。这样的编译器可以完全在BSD样式许可下发布。