GNU GPL 許可證常見問題解答(五)
本文由高級諮詢師薛亮據自由軟體基金會(FSF)的英文原文翻譯而成,這篇常見問題解答澄清了在使用 GNU 許可證中遇到許多問題,對於企業和軟體開發者在實際應用許可證和解決許可證問題時具有很強的實踐指導意義。
- 關於 GNU 項目、自由軟體基金會(FSF)及其許可證的基本問題
- 對於 GNU 許可證的一般了解
- 在您的程序中使用 GNU 許可證
- 依據GNU許可證分發程序
- 在編寫其他程序時採用依據 GNU 許可證發布的程序
- 將作品與依據 GNU 許可證發布的代碼相結合
- 關於違反 GNU 許可證的問題
5 在編寫其他程序時採用依據 GNU 許可證發布的程序
5.1 我可以在同一台電腦上安裝一個遵循 GPL 許可證的程序和一個不相關的非自由程序嗎?(同 2.3)
可以。
5.2 我可以使用遵循 GPL 許可證的編輯器(例如 GNU Emacs)來開發非自由程序嗎?我可以使用遵循 GPL 許可證的工具(例如 GCC)來編譯它們嗎?
可以,因為編輯器和工具的版權並不覆蓋您所編寫的代碼。從法律上來說,使用它們不會對適用於您代碼的許可證施加任何限制。
有些程序出於技術原因將其自身某些部分複製到輸出文件中,例如,Bison 將標準解析器程序複製到其輸出文件中。在這種情況下,輸出文件中複製的文本遵循其在源代碼中所遵循的相同許可證。同時,源自程序輸入部分的輸出部分繼承輸入部分的版權狀態。
正因為如此,Bison 也可以用來開發非自由程序。這是因為我們決定明確允許在 Bison 輸出文件中不受限制地使用 Bison 標準解析器程序。我們之所以做出這個決定,是因為還有其他與 Bison 相媲美的工具已被許可用於非自由程序。
5.3 有沒有一些方法可以讓使用我的程序的人們得到的輸出物遵循 GPL?例如,如果我的程序用於開發硬體設計,我可以要求這些設計必須是自由的嗎?(同 3.17)
一般來說,這在法律上是不可能的;針對人們通過使用您的程序獲取數據形成的輸出物如何使用,版權法並沒有賦予您任何發言權。如果用戶使用您的程序輸入或轉換自己的數據,輸出物的版權屬於他,而不是您。更一般來說,當程序將其輸入物轉換成其他形式時,輸出物的版權狀態將繼承其得以生成的輸入物的版權狀態。
所以您對輸出物的使用擁有發言權的唯一方式是輸出物的實質部分(或多或少)是從您程序的文本中複製出來。例如,如果我們在這種具體情況下沒有例外,那麼Bison的一部分輸出物(參見問題 5.2)將被 GNU GPL 所涵蓋。
所以,即使沒有技術原因,您也可以人為製作一個程序,將某些文本複製到其輸出物中。但是,如果複製的文本沒有實際用途,用戶可以簡單地從輸出物中刪除該文本,並且僅使用其餘的內容。那麼他就不必滿足重新分發所複製文本的條件。
5.4 在什麼情況下,遵循 GPL 的程序其輸出文件也必須遵循 GPL 呢?
程序的輸出文件通常不受程序代碼的版權保護。因此,程序代碼的許可證不適用於輸出文件,無論是將其導入文件,還是製作屏幕截圖、屏幕錄像或視頻。
例外情況是,程序全屏顯示來源於程序的文本和/或藝術品。該文本和/或藝術品的版權則會覆蓋其輸出文件。輸出音頻的程序(例如視頻遊戲)也將適用於此例外。
如果藝術品/音樂遵循 GPL,則無論您如何進行複製,GPL 都適用。不過, 合理使用 可能仍然適用。
請記住,一些程序,特別是視頻遊戲,可以具有與底層遵循 GPL 的遊戲分開許可的藝術品/音頻。在這種情況下,藝術品/音頻的許可證將規定視頻/流媒體可以依之產生的條款。另請參閱:1.6 我可以將GPL應用於軟體以外的其他作品嗎?
5.5 如果我將我的程序移植到 GNU/Linux,這是否意味著我必須將其作為遵循 GPL 或其他自由軟體許可證的自由軟體進行發布?
一般來說,答案是否定的——這不是法律規定。具體來說,答案取決於您要使用哪些庫以及許可證。大多數系統庫都使用 GNU LGPL 許可證,或者使用 GNU GPL 加上允許將庫與任何東西鏈接的例外聲明。這些庫可以在非自由程序中使用;但是在 LGPL 的情況下,它確實有一些必須遵循的要求。
一些庫依據 GNU GPL 單獨發布;您必須使用與 GPL 兼容的許可證才能使用這些庫。但是這些通常是更特定的庫,而在另一個平台不會有任何類似它們的庫,所以您可能不會想要簡單地移植使用這些庫。
當然,如果您的軟體不是自由軟體,它不會對我們的社區做出貢獻,而重視軟體自由的人也會拒絕使用它。只有願意放棄軟體自由的人才會使用您的軟體,這意味著它將有效地成為人們失去軟體自由的誘因。
如果您希望有一天回頭看您的職業生涯,覺得它有助於發展一個善良和自由的社會,您需要使您的軟體成為自由軟體。
5.6 我想將遵循 GPL 的軟體納入我的專有系統。我只依據 GPL 給予我的許可權來使用該軟體。我可以這樣做嗎?
您不能將遵循 GPL 的軟體納入專有系統。GPL 的目標是授予每個人複製、再分發、理解和修改程序的自由。如果您可以將遵循 GPL 的軟體整合到非自由系統中,則可能會使遵循 GPL 的軟體不再是自由軟體。
包含遵循 GPL 程序的系統是該 GPL 程序的擴展版本。GPL 規定,如果它最終發布的話,任何擴展版本的程序必須依據 GPL 發布。這有兩個原因:確保獲得軟體的用戶獲得自己應該擁有的自由,並鼓勵人們回饋他們所做的改進。
但是,在許多情況下,您可以將遵循 GPL 的軟體與專有系統一起分發。要有效地做到這一點,您必須確保自由和非自由程序之間的通信保持 一定距離 ,而不是將它們有效地結合成一個程序。
這種情況與「納入」遵循 GPL 的軟體之間的區別,部分是實質問題,部分是形式問題。實質上是這樣的:如果兩個程序結合起來,使它們成為一個程序的兩個部分,那麼您不能將它們視為兩個單獨的程序。所以整個作品必須遵循 GPL。
如果這兩個程序保持良好的分離,就像編譯器和內核,或者像編輯器和 shell 一樣,那麼您可以將它們視為兩個單獨的程序,但是您必須恰當執行。這個問題只是一個形式問題:您如何描述您在做什麼。為什麼我們關心這個?因為我們想確保用戶清楚地了解軟體集合中遵循 GPL 的軟體的自由狀態。
如果人們分發遵循 GPL 的軟體,將其稱為系統(用戶已經知曉其中一部分為專有軟體)的「一部分」,用戶可能不確定其對遵循 GPL 的軟體所擁有的權利。但是如果他們知道他們收到的是一個自由程序加上另外一個程序,那麼他們的權利就會很清楚。
5.7 如果我分發了一個與我修改後的遵循 LGPL v3 的庫相鏈接的專有程序,那麼為了確定我正在做出的明確的專利許可授權的範圍, 「貢獻者版本」 是什麼?它僅是庫,還是整個組合?
「貢獻者版本」僅是您的庫版本。
5.8 依據 AGPL v3,當我根據第 13 節修改程序時,必須提供什麼樣的 相應源代碼 ?
「相應源代碼」在許可證的第 1 節中定義,您應該提供其列出的內容。因此,如果您的修改版本取決於遵循其他許可證的庫,例如 Expat 許可證或 GPL v3,則相應源代碼應包括這些庫(除非是系統庫)。如果您修改了這些庫,則必須提供您修改後的源代碼。
第 13 節第一段的最後一句只是為了強化大多數人所自然地認為的那樣:儘管在第 13 節中通過特殊例外來處理與遵循 GPL v3 的代碼相結合的情況,相應源代碼仍然應該包括以這種方式與程序相結合的代碼。這句話並不意味著您只需提供 GPL v3 所涵蓋的源代碼;而是意味著這樣的代碼不會從相應源代碼的定義中排除。
5.9 在哪裡可以了解更多有關 GCC 運行時庫例外的信息?
GCC 運行時庫例外包含 libgcc、libstdc ++、libfortran、libgomp、libdecnumber 以及與 GCC 一起分發的其他庫。這個例外是為了讓人們根據自己選擇的條件分發用 GCC 編譯的程序,即使這些庫的一部分作為編譯過程的一部分被包含在可執行文件中。要了解更多信息,請閱讀有關 GCC 運行時庫例外的常見問題。
譯者介紹:薛亮,集慧智佳知識產權諮詢公司高級諮詢師,擅長專利檢索、專利分析、競爭對手跟蹤、FTO 分析、開源軟體知識產權風險分析,致力於為互聯網企業、高科技公司提供知識產權諮詢服務。
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive