許多混亂就始於你不知道License到底是什么,到底有什么含義。當你對你的產品使用License時,並不意味着你放棄了任何權利,你依然對其擁有原著作權。License只是授予他們於特定權利來使用你的產品。
License只是把你的作品釋放到公有領域,或者給各個拷貝賦予權限。也意味着你放棄了版權收入,別人也沒有義務把你列為原作者或貢獻者。
開放源代碼許可協議更容易為他人作出貢獻,而不必尋求特別的許可。它也可以保護你作為原創者的權利,至少確認了你的貢獻。它還可以保證你的工作不為別人所剽竊。
GNU General Public License
GNU General Public License (GPL)的可能是開源項目最常用的許可證。GPL賦予和保證了開源項目開發者廣泛的權利。基本上,它允許用戶合法復制,分發和修改軟件。 這意味着你可以:
* 復制軟件
復制軟件到自己的服務器,客戶端的服務器,你自己的電腦,幾乎任何你想要的地方,而且沒有數量限制。
* 發布軟件
發布你想要的軟件,例如,在你的網站提供下載鏈接,刻成光盤,打印出來等等。
* 收取費用
如果你想在向別人提供軟件時收費,如設置在別人的網站上或者其他用途時。GPL允許你這么做,但是你必須給客戶提供一個GPL副本,告訴他們可以在其他地方得到免費版本。當然最好在此之前,告訴客戶,你為什么收費。
* 可以任意修改
如果你想添加或刪除功能,沒問題。如果想在其他項目中使用部分代碼,也是可以的,但是唯一的限制是此項目也必須按GPL發布。
商業軟件不能使用GPL協議的代碼。
GNU Lesser General Public License
還有另一個GNU License:GNU Lesser General Public License (LGPL)。比起GPL它授予的權限較少。一般來說,LGPL比較適合連接到非GPL或者非開源文件的庫文件。由於GPL的規定,使用到部分GPL代碼的軟件,必須也使用GPL,開發人員不能使用GPL來開發收費軟件或者專有軟件。LGPL則沒有這方面的要求,不要求使用與部分代碼相同的 License。
商業軟件可以使用,但不能修改LGPL協議的代碼。
BSD License
BSD License與其他自由軟件License相比,如GPL,限制更少。但是請注意到BSD License兩種版本之間的差別:New BSD License/Modified BSD License 和Simplified BSD License/FreeBSD License。它們兩者都是於GPL兼容的自由軟件License。
New BSD License (”3-clause license”) 可以用於任何作為版權聲明和保證許可的免責聲明的目的,可以通過無限長的再分發來得以維持,也就是說如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協 議。它還有一個特殊限制條款,不用特別的許可就是限制使用派生工作的工作者名字,也就是說不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。
New BSD License和Simplified BSD License的主要區別是,后者忽略了非認可條款。
商業軟件可以使用,也可以修改使用BSD協議的代碼。
MIT License
MIT是和BSD一樣寬松的許可協議,作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版里包含原許可協議的聲明,無論你是以二進制發布的還是以源代碼發布的。
* 你可以使用,復制和修改軟件
* 你可以免費使用軟件或出售
* 唯一的限制是,它是必須附有MIT授權協議
商業軟件可以使用,也可以修改MIT協議的代碼,甚至可以出售MIT協議的代碼。
Mozilla Public License 1.1 (MPL)
MPL協議允許免費重發布、免費修改,但要求修改后的代碼版權歸軟件的發起者。這種授權維護了商業軟件的利益,,它要求基於這種軟件得修改無償貢獻版權給該軟件。這樣,圍繞該軟件得所有代碼得版權都集中在發起開發人得手中。但MPL是允許修改,無償使用得。MPL軟件對鏈接沒有要求。
商業軟件可以使用,也可以修改MPL協議的代碼,但修改后的代碼版權歸軟件的發起者。
Common Development and Distribution License
CDDL(Common Development and Distribution License,通用開發與銷售許可)開源協議,是MPL(Mozilla Public License)的擴展協議,它允許公共版權使用,無專利費,並提供專利保護,可集成於商業軟件中,允許自行發布許可。
商業軟件可以使用,也可以修改CDDL協議的代碼。
Apache License
Apache Licence是著名的非盈利開源組織Apache采用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布 (作為開源或商業軟件)。需要滿足的條件:
* 需要給代碼的用戶一份Apache License。
* 如果你修改了代碼,需要在被修改的文件中說明。
* 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
* 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache License。你可以在Notice中增加自己的許可,但不可以表現為對Apache License構成更改。
Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售。
商業軟件可以使用,也可以修改使用Apache協議的代碼。
Eclipse Public License
EPL是一個與CPL相類似的許可證,任何擴展自Eclipse源碼的代碼也必須是開源的。
Creative Commons
Creative Commons(CC)的許可證不太開放源代碼授權,它們通常用於設計項目。 CC許可證有着寬廣的定義,每個定義都會授予一定的權利。它有四個基本部分,可以單獨或者組合使用。下面是部分概述:
* 署名
作者必須是作品的原創者。 除此之外,作品可以修改,分發,復制和以其他方式使用。
* 相同方式共享
工作可以修改,分發等等,但必須在一個許可證下。
* 非商業
可以修改,分發等,但不用於商業目的。 關於什么是“商業”,說法比較含糊(沒有提供明確的定義),因此您可能需要在自己的項目中澄清這一點。
* 禁止修改
這意味着您可以復制和分發許可工作,但你不能以任何方式修改,或在原有的基礎開發。
商業軟件的使用要遵從CC協議的具體規定,最嚴格的許可證將是“署名,非商業,不能修改”的授權。這意味着你可以自由共享的工作,但不能改變它,你必須把它歸功於原創者。
Common Public License 1.0
Common許可證有一些細節性的規定值得參考:
* 明確了專利授權。一般的開源軟件都明確源代碼的版權人將自己的修改權、復制權等版權權利向公眾許可,但保留署名權,而Common許可證在此基礎上還明確假如源代碼中含有專利權,源代碼專利權人將復制、使用的專有權利向公眾許可。
* 規定可以將源代碼及修改過的源代碼與其他類型的不受本許可證約束的代碼結合,以新產品的形式發布,只要其中經該許可證獲得的源代碼及修改過的源代碼能按該許可證的要求發布即可。
* 細化了該許可證終止的情形,包括發生專利侵權訴訟。
* 明確了一個獨立承擔責任的原則,就是假如按該許可證使用源代碼的使用者將獲得的源代碼應用於商業使用,那么他就要對在商業應用中出現的由於使用該源代碼程序而產生的侵權訴訟承擔完全責任。這一條規定是比較特殊的,絕大多數開源軟件許可證都不這么要求。
商業軟件可以使用,也可以修改Common協議的代碼,但要承擔代碼產生的侵權責任。