如何為您自己的軟體使用 GNU 授權條款

這是一個簡短的說明,關於如何將程式置於GNU 通用公共授權條款GNU 寬鬆通用公共授權條款GNU Affero 通用公共授權條款之下。關於GNU 自由文檔許可證,我們有一個獨立頁面

如需更多資訊,請參閱我們的關於我們的授權條款的常見問題列表。

如果您正在考慮使用 GNU 寬鬆通用公共授權條款,請先閱讀文章「為何您不應該為您的下一個函式庫使用 LGPL」。這篇文章解釋了為何使用普通的 GPL 可能會更好,以及我們將如何做出決定。

以下是您需要做的簡短摘要,以根據我們的其中一種授權條款發布程式

  • 從您的雇主或學校取得著作權免責聲明。
  • 在每個檔案中加入適當的著作權聲明。請確保清楚地標識使用者可以使用的授權條款版本
  • 加入一個 COPYING 檔案,其中包含 GNU GPL 或 GNU AGPL 的副本。
  • 如果您使用 GNU LGPL,也請加入一個 COPYING.LESSER 檔案,其中包含 GNU LGPL 的副本。
  • 在每個檔案中加入授權條款聲明。
  • (可選)讓程式顯示啟動聲明。
  • (如果使用 AGPL)讓程式提供其原始碼的副本。

這需要在您程式的每個原始碼檔案中加入兩個要素:著作權聲明(例如「Copyright 1999 Terry Jones」),以及複製許可聲明,說明該程式是根據 GNU 通用公共授權條款(或寬鬆 GPL,或 Affero GPL)的條款發布的。

如果您是個人,並且您有雇主或在學校就讀,明智的做法是請您的雇主或學校簽署您程式的著作權免責聲明,這樣他們以後就不能聲稱著作權屬於他們,並且您無權發布該程式。這實際上與 GNU GPL 無關——無論您使用哪種自由軟體授權條款發布程式,它都適用。

這是一個著作權免責聲明範例;只需根據需要更改名稱、職稱和程式描述

Yoyodyne 公司特此聲明放棄對 James Hacker 所撰寫的程式「啄木鳥」(用於解構樹木)的所有著作權權益。

Moe Ghoul 簽名 1989 年 4 月 1 日
Moe Ghoul,副總裁

如果您是大學生,我們建議您在撰寫程式的早期階段就要求免責聲明,以減少阻力。如果您不是研究助理或教學助理,大學可能對您的作品沒有著作權主張,但請諮詢律師以確保這一點。

如果您在職,協商發布自由軟體許可的最佳時機是在協商您的聘僱合約時

著作權聲明應包括您完成準備發布的年份(因此,如果您在 1998 年完成但直到 1999 年才發布,請使用 1998 年)。您應該為每個過去的發布版本添加適當的年份;例如,「Copyright 1998, 1999 Terry Jones」,如果某些發布版本在 1998 年完成,而某些發布版本在 1999 年完成。如果有多人協助編寫程式碼,請使用他們所有人的名字。

對於多年來多次發布的軟體,如果且僅當範圍內的每一年(包括在內)確實是「可享有著作權」的年份,並且會在個別列出時,使用範圍(「2008-2010」)而不是列出個別年份(「2008, 2009, 2010」)是可以接受的;並且您在文件中明確聲明了這種用法。

始終使用英文單詞「Copyright」;根據國際慣例,這在世界範圍內使用,即使對於其他語言的材料也是如此。著作權符號「©」可以包含在內,如果您願意(並且您的字符集支援它),但這不是必需的。使用三字符序列「(C)」沒有法律意義,但也沒有壞處。

如果您從其他以相同授權條款涵蓋的程式複製了程式碼,也請複製它們的著作權聲明。將檔案的所有著作權聲明放在一起,緊靠檔案的頂部。

授權條款檔案

您也應該在程式的發行版中的某處包含授權條款本身的副本。所有程式,無論它們是在 GPL 還是 LGPL 下發布,都應該包含GPL 的文字版本。在 GNU 程式中,我們習慣上將授權條款放在名為 COPYING 的檔案中。

如果您正在根據 GNU AGPL 發布您的程式,請使用GNU AGPL 的文字版本而不是 GNU GPL。

如果您正在根據寬鬆 GPL 發布您的程式,您也應該包含LGPL 的文字版本,通常在名為 COPYING.LESSER 的檔案中。請注意,由於 LGPL 是在 GPL 之上的一組額外許可,因此同時包含這兩個授權條款至關重要,以便使用者擁有理解其權利所需的所有材料。

授權條款聲明

