開源許可證快速指南

已發表: 2020-05-07

當您創建要共享的軟件或使用要改編的產品時,會彈出關於什麼是合法和不合法的問題。 即使是擁有開源許可證的程序也不是免費的。 如果您不知道許可證允許的具體內容,您可能會陷入法律困境。 了解您的限制——或者如果有任何限制——可以讓您自信地自由使用和共享軟件。

什麼是開源許可證?

開源許可遵循開源定義。 也就是說,軟件或產品——其藍圖、設計和/或源代碼——可以根據用戶的需要使用、修改和/或共享。 通俗地說,用戶可以定制產品以滿足他們的需求,然後與他人共享該產品。

但是,如何共享它的條件各不相同——開源許可證並非無限。 規定包括保留作者姓名和重新分發具有相同許可證的衍生產品。 此外,如果許可證僅允許出於非商業目的修改或重新分發產品,則它不是開源的。

開源許可是軟件作者和用戶之間具有法律約束力的合同。 公開發布並免費提供的軟件不會自動開源。 該許可證使其正式開源。 很多開源軟件都是免費的,但這並不意味著免費是開源軟件的要求或保證。

開源許可證的兩種主要類型:Copyleft 與 Permissive

Copyleft 和 permissive 是開源許可證的兩個主要類別。 這些不是實際開源許可證的名稱,而是特定許可證所屬的類別。

Copyleft 開源許可證

Copyleft 是一種開源許可證,要求用戶將相同的許可證應用於他們的產品版本。 這意味著如果用戶修改和共享軟件,他必須維護開源許可證。

寬鬆的開源許可證

寬鬆的開源許可證非常靈活。 它們不是 Copyleft 許可證,因此用戶不需要保持他們的產品版本開源。 他們通常幾乎沒有限制; 用戶可以創建專有的衍生作品而無需履行許多義務。

最常見的開源許可證類型

有許多不同類型的開源許可證可供作者和公司選擇。 讓我們來看看最受歡迎的。

阿帕奇許可證

Apache 許可證是 Apache 軟件基金會的開源許可證。 根據許可,您可以使用、修改或分發任何 Apache 許可的產品。

Apache 許可證有兩個主要更改。 2000 年,原有的廣告條款被刪除。 現在,如果有為衍生作品創建的廣告材料,它們不必包括對 Apache 許可證的歸屬——儘管歸屬必須保留在文檔中。 2004 年,許可的另一次更新允許專利權。

伯克利軟件分發 (BSD)

有兩種類型的 BSD 許可證:

  • 修改後的 BSD 許可證(3 條款)
  • 簡化的 BSD 許可證,也稱為 FreeBSD 許可證(2 條款)

每個 BSD 許可證都允許修改和分發軟件代碼、源代碼或二進制代碼。 但是,您必須保留一份條件、版權聲明和免責聲明的副本。

最初的 BSD 許可證有四個條款,包括廣告和非背書條款。 修改後的 3 條款許可不包含廣告條款。 簡化/免費 2 條款許可證沒有非認可條款。

通用開發和分發許可證 (CDDL)

CDDL 是由 Sun Microsystems(被 Oracle 收購)創建的開源許可證。 當前的 CDDL 是第 2 版,它是 Mozilla 公共許可證的一個版本。 它還取代了 Sun 公共許可證,該許可證在 2004 年之前隨免費和開源 Sun 產品一起提供。

根據 CDDL,您可以復制和分發許可軟件的原始或衍生作品。 但是,您不能更改或刪除有關版權、專利或商標的任何通知。 此外,用戶必須保留註明貢獻者或開發人員的通知或文本。

如果您以可執行形式分發軟件,即不是源代碼的形式,則必須使源代碼可用。 您可以在 CDDL 或 CDDL 兼容許可證下發布可執行表單。 如果您的貢獻符合以下一項或兩項準則,則您需要發布其源代碼:

  • 它們是對原始軟件的添加、修改或刪除。
  • 它們是包含原始產品部分內容的新文件。

當您發布源代碼時,您必須包含 CDDL 的副本。 此外,對於您所做的每一次修改,您都必須在修改後的文件中包含一條通知,表明您是修改者。 如果您在沒有任何原始代碼的單獨的、獨立的文件中添加了內容,則不必使用 CDDL 發布它。

Eclipse 公共許可證 (EPL)

Eclipse 公共許可證是 Eclipse 基金會的 Copyleft 開源許可證。 EPL 的目的是保護作者在公司在商業產品中使用他們的組件時不會陷入法律麻煩。 該許可證還提供專利授權。

如果您修改 EPL 組件並將其作為源代碼分發,則必須公開修改後的代碼。 如果您以目標代碼形式分發您的產品,您必須澄清您將根據要求提供源代碼。 您還必須闡明如何請求源代碼。 當您重新分發包含部分 EPL 許可產品的程序時,您必須包含完整的版權和許可文本。

EPL 還表示,與插件的接口或互操作不會自動使其成為衍生作品。 簡單來說,除非你真的修改了插件的一部分,否則它不是衍生作品。

