GNU 庫通用公共許可證,版本 2.0

跳到許可證條款

請注意,GNU 庫通用公共許可證已被 GNU 較寬鬆通用公共許可證 取代。

我們敦促所有人使用 GNU 較寬鬆通用公共許可證 來取代此 GNU 庫 GPL。我們在此保留庫 GPL 以供歷史參考。


目錄


GNU 庫通用公共許可證

版本 2,1991 年 6 月

Copyright (C) 1991 Free Software Foundation, Inc.
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

[This is the first released version of the library GPL.  It is
 numbered 2 because it goes with version 2 of the ordinary GPL.]

序言

大多數軟體的許可證旨在剝奪您分享和變更它的自由。 相反地,GNU 通用公共許可證旨在保證您分享和變更自由軟體的自由——確保軟體對其所有使用者都是自由的。

此許可證,即庫通用公共許可證,適用於某些特別指定的自由軟體基金會軟體,以及任何其他作者決定使用它的函式庫。 您也可以將其用於您的函式庫。

當我們談論自由軟體時,我們指的是自由,而不是價格。 我們的通用公共許可證旨在確保您有自由散布自由軟體的副本(如果您願意,也可以為此服務收費)、您收到原始碼或可以在需要時取得它、您可以變更軟體或在新自由程式中使用它的片段;以及您知道您可以做這些事情。

為了保護您的權利,我們需要做出限制,禁止任何人拒絕您這些權利或要求您放棄這些權利。 如果您散布函式庫的副本,或如果您修改它,這些限制會轉化為您的一些責任。

例如,如果您散布函式庫的副本,無論是免費還是收費,您都必須將我們給您的所有權利給予接收者。 您必須確保他們也收到或可以取得原始碼。 如果您將程式與函式庫連結,您必須向接收者提供完整的目標檔案,以便他們可以在變更函式庫並重新編譯後將它們與函式庫重新連結。 而且您必須向他們展示這些條款,以便他們了解自己的權利。

我們保護您權利的方法有兩個步驟:(1) 為函式庫取得著作權,以及 (2) 向您提供此許可證,讓您在法律上可以合法複製、散布和/或修改函式庫。

此外,為了保護每個散布者的權益,我們希望確保每個人都了解此自由函式庫沒有任何擔保。 如果函式庫被其他人修改並傳遞下去,我們希望其接收者知道他們擁有的不是原始版本,以便其他人引入的任何問題都不會反映在原始作者的聲譽上。

最後,任何自由程式都 постоянно受到軟體專利的威脅。 我們希望避免公司散布自由軟體會個別取得專利許可的危險,從而實際上將程式轉變為專有軟體。 為了防止這種情況發生,我們已明確規定,任何專利都必須授權所有人免費使用,否則根本不授權。

大多數 GNU 軟體,包括一些函式庫,都受普通 GNU 通用公共許可證的保護,該許可證是為公用程式程式設計的。 此許可證,即 GNU 庫通用公共許可證,適用於某些指定的函式庫。 此許可證與普通許可證截然不同;務必完整閱讀它,並且不要假設其中的任何內容與普通許可證中的內容相同。

我們為某些函式庫提供單獨的公共許可證的原因是,它們模糊了我們通常在修改或新增程式以及僅僅使用程式之間劃分的界線。 將程式與函式庫連結,而不變更函式庫,在某種意義上只是使用函式庫,並且類似於執行公用程式程式或應用程式。 然而,在文字和法律意義上,連結的可執行檔是一個組合作品,是原始函式庫的衍生作品,而普通的通用公共許可證將其視為如此。

由於這種模糊的區別,為函式庫使用普通的通用公共許可證並未有效地促進軟體共享,因為大多數開發人員並未使用這些函式庫。 我們得出結論,較寬鬆的條件可能會更好地促進共享。