每個檔案的複製許可聲明(也稱為授權條款聲明)應緊隨其著作權聲明之後。對於單檔案程式,聲明(對於 GPL)應如下所示,以使用 GPL 第 3 版或更高版本

此程式是自由軟體:您可以根據自由軟體基金會發布的 GNU 通用公共授權條款(第 3 版或(根據您的選擇)任何更高版本)重新發布和/或修改它。

發布此程式是希望它會有所用處,但*不提供任何擔保*;甚至不包含對適銷性或特定用途適用性的暗示擔保。請參閱 GNU 通用公共授權條款以取得更多詳細資訊。

您應該已收到與此程式一起提供的 GNU 通用公共授權條款副本。如果沒有,請參閱 <https://gnu.dev.org.tw/licenses/>。

對於多個檔案的程式,最好將「此程式」替換為程式的名稱,並以一行「此檔案是 NAME 的一部分」開頭。例如,

此檔案是 Foobar 的一部分。

Foobar 是自由軟體:您可以根據自由軟體基金會發布的 GNU 通用公共授權條款(第 3 版或(根據您的選擇)任何更高版本)重新發布和/或修改它。

發布 Foobar 是希望它會有所用處,但*不提供任何擔保*;甚至不包含對適銷性或特定用途適用性的暗示擔保。請參閱 GNU 通用公共授權條款以取得更多詳細資訊。

您應該已收到與 Foobar 一起提供的 GNU 通用公共授權條款副本。如果沒有,請參閱 <https://gnu.dev.org.tw/licenses/>。

要使用一組不同的 GPL 版本,您需要修改第一個長段的結尾。例如,要根據第 2 版或更高版本授權,您需要將「3」替換為「2」。

此聲明應位於每個原始碼檔案的開頭附近,靠近著作權聲明。當使用寬鬆 GPL 時,在*所有三個*位置中的「通用」之前插入單詞「寬鬆」。當使用 GNU AGPL 時,在*所有三個*位置中的「通用」之前插入單詞「Affero」。

為何要有授權條款聲明?

自由軟體授權條款的目的是賦予程式的所有使用者某些權利。如果不清楚您賦予了他們哪些權利,那就失去了目的。我們的做法旨在避免任何不確定性。

如果程式在原始碼檔案旁邊有一個授權條款 FOO 的副本,但沒有明確聲明「此程式是根據授權條款 FOO 發布的」,這會留下關於授權條款 FOO 是否適用於該程式碼的程式碼的不確定性。

如果發布版在諸如 README 檔案的中心位置有一個聲明「此程式是根據授權條款 FOO 發布的」,這使得*該發布版*的情況清晰明瞭。但是,程式設計師經常將原始碼檔案從一個自由程式複製到另一個程式中。如果原始碼檔案不包含關於其授權條款的聲明,那麼將其移動到另一個上下文中會消除該點的所有痕跡。這會引起混淆和錯誤。

啟動聲明

對於互動式程式,通常最好讓程式在啟動時顯示關於著作權和複製許可的簡短聲明。請參閱GNU GPL 的結尾以取得關於此的更多資訊。

Affero 聲明

如果您正在根據 GNU AGPL 發布您的程式,並且它可以通過網路與使用者互動,則程式應以某種方式向這些使用者提供其原始碼。例如,如果您的程式是 Web 應用程式,則其介面可以顯示一個「原始碼」連結,引導使用者到程式碼的存檔。GNU AGPL 足夠靈活,您可以選擇適合您特定程式的方法——請參閱第 13 節以取得詳細資訊。

其他

出於實際原因,包含如何聯絡您的聯絡資訊非常重要,可能在 README 檔案中,但這與應用授權條款的法律問題無關。

註冊您的著作權沒有任何法律要求;僅僅編寫程式就會使其受到著作權保護。但是,對於美國而言,最好在美國著作權局註冊著作權,因為這會使您在對抗任何在美國違反授權條款的人時處於更有利的位置。大多數其他國家沒有著作權註冊系統。

我們希望在自由軟體目錄中列出所有自由軟體程式,包括所有根據 GPL(任何版本)授權的程式。因此,當您的程式達到有用的程度時,請提交您的程式條目。請參閱目錄 Wiki以取得資訊和線上提交表格。

也可以使您的程式成為 GNU 套件,成為 GNU 專案的一部分。如果您可能有興趣以這種方式加入 GNU 專案,請參閱我們的GNU 軟體評估頁面以取得更多資訊和簡短問卷。我們將回覆並與您討論此事。

即使您的程式不是 GNU 套件,也歡迎您使用我們的任何授權條款;事實上,我們希望您會這樣做。它們對所有人開放。如果您想宣傳您對特定授權條款的使用,請隨時使用我們的其中一個標誌