2012-10-09 40 views
7

我已經問過類似的question之前,但這次我想專注於go語言。我一直在閱讀wiki page of go language,並意識到BSD style + Patent grant的摘要中有一個許可證段。我知道,也有gcc前端爲go,我猜有一個像GPL許可的東西雖然沒有在wiki頁面沒有提到它,這讓我納悶:去語言許可

是提到BSD許可證旨在用於:

  • 編譯器
  • 和/或語言
  • 和/或標準庫

如果有這樣的區別呢?

一個實際的答案會受到歡迎(即我如何可以授權源或二進制?),以及作爲對比舊的語言(CC++Java)如果有的話..

+4

我投票結束這個問題作爲題外話,因爲**它是關於許可或法律問題**,而不是編程或軟件開發。 [見這裏](http://meta.stackoverflow.com/a/274964/1402846)瞭解更多信息,以及[幫助/話題]。 –

回答

6

Go的大多數部分的許可證號爲three-clause BSD style licensepatent grant。這包括gc編譯器,標準庫和其他相關工具。有兩個值得注意的例外,我知道:

language specification和其他網站文檔是根據知識共享署名3.0許可證授權的。滾動到golang.org上任何頁面的最底部以查看。 (我想這意味着某些源代碼評論的許可方式是一樣的,這看起來有點奇怪。)

gccgo的前端使用與Go的其餘部分相同的BSD樣式許可證,但是因爲它必須與其餘的gcc,它是有效的GPLv3。 (請注意,與janneb的說法相反,gccgo不會與其他編譯器共享任何代碼,它確實共享一些運行時代碼。)

正在不斷努力將gccgo前端依賴於gcc的部分分開它可以用作其他Go編譯器的前端,比如基於LLVM的編譯器。這樣的編譯器可以在BSD風格的許可證下完全發佈。

+0

與GNU C運行時間的鏈接不包括在GPL許可要求中,以便開放源代碼: http://stackoverflow.com/questions/10838807/license-of-runtime-libraries-included-in-gcc https://www.gnu.org/licenses/gcc-exception-3.1。html 我對這些內容的閱讀導致我相信,您不需要開源代碼就可以簡單地使用一些C庫來引入GNU C運行時。 –

+0

我並沒有聲稱gccgo的前端是GPL,因爲它鏈接到libc,但是因爲它鏈接到很多GCC,而不是(據我所知)有一個排除。已經努力將前端與海灣合作委員會分開,但我認爲它們不完整,目前處於非活動狀態。 –

+0

啊,現在我明白你的意思了,@Evan Shaw。這也有助於澄清我的事情: 「gccgo編譯器是廣泛使用的GNU編譯器GCC的新前端,儘管前端本身處於BSD樣式的許可證下,但gccgo通常用作GCC的一部分,覆蓋GNU通用公共許可證(該許可證涵蓋gccgo本身作爲GCC的一部分;它不包括由gccgo生成的代碼「 https://golang.org/doc/install/gccgo –

0

的BSD許可證適用於編譯器和標準庫。我不知道「語言本身」是什麼許可證;這甚至意味着什麼,語言規範的文本,或?

GCC的前端也是BSD許可的(AFAIK它與其他go編譯器共享代碼),儘管GCC編譯器的其餘部分仍然在GPLv3下。