GNU GPL 許可證常見問題解答(五):在編寫其他程序時採用依據 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 都適用。不過,合理使用fair use可能仍然適用。

請記住,一些程序,特別是視頻遊戲,可以具有與底層遵循 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 的軟件與專有系統一起分發。要有效地做到這一點,您必須確保自由和非自由程序之間的通信保持一定距離arms length,而不是將它們有效地結合成一個程序。

這種情況與“納入”遵循 GPL 的軟件之間的區別,部分是實質問題,部分是形式問題。實質上是這樣的:如果兩個程序結合起來,使它們成爲一個程序的兩個部分,那麼您不能將它們視爲兩個單獨的程序。所以整個作品必須遵循 GPL。

如果這兩個程序保持良好的分離,就像編譯器和內核,或者像編輯器和 shell 一樣,那麼您可以將它們視爲兩個單獨的程序,但是您必須恰當執行。這個問題只是一個形式問題:您如何描述您在做什麼。爲什麼我們關心這個?因爲我們想確保用戶清楚地瞭解軟件集合中遵循 GPL 的軟件的自由狀態。

如果人們分發遵循 GPL 的軟件,將其稱爲系統(用戶已經知曉其中一部分爲專有軟件)的“一部分”,用戶可能不確定其對遵循 GPL 的軟件所擁有的權利。但是如果他們知道他們收到的是一個自由程序加上另外一個程序,那麼他們的權利就會很清楚。

5.7 如果我分發了一個與我修改後的遵循 LGPL v3 的庫相鏈接的專有程序,那麼爲了確定我正在做出的明確的專利許可授權的範圍,“貢獻者版本”contributor

version是什麼?它僅是庫,還是整個組合?

“貢獻者版本”僅是您的庫版本。

5.8 依據 AGPL v3,當我根據第 13 節修改程序時,必須提供什麼樣的相應源代碼Corresponding Source?

“相應源代碼”在許可證的第 1 節中定義,您應該提供其列出的內容。因此,如果您的修改版本取決於遵循其他許可證的庫,例如 Expat 許可證或 GPL v3,則相應源代碼應包括這些庫(除非是系統庫)。如果您修改了這些庫,則必須提供您修改後的源代碼。

第 13 節第一段的最後一句只是爲了強化大多數人所自然地認爲的那樣:儘管在第 13 節中通過特殊例外來處理與遵循 GPL v3 的代碼相結合的情況,相應源代碼仍然應該包括以這種方式與程序相結合的代碼。這句話並不意味着您只需提供 GPL v3 所涵蓋的源代碼;而是意味着這樣的代碼不會從相應源代碼的定義中排除。

5.9 在哪裏可以瞭解更多有關 GCC 運行時庫例外的信息?

GCC 運行時庫例外包含 libgcc、libstdc ++、libfortran、libgomp、libdecnumber 以及與 GCC 一起分發的其他庫。這個例外是爲了讓人們根據自己選擇的條件分發用 GCC 編譯的程序,即使這些庫的一部分作爲編譯過程的一部分被包含在可執行文件中。要了解更多信息,請閱讀有關 GCC 運行時庫例外的常見問題。

譯者介紹:薛亮,集慧智佳知識產權諮詢公司高級諮詢師,擅長專利檢索、專利分析、競爭對手跟蹤、FTO 分析、開源軟件知識產權風險分析,致力於爲互聯網企業、高科技公司提供知識產權諮詢服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章