「势说新语」浅谈软件许可证

2023-10-28 07:30

本文主要是介绍「势说新语」浅谈软件许可证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

软件从闭源为主到开源成为主流,经历了几十年的发展。世界范围内,由于知识产权越来越受到重视和法律层面的保护,开源软件许可证也已经被广泛视为一种具有法律效力的合约,它规定了在软件使用和分发过程中的权利和义务。

近年来,开源软件的合法使用在中国越来越受到重视,从数字天堂和两柚子案到罗盒案,由于具有强传染性的 GPL 协议导致的争议为很多企业敲响了警钟,许多有意识的企业开始对使用的开源组件进行梳理。特别是一大批有出海业务的企业,由于随时可能面临外部的审查,这种对开源组件治理的需求会更加迫切。但目前,我国大部分企业对于开源软件许可证的理解和认识尚处于初级阶段:

  • 开源许可证这个概念起源于西方,且开源的概念也是从西方发起的,我们要迅速完成从被动参与者到主动贡献者角色转变的难度比较大。

  • 开源许可证超过 2000 多种,大部分企业内部缺少专业的团队来对许可证条款进行详细解读。

  • 开源组件的许可证通常是英文的条款,即便是对同一个条款,不同的法律人士解读的角度也会不同。

本文将为大家介绍一些常见开源许可协议。

首先聊聊开源许可证的种类,其实分类的方法有很多,但是笔者认为不同的分类并没有对错之分,更多的是为大家在进行开源治理的时候提供较为清晰的思路。

对等型许可证

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

  • 软件本身必须开源

  • 具有强传染性,与其有链接关系的代码都必须以 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 的代码合并在一起。

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

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

弱对等型许可证

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

  • 软件本身须开源

  • 具有传染性,与其静态链接部分的代码也必须以 LGPL 许可开源;动态链接则不被传染。

  • 若对其进行修改,若修改后增加的功能实现依赖于产品软件的数据或功能,则产品代码也会被传染。

LGPL 全称是 GNU Lesser General Public License,顾名思义,与 GPL 比,它的限制更少(Lesser),GPL 的核心主旨是用户需要公开软件作品和其衍生作品的源代码,但是 LGPL 要求用户仅共享基于 LGPL 许可证的组件的源代码,而不是使用它的作品的源代码。且 LGPL 更针对 C 语言及类 C 语言。

友好型许可证

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

  • 若无修改,则无需开源

  • 若对其进行了修改,需将修改的部分开源

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

宽松型许可证

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

MIT 许可证发起人为麻省理工学院,它的使用非常广泛,比如 PuTTY, Ruby on Rails, Lua, VS Code 等等。

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

BSD 和 MIT 的区别在于,BSD 禁止衍生软件用你的名字做宣传,而 MIT 允许这一行为。

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

以下是一些许可证方面的 Q&A 供大家参考:

Q: 在发布一个开源项目的时候,如何选择许可证?

A: 其实这是一个需要系统梳理的工程,不过我们可以参考阮一峰老师翻译的这张图来做初步判断:

Q: 一个组件可以使用多个开源许可证吗?

A: 可以的,比如 Firefox 最初的时候使用了三个许可证发布:MPL,GPLv2 or LGPL 2.1。Perl 也使用了 GPL or Artistic 协议的多重许可方式。但是要注意多许可证的兼容性问题。

Q: 如何分析许可证兼容性?

A: 通常许可证的官网会提供该许可证与其他许可证的兼容性分析 Matrix, 比如 GPL: https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses; 

EUPL: https://joinup.ec.europa.eu/collection/eupl/matrix-eupl-compatible-open-source-licences等等。但是我们也可以通过一个开源的组织 OSADL(Open Source Automation Development Lab)提供的相对比较全面的清单来做审查,当然如果想要获得更好的效果,还是需要借助专业的 SCA 工具来进行内部开源软件的治理。

相信通过以上内容的介绍,大家对常见的软件许可证有了初步的了解,在后续的分享中,安势信息会持续给大家带来更多关于软件许可证的文章。

 

这篇关于「势说新语」浅谈软件许可证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291673

相关文章

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank 正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

梳理2024年,螺丝钉们爱用的3款剪辑软件

这年头,视频到处都是,就跟天上的星星一样数不清。不管你是公司里的新面孔,还是职场上的老狐狸,学会怎么剪视频,就好比找到了赢的秘诀。不管是给上司汇报工作,展示你的产品,还是自己搞点小视频记录生活,只要是剪辑得漂亮,肯定能一下子吸引大家的目光,让人记得你。咱们今天就来侃侃现在超火的三款视频剪辑工具,尤其是PR剪辑,你肯定听说过,这货在剪辑界可是大名鼎鼎,用它剪视频,既专业又麻利。 NO1. 福昕轻松

秒变高手:玩转CentOS 7软件更换的方法大全

在 CentOS 7 中更换软件源可以通过以下步骤完成。更换源可以加快软件包的下载速度,特别是当默认源速度较慢时。以下是详细步骤: 前言 为了帮助您解决在使用CentOS 7安装不了软件速度慢的问题,我们推出了这份由浪浪云赞助的教程——“CentOS7如何更换软件源加快下载速度”。 浪浪云,以他们卓越的弹性计算、云存储和网络服务受到广泛好评,他们的支持和帮助使得我们可以将最前沿的技术知识分

浅谈PHP5中垃圾回收算法(Garbage Collection)的演化

前言 PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection)。现在如果去PHP官方网站(php.net)可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是老手,这一技巧都将是你的得力助手,让你在信息的海洋中畅游无阻。 方法一:使用同声传译王软件 同声传译王是一款专业的翻译软件,它支持多种语言翻译,可以excel