basic_knowledge

[toc]

开源许可证

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

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

开源许可证分成两大类。

宽松式(permissive)许可证

宽松式许可证(permissive license)是最基本的类型,对用户几乎没有限制。用户可以修改代码后闭源。

特点

用户可以使用代码,做任何想做的事情。

不保证代码质量,用户自担风险。

用户必须披露原始作者。

BSD(二条款版)

分发软件时,必须保留原始的许可证声明。

BSD(三条款版)

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

MIT

分发软件时,必须保留原始的许可证声明,与 BSD(二条款版)基本一致。

Apache 2

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

Copyleft 许可证

Copyleft 是理查德·斯托曼发明的一个词,作为 Copyright (版权)的反义词。

Copyright 直译是"复制权",这是版权制度的核心,意为不经许可,用户无权复制。作为反义词,Copyleft 的含义是不经许可,用户可以随意复制。

核心

修改后的 Copyleft 代码不得闭源

它带有前提条件,比宽松式许可证的限制要多。

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

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

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

Affero GPL (AGPL)

如果云服务(即 SAAS)用到的代码是该许可证,那么云服务的代码也必须开源。

GPL

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

LGPL

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

Mozilla(MPL)

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