开源许可协议
当你给软件附上许可证时,意味着你将保留对软件的所有权利。许可协议用来授权其他人具有某种使用你的作品的权利。
开源许可协议 使人们免去了研究那些专业的许可条款的麻烦,使人们更方便的对开源项目贡献出自己的代码。而且它还能保护你作为作品的原创作者,确保你至少拥有由于贡献参与而带来的署名荣誉。它还能用来阻止其他人企图声明对你的作品拥有所有权的行为。
开源软件的授权许可都是基于开源许可协议的,常见的开源许可协议有GPL、LGPL、APL、BSD、MIT、MPL、Creative Commons、EPL等。
GPL
GPL(GNU General Public License)要求使用源软件的类库引用、修改了源代码的新软件,也必须采用GPL进行授权。采用GPL授权的软件有:Linux、MySQL等。GPL是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:
可自由复制
你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。
可自由分发
可提供给其他人下载,拷贝。
可以用来盈利
你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的GPL许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。可自由修改。
如果你想添加或删除某个功能,使用了这段代码的项目也必须使用 GPL 协议。
需要注意的是分发的时候,需要明确提供源代码和二进制文件。使用 GPL协议,你必须在源代码代码中包含相应信息,以及协议本身。
BSD
BSD(Berkeley Software Distribution)这个协议的要求很宽松,允许他人修改和重新发布代码,可以在此基础上开发出商业软件进行销售。所以此协议适用于商业软件。采用BSD协议的软件最著名的有nginx。
MIT
MIT(Massachusetts Institute of Technology)又称X11协议。MIT与BSD类似,但是比BSD协议更加宽松,算是目前限制最少的协议了。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。采用MIT的软件有:jquery、Nodejs
LGPL
LGPL(Lesser GPL)相比GPL的严格,LGPL要温和很多。可以通过引用类库的方式(不是直接使用源代码)拿LGPL授权的东东来重新开发商业软件。如果是要修改源代码,是相应的修改和衍生出来的代码都要使用LGPL开放源代码。采用LGPL的软件有:JBoss、Hibernate、FCKeditor等。
APL
APL(apache Licence vesion)适用于商业软件,允许修改代码后再发布(不用开放源代码)。采用APL的软件有Hadoop、Apache HttpServer等。
Creative Commons
Creative Commons(知识共享)简称cc协议,是一个相对宽松的版权协议。它只保留了几种权利(some rights reserved)。使用者可以明确知道所有者的权利,不容易侵犯对方的版权,作品可以得到有效传播。
作为作者,你可以选择以下1~4种权利组合:
-
署名(Attribution,简写为BY):必须提到原作者。
-
非商业用途(Noncommercial,简写为NC):不得用于盈利性目的。
-
禁止演绎(No Derivative Works,简写为ND):不得修改原作品, 不得再创作。
-
相同方式共享(Share Alike,简写为SA):允许修改原作品,但必须使用相同的许可证发布
MPL
MPL(Mozilla Public License)是1998年初Netscape的Mozilla小组为其开源软件项目设计的软件许可证。
参考链接
https://www.oschina.net/question/54100_9455
http://os.51cto.com/art/201409/450453.htm
http://blog.csdn.net/testcs_dn/article/details/38496107
http://down.chinaz.com/server/201105/552_1.htm