开源协议规定了你在使用开源软件时的权利和责任,也就是规定了你可以做什么,不可以做什么的法律文件
相关概念
- License:许可协议
- Open Source License:开源许可协议
- 引用:将开源软件作为一个底层的库来进行引用,有时也称之为连接 link
- 修改:对开源软件的源码进行修改,即所谓的二次开发
- 衍生品:将第三方库集成到自己的产品中,或者进行二次开发,并将最终的产品对外发布
- 使用者的权利:获取源码的权力、修改源码的权利、自由处理衍生作品的权利
- Copyright:软件的版权和其它一切权利归软件作者所私有,用户只有使用权,没有其它权利,包括没有复制软件的权利
- Copyleft:软件的版权归原作者所有,其它一切权利归任何人所有,任何人也不能将软件拒为私有
常见协议
MIT
MIT 许可协议由自麻省理工学院(MIT)发布,特点:
- 可自由的获取、修改、使用源码、发布衍生品
- 在修改后的代码或者发行包保留原作者的许可协议
BSD
BSD 许可协议是由加州大学伯克利分校发布并维护的开源软件许可证,特点:
- 可自由的获取、修改、使用源码、发布衍生品
- 在修改后的代码或者发行包保留原作者的许可协议
- 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广
- 两句版 BSD 许可证等价于 MIT 许可证
Apache
Apache 许可协议由 Apache 软件基金会发布的自由软件许可证,特点:
- 可自由的获取、修改、使用源码、发布衍生品
- 保留原作者的许可协议,如果修改了程序源代码,需要在文档中进行声明
Mozilla
MPL 许可协议是1998年初Netscape的Mozilla小组为其开源软件项目设计的软件许可证
- 可自由的获取、修改、使用源码、发布衍生品
- 保留原作者的许可协议,如果修改了程序源代码,需要在文档中进行声明
- 对源码修改的部分代码也需遵循 MPL 协议
GPL
GPL 许可协议即 GNU 通用公共许可协议,由自由软件基金会公布的自由软件许可证,特点:
- 可自由的获取、修改、使用源码、发布衍生品
- 使用了遵循 GPL 协议的源码,其衍生品也要遵循 GPL 协议
LGPL
LGPL 许可协议即 GNU 宽通用公共许可协议,由自由软件基金会公布的自由软件许可证,特点:
- 可自由的获取、修改、使用源码、发布衍生品
- 修改了遵循 GPL 协议的源码,其衍生品也要遵循 LGPL 协议
ISC
ISC 许可协议由 ISC(Internet Systems Consortium)所发明,在功能上与两句版的 BSD 许可证相同
各协议对比图
使用协议
添加许可证关键字
在项目的配置文件中,可以声明使用了哪种开源协议,例如在 node 的 package.json
中使用
license: 许可证关键字
各协议的关键字:
- MIT:
mit
协议内容 - BSD:
bsd-2-clause
协议内容、bsd-3-clause
协议内容 - Apache:
apache-2.0
协议内容 - Mozilla:
mpl-2.0
协议内容 - GPL:
gpl-2.0
协议内容、gpl-3.0
协议内容 - LGPL:
lgpl-2.0
协议内容、lgpl-2.1
协议内容、lgpl-3.0
协议内容 - ISC:
isc
协议内容
添加许可证文件
在项目根目录创建 LICENSE.txt
或者 (LICENSE.md
、LICENSE.rst
),文件内容为许可协议内容