# 开源许可证
版权法默认禁止共享,没有许可证的软件等同于保留版权,虽然开源但是只能看源码不能使用,一用就会侵犯版权,软件开源的话是必须明确地授予用户开源许可证。常见许可证如下图:
开源许可分为两大类:
- Permissive许可证。
- Copyleft许可证。
# Permissive许可证
该许可证对用于几乎没有限制,用户修改代码后可闭源。它有三个特点:
- 用户可用代码做任何事情。
- 不保证代码质量,用户自己承担风险。
- 用户必须说明原作者。
# 常见Permissive许可证
- BSD(2-Clause):分发软件时必须保留原始许可声明。
- BSD(3-Clause):分发软件时必须保留原始许可声明。不能使用原始作者名字做宣传。
- MIT:与BSD(2-Clause)基本一致。
- Apache2:分发软件时必须保留原始许可声明。凡是修改过的文件,必须向用户说明该文件修改过,没有修改过的文件必须保持许可证不变。
# Copyleft
Richard Stallman发明的这个词,与Copyright相对,Copyright是"复制权",是版权制度的核心,不经许可,无权复制。而Copyleft则是不经许可,用户可以随意复制。但是它也有一些限制,核心是修改后的代码不能闭源:
- 如果分发二进制格式,必须提供源码。
- 修改后的源码必须与修改前的许可证保持一致。
- 不能在原始许可证以外附加其他限制。
# 常见Copyleft许可证
- Affero GPL(AGPL):如果云服务用到的代码是该许可证,云服务的代码也必须开源。
- GPL:如果项目包含了GPL许可证代码,整个项目必须使用GPL许可证。
- LGPL:如果项目采用动态链接方式调用该许可证的库,项目可以不开源。
- MPL(Mozilla):只要该许可证的代码在单独的文件中,新增的其他文件可以不开源。
# 许可证商业可用性
- BSD:商业软件可用,也可修改代码。
- MIT:商业软件可用,也可修改代码,甚至可以卖。
- MPL:商业软件可用,可修改代码,修改后的代码版权归软件的发起者。
- LGPL:商业软件可用,但不能修改LGPL协议代码。
- GPL:商业软件不能使用GPL代码。
- EPL(Eclipse Public License):商业软件可用,可修改代码,要承担代码可能产生的侵权责任。
- CDDL(Common Development and Distribution License):商业软件可用,也可修改代码。
# 如何选择
这么多许可证如何选择?许可证选择 (opens new window)这里根据用途来选择许可证。
- 如果你想要一个简单的许可证,且不怎么受限制,可选择MIT。
- 如果你想要别人不能基于你的项目闭源,可选择GNU GPLv3。
← Markdown基础语法 代码质量管理 →