自由
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。
歷史
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寬通用公共許可證(Lesser General Public License)以體現GNU哲學觀。
GPLv1
GPL版本1,即最初的版本,發布于1989年一月,其目的是防止那些阻礙自由軟件的行為,
而這些阻礙軟件開源的行為主要有兩種(一種是軟件發布者只發布可執行的二進制代碼而不發布具有源代碼,一種是軟件發布者在軟件許可加入限制性條款)。因此
按照GPLv1,如果發布了可執行的二進制代碼,就必須同時發布可讀的源代碼,并且在發布任何基于GPL許可的軟件時,不能添加任何限制性的條款。
GPL2
liberty-or-death Presentation。這章中申明道,如果哪個人在發布源于GPL的軟件的時候,同時添加強制的條款,以在一定程度上保障和尊重其它一些人的自由和權益(也就是說在一些國家里,人們只能以二進制代碼的形式發布軟件,以保護開發軟件者的版權),那么他將根本無權發布該軟件。
到了1990年,人們普遍認為一個限制性弱的許可證對于自由軟件的發展是有戰略意義上的好處的;因此,當GPL的第二個版本(GPLv2)在1991年6月發布時,與此同時第二個許可證程式庫GNU通用公共許可證(LGPL,the Library General Public License )也被發布出來并且一開始就將其版本定為第2版本以表示其和GPLv2的互補性。這個版本一直延續到1999年,并分支出一個衍生的LGPL版本號為2.1,并將其重新命名為輕量級通用公共許可證(又稱寬通用公共許可證)(Lesser General Public License)以反應其在整個GNU哲學中的位置。
到2005年,GPL版本3正由斯托曼起草,由伊本·莫格林和軟件自由法律中心(Software Freedom Law Center)[1]提供法律咨詢。
斯托曼在2006年2月25日自由及開源軟件開發者歐洲會議的演講上說:([2])
- 在所有的改動中,最重要的四個是:
- 解決軟件專利問題;
- 與其他許可證的兼容性;
- 源代碼分割和組成的定義;
- 解決數字版權管理 (DRM) 問題。
2006年,自由軟件基金會針對GPL的可能的修改開始了12個月的公共咨詢。
GPLv3草稿[2]于2006年1月16日開始可用。版本2與3的非官方比較對照參見:[3],[4]。
2007年3月28日正式啟用。
2007年6月29日,自由軟件基金會正式發布了GPL第3版[3]。
條款
以下是對GPL條款的一個通俗易懂的總結。而GPL原文文本才是真正法律上精確的。該文本的鏈接可從本頁底部獲得。
授予的權利
此GPL的條款和條件適用于任何收到GPL下的作品的人(即“許可證接受人”)。任何接受這
些條款和條件的許可證接受人都有修改、復制、再發行作品或作品的演繹版本的授權。許可證接受人可以對此項服務收取費用
,反之亦然。這一點是GPL與其他禁止商業用途的自由軟件許可證最大的不同。Stallman認為自由軟件不應限制其商業用途,同時GPL清楚地說明了這
一點。
但GPL又規定發行者不能限制GPL授予的權利。例如,這禁止對軟件在單純沉默(消極默示)式協議或合同下的發行。GPL下的發行者同時也同意在軟件中使用的專利可以在其它GPL軟件中使用。
Copyleft
GPL不會授予許可證接受人無限的權利。再發行權的授予需要許可證接受人開放軟件的源代碼,及所有修改。且復制件、修改版本,都必須以GPL為許可證。
這些要求就是copyleft,它的基礎就是作品在法律上版權所有。由于它版權所有,許可證接受人就無權進行修改和再發行(除合理使用),除非它有一個copyleft條款。如果某人想行使通常被法律所禁止的權利,只需同意GPL的條款。相反地,如果某人發行軟件違反了GPL(比如不開放源代碼),他就有可能被原作者起訴。
copyleft利用版權法來達到與其相反的目的: copyleft給人不可剝奪的權利,而不是版權法所規定的諸多限制。這也是GPL被稱作“被黑的版權法”的原因。
許多GPL軟件發行者都把源代碼與可執行程序捆綁起來。另一方式就是以物理介質(比如CD)為載體提供源代碼。在實踐中,許多GPL軟件都是在互聯網上發行的,源代碼也有許多可以FTP方式得到。
copyleft只在程序再發行時發生效力。對軟件的修改可以不公開或開放源代碼,只要不發行。注意copyleft只對軟件有效力,而對軟件的輸出并無效力(除非輸出的是軟件本身)。不過這在GPL版本3中可能會有改動。
GPL是許可證
GPL設計為一種許可證,而不是合同。在英美法系國家,許可證與合同有法律上的明確區別:合同由合同法保障效力,而GPL作為一種許可證由版權法保障效力。不過在許多采用歐陸法系的國家并無此種區別。
GPL原理簡單:在版權法下,你不遵守GPL的條款和條件你就沒有相應權利。而作品在沒有GPL的情況下,版權法作為默認條款發生效力,而不是作品進入公有領域。
版權所有人
GPL文本是版權所有的,且著作權人是自由軟件基金會。但是,自由軟件基金會沒有在GPL下發行作品的著作權(除非作者制定自由軟件基金會是著作權人)。只有著作權人才有權對許可證的違反進行起訴。
自由軟件基金會允許人們使用以GPL為基礎的其他許可證,但不允許演繹的許可證未經授權地使用GPL的前言。不過像這樣的許可證通常與GPL不兼容。[4]
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鼓勵,而不是反對電腦操作系統的自由競爭和發行,這直接使消費者受益。”[5]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的支持者確信自由軟件世界應具有自我保護能力和可持續發展性
——確保自由軟件的演繹作品同樣“自由”,但其他人認為自由軟件應給予“所有人”最大的自由。