然而,無限制地連結非自由程式將剝奪這些程式的使用者從函式庫本身的自由狀態中獲得的所有好處。 此庫通用公共許可證旨在允許非自由程式的開發人員使用自由函式庫,同時保留您作為此類程式使用者的自由,以變更其中包含的自由函式庫。 (我們尚未看到如何在標頭檔案的變更方面實現這一點,但我們已在函式庫的實際功能變更方面實現了這一點。) 希望這將導致自由函式庫的更快開發。

複製、散布和修改的精確條款和條件如下。 請密切注意「基於函式庫的作品」和「使用函式庫的作品」之間的區別。 前者包含源自函式庫的程式碼,而後者僅與函式庫協同工作。

請注意,函式庫有可能受普通的通用公共許可證而非此特殊許可證的保護。

複製、散布與修改的條款與條件

0. 本授權協議適用於任何包含著作權持有人或其他授權方發布的通知的軟體函式庫,聲明該函式庫可以根據本庫通用公共許可證(也稱為「本許可證」)的條款散布。 每個被授權人都被稱為「您」。

「函式庫」是指軟體功能和/或資料的集合,其準備方式是為了方便地與應用程式(使用其中一些功能和資料)連結以形成可執行檔。

以下「函式庫」是指已根據這些條款散布的任何此類軟體函式庫或作品。「基於函式庫的作品」是指函式庫或著作權法下的任何衍生作品:也就是說,包含函式庫或其一部分的作品,無論是逐字逐句還是經過修改和/或直接翻譯成另一種語言。 (此後,「翻譯」一詞包含在「修改」一詞中,不受限制。)

作品的「原始碼」是指用於對其進行修改的作品的首選形式。 對於函式庫,完整的原始碼是指它包含的所有模組的所有原始碼,加上任何相關的介面定義檔案,以及用於控制函式庫的編譯和安裝的腳本。

複製、散布和修改以外的活動不在本許可證的範圍內;它們超出其範圍。 執行使用函式庫的程式的行為不受限制,並且來自此類程式的輸出僅在其內容構成基於函式庫的作品(獨立於在用於編寫它的工具中使用函式庫)的情況下才受保護。 這是否屬實取決於函式庫的作用以及使用函式庫的程式的作用。

1. 您可以以您收到的任何媒介複製和散布函式庫完整原始碼的逐字副本,前提是您在每個副本上顯著且適當地發布適當的著作權聲明和免責聲明;完整保留所有提及本許可證和不存在任何擔保的通知;並隨函式庫散布本許可證的副本。

您可以為轉移副本的實體行為收費,並且您可以選擇提供擔保保護以換取費用。

2. 您可以修改您的函式庫副本或其任何部分,從而形成基於函式庫的作品,並根據上述第 1 節的條款複製和散布此類修改或作品,前提是您也滿足所有這些條件

  • a) 修改後的作品本身必須是軟體函式庫。
  • b) 您必須使修改後的檔案帶有顯著的通知,說明您變更了檔案以及任何變更的日期。
  • c) 您必須使整個作品根據本許可證的條款免費授權給所有第三方。
  • d) 如果修改後的函式庫中的設施引用了應用程式提供的功能或資料表,而不是在調用設施時傳遞的參數,那麼您必須盡力確保,如果應用程式未提供此類功能或表格,該設施仍然可以運作,並執行其目的中仍然有意義的部分。

    (例如,函式庫中計算平方根的函式具有完全明確的目的,與應用程式無關。 因此,第 2d 小節要求此函式使用的任何應用程式提供的函式或表格都必須是可選的:如果應用程式未提供,則平方根函式仍必須計算平方根。)

這些要求適用於作為一個整體的修改後的作品。 如果該作品的可識別部分不是從函式庫衍生而來,並且可以合理地被視為獨立且分開的作品本身,那麼當您將它們作為單獨的作品散布時,本許可證及其條款不適用於這些部分。 但是,當您將相同的部分作為一個整體的一部分散布時,該整體是基於函式庫的作品,則整個作品的散布必須符合本許可證的條款,本許可證對其他被授權人的許可擴展到整個作品,因此也擴展到每個部分,無論是誰編寫的。

