GNU寬通用公共許可證
GNU寬通用公共許可證
GNU通用公共許可協議(英語:GNU General Public License,縮寫:GNU GPL、GPL),是一個廣泛被使用的自由軟體許可協議條款,最初由理查德·斯托曼(Richard Matthrew Stallman)為GNU計劃而撰寫。此許可證最新版本為“第3版”(v3),於2007年6月29日發布。GNU寬通用公共許可證是改自GPL的另一個版本,其目的是為了應用於一些軟體庫。
GPL給予了計算機程序自由軟體的定義,並且使用Copyleft來確保程序的自由被完善的保留。
GPL授予程序接受人以下權利,或稱“自由”:
• 以任何目的運行此程序的自由;
• 再發行複製件的自由;
• 改進此程序,並公開發布改進的自由(前提是能得到源代碼)。
相反地,隨版權所有軟體的最終用戶許可證幾乎從不授予用戶任何權利(除了使用的權利),甚至可能限制法律允許的行為,比如逆向工程。
GPL與其他一些更“許可的”自由軟體許可證(比如BSD許可證)相比,主要區別就在於GPL尋求確保上述自由能在複製件及演繹作品中得到保障。它通過一種由斯托曼發明的叫Copyleft的法律機制實現,即要求GPL程序的演繹作品也要在GPL之下。相反,BSD式的許可證並不禁止演繹作品變成專有軟體。
由於某些原因,GPL成為了自由軟體和開源軟體的最流行許可證。到2004年4月,GPL已佔Freshmeat上所列的自由軟體的約75%,SourceForge的約68%。類似的,2001年一項關於Red Hat Linux 7.1的調查顯示一般的代碼都以GPL發布。著名的GPL自由軟體包括Linux核心和GCC。
根據知識共享官方網站,GNU通用公共許可協議的台灣法律用語翻法為GNU通用公共授權條款,香港法律用語翻法亦為GNU通用公共授權條款. [2010-7-20].。
GPL由斯托曼撰寫,用於GNU計劃。它以GNU Emacs、GDB、GCC的許可證的早期版本為藍本。這些許可證都包含有一些GPL的版權思想,但僅只針對特定程序。斯托曼的目標就是創造出一種四海之內皆可使用的許可證,這樣就能為許多源代碼共享計劃帶來福音。GPL版本1就這樣,在1989年1月誕生。
到1990年時,因為一些共享庫而出現了對比GPL更寬鬆的許可證的需求。所以當GPL版本2在1991年6月發布時,另一許可證——程序庫通用許可證(Library General Public License,簡稱LGPL)也隨之發布,並記作“版本2”以示對GPL的補充。版本號在LGPL版本2.1發布時不再相同,而LGPL也被重命名為GNU寬通用公共許可證以體現GNU哲學觀。
GPL版本1,即最初的版本,發佈於1989年一月,其目的是防止那些阻礙自由軟體的行為,而這些阻礙軟體開源的行為主要有兩種(一種是軟體發布者只發布可執行的二進位代碼而不發布具體源代碼,一種是軟體發布者在軟體許可加入限制性條款)。因此按照GPLv1,如果發布了可執行的二進位代碼,就必須同時發布可讀的源代碼,並且在發布任何基於GPL許可的軟體時,不能添加任何限制性的條款。
理查德·斯托曼在GPLv2中所做的最大的改動就是增加了“自由還是死亡”("Liberty or Death")這章條款,即第七章liberty-or-death Presentation。這章中申明道,如果哪個人在發布源於GPL的軟體的時候,同時添加強制的條款,以在一定程度上保障和尊重其它一些人的自由和權益(也就是說在一些國家裡,人們只能以二進位代碼的形式發布軟體,以保護開發軟體者的版權),那麼他將根本無權發布該軟體。
到了1990年,人們普遍認為一個限制性弱的許可證對於自由軟體的發展是有戰略意義上的好處的;因此,當GPL的第二個版本(GPLv2)在1991年6月發布時,與此同時第二個許可證程序庫GNU通用公共許可證(LGPL, Library General Public License)也被發布出來並且一開始就將其版本定為第2版本以表示其和GPLv2的互補性。這個版本一直延續到1999年,並分支出一個派生的LGPL版本號為2.1,並將其重命名為輕量級通用公共許可證(又稱寬通用公共許可證,Lesser General Public License)以反映其在整個GNU哲學中的位置。
到2005年,GPL版本3正由斯托曼起草,由伊本·莫格林和軟體自由法律中心(Software Freedom Law Center)提供法律諮詢。
斯托曼在2006年2月25日自由及開源軟體開發者歐洲會議的演講上說:
在所有的改動中,最重要的四個是:
解決軟體專利問題;
與其他許可證的兼容性;
源代碼分區和組成的定義;
解決數位版權管理問題。
Stallman GPLv3 launch MIT
在公眾諮詢過程中,有962條評論被提交給第一稿草稿。最終總共有2,636條評論被提交。
GPLv3草稿於2006年1月16日開始可用。
2007年3月28日正式啟用。
2007年6月29日,自由軟體基金會正式發布了GPL第3版。
但是Linux社區的領導者林納斯·托瓦茲等人決定不讓Linux使用第三版授權,仍然使用版本2與版本3授權。此事曾引起理查德·斯托曼的不滿。
以下是對GPL條款的一個通俗易懂的總結。而GPL原文文本才是真正法律上精確的。該文本的鏈接可從本頁底部獲得。
此GPL的條款和條件適用於任何收到GPL下的作品的人(即“許可證接受人”)。任何接受這些條款和條件的許可證接受人都有修改、複製、再發行作品或作品的演繹版本的授權。許可證接受人可以對此項服務收取費用,反之亦然。這一點是GPL與其他禁止商業用途的自由軟體許可證最大的不同。Stallman認為自由軟體不應限制其商業用途,同時GPL清楚地說明了這一點。
但GPL又規定發行者不能限制GPL授予的權利。例如,這禁止對軟體在單純沉默(消極默示)式協議或合同下的發行。GPL下的發行者同時也同意在軟體中使用的專利可以在其它GPL軟體中使用。
GPL不會授予許可證接受人無限的權利。再發行權的授予需要許可證接受人開放軟體的源代碼,及所有修改。且複製件、修改版本,都必須以GPL為許可證。
這些要求就是copyleft,它的基礎就是作品在法律上版權所有。由於它版權所有,許可證接受人就無權進行修改和再發行(除合理使用),除非它有一個copyleft條款。如果某人想行使通常被法律所禁止的權利,只需同意GPL的條款。相反地,如果某人發行軟體違反了GPL(比如不開放源代碼),他就有可能被原作者起訴。
copyleft利用版權法來達到與其相反的目的:copyleft給人不可剝奪的權利,而不是版權法所規定的諸多限制。這也是GPL被稱作“被黑的版權法”的原因。
許多GPL軟體發行者都把源代碼與可執行程序捆綁起來。另一方式就是以物理介質(比如CD)為載體提供源代碼。在實踐中,許多GPL軟體都是在網際網路上發行的,源代碼也有許多可以FTP方式得到。
copyleft只在程序再發行時發生效力。對軟體的修改可以不公開或開放源代碼,只要不發行。注意copyleft只對軟體有效力,而對軟體的輸出並無效力(除非輸出的是軟體本身)。不過這在GPL版本3中可能會有改動。
GPL設計為一種許可證,而不是合同。在英美法系國家,許可證與合同有法律上的明確區別:合同由合同法保障效力,而GPL作為一種許可證由版權法保障效力。不過在許多採用歐陸法系的國家並無此種區別。
GPL原理簡單:在版權法下,你不遵守GPL的條款和條件你就沒有相應權利。而作品在沒有GPL的情況下,版權法作為默認條款發生效力,而不是作品進入公有領域。
GPL文本是版權所有的,且著作權人是自由軟體基金會。但是,自由軟體基金會沒有在GPL下發行作品的著作權(除非作者指定自由軟體基金會是著作權人)。通常認為,只有著作權人才有權對許可證的違反進行起訴,但是那並不準確。法國的一個教育組織AFPA於2000年從Edu4購買課堂使用的計算機設備發現其使用GPL軟體但並未附帶源代碼。
自由軟體基金會允許人們使用以GPL為基礎的其他許可證,但不允許演繹的許可證未經授權地使用GPL的前言。不過像這樣的許可證通常與GPL不兼容。
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鼓勵,而不是反對電腦操作系統的自由競爭和發行,這直接使消費者受益。” Wallace被拒絕改變訴由,並被要求支付訴訟費用。
大多數自由軟體許可證,比如MIT/X許可證、BSD許可證、LGPL,都是“GPL兼容的”,即它們的代碼與GPL代碼混用無衝突(但新代碼則是GPL下的)。但是有某些開源軟體許可證不是GPL兼容的。通常意見是開發者僅只使用GPL兼容的許可證,以免法律問題。
參見軟體許可證列表以查證兼容性。
2001年微軟的首席執行官史蒂夫·鮑爾默稱Linux為“癌症”,因為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雙許可證以規避這一問題。