GNU GPL

GNU GPL

GNU GPL(GNU General Public License,通用公共許可證)是一個廣泛被使用的自由軟體許可證,最初由理查德·斯托曼為GNU計劃而撰寫。到目前為止,GPL先後發布了有3個版本。

版本


GPLv1 GPLv1是最初的版本,發佈於1989年1月,其目的是防止那些阻礙自由軟體的行為,而這些阻礙軟體開源的行為主要有兩種(一種是軟體發布者只發布可執行的二進位代碼而不發布具有源代碼,一種是軟體發布者在軟體許可加入限制性條款)。因此GPLv1規定,如果發布了可執行的二進位代碼,就必須同時發布可讀的源代碼,並且在發布任何基於GPL許可的軟體時,不能添加任何限制性的條款。
GPLv2 在GPLv2中所做的最大的改動就是增加了“自由還是死亡”(Liberty or Death)的條款。該條款規定,如果發布源於GPL的軟體時,只能以二進位代碼的形式發布軟體,那麼他將根本無權發布該軟體。
GPLv3 發佈於2007年6月29日。在所進行的修改中最重要的有四個:解決軟體專利問題;與其他許可證的兼容性;源代碼分割和組成的定義;解決數字版權管理 (DRM) 問題。

概念


在GPL中有一個關鍵的概念就是Copyleft。GPL規定,再發行權的授予需要許可證接受人公開軟體的源代碼及所有修改,而且複製件、修改版本都必須以GPL為許可證。這些要求就是Copyleft,它的基礎就是作品在法律上版權所有。
由於版權所有,一般情況下,許可證接受人無權對作品進行修改和再發行(除合理使用),除非它有一個 Copyleft條款。Copyleft利用版權法來達到與其相反的目的: Copyleft給人不可剝奪的權利,而不是版權法所規定的諸多限制。這也是GPL被稱作“被黑的版權法”的原因。
Copyleft只在程序再發行時發生效力。對軟體的修改可以不公開或開放源代碼,只要不發行。注意copyleft只對軟體有效力,而對軟體的輸出並無效力(除非輸出的是軟體本身)。