如果常在查找开源程序或浏览 GitHub 源码,会发现每个项目底下都有一个 LICENSE 文件,这也是程序使用的许可协议,若想使用这个项目的源码或相关资料就必须了解许可方式,简单来说,许可协议规范的是什么可以做、什么不能做,必须遵守才能合法使用。
比较常见的有 GNU 通用公众许可协议〔GPL〕、Apache 许可协议、MIT 许可协议和 BSD 许可协议等,大家一定都曾经听过或看过。
不过许可协议本身就很复杂,即使去查找维基百科或网络上的资料也不一定可以短时间看懂,有开发者将许可变得更简单,通过问答选择题来推荐开源许可,以互动方式显示最适合的开源许可选项,同时以更浅显易懂的解释、条列出优缺点,在更短时间内找出最适合的许可方式。
开源许可选择器简介
开源许可证选择器〔Open Source License Chooser〕是为需要选择许可的用户提供指引,将枯燥的法律术语转为更容易被大众理解的语言,除此之外,网站有「许可比较器」最多可将三种许可加入比较功能,以表格方式列出彼此之间的差异。
如果你不是开发者,纯粹想知道指定的开源许可信息,也可以在「开源许可选择器」获取相关说明。
教程
Open Source License Chooser – Find Your Perfect License
Choose the perfect open source license for your project with our humorous and easy-to-understand guide. No legal jargon, just straight talk!
进入「开源许可选择器」后先从右上角 Language 切换语言,有英文和简体中文语系。
接着从左边开始回答问题,完成后右边就会显示适合的许可许可证。
问题有五题,每一题都会有三个选项,主要就是分为是、否或是不确定,例如是否希望别人使用你的源码赚钱、别人能否修改你的源码、是否担心遇到专利流氓、软件是否会通过网络提供服务、是否在意其他开源项目的相容性,描述上都很平易近人,即使没有任何法律背景也很容易理解。
这项服务一共收录 15 种开放源码许可,会依照用户的回答推荐许可方式,例如下图就有 MIT License 和 Apache License 2.0 两种,它会有一段简单介绍、趣味解释〔以其他更生活化的方式描述此许可〕,更重要的是下方会有优点和缺点、使用量和示例项目。
React、Angular 使用的是 MIT 许可协议,目前已超过 140 万个网站使用。
可以点击「了解更多」连到许可官方网页以获取更多信息〔或者以名称去 Google 查找〕。
从「许可比较」功能可以选择最多三个许可类型,以表格方式列出更易于比较,包括描述、允许商业使用、网络服务相容、修改限制、优点、缺点、使用量和示例项目,支持可加入比较的开源许可有:
- MIT License
- Apache License 2.0
- GNU GPL-3.0
- BSD 3-Clause License
- GNU LGPL-3.0
- Mozilla Public License 2.0
- GNU AGPL-3.0
- Unlicense
- BSD 2-Clause License
- Creative Commons Zero v1.0 Universal
- ISC License
- CC BY-NC 4.0
- GNU Free Documentation License
- Eclipse Public License 1.0
- Boost Software License 1.0
许可使用情况统计
如果想知道开源许可被使用的比例,也可参考「许可使用情形图表」页面,主流是 MIT License、Apache License 2.0、BSD 3-Clause License 和 GNU GPL-3.0,移动到图表上会显示使用量。