顶级开源许可证详解

news2024/9/22 23:33:36

目录

软件许可证类型:版权左派和宽容型

顶级开源许可证详解

GNU 通用公共许可证 (GPL)

Apache 许可证

Microsoft 公共许可证 (Ms-PL)

伯克利软件发行版 (BSD)

通用开发和分发许可证 (CDDL)

Eclipse 公共许可证 (EPL)

MIT 许可证

了解你的开源许可证,或者向法官解释


开源许可证是作者和用户之间具有约束力的法律合同,它声明了软件的使用条件,这在商业应用中尤其重要。此许可证将软件组件转变为开源组件,允许开发人员使用该软件,只要他们遵守许可证中规定的特定条款和条件即可。

开源许可证有很多,实际上有 200 多个。幸运的是,几乎所有可用的开源软件都只属于少数几个许可证。下面是对每个许可证的快速粗略分析,以帮助您为您的代码做出广泛的决定。请务必关注每个部分中的链接,以更深入地分析每个许可证。

软件许可证类型:版权左派和宽容型

首先,我们来看一下开源许可证的总体情况。许可证主要分为两类:版权左派和宽容型。这种划分基于许可证对用户的要求和限制。

当作者根据版权许可发布程序时,他们会对作品的版权提出要求,并发布声明,只要保持义务的互惠性,其他人也有权使用、修改和共享作品。

简而言之,如果他们使用具有这种开源许可证的组件,那么他们也必须将他们的代码开放给其他人使用。这是否适用于他们的所有代码或仅适用于他们对许可代码所做的修改取决于许可证。宽松的开源许可证是一种非版权开放源代码许可证,它保证使用、修改和重新分发的自由,同时也允许专有的衍生作品。

宽松的许可证对其他人如何使用开源组件的限制最少。这种类型的许可证允许不同程度地自由使用、修改和重新分发开源代码,允许其用于专有衍生作品,并且几乎不需要任何回报来承担未来的义务。

顶级开源许可证详解

许可证没有好坏之分,也没有哪个许可证比另一个更好。任何人都可以创建适合自己的开源许可证,这就是开源许可证如此之多的原因。这使得选择开源许可证变得很复杂。为了帮助缩小决策范围并理解所有问题,开放源代码促进会(OSI)整理了一份已批准许可证列表,其中包括 80 多个最常用的开源许可证。

GNU 通用公共许可证 (GPL)

GPL是最普遍的版权左派许可证,有时会让法律团队感到恐惧,它是 Richard Stallman 创建的“版权左派”概念的具体实现,目的是防止 GNU 软件成为专有软件。

由于 GPL 是一种强版权左派许可证,因此基于任何 GPL 组件编写的任何软件都必须以相同或更高版本的许可证作为开源软件发布。使用这些组件的项目,无论占总代码的百分比是多少,都必须依法发布完整的源代码以及修改和分发该代码的所有权利。这包括您的项目可能使用的其他组件,例如链接库,这意味着您通常不能将 GPL 代码与其他版权左派许可代码混合使用。

这种互惠义务的触发因素是分发。如果您使用或修改 GPL 代码但不将其分发给公众,则没有法律要求将该源代码公开。这在使用 GPL 代码创建从未真正分发给用户的软件即服务 (SaaS) 应用程序时会产生某种漏洞。在 GPL v3.0 之前的所有版本中,允许用户通过网络与您的软件交互不被视为分发,但 SaaS 提供商仍应谨慎使用 GPL 组件。Affero GNU 通用公共许可证 (AGPL) 弥补了这一漏洞,并明确将用户通过网络与软件交互视为分发。

GPL 有更宽松的版本,包括宽松版 GNU 公共许可证 (LGPL) 和添加了类路径例外条款的 GPL。如果实施得当,您可以使用符合这些弱版权左翼许可证的未修改版软件(通常是库),而无需在 GPL 下发布其余代码。

Apache 许可证

Apache 2.0 许可证是由 Apache 软件基金会 (ASF) 发布的一种流行且广泛部署的开源软件许可证。

Apache 许可证是最宽松的开源软件许可证之一,它允许您根据您选择的任何许可证发布 Apache 许可产品的修改版本。无论您的用例是个人、内部还是商业,您都可以在 Apache 许可证下自由使用、修改、分发和销售软件。

