抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

为了了解各个分类的通俗易懂的含义,理解了好久,终于写出来文章了(泪目)

简单的选择

阮一峰老师其实写过一篇文章,用中文介绍过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

软件和源码必须带上原作者的许可证和版权声明

如果想了解更多协议,可以看看这个网站
相应的颜色我也对上了,边看左边的协议名称边对比右边颜色,就可以轻松辨别了

空白表示协议没有提到这一点,绿色蓝色表示协议明确写出来允许某行为,红色表示协议明确写出来禁止这些行为

评论