开源协议简介
为什么要添加开源协议?
首先是对作者的保护,防止知识成果被恶意利用。
- 开源协议中一般都包含免责声明(禁止代码的作者承担代码使用后的风险及产生的后果),比如你开源了一个破解智能锁的代码,如果有人利用这个去盗窃导致他人损失,你是无需承担责任的。
其次是对使用者的保护,方便使用者。
- 使用者一看就知道自己允许进行哪些操作,不允许进行哪些操作。
- 未添加协议的代码默认是作者保留所有权利的(对此不同国家的法律可能稍微存在区别),这就像一颗定时炸弹,如果你在项目中使用了这一份没有协议的代码,原作者只要能证明你未经许可使用了他的代码,是能够起诉你的。
常用的三种协议
MIT 协议:安心写代码,随便别人怎么搞。
- 允许别人以任何方式使用。
- 署名作者。
- 原作者不承担代码使用后的风险。
Apache 协议:我想保有专利,但你们可以随便用。
- 授权使用者免费使用个人专利。
- 使用者必须放置协议说明。
- 使用者需要对修改部分声明。
- 禁止用作者的名号进行商业广告。
- 原作者不承担代码使用后风险。
GPL 协议:对开源最苛刻的协议,具有传染性。
- 使用者必须遵循相同的协议进行开源
- 原作者不承担代码使用后风险
乌克兰程序员 Paul Bagwell 的分析图
参考资料