GCC 運行庫例外

版本 3,2009 年 1 月 27 日

聲明

  This is an unofficial translation of the GCC Runtime Library Exception into Chinese. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GCC Runtime Library Exception--only the original English text of the GCC Runtime Library Exception does that. However, we hope that this translation will help Chinese speakers understand the GCC Runtime Library Exception better. You may publish this translation, modified or unmodified, only under the terms at http://www.gnu.org/licenses/translations.html
  這是GNU通用公共授權合約的一份非官方中文翻譯,並非自由軟體基金會所發表,不適用於使用GNU通用公共授權合約發佈的軟體的法律聲明——只有GNU通用公共授權合約英文原版才具有法律效力。不過我們希望本翻譯能夠幫助中文讀者更好地理解GNU通用公共授權合約。 您可以僅根據http://www.gnu.org/licenses/translations.html中的條款發布此修改或未修改的翻譯。

正文

版權所有 (C) 2009 Free Software Foundation, Inc.

允許任何人複製和分發該許可證文檔的完整拷貝,但是不允許更改。

這份《GCC 運行庫例外》(簡稱“例外”,Exception)是基於《GNU 通用公共許可證,版本 3》(“GPLv3”,GNU General Public License, version 3)第 7 條的附加許可。它適用於某個給定的文件(也就是“運行庫”,Runtime Library),版權所有者在該文件中設置告示,聲明該文件受 GPLv3 及本例外管轄。

當你使用 GCC 編譯程序時,GCC 可能會將多個部分的 GCC 頭文件及運行庫與編譯後的程式聯結在一起。本例外旨在允許編譯使用非 GPL (包括專有的)程式,在這裏,本例外涵蓋了頭文件和運行庫。

0. 定義

文件是一個“獨立模組”(Independent Module),無論其在編譯過程(Compilation Process)之後需要運行庫(Runtime Library)來執行,抑或利用運行庫提供的某個介面,但除了基於該運行庫的情況之外。

“GCC” 表示 GNU 編譯器集(GNU Compiler Collection)的某個版本,已作或未作修改,受 GNU 通用公共許可證(GPL,GNU General Public License)版本 3(或者某個特定的較新版本)管轄,可選擇使用自由軟體基金會(FSF)發佈的任何後續 GPL 版本。

“GPL 相容軟體”(GPL-compatible Software)是一種符合 GCC 許可證,允許與 GCC 結合進行傳播、修改和使用的軟體。

“目標代碼”(Target Code)指來自任何編譯器的輸出結果,無論是針對真實或虛擬的目標處理器體系結構的編譯器。它以可執行的形態存在,或適合作爲某個彙編器、載入器、鏈結器以及/或執行階段的輸入。儘管如此,目標代碼不包括任何格式的作爲編譯器中間表示(intermediate representation)的資料,或用來産生編譯器中間表示的資料。

“編譯過程”(Compilation Process)將完全在高級層面表示的非中間語言代碼轉變爲目標代碼。因此,舉例來說,使用源代碼生成器和預處理器,則無需認爲是編譯過程的一部分,因爲編譯過程可被理解爲從生成器或預處理器的輸出結果開始。

編譯過程是“合格”(Eligible)的,如果它使用 GCC,單獨或與其他 GPL 相容軟體一起完成,或者如果它沒有使用任何基於 GCC 的軟體完成該過程亦可。例如,使用非 GPL 相容的軟體來優化任何 GCC 中間表示則不是一個合格的編譯過程。

1. 附加許可授權

你有權傳播一份由運行庫(Runtime Library)和獨立模組(Independent Modules)聯結形成的目標代碼(Target Code),即使這種傳播可能違反 GPLv3 的規定,但條件是所有目標代碼經由合格(Eligible)的編譯過程(Compilation Process)生成。然後,你可以基於所選擇的條款傳輸這個結合體,與獨立模組的許可一致。

2. 不得弱化 GCC 的開放版權(Copyleft)

本例外(Exception)的存在並不意味著任何一般的推定,即第三方軟體不受 GCC 許可證中開放版權(copyleft)要求的影響。

聯絡我們Samuel Chong<schong2@go.pasadena.edu>