為什麼你的下一個函式庫不應該使用 Lesser GPL
GNU 專案有兩種主要的函式庫授權條款可以使用。一種是 GNU Lesser GPL;另一種是普通的 GNU GPL。授權條款的選擇有很大的區別:使用 Lesser GPL 允許在專有程式中使用該函式庫;對函式庫使用普通的 GPL 則使其僅適用於自由軟體。
哪種授權條款最適合給定的函式庫是一個策略問題,這取決於具體情況的細節。目前,大多數 GNU 函式庫都採用 Lesser GPL,這意味著我們只使用這兩種策略中的一種,而忽略了另一種。因此,我們現在正在尋找更多以普通 GPL 發布的函式庫。
專有軟體開發者擁有金錢上的優勢;自由軟體開發者需要為彼此創造優勢。對函式庫使用普通的 GPL 給予自由軟體開發者相對於專有開發者的優勢:一個他們可以使用,而專有開發者不能使用的函式庫。
對於每個函式庫來說,使用普通的 GPL 並非總是有利的。在某些情況下,有一些原因會使使用 Lesser GPL 更好。最常見的情況是,當專有軟體可以通過其他函式庫輕鬆獲得自由函式庫的功能時。在這種情況下,該函式庫無法給予自由軟體任何特別的優勢,因此最好為該函式庫使用 Lesser GPL。
這就是為什麼我們對 GNU C 函式庫使用 Lesser GPL 的原因。畢竟,還有很多其他的 C 函式庫;對我們的函式庫使用 GPL 會迫使專有軟體開發者使用另一個函式庫——對他們來說沒問題,只是對我們來說有問題。
然而,當一個函式庫提供重要的獨特功能時,例如 GNU Readline,情況就大不相同了。Readline 函式庫為互動式程式實現了輸入編輯和歷史記錄,這是在其他地方通常無法獲得的功能。以 GPL 發布並將其使用限制在自由軟體程式中,這給了我們的社群真正的推動力。至少有一個應用程式今天是自由軟體,正是因為使用 Readline 是必要的。
如果我們積累了一系列強大的 GPL 涵蓋的函式庫,而專有軟體無法獲得與之匹敵的函式庫,它們將提供一系列有用的模組,作為新的自由軟體程式的基礎構建模組。這將是進一步自由軟體開發的重大優勢,並且一些專案將決定使軟體自由化,以便使用這些函式庫。大學專案很容易受到影響;如今,隨著公司開始考慮使軟體自由化,甚至一些商業專案也可能以這種方式受到影響。
專有軟體開發者,為了剝奪自由競爭的重要優勢,將試圖說服作者不要將函式庫貢獻給 GPL 涵蓋的集合。例如,他們可能會訴諸虛榮心,承諾如果我們允許他們在專有軟體產品中使用程式碼,則「這個函式庫會有更多使用者」。受歡迎程度很誘人,函式庫開發者很容易合理化這樣一個想法,即提高該函式庫的受歡迎程度是社群最需要的。
但是我們不應該聽從這些誘惑,因為如果我們團結一致,我們可以取得更大的成就。我們自由軟體開發者應該互相支持。通過發布僅限於自由軟體的函式庫,我們可以幫助彼此的自由軟體套件超越專有軟體。整個自由軟體運動將會更加普及,因為整個自由軟體將在與競爭對手的競爭中表現得更好。
請參閱「如何為你自己的作品選擇授權條款」,以獲得關於為你的作品選擇授權條款的一般建議。