License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的。软件协议可分为开源和商业两类,对于商业协议,或者叫法律声明、许可协议,每个软件会有自己的一套行文,由软件作者或专门律师撰写,对于大多数人来说不必自己花时间和精力去写繁长的许可协议,选择一份广为流传的开源协议就是个不错的选择。
世界上开源软件协议OPEN SOURCE LICENSE的种类非常之多,并且同一款协议有很多变种,协议太宽松会导致作者丧失对作品的很多权利,太严格又不便于使用者使用及作品的传播,所以开源作者要考虑自己对作品想保留哪些权利,放开哪些限制。
一、主流的开源协议
1. GPL
GPL,是GNU General Public License的缩写,为GNU通用公共授权非正式的中文翻译。我们很熟悉的Linux就是采用了GPL,GPL协议和BSD, Apache License等鼓励代码重用的许可很不一样,GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。
- GPL1即最初的版本,发布于1989年一月,其目的是防止那些阻碍自由软件的行为,而这些阻碍软件开源的行为主要有两种(一种是软件发布者只发布可执行的二进制代码而不发布具体源代码,一种是软件发布者在软件许可加入限制性条款)。因此按照GPLv1,如果发布了可执行的二进制代码,就必须同时发布可读的源代码,并且在发布任何基于GPL许可的软件时,不能添加任何限制性的条款。
- GPL2在1991年6月发布,与此同时第二个许可证程序库GNU通用公共许可证(LGPL,the Lesser General Public License)也被发布出来并且一开始就将其版本定为第2版本以表示其和GPLv2的互补性。这个版本一直延续到1999年,并分支出一个派生的LGPL版本号为2.1,并将其重命名为轻量级通用公共许可证(又称宽通用公共许可证)(Lesser General Public License)以反映其在整个GNU哲学中的位置。
- GPL3正由斯托曼起草,由伊本·莫格林和软件自由法律中心(