常见开源协议
基本上都随便用(小声),要做的基本上就是包含版权声明和许可文本。
开源协议 | 许可条件 | 商业使用 | 复制 | 修改 | 再分发 | 专利权利 | 补充条款 |
---|---|---|---|---|---|---|---|
MIT | 必须包含原始版权声明和许可文本。 | 允许 | 允许 | 允许 | 允许 | 无 | 无 |
Apache 2.0 | 必须包含原始版权声明、许可文本、通知文件和修改说明;提供明确的专利授权。 | 允许 | 允许 | 允许 | 允许 | 有 | 有 |
GPLv3 | 修改和分发必须开源,且需保留相同许可证;必须提供源代码。 | 允许 | 允许 | 允许 | 允许 | 有 | 有 |
LGPLv3 | 类似于GPLv3,但允许链接到非LGPL软件中。 | 允许 | 允许 | 允许 | 允许 | 有 | 有 |
BSD 3-Clause | 必须包含版权声明、许可文本和免责声明;不得使用作者名字进行背书。 | 允许 | 允许 | 允许 | 允许 | 无 | 有 |
MPL 2.0 | 修改后的文件必须开源并保留MPL许可证;允许与其他许可证混合。 | 允许 | 允许 | 允许 | 允许 | 有 | 有 |
Unlicense | 完全放弃版权,进入公有领域。 | 允许 | 允许 | 允许 | 允许 | 无 | 无 |
主要开源协议的详细说明
MIT License
- 简介:一个非常宽松的许可证,只要保留原始的版权声明和许可文本,你可以自由地使用、复制、修改和分发代码。
- 主要用途:常用于小型项目和库,因为它简单且对使用者限制最少。
Apache License 2.0
- 简介:除了MIT的许可条件,还包括明确的专利授权,并要求在分发的每个文件中附上变更说明。
- 主要用途:常用于需要明确专利权保护的大型项目,如Apache基金会的项目。
GPLv3 (GNU General Public License v3)
- 简介:要求任何修改后的版本也必须开源,并且使用同样的许可证(即“传染性”许可证)。同时,必须提供源代码。
- 主要用途:保护用户自由,确保软件和修改版一直是开源的。常用于需要强制开源的项目。
LGPLv3 (GNU Lesser General Public License v3)
- 简介:允许链接到非LGPL的软件中,但对修改后的LGPL库本身仍要求开源和使用相同许可证。
- 主要用途:常用于开源库,允许它们被非开源软件使用,同时保护库本身的开源性。
BSD 3-Clause License
- 简介:要求保留版权声明和许可文本,不得用作者名字为衍生作品做宣传或背书。
- 主要用途:类似MIT,但增加了一些限制条件。常用于需要更严格控制名称使用的项目。
MPL 2.0 (Mozilla Public License 2.0)
- 简介:要求修改后的文件开源并保留MPL许可证,但允许与其他许可证的代码混合使用。
- 主要用途:常用于需要混合开源和闭源代码的大型项目,如Mozilla Firefox。
Unlicense
- 简介:将代码完全放弃版权,投入公有领域,无需保留版权声明或许可文本。
- 主要用途:用于完全放弃版权的项目,允许任何人以任何目的使用代码。
评论区(暂无评论)