天天看点

程序员之路:开源许可证

程序员之路:开源许可证

开源许可证(license)

开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。

版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。

所以软件开源的话,必须明确地授予用户开源许可证。

分类

宽松式(permissive)许可证

Copyleft 许可证

(1)没有使用限制

(2)没有质量担保

(3)披露原始作者(notice requirement)

常见许可证:

MIT

分发软件时,必须保留原始的许可证声明,不得使用原始作者的名字为软件促销。

Apache 2

分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。

如果分发二进制格式,必须提供源码

修改后的源码,必须与修改前保持许可证一致

不得在原始许可证以外,附加其他限制

GPL

如果项目包含了 GPL 许可证的代码,那么整个项目都必须使用 GPL 许可证。

LGPL

如果项目采用动态链接调用该许可证的库,项目可以不用开源。

Mozilla(MPL)

只要该许可证的代码在单独的文件中,新增的其他文件可以不用开源。

参考文章:

  1. 阮一峰的网络日志 - 开源许可证教程
  2. 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别