Users Guide

Table Of Contents
式連結至程式庫,必須提供完整的物件檔案給收受者,使其能在變更程式庫並重新編譯後,將檔案重新連結至程式庫。此外,
必須向其展示這些條款,使其知悉自己的權利。我們保護權利的方法有兩個步驟:(1) 程式庫取得版權,以及 (2) 提供本授
權,賦予複製、散佈及/或修改程式庫的法律許可。此外,保護各個散佈者,我們必須確定所有人皆瞭解此自由程式庫沒有擔
保。若某人修改並傳遞程式庫,我們需要其收受者知悉所取得的項目並非原始版本,因此由他人造成的問題將不會影響原始作者的
聲譽。最後,任何自由程式都會不斷地受到軟體專利的威脅。我們希望避免散佈自由軟體的公司個別取得專利授權,並因此實際上
將程式轉化專屬軟體的威脅。避免此情況發生,我們在此明確聲明任何專利都必須了每個人的自由使用而核准,否則就不應
核准專利。大多數的 GNU 軟體,包括部分程式庫,皆涵蓋在針對公用程式所設計的一般 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) 若作品的散佈是提供從指定位
第三方授權 23