1. 程式人生 > >幾種常見的開源軟件許可協議(GPL, LGPL, Apache License, BSD)

幾種常見的開源軟件許可協議(GPL, LGPL, Apache License, BSD)

了解 支持 系統 技巧 但是 sof form 許可證 軟件包

GPL

GPL授予程序接受人以下權利,或稱“自由”:

* 以任何目的運行此程序的自由

* 以學習程序工作機理為目的,對程序進行修改的自由(能得到源代碼是前提)

* 再發行復制件的自由

* 改進此程序,並公開發布改進的自由(能得到源代碼是前提)

相反地,隨版權所有軟件的最終用戶許可證幾乎從不授予用戶任何權利(除了使用的權利),甚至可能限制法律允許的行為,比如逆向工程。

GPL與其他一些更“許可的”自由軟件許可證(比如BSD許可證)相比,主要區別就在於GPL尋求確保上述自由能在復制件及演繹作品中得到保障。它通過一種由Stallman發明的叫copyleft的法律機制實現,即要求GPL程序的演繹作品也要在GPL之下。相反,BSD式的許可證並不禁止演繹作品變成版權所有軟件。

GPL不會授予許可證接受人無限的權利。再發行權的授予需要許可證接受人開放軟件的源代碼,及所有修改。且復制件、修改版本,都必須以GPL為許可證。

這些要求就是copyleft,它的基礎就是作品在法律上版權所有。由於它版權所有,許可證接受人就無權進行修改和再發行(除合理使用),除非它有一個copyleft條款。如果某人想行使通常被法律所禁止的權利,只需同意GPL的條款。相反地,如果某人發行軟件違反了GPL(比如不開放源代碼),他就有可能被原作者起訴。

copyleft利用版權法來達到與其相反的目的:copyleft給人不可剝奪的權利,而不是版權法所規定的諸多限制。這也是GPL被稱作“被黑的版權法”的原因。

許多GPL軟件發行者都把源代碼與可執行程序捆綁起來。另一方式就是以物理介質(比如CD)為載體提供源代碼。在實踐中,許多GPL軟件都是在互聯網上發行的,源代碼也有許多可以FTP方式得到。

copyleft只在程序再發行時發生效力。對軟件的修改可以不公開或開放源代碼,只要不發行。註意copyleft只對軟件有效力,而對軟件的輸出並無效力(除非輸出的是軟件本身)。不過這在GPL版本3中可能會有改動。

LGPL

GNU寬通用公共許可證,簡稱LGPL(GNU Lesser General Public License),被用於一些(但不是全部)GNU程序庫。這個許可證以前被稱為GNU庫(Library)通用公共許可證。

LGPL是GPL的變種,也是GNU為了得到更多的甚至是商用軟件開發商的支持而提出的。與GPL的最大不同是,可以私有使用LGPL授權的自由軟件,開發出來的新軟件可以是私有的而不需要是自由軟件。所以任何公司在使用自由軟件之前應該保證在LGPL或其它GPL變種的授權下。

Apache License

Apache License是著名的非盈利開源組織Apache采用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟件)。需要滿足的條件:

* 需要給代碼的用戶一份Apache License

* 如果你修改了代碼,需要再被修改的文件中說明

* 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議、商標、專利聲明和其他原來作者規定需要包含的說明

* 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache License。你可以在Notice中增加自己的許可,但不可以表現為對Apache License構成更改

Apache License也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售。

BSD

BSD授權許可證(FreeBSD Copyright Information)具有多種授權許可證。總的來說你可以對軟件任意處理,只要你在軟件中註明其是來自於那個項目的就可以了。也就是說你具有更大的自由度來處置軟件。如果你對軟件進行了修改,你可以限制其他使用者得到你修改的軟件的自由。

BSD授權許可證沒有實現"通透性"自由,也就是其不保證軟件源代碼開放的連續性。這樣如果你希望采用別人開發的BSD軟件,進行一些修改,然後作為產品賣,或者僅僅保密自己的做的一些除了軟件開發以外的工作,那麽你就可以從中得利。

當一個非程序員僅僅理解一個程序的功能,但是不了解程序是如何做的時,即使你沒有在開發軟件中做任何工作那你就可以通過高超的市場技巧將軟件賣給該用戶。比如拿最流行的桌面操作系統作為例子,你就能很好的理解一個沒有很好的程序技巧的軟件公司只要具有高超的市場營銷策略同樣可以將垃圾賣給客戶。如果你不具有很強大的編程能力,但是具有很強的市場能力和能將其他開發者的軟件包括到自己的系統,而同時不將自己的修改開放出來將是非常強大的能力。從賺錢為目的的商務角度看來,如果你使用了BSD授權許可證的軟件,那麽你就可以任意進行。你可以更好地控制你的OS系統,並且防止其他人拷貝你的商業產品。

總結

簡單的說,就是你使用了GPL許可證的軟件,那麽你的軟件產品就被GPL“傳染”了,也必須“自由”!這對國內的商業軟件開發商來說是很難接受的。

但是LGPL, Apache License, BSD就不存在這個問題,後兩者只要求你對軟件原作者的工作進行必要的認可和尊重就行了,所以這是適合商業應用的。

所以在選擇應用開源軟件時,一定要明白自己的用途,選擇合適許可證下的軟件。

最後,我們可以參考一下對GPL的評論:

2001年微軟的首席執行官Steve Ballmer稱Linux為“癌癥”,因為GPL的影響。微軟的批評指出,微軟憎惡GPL的真正原因是因為對微軟的“包圍、擴展、消滅”策略起了反作用。註意微軟已以GPL為許可證發行了SFU(Microsoft Windows Services for UNIX)中所包含的部分組件,例如GCC。

GPL的批評者常常認為GPL是有“傳染性”的“病毒”,因為GPL條款規定演繹作品也必須是GPL的。由於“演繹作品”通常被解釋為包含GPL代碼或動態鏈接到GPL庫(如上)的軟件,“病毒說”來源於GPL對於許可證的強制繼承的要求。這正是GPL與BSD式許可證的哲學思想上的差異。GPL的支持者確信自由軟件應確保其演繹作品同樣“自由”,但其他人認為自由軟件應給用戶最大的自由

【轉載】https://blog.csdn.net/shareCode/article/details/7420320

幾種常見的開源軟件許可協議(GPL, LGPL, Apache License, BSD)