GNU通用公共授權條款(英語:GNU General Public License,縮寫GNU GPL 或 GPL),是被廣泛使用的自由軟件授權條款,给予了終端用戶運行、學習、共享和修改軟件的自由。[6]授權條款最初由自由軟件基金會的理查德·斯托曼为GNU專案所撰寫,並授予電腦程序的用户自由軟件定義(The Free Software Definition)的權利。[7]GPL是一個Copyleft授權條款,這意味著只要專案的某個部分(如动态链接库)以GPL發佈,則整个项目以及衍生作品只能以相同的許可條款分發[8]。這與宽松自由软件许可证有所區別 ,如BSD授權條款和MIT授權條款就是其中被廣泛使用的例子。GPL是第一個普遍使用的Copyleft授權條款。
歷史上,GPL授權條款系列一直是自由和開源軟件領域最受歡迎的軟件許可之一。[6][9][10][11][11][11][12][13]根據GPL許可的優異自由軟件程序的例子有Linux核心和GNU編譯器集合(GCC)。大衛·A·惠勒認為,GPL提供的Copyleft對於基於Linux的系統的成功至關重要,給予向核心貢獻的程式設計師保證他們的工作將有益於整個世界並保持自由,而不至於被不提供回饋給社群的无良軟件公司所剝削。[14]
2007年,發布了第三版授權條款(GNU GPLv3),以解決在長期使用期間發現的第二版(GNU GPLv2)所發生的一些困擾。為了使授權條款保持最新狀態,GPL授權條款包含一個可選的“並延伸到未來版本”條款,允許用戶在FSF更新的原始條款或新版本之間進行選擇。有些開發人員在軟件授權使用時,選擇省略它;例如,Linux核心已經在GPLv2下獲得許可,就不需包括“並延伸到未來版本”的聲明。[15][16]
GPL授予程序接受人以下權利,或稱“自由”,或稱“copyleft”:
- 基于任何目的,按你的意愿运行软件的自由(自由之零)。
- 学习软件如何工作的自由,按你的意愿修改软件以符合你的计算的自由(自由之一)。可访问源代码是此项自由的先决条件。
- 分发软件副本的自由,因此你可以帮助你的好友(自由之二)。
- 将你修改过的软件版本再分发给其他人的自由(自由之三)。这样可以让整个社区有机会共享你对软件的改动。可访问源代码是此项自由的先决条件。[17]
相反地,隨版權所有軟體的終端使用者授權合約幾乎從不授予用户任何權利(除了使用的權利),甚至可能限制一些法律允許的行為,比如還原工程。
GPL與其他一些更“許可的”自由軟體授權條款(比如BSD授權條款)相比,主要區别就在于GPL尋求確保上述自由能在複製軟體及衍生作品中得到保障。它透過一种由斯托曼发明的叫Copyleft的法律機制實現,即要求GPL程序的衍生作品也要在GPL之下。相反,BSD式的授權條款并不禁止衍生作品變成專有軟體。
GPL是自由軟件和開源軟件的最流行授權條款[18]。到2004年4月,GPL已占Freshmeat上所列的自由软件的约75%,SourceForge的约68%。類似的,2001年一項關於Red Hat Linux 7.1的調查顯示一般的代碼都以GPL發布。著名的GPL自由軟件包括EMACS,Linux核心(並非所有Linux發行版的核心都是開源的)和GCC。
歷史
GPL由理查德·斯托曼於1989年編寫,提供給列入GNU專案的一些軟體程式所使用。原始的GPL基於GNU Emacs(1985),[19]GNU Debugger和GNU C編譯器的早期版本中使用的類似授權條款的統一。[20]這些授權條款包含與現代GPL類似的規定,但具體針對每個程序,使其不兼容,儘管是相同的授權條款。[21]Stallman的目標是提供一個可用於任何專案的授權證,從而使許多專案得以共享代碼。GPL版本1就這樣,在1989年1月誕生。
到1990年時,某些因素使得共享庫(Library),應該要有比GPL更寬鬆的授權許可的需求。所以當GPL版本2在1991年6月發布,另一授權條款——程式庫通用授權條款(Library General Public License,簡稱 LGPL)也隨之誕生,並記作“版本2”以示對GPL的補充。版本號在LGPL版本2.1發布時不再相同,而LGPL也被重命名为GNU宽通用公共许可证以體現GNU的哲學觀。
授權條款的第二個版本,版本2,在1991年發布。在接下來的15年中,自由軟件社群的成員很關心GPLv2授權條款中的問題,可能會讓某些人鑽漏洞而違反授權條款,而違背了原先GPL許可授權軟體的原意。[22]這些問題包括Tivo化[23](來自硬體的軟體限制,意指將GPL授權軟體安裝在硬體上,又拒絕運行更動相關軟體的修改版本),類似與Affero通用公眾授權條款類似的兼容性問題,以及微軟和自由開源軟件,其中一些被認為試圖將專利申請用作於對付自由軟件社群的武器。
第3版旨在解決這些問題,並於2007年6月29日正式發布。[24]
用語
根據創用CC官方網站,GNU General Public License 的台灣法律用語翻法為「GNU通用公共授權條款」[25],香港法律用語翻法亦為如此[26]。
1989年2月25日發布的GNU GPL 版本1阻止了軟件經銷商限制自由軟件定義的兩個主要方式。第一個問題是經銷商可能僅發布二進位文件 - 可執行,但不能由人類讀取或修改。為了防止這種情況,GPLv1表示,任何分發二進位代碼的供應商還必須按照相同的許可條款(授權條款的第3a和3b節)提供可讀的原始碼。
第二個問題是經銷商可能會增加授權條款的限制,也可能會將軟件與其他具有其他分發限制的軟件相結合。兩套限制的聯合將適用於組合工作,從而增加不可接受的限制。為了防止這種情況,GPLv1表示,修改後的版本作為一個整體,必須按照GPLv1(授權條款第2b和4節)的條款分發。因此,根據GPLv1條款分發的軟件可以以更寬鬆的條款與軟件相結合,因為這不會改變整體可以分發的條款。然而,根據GPLv1分發的軟件不能與在更嚴格的授權條款下分發的軟件相結合,因為這與根據GPLv1的條款可以分發的要求相衝突。
根據理查德·斯托曼的說法,GPLv2的主要變化是“自由或死亡”(Liberty or Death)條款[21]。就如字面上所說,「被許可人只有在滿足所有授權條款的義務下」才可以分發包含GPL授權的軟體,儘管他們可能擁有任何其他法律義務。換句話說,就算有相互矛盾的義務,授權條款的義務也可能不被切斷。該條款旨在阻止任何一方使用專利侵權索賠或其他訴訟來損害用戶在授權條款下的自由。這章中的意思是,為了在一定程度上保障和尊重其它一些人的自由和權益,無論任何人要發布源於GPL的軟體的時候,同時也須遵守強制的條款分享原始碼,否則他將根本無權發布該軟體。[註 1]
到1990年,越來越明顯的是,對於C函式庫來說,本質上已經跟受專利保護的軟件函式庫的功能表現相當,有一個限制較少授權條款對於自由軟體發展的策略上來說更為實用;因此,當GPL的版本2(GPLv2)在1991年6月發佈時,第二類別的授權條款:函式庫通用公共授權條款(英語:Library General Public License),也同時被引入,並從第二版編號開始,表明兩者是互補的。版本號在1999年發行,當時LGPL的版本2.1被發布,更名為GNU宽松通用公共授權條款(英語:Lesser General Public License),以反映其在哲學中的地位。
最常見的是“GPLv2並延伸到未來版本”的聲明,讓授權條款的用戶了解,得以允許升級到GPLv3。
到2005年,GPL版本3開始由斯托曼起草,由伊本·莫格林和軟件自由法律中心(Software Freedom Law Center)提供法律咨詢[27]。2005年底,自由軟件基金會 (FSF)宣布了GPL(GPLv3)第3版的工作。2006年1月16日,公佈了GPLv3的第一個“討論稿”,公眾諮詢開始。公眾諮詢原計劃為九至十五個月,但最終延長至十八個月,其中出版四份草案。2007年6月29日,官方正式版GPLv3於由FSF發布。[28]
之後,理查德·斯托曼在2006年2月25日自由及開源軟體開發者歐洲會議的演講時談到最重要的四件事:
還有一些其他的更改涉及國際化,如何處理授權條款違規,以及版權所有者如何授予額外權限。[27][29]它還增加了一項規定,“剝離”(strips)其法定價值的數位版權管理(Digital Rights Management,縮寫DRM),所以人們可以合理的當在法院被視為侵犯DRM時,去破解運行GPL軟件的任何東西,而不會違反DMCA等法律。[30]
公共諮詢過程由自由軟件基金會在軟件自由法律中心、歐洲自由軟件基金會[31]和其他自由軟件組織的協助下進行協調。透過FSF [1] (页面存档备份,存于互联网档案馆)網站從公眾收集評論[32]。該門戶網站運行名為 stet的專用軟體。在公眾諮詢過程中,提交了第一稿的962條意見[33]。最後,共提交了2636條意見[34][35][36]。
第三稿於2007年3月28日發布[37]。該草案包括旨在防止與專利相關協議(如有爭議的Microsoft-Novell專利協議)的語言 ,並將反傾銷條款限於“用戶”或“消費品”。它還明確刪除了“地理限制”一節,確認公開諮詢開始時就提到可能會刪除的這一部分。
最後的第四個討論草案[38]於2007年5月31日發布。它引入了Apache授權條款版本2.0兼容性(以前的版本不兼容),澄清了外部承包商的作用,並提出了一個例外,以避免充滿爭議的Microsoft-Novell專利協議再度發生,在第11節第6段中說:
“ | 您不得傳送具GNU授權條款保護的軟體作品,如果您是與營銷軟體業務(後稱第三方)進行安排的締約方,根據該協議按照你傳送作品活動的程度,您付款項給第三方,又根據該協議,對於可能收到與您所涉涵蓋的工作的其它方,第三方獲得歧視性專利。 | ” |
這旨在使未來像這樣的交易無效。該授權條款還意味著Microsoft將其授予Novell客戶的專利授權條款擴展到使用GPLv3軟件的所有用戶,使用GPLv3軟件;除非當Microsoft合法地是GPLv3軟件的“傳送者”時,才有可能[39][40]。
此外,GPLv3的早期草案讓許可方添加了一個Affero類的需求,將會填補GPL中的ASP漏洞[41][42]。由於擔憂該附加要求的代碼檢查所需要的額外行政費用,決定將GPL和Affero授權條款分開[43]。
值得留意的是Linux核心的一些高調的開發人員 ,例如林納斯·托瓦茲、葛雷格·克羅哈曼和安德魯·莫頓,向大眾媒體發表了評論,並就討論草案1和2的部分內容作了公開聲明[44]。核心開發人員提及關於DRM/Tivoization、專利和“附加限制”的GPLv3草案條款,並警告會產生“開源宇宙”(Open Source Universe)的巴爾幹半島式分裂[44][45]。林納斯·托瓦茲決定不採用GPLv3作為Linux核心,仍然使用GPLv2授權[15],甚至在幾年後重申了他的批評[46][47]。此事曾引起理查德·斯托曼的不滿。
GPLv3提高了與許多開放原始碼軟件授權條款(如Apache授權條款版本2.0)和GNU Affero通用公共授權條款(GPLv2無法組合)的兼容性[48]。但是,如果所使用的GPLv2授權條款具有可選的“或更高版本”子句,並且軟件升級到GPLv3,GPLv3軟件只能與GPLv2軟件組合並共享代碼。雖然FSF認為“GPLv2並延伸到未來版本”條款是許可GPLv2軟件的最常見形式[49],诸如Toybox開發商Rob Landley將其描述為「救生艇條款」(lifeboat clause)[50][51]。使用可選“或更高版本”條款許可的軟件專案包括GNU專案,而沒有該子句的最明顯的案例是Linux核心[52]。
條款和條件
GPL的條款和條件必須提供給任何接受GPL應用的作品的副本(“被許可人”)的人員。任何遵守條款和條件的被授證人員都有權修改作品,以及複製和重新分發作品或任何衍生版本。被許可人被允許為此服務收取費用,或无偿。後一點將GPL與禁止商業再分發的軟件許可區分開來。FSF認為,自由軟件不應該限制商業用途,[53]GPL明確規定GPL作品可能以任何價格出售。
GPL還規定,經銷商不得對GPL授予的權利施加“進一步限制”。禁止根據不披露協議或合同分發軟件等活動。
授權條款版本2的第四部分和版本3的第七部分要求,作為預編譯二進位文件分發的程序應附有原始碼的副本,透過與前一版本相同的機制分發原始碼的書面報價編譯的二進位文件或書面報價,以獲取用戶在GPL下接收預編譯二進位文件時獲得的原始碼。版本2的第二部分和版本3的第五部分還要求“所有收件人本程序附帶的授權條款副本”。授權條款的版本3允許以其他方式提供原始碼來實現第七部分。這些包括從相鄰網絡服務器下載原始碼或透過對等傳輸,只要編譯代碼是可用的,並且在哪裡可以找到原始碼的“清晰方向”。
除非作者明確賦予 FSF 版權(除了作為GNU專案一部分的程序很少發生),否則FSF對GPL發布的作品不具有版權。只有個人版權持有人有權在發生授權條款時才起訴。
使用許可軟件
GPL下的軟件可以用於所有目的,包括商業目的,甚至作為創建專有軟件的工具,例如使用GPL授權的編譯器時[54]。分發GPL許可作品(如軟件)的用戶或公司可能會收取副本費用或无偿提供費用。這將GPL與共享軟件授權條款區分開來,允許複製用於個人使用,但禁止商業發佈,或版權法禁止複製的專有許可。FSF認為自由軟件不應該限制商業使用和發佈(包括再發佈)[53]。GPL明確規定,GPL工作可能以任何價格出售。
在純私人(或內部)使用 - 沒有銷售和沒有發行 - 軟件代碼可能被修改和零件重複使用,而不需要發布原始碼。對於銷售或分銷,整個原始碼需要提供給終端使用者,包括任何代碼更改和添加 - 在這種情況下,應用copyleft來確保終端使用者保留上面定義的自由。[55]
然而,作為GPL許可操作系统(如Linux)下的應用程式運行的軟件不需要根據GPL進行許可或者以原始碼可用性分發 - 許可只依賴於使用的庫和軟件組件,而不是依賴於底層平台[56]。例如,如果一個程序僅由自己的原始定制軟件組成(software component),或者與其他軟件組件的原始碼組合在一起[註 2],則自己的定制軟件組件不需要根據GPL授權,不需要使其代碼可用;即使所使用的底層操作系统是根據GPL授權的,運行在其上的應用程式也不被視為衍生作品。[56]只有在程序中使用了GPLed部件(程序已經分發)的情況下,程序的所有其他原始碼才能在相同的許可條款下提供。GNU較寬鬆公共授權條款(LGPL)被創建為具有比GPL更弱的Copyleft,因為它不需要在相同的許可條款下提供自己定制的原始碼(不同於LGPLed部分)。
GPL授權版本的修改後作品的發行權不是無條件的。當有人分發GPL的作品又加上自己的修改時,分發整個作品的要求不能大於GPL中的要求。這個要求被稱為Copyleft。它透過軟件程序使用版權獲得法律權力。由於GPL的作品受版權保護,被許可人無權重新分發,即使是以修改形式(除合理使用 )外,除了許可條款外, 如果希望行使通常受版權法限制的權利,例如重新分配,只需遵守GPL的條款。相反,如果在不遵守GPL條款(例如保留原始碼秘密)的情況下分發作品的副本,則原始作者可以根據版權法提起訴訟。因此,「Copyleft使用版權法來完成」與常見法律的設定目的相反,不是施加限制,而是「賦予其他人權利,以確保權利不能隨之被剝奪的方式。」如果在Copyleft聲明中找到任何法律缺陷,它也可以確保不給予無限的重新分發權限。[來源請求]
許多GPL程序的經銷商將原始碼與執行檔捆綁在一起。滿足Copyleft的替代方法是提供書面報價,以便在物理介質(如CD)上提供原始碼。實際上,許多GPL的程序透過Internet進行分發,原始碼透過FTP 或 HTTP提供。對於互聯網分發,這符合授權條款。只有當一個人試圖重新分發程序時,Copyleft才適用。只要不將修改後的軟件分發給任何人,開發人員可以製作私有修改版本,無需洩露修改。請注意,Copyleft僅適用於軟件,而不適用於其輸出(除非該輸出本身是程序的衍生作品[註 3])。
例如,運行GPL內容管理系統(CMS)修改版的衍生產品之公共門戶網站不需將其更動分發給底層軟件,因為其輸出不是衍生產品。
有人辯論,如果以程式碼混淆形式發布原始碼是否違反GPL,例如在作者不太願意提供原始碼的情況下。普遍認為雖然這是不道德的,但無法認為是違法行為。這問題已得到澄清:當授權條款被更改為v2時,就需要提供原始碼的「首選」版本。[57]
GPL被設計為授權條款 ,而不是契約[58][59]。在一些普通法(Common Law)司法管轄區,授權條款和契約之間的法律區別是重要的:契約可以透過契約法執行,而授權條款是根據著作權法執行的。然而,這種區別對於契約和授權條款之間沒有區別的許多司法管轄區(如民法系統)並不適用[60]。
GPL原理很簡單:在著作權法下,你不遵守GPL的條款和條件你就没有相對應的權利。而作品在没有GPL的情况下,著作權法作为默認條款發生效力,而不是作品進入公有領域。那些不接受GPL條款和條件的人根據版權法沒有許可複製或分發GPL許可軟件或衍生作品。然而,如果他們不重新分發GPL的程序,他們仍然可以按自己的喜好使用組織內的軟件,使用該程序構建的工程(包括程序)不需要被該授權條款覆蓋。
艾里遜·蘭德爾認為,GPLv3作為授權條款對於讀者來說是不必要的混亂,可以在保留相同的條件和法律效力的情況下進行簡化。[61]
衍生或擴展性
GPL的文案本身,受版權保護 ,版權由自由軟件基金會持有。GPL的文案本身,卻不在GPL之下。 經許可的版權不允許修改授權條款。 允許複製和分發授權條款,因為GPL要求收件人獲得“本授權條款與本計劃一起”的副本。 [62]根據GPL常見問題,任何人都可以使用GPL的修改版本,只要他或她使用不同的名稱作為授權條款,不提“GNU”,並刪除前言,儘管如果使用自由軟件基金會(FSF)獲得許可,則序言可以在修改後的授權條款中使用。
FSF允許人們根據GPL創建新的授權條款,只要衍生的授權條款未經許可不使用GPL前綴。 然而,這是不鼓勵的,因為這樣的授權條款可能與GPL不兼容[62],並導致感染的授權條款擴散(license proliferation)。
由GNU專案創建的其他授權條款包括GNU通用公共授權條款,GNU自由文件授權條款和Affero通用公共授權條款。
連結和派生作品
據FSF稱,“GPL不要求您發布修改版本,或其任何部分,您可以自由地進行修改和留作私人使用,而無需發布。”然而若是向公眾發布GPL許可的實體,則有連結的問題:換言之,「使用GPL函式庫的專利程序是否違反了GPL ?」
這個關鍵的爭議的重點是「非GPL軟件是否可以合法地連結或動態地連結到GPL函式庫」。這個問題有不同的看法。GPL清楚地表明,GPL下的所有衍生作品代碼都必須屬於GPL。關於使用GPL函式庫和將GPL軟體捆綁到更大的包中(可能透過靜態連結混合成二進位文件),會出現歧義。這最終不是GPL 本身的問題,而是版權法如何界定衍生作品。有以下觀點存在:
自由軟體基金會(其擁有若干著名的GPL軟體產品和授權文字本身的版權)聲稱,使用動態連結函式庫的可執行檔確實是衍生作品。然而,這不適用於彼此通信的單獨程序。自由軟體基金會還創建了LGPL,LGPL與GPL極為相似,但額外允許以“使用函式庫”為目的的連結。理查德·斯托曼和自由軟體基金會特別鼓勵函式庫作者根據GPL來進行授權,以便專有程序無法使用GPL函式庫,透過為自由軟體世界提供比專有世界更多的工具來保護自由軟體世界。
有些人認為,當靜態連結產生衍生作品時,不清楚動態連結到GPL代碼的可執行檔是否應被視為衍生作品(請參閱Weak Copyleft)。Linux作者Linus Torvalds同意動態連結可以創建衍生作品,但在這種情況下不一致。一位Novell律師寫道,動態連結不算是衍生作品的觀點合理但是不夠明確,專有的Linux核心驅動程式就是善意的動態連結的一大明證。在Galoob對任天堂案中,美國第九巡迴上訴法院將衍生作品定義為具有“形式”或“永久性”,並指出“侵權作品必須以某種形式包含一部分受版權保護的作品”,但是沒有明確的法院裁決來解決這一特定的衝突。
根據Linux Journal的一篇文章, Lawrence Rosen (一次性開源計劃總顧問)認為,連結的方法與一個軟件是否是衍生作品的問題大不相干;更重要的是關於軟件是否旨在與客戶端軟件和/或庫連接的問題。他指出:“新程序是否是衍生工作的主要指示是原始程序的原始碼是否以[複製貼上方式]使用,以任何方式進行修改,翻譯或以其他方式更改新程序,如果沒有,那麼我會認為這不是衍生工作“,並列出了關於意圖,捆綁和聯動機制的許多其他觀點。 他進一步在他公司的網站上論證,這種“以市場為基礎”的因素比連結技術更重要。
還有一個具體問題是,一個插件或模組(如NVidia或ATI 顯示卡核心模組)是否也必須是GPL,如果它可以合理地被認為是自己的工作。這個觀點表明,如果工作是GPLv2,則可以根據任意授權條款,為設計使用插件的軟件提供合理的單獨插件或插件。特別感興趣的是GPLv2段落:
“ | 您可以修改本程序或其任何部分的副本或副本,從而根據本程序形成工作,並根據上述第1節的條款複製和分發此類修改或工作,前提是您也符合所有這些條件:……
b)您必須將您分發或發布的任何作品全部或部分包含或衍生自本計劃或其任何部分,根據本授權條款的條款无偿授予所有第三方。 ...這些要求適用於整體修改後的工作。 如果該作品的可識別部分不是源自該程序,並且可以被合理地視為獨立和獨立的作品,則本授權條款及其條款在將其作為單獨作品分發時不適用於這些部分。 但是,當您分發相同的部分作為基於程序的工作的整體的一部分時,整體的分佈必須符合本授權條款的條款,其授權條款持有人的權限將擴展到整個,和每個部分,無論誰寫的。 |
” |
GPLv3有一個不同的條款:
“ | 您可以根據第4節的條款,以原始碼的形式傳達基於本程序的工作,或從程序生成的工作,只要您也符合以下所有條件:……
c)您必需根據本許可將整個作品整體授權給任何擁有副本的人。 因此,本授權條款連同任何適用的第7條附加條款適用於整個工作及其所有部分,無論其包裝方式如何。 本授權條款不允許以任何其他方式許可該作品,但如果您已單獨收到,則不會使該許可無效。……與其他單獨和獨立的作品的彙編,而不是其涵蓋的作品的性質延伸,而不是與其組合,以形成更大的程序,在一個或多個如果彙編及其產生的版權不被用於限制編輯用戶的存取權限或合法權限超出個人作品允許的範圍,則稱為“匯總”。 合併中的被覆蓋的工作不會導致本授權條款適用於合併的其他部分。 |
” |
作為一個案例研究,一些據稱為GPLv2 CMS軟件(如Drupal和WordPress)的專有插件和主題/外觀已經受到打擊,雙方均被採納[63][64]
與其他程序通訊的行為本身並不要求所有軟件都是GPL;也不用GPL軟件分發GPL軟件。但是,必須遵循較小的條件,確保GPL軟件的權利不受限制。 以下是gnu.org的 GPL FAQ,該常見問題解答介紹了允許軟件與GPL程序進行通訊和綁妥的程度:
“ | Q:“合輯”(Aggregate)與其他類型的“修改版本”有什麼區別?
A:“合輯”由多個單獨的程序組成,分佈在同一個CD-ROM或其他媒體上。 GPL允許您創建和分發合輯,即使其他軟件的授權條款是非自由的或GPL不兼容的。 唯一的條件是,您不能根據禁止用戶行使每個計劃的個人授權條款授予他們的權利的授權條款發布合併。 Q:兩個單獨的程序之間的區別在哪裡,一個程序有兩個部分? A:這是一個法律問題,最終法官會決定。 我們認為適當的標準取決於通信機制(exec,pipes,rpc,共享地址空間中的函數呼叫等)和通信的語義(哪些信息被互換)。如果模組包含在相同的執行檔中,則它們在一個程序中被明確地組合。 如果模組設計為在共享地址空間中連接在一起運行,那麼幾乎肯定意味著將它們組合成一個程序。相比之下,管道(pipe)、接口(socket)和命令行參數是通常在兩個獨立程序之間使用的通訊機制。 所以當它們用於通信時,模組通常是單獨的程序。 但是,如果通信的語義足夠親密,交換複雜的內部數據結構,那麼也可以將這兩個部分合併成一個更大的程序。 |
” |
因此,FSF想在“函式庫”和“其他程序”之間透過以下兩種方式劃清界線: 1)信息交換的“複雜性(complexity)”和“親密程度(intamacy)”;2)信息交換的“機構(mechanics)“,而不是“語義(semantic)”。但讓問題不明確,而又複雜的情況下,交由判例法來決定。
版權所有人
GPL文本是版權所有的,且著作權人是自由軟件基金會。但是,自由軟件基金會沒有在GPL下發行作品的著作權(除非作者指定自由軟件基金會是著作權人)。通常認為,只有著作權人才有權對授權條款的違反進行起訴,但是那並不准確。法國的一個教育組織AFPA於2000年從Edu4購買課堂使用的電腦裝置發現其使用GPL軟件但並未附帶原始碼。 [66][67]
自由軟件基金會允許人們使用以GPL為基礎的其他授權條款,但不允許演繹的授權條款未經授權地使用GPL的前言。不過像這樣的授權條款通常與GPL不兼容。[68]
GNU計劃創立的其他授權條款包括:GNU宽通用公共许可证和GNU自由文件授權條款。
爭議
一個關於GPL重要的爭議是,非GPL軟件是否可以動態連結到GPL庫。 GPL對GPL作品的演繹作品在GPL下發布規定很明確。但是對於動態連結到GPL庫的作品是否是演繹作品就規定得不清楚了。自由和開放原始碼社群為此分成兩派,自由軟件基金會認為這種作品就是演繹作品,但其他專家並不同意。這個問題根本的並不關乎GPL本身,而是一個版權法如何定義演繹作品。美國聯邦上訴法院第九巡迴審判庭在Galoob v. Nintendo案對演繹作品嘗試定義,但最終沒有明確的結果。
不幸的是,許多開發人員覺得這是個技術問題。但實際上這完全是法律問題。不過由於迄今為止沒有案例表明有人以動態連結的方式來繞過GPL的條款并因此被起訴,動態連結的限制已經是事實上地(de facto)有效,不論它是否是法律上地(de jure)有效。
2002年,MySQL AB公司起訴Progress NuSphere侵犯版權和商標。 NuSphere被指以連結代碼的形式侵犯了著作權。最終此案以調解結束。在聽證期間,法官“認為沒有什麼原因”(不管是否是動態連結)會使得GPL失去法律效力。
2003年8月,SCO Group稱他們認為GPL沒有法律效力,且準備就在Linux核心中使用的SCO Unix代碼進行訴訟。參見SCO訴IBM。
2004年4月,在SiteCom拒絕停止發行Netfilter專案的GPL軟件後,慕尼黑地區法庭據對GPL條款的侵犯判定對SiteCom進行臨時性禁令(訴前停止侵犯專利權行為的措施)。同年7月,法庭確認此勒令為對SiteCom最終判決。此判決明顯的印證了自由軟件基金會的法律顧問伊本·莫格林的預言:
- “被告侵犯了原告的著作權:提供了軟件netfilter/iptables的廣告及下載,但沒有遵守GPL的條款。可以說,如果被告有授權條款許可,這些行為是完全合法的……原被告就GPL是否達成協議這是一個獨立的問題。如果當事人沒有同意,被告將沒有複製、發行、公開'netfilter/iptables'的權利。”
此判決十分重要,因為它是全球首次法庭確認GPL是有法律效力的。
2005年5月,Daniel Wallace於美國聯邦印第安納南區地方法院起訴自由軟件基金會,因為二者對GPL是否非法意見不一。後訴訟於3月結束,因為Wallace沒有有效的反托拉斯陳述。法庭注意到“GPL鼓勵,而不是反對電腦操作系统的自由競爭和發行,這直接使消費者受益。”[69]Wallace被拒絕改變訴由,並被要求支付訴訟費用。
兼容性
大多數自由軟件授權條款,比如MIT/X授權條款、BSD授權條款、LGPL,都是“ GPL兼容的”,即它們的代碼與GPL代碼混用無衝突(但新代碼則是GPL下的)。但是有某些開源軟件授權條款不是GPL兼容的。通常意見是開發人員僅只使用GPL兼容的授權條款,以免法律問題。
參見軟體授權條款列表以查證兼容性。
批評
2001年微軟的首席執行官史蒂夫·巴爾默稱Linux為“癌症”,因為GPL的影響。微軟批評者指出,微軟憎惡GPL的真正原因是因為GPL對微軟的“包圍、擴展、消滅”策略起了反作用。注意微軟已以GPL為授權條款發行了SFU(Microsoft Windows Services for UNIX)中所包含的部分組件,例如GCC。
GPL的批評者常常認為GPL是有“傳染性”的“病毒”,因為GPL條款規定演繹作品也必須是GPL的。由於“演繹作品”通常被解釋為包含GPL代碼或動態連結到GPL庫(如上)的軟件,“病毒說”來源於GPL對於授權條款的強制繼承的要求。這正是GPL與BSD式授權條款的哲學思想上的差異。 GPL的支持者確信自由軟件世界應具有自我保護能力和可持續發展性——確保自由軟件的演繹作品同樣“自由”,但其他人認為自由軟件應給予“所有人”最大的自由。
不同版本之間的GPL並不相容。例如,當原始的作品以GPLv2發布,而補丁以GPLv3發佈時,因為這樣的原因,其編譯之後產生的二進位版本不可以再行傳播。因此,FSF通常會推薦以“GPLv2 or later”這樣的形式來標示授權授權條款,或GPLv2 + GPLv3雙授權條款以規避這一問題。
注释
參見
参考文献
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.