与其他仅适用于版权而不适用于专利的宽松许可证不同,Apache 许可证明确授予用户可同时适用于版权和专利的权利。授予的权利是永久性的、全球性的、不可撤销的,但也是非排他性的,这意味着您可以使用许可作品,其他人也可以使用。

要重新分发带有任何 Apache 许可组件的软件,您必须包含许可证的副本,提供明确的 Apache 许可证归属,并在您修改的任何文件中添加修改通知。

您可以选择根据不同的许可证发布修改后的产品或派生产品,但软件未修改的部分必须保留 Apache 许可证。另一条规则是,您不能以任何方式命名修改后的版本,以暗示最终产品由 ASF 认可或创建。

最后,如果您想添加有关您对任何 Apache 许可软件所做的所有修改的版权声明,您可以自由地这样做。Apache 许可证不要求您根据相同的许可证发布修改后的代码,因此您可以选择添加特定的许可条款和条件,以管理其他人如何使用、复制或分发您修改后的代码。

Microsoft 公共许可证 (Ms-PL)

微软公共许可证(Microsoft Public License)是微软针对其自家的开源项目发布的一个免费开源软件许可证。

Ms-PL 是一种简短、简洁且直白的许可证,允许您自由复制和分发受其管辖的任何软件的原创或衍生作品。但是,在这样做时,您不得使用任何贡献者的名称、徽标或商标。Ms-PL 还通过明确不提供任何明示担保或保证来保护软件作者,这意味着如果作者的代码在某些情况下无法正常运行,作者无需承担责任。

在根据 Ms-PL 分发软件时,无论软件是经过修改的还是未经修改的,无论是全部还是部分,您都没有义务分发源代码。但是,您必须保留最初存在的所有版权、专利、商标和归属声明。如果您选择以源代码形式分发软件的任何部分(经过修改的还是未经修改的),则必须仅在 Ms-PL 下进行分发,并在分发中包含许可证的完整副本。如果您选择以编译或目标代码形式发布代码,则可以根据任何兼容的许可证发布它。

伯克利软件发行版 (BSD)

BSD 许可证是一类宽松许可证。BSD 许可证允许您自由修改和分发源代码或二进制格式的软件代码,只要您保留一份版权声明、条件列表和免责声明即可。

原始的 4 条款 BSD 许可证包含广告条款,要求在使用 BSD 许可代码的软件的任何广告中对先前的作者进行一定的认可。最常用的 BSD 许可证是 3 条款的修改版 BSD 许可证,它删除了广告条款,而 2 条款的 FreeBSD 许可证则删除了广告条款和非认可条款。

通用开发和分发许可证 (CDDL)

CDDL是 Sun Microsystems(现为 Oracle)发布的开源许可证,用于替代 Sun 公共许可证 (SPL),被认为是 SPL 版本 2。它受到 Mozilla 公共许可证 (MPL) 的启发。CDDL 通常被认为是MPL 的清理版本,旨在促进可重用性。

您可以自由复制和分发任何根据 CDDL 许可的软件的原创或衍生作品,但您不得删除或更改软件中存在的任何版权、专利或商标声明。您还必须保留任何许可声明或任何说明任何贡献者或初始作者的描述性文字。

当您以源代码以外的任何形式分发软件时,您必须根据 CDDL 提供包含 CDDL 代码的任何文件的源代码(无论是修改版还是原始版本),并在分发中附上许可证的副本。可执行文件形式和任何不包含 CDDL 代码的项目文件均可根据 CDDL 或任何兼容许可证发布。

此外,对于您所做的每个修改,您都必须在修改的文件中添加声明以表明自己是修改者。

CDDL 被视为弱版权左派许可证,因为其使用不会授予程序的下游用户与要求您的整个代码成为开源程序相同的权利,就像 GPL 等强版权左派许可证一样。只有包含 CDDL 代码或对 CDDL 代码的修改的文件才受版权左派义务约束。其他文件和整个程序的可执行文件可以遵循与 CDDL 兼容的任何许可证。

Eclipse 公共许可证 (EPL)

Eclipse 许可证是一种弱版权许可证。如果您根据 EPL 修改代码并将源代码作为程序的一部分分发,则需要根据 EPL 对修改后的代码进行许可。如果您以目标代码形式分发此类程序,则需要声明接收者可以根据请求获得 EPL 源代码,并分享提出该请求的方法。