因此,本節的目的不是聲稱權利或質疑您對完全由您編寫的作品的權利; 相反,目的是行使控制基於函式庫的衍生作品或集體作品散布的權利。

此外,僅僅將另一個非基於函式庫的作品與函式庫(或基於函式庫的作品)在儲存或散布媒體的卷上聚合,並不會使另一個作品納入本許可證的範圍。

3. 您可以選擇將普通 GNU 通用公共許可證的條款應用於給定函式庫副本,而不是本許可證。 為此,您必須變更所有提及本許可證的通知,使其提及普通 GNU 通用公共許可證版本 2,而不是本許可證。 (如果出現了比普通 GNU 通用公共許可證版本 2 更新的版本,那麼如果您願意,您可以指定該版本。) 請勿對這些通知進行任何其他變更。

一旦在給定副本中進行了此變更,它對於該副本來說是不可逆轉的,因此普通的 GNU 通用公共許可證適用於從該副本製作的所有後續副本和衍生作品。

當您希望將函式庫的部分程式碼複製到非函式庫的程式中時,此選項很有用。

4. 您可以根據上述第 1 節和第 2 節的條款,以目標程式碼或可執行形式複製和散布函式庫(或其一部分或衍生作品,根據第 2 節),前提是您隨附完整的相應機器可讀原始碼,該原始碼必須根據上述第 1 節和第 2 節的條款在通常用於軟體交換的媒介上散布。

如果目標程式碼的散布是通過提供從指定地點複製的權限來實現的,那麼提供從同一地點複製原始碼的等效權限即可滿足散布原始碼的要求,即使第三方沒有被強制與目標程式碼一起複製原始碼。

5. 不包含函式庫任何部分的衍生作品,但設計為通過與函式庫編譯或連結來與函式庫一起工作的程式,稱為「使用函式庫的作品」。 此類作品,單獨而言,不是函式庫的衍生作品,因此不屬於本許可證的範圍。

然而,將「使用函式庫的作品」與函式庫連結會建立一個可執行檔,該可執行檔是函式庫的衍生作品(因為它包含函式庫的部分),而不是「使用函式庫的作品」。 因此,可執行檔受本許可證的保護。 第 6 節規定了此類可執行檔的散布條款。

當「使用函式庫的作品」使用來自函式庫一部分的標頭檔案的資料時,即使原始碼不是,該作品的目標程式碼也可能是函式庫的衍生作品。 如果作品可以在沒有函式庫的情況下連結,或者如果作品本身就是函式庫,則這尤其重要。 法律並未精確定義此情況為真的門檻。

如果此類目標檔案僅使用數值參數、資料結構佈局和存取器,以及小型巨集和小型的內聯函式(少於十行),則目標檔案的使用不受限制,無論它在法律上是否是衍生作品。 (包含此目標程式碼加上函式庫部分的執行檔仍將屬於第 6 節。)

否則,如果作品是函式庫的衍生作品,您可以根據第 6 節的條款散布該作品的目標程式碼。 任何包含該作品的可執行檔也屬於第 6 節,無論它們是否直接與函式庫本身連結。

6. 作為對上述章節的例外,您也可以編譯或連結「使用函式庫的作品」與函式庫以產生包含函式庫部分的作品,並根據您選擇的條款散布該作品,前提是這些條款允許修改作品以供客戶自己使用,以及為了除錯此類修改而進行逆向工程。