GNU 通用公共許可證 (GPL)

GPL 是最流行的開源許可證(WordPress 插件和主題必須有這個許可證)。 這是一個 Copyleft 許可證,因此任何使用任何 GPL 組件的軟件都必須是開源的,即使只有一小部分代碼在修改後的代碼中。

軟件可以在任何地方使用和修改,幾乎沒有任何限制,無論您是以私人方式還是商業方式使用它。 但是,如果您在自己的組織之外分發,則會受到限制。 在這種情況下,您必須分發完整的源代碼,以及與原始軟件相同的許可條款。

如果新產品只包含 GPL 軟件的一部分,您是否必須分發完整的源代碼? 也許。 根據 GPL,所有衍生作品都必鬚根據完整的許可條款進行許可。 但是,如果您將 GPL 軟件與專有系統一起分發,並且它們是兩個獨立的作品——這意味著它們不共享數據結構並且它們在單獨的進程中運行——那麼您可能不必發布所有軟件的源代碼.

GNU 寬鬆通用公共許可證 (LGPL)

在 LGPL(GPL 的較弱版本)下,獲得許可的產品可以鏈接到專有應用程序。 專有代碼可能仍然能夠保持專有,這取決於程序是動態鏈接還是靜態鏈接。 此許可證通常隨自由軟件一起提供,允許將其合併到免費或專有軟件中。 您不需要為自己的擴展打開源代碼。

Microsoft 公共許可證 (Ms-PL)

Ms-PL 是 Microsoft 提供的免費開源軟件許可證,它伴隨著 Microsoft 自己的開源項目。

用戶可以創建和分發軟件的原創或衍生作品,但您不能使用貢獻者的姓名、標誌或商標。 Ms-PL 要求保留原始歸屬、版權、專利和商標聲明。 此外,如果代碼在衍生作品中不起作用,作者不承擔任何責任——沒有關於代碼性能的保證或保證。

當您在 Ms-PL 下分發產品時,您沒有義務分發源代碼,但如果您願意,您可以這樣做。 如果您選擇分發源代碼 - 甚至是源代碼的一部分 - 您必須包含 Ms-PL 許可證的完整副本。

這就是它變得棘手的地方:如果您以編譯或目標代碼的形式分發軟件的任何部分,則您選擇的許可證必須符合 Ms-PL。

源代碼與目標代碼

程序員編寫源代碼。 它是一種基於文本的文檔(或文件),以人類可讀的語言編寫,並且該文件是一種編程語言。 但是,機器實際上無法在編寫時讀取源代碼。

為了使其機器可讀,機器必須將源代碼語言編譯成機器可執行代碼——即目標代碼。 目標代碼被寫成二進制數字,生成二進制代碼的過程是“編譯”。 雖然源代碼不是特定於系統的,但目標代碼是。 不同系統的源代碼可能相同,但每台機器可能將其編譯成不同的目標代碼。

當談到使用 Ms-PL 許可目標代碼時,您需要了解以下內容:您可以設置自己的條款,但它們不能為接收者提供比 Ms-PL 許可證更多的權利。 不過,他們可以授予更少的權利。

麻省理工學院 (MIT) 執照

MIT 許可證是目前最靈活的開源許可證之一,它授予您期望從開源許可證中獲得的所有最終用戶權利:複製、分發、合併、修改等。不包括,特別是廣告條款。 此外,它還允許在宣傳內容中使用版權所有者的姓名。

您幾乎可以使用此許可證下的產品做任何您想做的事情。 但是,版權年份和持有人信息必須包含在您的衍生產品的許可證中。

Mozilla 公共許可證 2.0

Mozilla 公共許可證 2.0 是一個 Copyleft 許可證。 貢獻者可以共享對代碼所做的修改。 他們還可以將代碼與其他開放或專有許可下的代碼結合起來。

如果您想出於任何目的使用 MPL 軟件並在您的組織內分發它,您不必做任何特別的事情。 如果您想修改 MPL 源代碼並將您的衍生作品分發到您的組織之外,您必須:

  • 根據 MPL 告訴接收者源代碼(包括用於修改的源代碼)可供他們使用。
  • Afford MPL 授予接受者,這意味著他們擁有使用、修改、展示、複製、分發等的非排他性、免版稅許可。
  • 遵守對刪除或更改源代碼中的通知的限制。 您不能刪除或更改有關版權、專利、保證或責任的許可通知。

關於開源許可證的最終想法

為您的產品或軟件選擇開源許可證並不像您希望的那樣簡單。 如果您不關心誰用您的產品做什麼,您可以使用一種超級靈活的許可證,例如 MIT 許可證。 否則,您需要與專業人士交談,無論是經驗豐富的開發人員還是律師,討論您擁有什麼、想要什麼以及哪種許可證最匹配。 但是,事先了解基礎知識,尤其是您必須涵蓋的術語和常見許可,將有助於您從正確的角度開始。

查看我們為網絡專業人士提供的 13 個最佳開源軟件應用程序的綜述。