Eclipse 基金会明确表示,“仅仅与 Eclipse 插件交互或互操作”并不会使您的代码成为该插件的衍生作品。与所有弱版权许可一样,如果您希望对其余代码使用不同的许可,将 EPL 代码保存在单独的文件中是最佳做法,即使不是必需的。EPL 版本 1.0 对此不太明确,但版本 2.0 明确是每个文件的版权许可。

EPL 保护作者免受因公司在商业产品中使用其组件而可能引发的诉讼或损害。商业贡献者对 EPL 代码做出的任何保证均属于他们自己,而非先前贡献者的保证。与许多其他开源许可证一样,EPL 还包括明确的专利授权。

MIT 许可证

MIT 许可证是最宽松、最受欢迎的许可证之一。实际上,同一种许可证有两种变体,通常被称为“MIT 许可证”:Expat 许可证和 X11 许可证。Expat 许可证是第一个变体,也是软件包数据交换 (SPDX) 将其标识为“MIT”,因此我们将 Expat 许可证称为 MIT 许可证。

MIT 许可证包含语言,表明软件按原样提供且不提供任何保证。作为一项宽松的许可证,没有要求对 MIT 许可代码的修改也按照 MIT 许可证发布,这使其成为专有和商业用途的绝佳选择。该许可证对用户的唯一要求是许可证必须包含在“软件的所有副本或重要部分”中。不到 200 个字,这只是代码中的几行注释。MIT 许可证占所有开源许可证用途的近三分之一是有原因的。

了解你的开源许可证,或者向法官解释

几乎所有软件开发人员都严重依赖开源组件,因此了解开源许可的基础知识以及目前流行的开源许可之间的主要区别至关重要。这就是为什么开源许可管理工具是保护您的代码、软件和应用程序以及降低组织财务和法律风险的关键要素。它们加强了您使用的组件和依赖项的完整性,并确保您对这些组件的使用不会损害您的组织或您创建的产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2094214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java编辑器——IntelliJ IDEA

java编辑器有两种选择——IntelliJ IDEA和VsCode。其中IntelliJ IDEA现在是企业用的比较多的,是专门为java设计的,而VsCode则是通过插件来实现Java编辑的。 1.IntelliJ IDEA 官网下载链接:https://www.jetbrains.com/idea/ 注意选择社区版…

AWS-亚马逊网络服务(基础服务)-AWS 定价计算器-概述与动手部署:

让我们来概述并亲身实践如何使用 AWS 定价计算器来计算 概述: AWS 定价计算器是 Amazon Web Services (AWS) 提供的基于 Web 的工具,可帮助用户估算其特定用例的 AWS 服务成本。欢迎来到雲闪世界。 它允许客户建模他们的基础设施并根据他们打算使用的…

【AI 绘画】更快?更省显存?支持 FLUX?使用绘世启动器安装 SD WebUI Forge

使用绘世启动器安装 SD WebUI Forge 下载绘世启动器 绘世启动器下载地址1:https://gitee.com/licyk/term-sd/releases/download/archive/hanamizuki.exe 绘世启动器下载地址2:https://www.bilibili.com/video/BV1ne4y1V7QU 新建一个文件夹取名sd-webui-…

中仕公考怎么样?公务员考试什么时候补录?

公务员考试补录的时间和方法通常因地区和职位的不同有所区别,一般来说,这一过程会在面试、体检和考核环节完成后启动。 如果在招录过程中出现职位空缺或者并未全部招满的情况,就会进行补录。用人单位会通过其官方或公告形式公布相关信息&…

指针5.回调函数与qsort

今天来学习回调函数与qsort 目录 1.回调函数实现模拟计算器代码的简化原代码运行结果简化代码运行结果 qsort函数排序整型数据代码运行结果 qsort排序结构数据代码 qsort函数的模拟实现代码运行结果 总结 1.回调函数 回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的…

JavaEE第22节 TCP段(报文)结构剖析

目录(关于字段有不理解的,哪里不会点哪里😘) 逻辑结构字段解析一、源端口&目的端口二、序号&确认序号三、头部长度四、保留位五、特殊标志位六、窗口大小七、校验和八、紧急指针九、可选选项十、数据 逻辑结构 如图&…

入门Java编程的知识点—>Http协议(day20)