您必須在作品的每個副本上顯著通知,說明其中使用了函式庫,並且函式庫及其使用受本許可證的保護。 您必須提供本許可證的副本。 如果作品在執行期間顯示著作權聲明,您必須在其中包含函式庫的著作權聲明,以及引導使用者查閱本許可證副本的參考資料。 此外,您必須執行以下操作之一

  • a) 隨附作品提供函式庫的完整相應機器可讀原始碼,包括作品中使用的任何變更(必須根據上述第 1 節和第 2 節散布);並且,如果作品是與函式庫連結的可執行檔,則提供完整的機器可讀「使用函式庫的作品」,以目標程式碼和/或原始碼的形式,以便使用者可以修改函式庫,然後重新連結以產生包含修改後函式庫的修改後可執行檔。 (據了解,變更函式庫中定義檔案內容的使用者不一定能夠重新編譯應用程式以使用修改後的定義。)
  • b) 隨附作品提供書面要約,有效期至少為三年,以不超過執行此散布的成本的費用,向同一使用者提供上述第 6a 小節中規定的資料。
  • c) 如果作品的散布是通過提供從指定地點複製的權限來實現的,則提供從同一地點複製上述指定資料的等效權限。
  • d) 驗證使用者是否已收到這些資料的副本,或者您是否已向該使用者發送副本。

對於可執行檔,「使用函式庫的作品」的所需形式必須包括從中重製可執行檔所需的任何資料和公用程式程式。 然而,作為一個特殊例外,散布的原始碼不需要包括通常與執行可執行檔的作業系統的主要組件(編譯器、核心等等)一起散布的任何內容(以原始碼或二進位形式),除非該組件本身隨附可執行檔。

可能發生這種情況,即此要求與通常不隨附作業系統的其他專有函式庫的許可證限制相矛盾。 此類矛盾意味著您不能在您散布的可執行檔中同時使用它們和函式庫。

7. 您可以將基於函式庫的作品的函式庫設施與未受本許可證保護的其他函式庫設施並排放置在單個函式庫中,並散布此類組合函式庫,前提是基於函式庫的作品和另一個函式庫設施的單獨散布在其他方面是允許的,並且前提是您執行以下兩項操作

  • a) 隨附組合函式庫提供基於函式庫的相同作品的副本,未與任何其他函式庫設施組合。 這必須根據上述章節的條款散布。
  • b) 在組合函式庫中顯著通知,說明其一部分是基於函式庫的作品,並說明在哪裡可以找到相同作品的隨附未組合形式。

8. 除非本許可證明確規定,否則您不得複製、修改、再授權、與之連結或散布函式庫。 任何以其他方式複製、修改、再授權、與之連結或散布函式庫的企圖均屬無效,並將自動終止您在本許可證下的權利。 然而,根據本許可證從您那裡收到副本或權利的各方,只要這些各方保持完全合規,其許可證將不會終止。

9. 您無需接受本許可證,因為您沒有簽署它。 然而,沒有其他任何東西授予您修改或散布函式庫或其衍生作品的許可。 如果您不接受本許可證,法律禁止這些行為。 因此,通過修改或散布函式庫(或任何基於函式庫的作品),您表示您接受本許可證來執行此操作,以及其用於複製、散布或修改函式庫或基於函式庫的作品的所有條款和條件。

10. 每次您重新散布函式庫(或任何基於函式庫的作品)時,接收者都會自動從原始授權人那裡收到許可證,以根據這些條款和條件複製、散布、與之連結或修改函式庫。 您不得對接收者行使本文授予的權利施加任何進一步的限制。 您不負責強制第三方遵守本許可證。

11. 如果由於法院判決或專利侵權指控或任何其他原因(不限於專利問題),對您施加了與本許可證的條件相矛盾的條件(無論是通過法院命令、協議或其他方式),它們都不能免除您遵守本許可證的條件。 如果您無法散布以同時滿足您在本許可證下的義務和任何其他相關義務,那麼作為後果,您可能根本無法散布函式庫。 例如,如果專利許可證不允許所有直接或間接通過您收到副本的人免版稅地重新散布函式庫,那麼您可以同時滿足它和本許可證的唯一方法是完全避免散布函式庫。

如果本節的任何部分在任何特定情況下被認定為無效或不可執行,則本節的餘下部分旨在適用,並且本節作為一個整體旨在在其他情況下適用。

