许可协议

许可的目的是,向使用你产品的人提供 一定的权限。

不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用。否则,

  • 对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作者身份。
  • 对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。

开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。

以下是开源界的几大协议。

GNU GPL

全称为GNU General Public Licence有可能是开源界最常用的许可模式。

  • 可自由复制:你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。
  • 可自由分发:在你的网站提供下载,拷贝送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。
  • 可以用来盈利:你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的GNU GPL许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由
  • 可自由修改:如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用GPL协议。

分发的时候,需要明确提供源代码和二进制文件,使用GPL协议,你必须在源代码代码中包含相应信息,以及协议本身。

LGPL

另外一个协议叫做Lesser General Public Licence,它对产品所保留的权利比GPL

BSD

Berkeley Software Distribution)

MIT

Apache