一文读懂常用开源许可证

社区时常为流行产品中有争议的开源许可证而感到震惊 , 这引起各方关注 , 纷纷争论何为真正的开源许可证 。去年 , Apache 基金会(Apache Foundation)禁止使用 Facebook React 那些具有争议的专利组件 , 这引发了轩然大波 , 并让大量人员纷纷跑去加入 Reddit boards 。在过去的几个月中 ,  redis Labs 和 MongoDB 修改了他们备受欢迎的开源数据库的许可证 , 这让许多人难以自拔 , 凸显了用大家都能看懂的人话来具体介绍常见开源许可证的紧迫性和必要性 。
最简单的解释是 , 开源许可证(open source licenses)是软件组件(software component)的作者与用户之间的具有法律约束力的合同(legal and binding contracts) , 声明该软件可以在指定条件下(under specified conditions)用于商业应用(be used in commercial Applications) 。许可证使得代码变为开源组件 。没有开源许可证 , 便无法将该软件组件给他人使用 , 即便该组件公开发布于 GitHub 。
每个开源许可证都会声明用户被允许使用该软件组件用于何用途、义务、以及条款规定的不可用于哪些用途 。这听起来似乎很简单 , 但开源许可证存在至少 200 个——祝你好运 , 希望你能搞懂它们 。由于复杂性和不同要求 , 组织需要选择哪些许可证以便与它们的政策最兼容 , 确保合规 。
 Copyleft 与 Permissive
两种类型的开源许可证
开源许可证的两个主要类别需要深入说明 , 开源许可证分类两大类:copyleft 和 permissive , 该划分基于许可证对于用户的要求与限制(requirements and restrictions) 。
版权(Copyright)是一种法律 , 它赋予了版权所有者限制他人使用、修改与共享创意作品的权利 , 使用者要使用、修改或共享创意作品 , 便需要版权所有者的许可 。诸如音乐、电影等 , 都是它们的创作者的知识产权 。当作者以 copyleft 许可证发布程序时 , 他们主张对该作品的版权(make a claim on the copyright of the work) , 并声明只要保持权利对等(reciprocity of the obligation) , 其他人便有权使用、修改和共享该作品 。简而言之 , 如果他们使用具有这种类型开源许可证的组件 , 那么他们也必须开放其代码以供他人使用 。
宽松开源许可证(Permissive open source licenses)是一种非版权保留(non-copyleft)的开源许可证 , 可以保证使用、修改、重新分发的自由 , 同时还允许用于具有专利的派生作品之中 。宽松开源许可证被亲切地称为「Anything Goes」(为所欲为) , 对他人如何使用开源代码组件设置了最小的限制(place minimal restrictions) 。这意味着这种许可证允许自由地使用、修改和重新分发开源代码 , 允许用于专利作品中 , 并对此不求回报 。
备忘
了解顶级开源许可证
首先要强调的是 , 没有什么「好的许可证」 , 也没有什么「不好的许可证」 , 而且也不存在「一个许可证比另一个许可证更好」的情况 。任何人都可以创建适合他们自己喜好的开源许可证 , 这就是为何有这么多许可证存在的原因了 。这可能会是如何选择开源许可证变得复杂 , 特别是对于那些对法律不太熟悉、也从未得到过对开源许可证的详尽解释的人 。为缩小决策范围并充分理解它们 , OSI 汇总了一份已批准的许可证清单 , 其中包括 80 多个最常用的开源许可证 。
在 OSI 清单内的几十个开源许可证之中 , 其中有一些占据着上风 , 且被一些最受欢迎的开源项目所使用 。我们汇总了这份简要清单 , 罗列了一些常用的开源许可证 。
GNU 通用公共许可证(GPL)
GNU 通用公共许可证(The GNU's General Public License)是最受欢迎的开源许可证 。理查德·斯托曼(Richard Stallman)创建了 GPL , 以保护 GNU 软件免于被申请专利 , 这是他对「copyleft」概念的理解和实现 。
GPL 是 copyleft 许可证 , 这意味着任何基于 GPL 组件编写的任何软件都必须开源发布 。其结果是任何使用 GPL 开源组件(无论其在整个代码中占比多少)的任何软件都必须释出(release)其完整的源代码 , 以及修改和分发整个代码的所有权利 。
关于什么构成「某作品基于另一作品」一直存在这混淆 , 因为这会触发 GPL 的对等义务 。自由软件基金会(FSF)试图通过 GPLv3 使「何时会触发对等义务」变得更清晰 。基金会甚至为此编写了新的 GPL 许可证—— Affero 许可证——以解决被称作「ASP loophole」的特定混乱 。


推荐阅读