为了了解各个分类的通俗易懂的含义,理解了好久,终于写出来文章了
简单的选择
阮一峰老师其实写过一篇文章,用中文介绍过6大常用开源协议,即如下图所示:
这其实就很足够日常使用了,所以本文完
更多的选择
面对更复杂情况或者看到其它开源仓库用的协议,大多数情况还是会一脸懵
我们可以把很多开源协议分为3大板块
权限(Permissions)
原作者给使用软件的人的权限
这个可以分为5大类:
商用(Commercial use):软件及其衍生品是否可用在商业用途
分发(Distribution):是否可以传播软件
修改(Modification):是否可以修改源代码
专利使用(Patent use):原作者是否授予专利权
私人使用(Private use):私下使用和修改的权利
条件(Conditions)
给修改、分发软件的人施加的限制条件,需要遵守
这个可以分成8种:
公开来源(Disclose source):
分发软件时必须带上源代码一起
许可和版权声明(License and copyright notice):
软件和源码必须带上原作者的许可证和版权声明
源代码许可和版权声明(License and copyright notice for source):
分发的源码必须带上许可证和版权声明,但二进制软件则不用
网络使用即分发(Network use is distribution):
通过网络与软件交互的用户,也有权获得该软件的源代码(即这个软件以网站的形式服务用户,那么这个软件也需要能让用户得到相应的源代码)
相同许可证(Same license):
分发修改后的源代码时需要采用相同的许可证
相同许可证(文件)(Same license (file)):
分发修改后的源代码时需要采用相同的许可证,且对非源代码的文件(如图片等)进行修改后也如此
相同许可证(库)(Same license (library)):
分发修改后的源代码时需要采用相同的许可证,但把它作为第三方库使用时则不需要
更改记录(State changes):
必须有明确的文档记录下对源代码所做的修改
限制(Limitations)
关于使用的一些限制,如软件使用出了问题该找谁
有3类情况需要了解
责任(Liability):原作者不对使用软件所带来的任何后果承担责任
商标使用(Trademark use):不授予使用作者姓名、软件商标等的权利
保证(Warranty):协议是否明确写出原作者不提供任何关于软件的担保
这下终于可以更多了解各种协议了,让我们在GitHub随便打开一个项目看看他的协议
看懂了吗?
Permissions
允许商业使用
允许修改
允许分发
允许私人使用
Limitations
作者不承担任何责任
作者不提供任何担保
Conditions
软件和源码必须带上原作者的许可证和版权声明
如果想了解更多协议,可以看看这个网站
相应的颜色我也对上了,边看左边的协议名称边对比右边颜色,就可以轻松辨别了
空白表示协议没有提到这一点,绿色和蓝色表示协议明确写出来允许某行为,红色表示协议明确写出来禁止这些行为