各种软件许可证详解

软件从闭源为主到开源成为主流,经历了几十年的发展。世界范围内,由于知识产权越来越受到重视和法律层面的保护,开源软件许可证也已经被广泛视为一种具有法律效力的合约,它规定了在软件使用和分发过程中的权利和义务。
具有强传染性的GPL协议导致的争议为很多企业敲响了警钟,许多有意识的企业开始对使用的开源组件进行梳理。特别是一大批有出海业务的企业,由于随时可能面临外部的审查。目前,我国大部分企业对于开源软件许可证的理解和认识尚处于初级阶段:
开源许可证超过 2000多种,大部分企业内部缺少专业的团队来对许可证条款进行详细解读。
开源组件的许可证通常是英文的条款,即便是对同一个条款,不同的法律人士解读的角度也会不同。 本文将为大家介绍一些常见开源许可协议。

1、对等型许可证

这类许可证的代表为GPL和AGPL,它们具有如下特点:

软件本身必须开源,具有强传染性,与其有链接关系的代码都必须以GPL许可对外开源,即**与该软件在同一进程中运行的代码都必须开源**。

1.1 GPL

GPL 全称为GNU General Public License, 第一个版本发布于1989年,之后又在1991年和2007年陆续发布了v2、v3,还有其他衍生的许可证。GPL许可证被认为是使用最广泛的开源许可证,我们常用的Linux核心就是以GPLv2发布的。

GPL各个版本主要规定的权利义务如下:

GPLv1主要在两方面做了限制:1.如果拷贝或者分发了GPLv1协议下的软件,那么必须开放源代码,不可以可执行的二进制文件进行发布;2.基于GPLv1发布的软件不可以与其他限制性更强条款发布的软件相结合。

GPLv2 主要的特点是Liberty or Death条款,这个条款表明,被许可人只有在满足所有许可证的义务下才可以分发包含GPL授权的软件,即使他们可能拥有其他的法律义务。此条款是为了保障和尊重用户在许可证下的自由免受专利侵权或者其他诉讼的侵害。GPLv2是运用最广泛的一个版本。

GPLv3主要在GPLv2的基础上做了如下改进:

GPLv3对专利做了明确的说明,GPLv3对TiVo这类硬件做了要求,使用者可以按照要求加一些补充条款(主要是免责和保护版权人权益方面的)。
Linux的创始人Linus Torvalds对GPLv3表达了明确的反对,因为GPLv3的第六条要求TiVo这类的厂商提供签名的私钥,使得人们可以运行修改后的代码,而Linus认为软件开发人员没有权利规定硬件厂商的行为,所以Linux使用的依然是GPLv2。

GPLv2第6条规定:不能添加任何额外的限制。仅从这一点看,GPLv2和GPLv3是不兼容的,因为两者的第6条规定是冲突的,因此不能将使用GPLv2许可的代码和GPLv3的代码合并在一起。
(闲的淡腾)

1.2 AGPL

AGPL全称是The Affero General Public License, 是GPL的一个补充,主要是针对网络服务商做了一些限制,在GPL协议中,修改和使用其代码都需要开源,但是这是建立在软件分发的基础上,如果使用代码作为服务提供,而不分发软件,则不需要开源。

AGPL许可协议将Copyleft这一概念延伸至网络上开源软件所交付的服务。在AGPL的规定中,如果其许可的程序与用户通过网络进行远程交互,那么就需要提供源代码给用户,所有的修改也需要提供给用户。常见的“通过计算机远程网络交互”的场景有:网络和邮件服务器、基于互动的网络应用程序和在线播放的游戏服务器等。在2018年之前,MongoDB社区版的许可协议从AGPL更改为SSPL(SSPL发起人为MongoDB,目前还未获得OSI的批准)。

2、弱对等型许可证

这类许可证的代表为LGPL,具有如下特点:

软件本身须开源
具有传染性,与其静态链接部分的代码也必须以LGPL许可开源;动态链接则不被传染。
若对其进行修改,若修改后增加的功能实现依赖于产品软件的数据或功能,则产品代码也会被传染。
LGPL全称是GNU Lesser General Public License,顾名思义,与GPL比,它的限制更少(Lesser),GPL的核心主旨是用户需要公开软件作品和其衍生作品的源代码,但是LGPL要求用户仅共享基于LGPL 许可证的组件的源代码,而不是使用它的作品的源代码。且LGPL更针对C语言及类C语言。

3、友好型许可证

这类许可证的代表为MPL,具有如下特点:

若无修改,则无需开源。若对其进行了修改,需将修改的部分开源。MPL全称是Mozilla Public License,MPL允许在其授权下的源代码与其他授权的文件进行混合,包括私有许可证。但在MPL授权下的代码文件必须保持MPL授权,并且保持开源。因此MPL既不像MIT和BSD那样允许衍生作品完全转化为私有,也不像GPL那样要求所有的衍生作品,包括新的组件在内,全部必须维持GPL协议。通过允许在衍生项目中存在私有模块,同时保证核心文件的开源,MPL同时激励了商业及开源社区来参与帮助开发核心软件。

4、宽松型许可证

这类许可证的代表为BSD/Apache/MIT,此类许可证并无开源要求。

4.1 MIT

许可证发起人为麻省理工学院,它的使用非常广泛,比如PuTTY, Ruby on Rails, Lua, VS Code等等。(白票程序猿的最爱

4.2 BSD

许可证发起人为加州大学伯克利分校,遵守BSD License的软件,允许用作商业用途,甚至可按照专属许可证进行再发布。它被认为是一种copycenter类的许可证。

BSD和MIT的区别在于,BSD禁止衍生软件用其他名称做宣传,而MIT允许这一行为。
白票程序猿的小三

4.3 Apache

许可证的发起人为Apache基金会,它与BSD/MIT的核心区别是每一个修改过的文件,都必须放置版权说明。

5、其他补充

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值