本節的目的不是引導您侵犯任何專利或其他財產權主張或質疑任何此類主張的有效性; 本節的唯一目的是保護通過公共許可證實務實施的自由軟體散布系統的完整性。 許多人依賴該系統的一致應用,為通過該系統散布的範圍廣泛的軟體做出了慷慨的貢獻; 作者/捐贈者有權決定他或她是否願意通過任何其他系統散布軟體,而被授權人不能強加該選擇。

本節旨在徹底闡明人們認為是本許可證其餘部分的一個結果。

12. 如果函式庫的散布和/或使用在某些國家/地區受到專利或受著作權保護的介面的限制,則將函式庫置於本許可證下的原始著作權持有人可以新增明確的地域散布限制,排除這些國家/地區,以便僅在未被如此排除的國家/地區或之間允許散布。 在這種情況下,本許可證將該限制納入,如同寫入本許可證正文一樣。

13. 自由軟體基金會可能會不時發布修訂和/或新版本的庫通用公共許可證。 此類新版本在精神上將與當前版本相似,但在細節上可能有所不同,以解決新的問題或疑慮。

每個版本都給定一個可區分的版本號。 如果函式庫指定適用於它的本許可證的版本號和「任何後續版本」,您可以選擇遵循該版本或自由軟體基金會發布的任何後續版本的條款和條件。 如果函式庫未指定許可證版本號,您可以選擇自由軟體基金會發布的任何版本。

14. 如果您希望將函式庫的部分內容納入其他自由程式中,而這些自由程式的散布條件與這些條件不相容,請寫信給作者請求許可。 對於自由軟體基金會擁有著作權的軟體,請寫信給自由軟體基金會;我們有時會為此破例。 我們的決定將以維護我們自由軟體的所有衍生作品的自由狀態以及促進軟體的共享和重用這兩個目標為指導。

無擔保

15. 由於函式庫是免費授權的,因此在適用法律允許的範圍內,函式庫不提供任何擔保。 除非著作權持有人和/或其他方另有書面聲明,否則他們「按原樣」提供函式庫,不提供任何形式的擔保,無論是明示的還是暗示的,包括但不限於對適銷性和特定用途適用性的暗示擔保。 關於函式庫的品質和效能的全部風險由您承擔。 如果函式庫證明有缺陷,您將承擔所有必要的維修、修理或更正的費用。

16. 在任何情況下,除非適用法律要求或書面同意,否則任何著作權持有人或任何其他可能按照上述許可修改和/或重新散布函式庫的一方,均不對您因使用或無法使用函式庫而引起的損害負責,包括任何一般性、特殊性、偶然性或後果性損害(包括但不限於資料遺失或資料被呈現為不準確或您或第三方遭受的損失或函式庫未能與任何其他軟體一起運作),即使此類持有人或其他方已被告知發生此類損害的可能性。

條款和條件結束

如何將這些條款應用於您的新函式庫

如果您開發了一個新的函式庫,並且您希望它對公眾發揮最大的作用,我們建議將其製作成自由軟體,讓每個人都可以重新散布和變更。 您可以通過允許根據這些條款(或替代地,根據普通的通用公共許可證的條款)重新散布來做到這一點。

要應用這些條款,請將以下通知附加到函式庫。 最安全的方法是將它們附加到每個原始碼檔案的開頭,以最有效地傳達免除擔保;並且每個檔案都應至少包含「著作權」行和指向完整通知所在位置的指針。

one line to give the library's name and an idea of what it does.
Copyright (C) year  name of author

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, see
<https://gnu.dev.org.tw/licenses/>.

另請新增有關如何通過電子郵件和紙本郵件與您聯繫的資訊。

如果需要,您還應該讓您的雇主(如果您是程式設計師)或您的學校(如果有的話)簽署函式庫的「著作權免責聲明」。 這是一個範例;變更名稱

Yoyodyne, Inc., hereby disclaims all copyright interest in
the library `Frob' (a library for tweaking knobs) written
by James Random Hacker.

signature of Moe Ghoul, 1 April 1990
Moe Ghoul, President of Vice

就是這樣了!