了解http协议是什么掌握http请求信息、响应信息格式 项目目标: 实现本地客户端与服务器一问一答的请求与响应,了解http协议即可. 项目步骤: 服务器端代码编写 先在当前src文件下新建一个包: webserver,再该包下创建一个类Server,书写代码如…

带着耐心细心平常心和编程共舞

编程是什么?一个工具、一门技术还是一个爱好,不同的对待方法会带来不同的心态、产生不同的结果。编程需要扎实的基础、严密的思维和开阔的视角,新技术和框架日新月异,只有抱着科学、乐在其中的态度才能掌握高效的学习、实践方法。…

Matrix:重塑APM领域,以简驭繁的性能监控新纪元

在数字化转型的浪潮中,应用程序的性能监控(APM)已成为企业IT架构中不可或缺的一环。随着业务复杂度的提升和用户对体验要求的日益增高,如何高效、精准地监控并优化应用性能,成为了每个开发者和技术团队面临的重大挑战。…

机器学习(五) -- 监督学习(8) --神经网络1

系列文章目录及链接 上篇:机器学习(五) -- 无监督学习(2) --降维2 下篇: 前言 tips:标题前有“***”的内容为补充内容,是给好奇心重的宝宝看的,可自行跳过。文章内容被…

2.3导数与微分的基础与应用

1. 导数的基本概念 大家好,欢迎来到我们的数学大讲堂!今天我们要聊聊一个有点酷又有点恐怖的东西——导数。别担心,不是让你在黑板上画曲线的那种,而是关于“变化率”的一种数学表达。 那么,什么是导数呢&#xff1f…

利用实用规模量子计算模拟宇宙中最极端的环境

华盛顿大学和劳伦斯伯克利国家实验室最近的研究展示了可扩展的技术,有朝一日可以实现最高能量下的基础物理实验模拟。 目录 核物理和高能物理的实用规模模拟 我们的模拟方法 Qiskit 如何使我们的实验成为可能 展望量子模拟技术的未来 粒子物理学的标准模型囊括了我们…

005.Python爬虫系列_浏览器开发者工具(详解)

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数…

web渗透:XXE漏洞

XXE漏洞的原理 XXE(XML External Entity Injection)漏洞是由于应用程序在解析XML输入时,没有正确处理外部实体(External Entities)的引用而产生的安全漏洞。XML外部实体可以引用本地或远程的内容,攻击者可…

大学生房屋租赁推荐系统

一、项目概述 Hi,大家好,今天分享的项目是《基于推荐算法的大学生租房交流平台》。 对于初入社会的大学生来说,租房是一个复杂且繁琐的过程。租房交流平台可以提供房源浏览、信息分享等,帮助大学生快速找到合适的房源&#xff0…

随笔2优化算法

目录 2.1 线性规划(Linear Programming) 2.2 非线性规划(Nonlinear Programming) 2.3 整数规划(Integer Programming) 优化算法 是数学建模中非常重要的工具,用于在给定的约束条件下找到某个目…

HCIP笔记13-交换(2)

一台交换机上的一个接口可以映射多个不同的MAC地址,但一台PC上一个MAC只能对应一个接口 三层架构--冗余--二层的桥接环路 导致的问题: 1.广播风暴 2.对同一数据帧的反复拷贝 3.MAC地址表翻滚 这三个问题将不断占用硬件资源,逐渐导致设备…

大数据基础:实时数仓发展趋势

文章目录 实时数仓发展趋势 一、​​​​​​​实时数仓现状 二、​​​​​​​​​​​​​​批流一体 实时数仓发展趋势 一、​​​​​​​​​​​​​​实时数仓现状 当前基于Hive的离线数据仓库已经非常成熟,随着实时计算引擎的不断发展以及业务对于实时…

oracle11g常用基本字典和动态性能字典

文章目录 Oracle11g的动态性能视图1、动态性能视图:2、常用的Oracle 11g动态性能视图:V$SESSION:V$SQL:V$SQL_PLAN:V$SYSSTAT:V$SQLSTAT:V$SESSION_EVENT:3、基本数据字典4、动态性能…

MongoDB-副本集-Replica Sets

(一) 副本集-Replica Sets 1. 简介 MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务。 副本集可提供冗余和高 可用性,是所有生产部署的基础。也可以说,副本集类似于有自动故障恢复功能的主从集群。通俗的讲就…