开源许可证保姆级入门手册

开源许可证-定义、类型和比较 但是,如果 MPL 代码保存在单独的文件中,没有任何修改,派生工作可以与非 MPL 代码结合起来创建一个更大的工作,只有 MPL 部分的代码必须与软件一起发布。这个许可协议是由那些只是想让他们的软件公开可用的人选择的,他们不需要制定任何关于如何使用它的规则,但是出于法律原因必须包含一个许可协议。有这么多类型的开放源码许可证,而且几乎都是以不那么容易理解的方式编写的,因此选择正确的许可证可能是一件棘手的事情。许可证,比如 MIT 许可证和 BSD 许可证,对软件的使用、修改和发布施加了最小的限制。 阅读详情

开源许可证是个相当庞杂的范畴,仅OSI (Open Source Initiative, 开放源代码促进会)批准的许可证就有80多种;此外,还有数百种在开源生态中流传的其他许可证。

虽然有些开源许可证相对简洁明了,适合只想简单发布开源项目的人使用;但还有一些许可证非常冗长复杂,甚至需要专业的法务团队介入。

本文将以对比形式分析开源许可证相关的一些要素,以便读者快速清晰地掌握这一领域的基础知识。(省流版许可证选择建议见文末~)

01 宽松式许可证和Copyleft 许可证

开源许可证通常可以分为两大类:宽松式许可证及Copyleft许可证(也称著佐权)。二者的差别主要在于宽松度以及与使用开源软件组件相关的要求和许可权限的多少。

当一个开源组件采用Copyleft 许可证时,开发人员有权使用、修改和共享该作品,前提是要履行对应的义务。一旦代码中使用了许可证为Copyleft类的开源组件,就需要向他人开放你的代码。GPL许可证族是这类许可证中最早出现也是最流行一种,包含许多版本和变种。

与之相对,宽松式许可证是另一个极端。它保证了使用、修改和重新分发的自由,同时也允许创建专有的派生作品。宽松式许可证对于采用它的组件的使用几乎没有限制,并且几乎不需要回报。这类许可证中,最简洁明了和最受欢迎的是MIT许可证。

02 许可证的限制、条件和权限

除去这两大类别的差异,每一类下许可证和许可证族也会因为一些附加参数而产生具体差异。

例如,同属宽松式许可证的MIT许可证和Apache许可证迥然不同,同属Copyleft类的Eclipse许可证和GPLv3许可证也并没有共用相同的条款和条件。

每个开源许可证都有自己独特的限制、条件和权限。GitHub的choosealicense.com旨在帮助开发人员找到合适的开源许可证;上面提供了一个附录,用于比较不同许可证,并根据许可证授权和限制的内容对比它们的差异性。

根据这个附录,开源许可证授予项目在版权或其他知识产权法律下可能不被允许的行为许可;这些许可通常需要遵守特定条件。大多数开源许可证还具有免除担保和责任的限制,有时还明确排除了专利或商标的许可授权。

03 开源许可证中的权限

在开源许可证中,最常被授予权限的行为涉及商业使用、分发、修改和私人使用。

其中,一个重要区别是专利使用的许可。许多开源许可证在特定条件下明确授予贡献者的专利权,例如GPLv3、Apache license 2.0、Eclipse公共许可证1.0和2.0等。还有一些许可证明确声明不授予贡献者专利权,包括BSD 3-Clause Clear、Creative Commons Attribution 4.0 International、Creative Commons Attribution Share Alike 4.0 International、Creative Commons Zero v1.0 Universal和ODC Open Database License v1.0等。

虽然所有开源许可证都会授予商业使用、分发、修改和私人使用的权限,但这些权限受特定条件的约束;不同许可证的条件各不相同。这些条件可能包括在通过网络或其他渠道分发软件时提供源代码,使用开源项目时纳入许可证信息和版权声明,在同一许可证下发布代码修改,记录对代码进行的所有更改等。

04 开源许可证中的条件

通常情况下, Copyleft许可证比宽松式许可证附带更多条件。随着开源的使用愈发普遍,前者在商业组织中的的流行度也在逐渐下降

最典型的例子是GPL许可证族对网络分发的限制。虽然GPL 2.0和3.0的条件并未明确规定网络使用属于分发,但作为公认最强Copyleft许可证,AGPL v3.0要求使用修改后的版本提供网络服务时,必须提供该版本的完整源代码。

05 开源许可证的限制

比较开源许可证的另一种方法是看它们的限制。开源许可证的限制涉及责任、明确声明不授予商标权和不提供担保。

对商标使用的限制可以看作一个分野。大多数GPL族许可证并没有明确规定不授予商标权,而Creative Commons和Apache v2.0则明确包含这一限制。值得注意的是,GitHub的choosealicense.com指出,没有这种声明的许可证可能不授予任何隐含的商标权利。

06 Copyleft许可证:GNU GPL vs Eclipse开源许可证

虽然Eclipse开源许可证(EPL)和GNU GPL许可证族都被认为是Copyleft许可证,二者宽松程度不同。GNU GPL许可证族有强制性的Copyleft条款,无论用户代码中包含多少GPL代码,都要公开其软件的完整源代码。

EPL算是一种较弱的 Copyleft 许可证。它不要求用户共享其整个软件项目,而只需在以源代码形式分发时开源任何包含EPL 组件的源码,并在以对象形式分发时按需提供源代码。

此外,EPL只要求用户在源码形式分发时中披露部分源代码,对二进制文件形式没有要求;而GPL族则要求在源代码和二进制文件的复制或衍生版本中都继续使用同一许可证。

07 宽松式许可证:Apache 2.0 vs BSD开源许可证

BSD许可证是一种高度宽松的许可证,允许用户以任何方式修改和重新分发使用了BSD许可证的软件。早期版本的Apache许可证与BSD许可证类似,但Apache 2.0增加了一些关键的差异,使得这两种许可证区别开来。

  • 明确授予专利权。Apache许可证2.0明确规定了在使用、修改或分发该许可证许可的软件时授予的专利权,并列举了撤销此类授权的情况。

  • 对使用的概念进行清晰定义。Apache许可证2.0明确定义了所有使用的术语和概念,减少了歧义的空间。

  •  Apache许可证2.0无需重新措辞即可重复使用。其他项目可以轻松使用Apache许可证2.0而无需修改许可证文档本身的任何内容,大大节省了处理许可证问题的时间;它也因此成为开发人员最喜欢的许可证之一。

结语

无论您是正在开发一个软件项目并需要附加开源许可证以便共享,还是希望确保所使用的软件组件所附带的开源许可证与您自己的项目和需求兼容,了解每个许可证意味的不同限制、条件和权限都非常重要。有些细节看起来微不足道,但会对开源组件的使用和分发方式有决定性的影响,进而影响对开源的使用及软件制品的合规性。

图:许可证选择指南省流版(整理自https://choosealicense.com/)


感谢每一位开源社区成员对OpenSCA的支持和贡献。我们鼓励更多伙伴参与到OpenSCA开源项目的建设中来,成为开源贡献者,有任何建议都可以发在评论区或者Gitee、GitHub上OpenSCA项目的Issues中。让我们一起拥抱开源,共筑开源安全生态,促进开源产业健康发展。

OpenSCA的代码会在GitHub和Gitee持续迭代,欢迎Star和PR,成为我们的开源贡献者,也可提交问题或建议至Issues。我们会参考大家的建议不断完善OpenSCA开源项目,敬请期待更多功能的支持。

GitHub:

https://github.com/XmirrorSecurity/OpenSCA-cli/releases

Gitee:

https://gitee.com/XmirrorSecurity/OpenSCA-cli/releases

OpenSCA官网:

https://opensca.xmirror.cn/

1-1 开源许可证GPL, BSD, MIT, Mozilla, Apache, LGPL的介绍 开源许可证(Open source licenses),广义来讲是指一种被用于计算机软件或其他产品的,允许在指定的条款内使用,修改或分发其源代码,蓝图或设计的许可证。一般来讲,我们说的开源许可证是指广义的开源许可证释义。狭义的来讲,根据 OSI(Open Source Initiative,开放源代码倡议组织) 的解释,开源许可证是指那些符合 OSD(开源定义,Open Source Definition) 的许可证 —— 简单来说,这些许可证允许软件被自由的使用,修改和分发。 阅读详情

相关推荐

常用的开源许可证 MIT、Apache、GPL

常用的开源许可证 MIT License、Apache License 2.0、GNU General Public License (GPL)

lxd_max的博客 7699

浅谈 开源许可证

浅谈 开源许可证

鱼竿钓鱼干 5004

SPDX-License-Identifier:开源项目中的许可证声明保姆级指南(附常见坑点)

本文详细介绍了SPDX-License-Identifier在开源项目中的应用,包括其语法规则、多许可证处理及最佳实践。通过实际案例和常见坑点分析,帮助开发者高效管理许可证声明,避免合规风险,提升开源协作效率。

weixin_33734785的博客 524

开源软件 | 一文彻底搞懂许可证的定义、起源、分类及八大主流许可证,让你选型不再头疼

开源许可证是一种法律协议,它规定了软件代码可以被如何使用、修改和分发。其中,著作权是指对于软件代码的创作者所拥有的法律权利,包括复制、发布、演绎等权利。分发是指分发指软件作者向他人提供软件源代码或二进制代码或二者的副本。著作权法默认禁止共享,没有许可证的软件就不能免费地使用、修改、共享。在开源许可证中,通常会涉及到著作权许可授权的问题。这些许可协议可以分为两大类:强制性许可证和非强制性许可证。强制性许可证要求使用该软件的用户必须遵守特定的协议,否则将面临诉讼风险。

所有成功的背后,都是痛苦的坚持,所有的痛苦,都是傻瓜般的不放弃! 8314

SPDX-License-Identifier:开源项目中的许可证声明保姆级指南(附常见标识符大全)

本文详细解析了SPDX-License-Identifier在开源项目中的重要性及实战应用,包括跨语言项目的许可证声明方法、许可证组合的进阶技巧,以及开发者必备的SPDX速查手册。通过规范使用SPDX标识符,可以有效预防许可证冲突,提升开源项目的合规性。

weixin_29297127的博客 255

AICodeing:AI驱动的全栈开发革命

作为阿里/字节跳动的资深Java工程师,我们正站在研发效能革命的临界点上。本文将深入探讨如何利用AI技术重构全栈开发流程,实现从需求到上线的量子级提速。

weixin_43290370的博客 1137

网络安全最新开源许可证保姆级入门手册,2024年最新快点来白嫖

无论您是正在开发一个软件项目并需要附加开源许可证以便共享,还是希望确保所使用的软件组件所附带的开源许可证与您自己的项目和需求兼容,了解每个许可证意味的不同限制、条件和权限都非常重要。有些细节看起来微不足道,但会对开源组件的使用和分发方式有决定性的影响,进而影响对开源的使用及软件制品的合规性。图:许可证选择指南省流版(整理自https://choosealicense.com/)还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

2401_84519859的博客 1192

从零到一:RF-DETR如何通过神经架构搜索重塑实时目标检测的边界

RF-DETR通过创新的权重共享神经架构搜索(NAS)机制,重新定义了实时目标检测的技术边界。这项技术在COCO等基准测试中表现卓越,成为首个AP超过60的实时检测器,同时保持跨领域稳定性和高效推理速度。RF-DETR的动态架构调整能力使其能够适应从嵌入式设备到云端服务器的各种硬件环境,为工业质检、自动驾驶等场景提供灵活解决方案。

weixin_29061531的博客 470

2024年网络安全最新开源许可证保姆级入门手册(2),2024年最新升职加薪必看

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。需要完整版PDF学习资源私我。

2401_84281655的博客 514

2026年瑞芯微数字IC设计笔试试卷带答案

本文主要考察数字集成电路设计相关知识,包括低功耗设计、时序分析、跨时钟域处理、总线协议等内容。试题分为单选题、多选题、代码设计题和简答题四部分。 单选题涉及门控时钟降低动态功耗、静态时序分析的限制、跨时钟域同步方案、时序违例修复方法、AHB总线信号、异步FIFO设计、半导体工艺电阻特性、二进制数转换、同步/异步复位比较以及分频电路设计等知识点。 多选题重点考查动态功耗优化技术、亚稳态特性、异步FIFO设计规范、Verilog可综合代码编写要求以及AXI总线协议特点等。 代码设计题要求实现一个同步FIFO和3

Open 217

CST与MATLAB连接设置

打开MATLAB,点击"Set Path"按钮,然后点击"Add Folder"。在CST中,点击"Options"菜单,然后选择"Advanced"选项。在弹出的对话框中,点击"COMSOL"选项卡,并确保"Enable COMSOL"复选框被选中。通过上述步骤和示例代码,你可以开始使用MATLAB与CST进行集成,并根据你的具体需求进行进一步的开发和应用。通过这个简单的示例,你可以开始在MATLAB中与CST进行交互,并根据你的需求进行更复杂的操作,如参数化仿真、优化和数据处理等。

TechPulseZ的博客 1966

2024年网络安全最新开源许可证保姆级入门手册,2024年最新8年网络安全开发教你如何写简历

无论您是正在开发一个软件项目并需要附加开源许可证以便共享,还是希望确保所使用的软件组件所附带的开源许可证与您自己的项目和需求兼容,了解每个许可证意味的不同限制、条件和权限都非常重要。有些细节看起来微不足道,但会对开源组件的使用和分发方式有决定性的影响,进而影响对开源的使用及软件制品的合规性。图:许可证选择指南省流版(整理自https://choosealicense.com/)

2401_84281655的博客 477

RH850从0搭建Autosar开发环境【23】- Davinci Configurator之DCM实操实现DID的读取写入

RH850从0搭建Autosar开发环境【23】- Davinci Configurator之DCM实操实现DID的读取写入,结合Developer实现

weixin_42412049的博客 1811

保姆级2023年Libero许可证申请及安装指南:科研利器,轻松上手

保姆级2023年Libero许可证申请及安装指南:科研利器,轻松上手 去发现同类优质开源项目:https://gitcode.com/ 在科研和工程领域,Libero软件作为一款强大的设计工具,广泛应用于FPGA设计和验证。然而,许可证的申请和软件的安装往往成为许多用户的痛点。为了帮助大家轻松应对这一挑战,我们推出了《保姆级2023年Libero许可证申请及安装指南》,让您在科研和工程项目中更加得...

gitblog_06545的博客 557

网工运维掌握OpenClaw这7大必备技能,自动化运维效率直接起飞

OpenClaw的核心就是它的技能系统。通过官方技能市场(clawhub.ai),你只需一条命令就能安装扩展,让AI代理变成你的“运维副手”。今天我就结合网工运维的真实痛点,精选7项最热门、最实用的OpenClaw技能(基于ClawHub下载量和实际测试),手把手教你安装、使用和进阶玩法。这些技能不是玩具,而是能直接提升运维效率10倍以上的生产力工具!安装后,你的OpenClaw代理就能自动处理Zabbix告警、总结syslog日志、更新Obsidian网络拓扑笔记、甚至通过n8n触发自动修复脚本。

网络技术联盟站 574

在ros中进行多传感器融合定位

ROS 中的 robots_localization 包是一个非常有用的包,可以使用各种卡尔曼滤波器融合任意数量的传感器!我们将使用它将全局姿势数据(x、y、z 和orientation)与机器人上的现有传感器融合,以实现更强大的定位!

如果想成为中心,那么就到中心去吧。 3003

【亲测免费】 保姆级2023年Libero许可证申请及安装指南

保姆级2023年Libero许可证申请及安装指南 去发现同类优质开源项目:https://gitcode.com/ 本资源文件提供了详细的Libero许可证申请及安装教程,适用于2023年。通过本指南,您可以轻松完成Libero许可证的申请和软件的安装。 内容概述 许可证申请: 详细步骤指导如何申请Libero许可证。 包括如何获取DiskID、注册平台账号以及等待许可证下发。 许可证...

gitblog_06580的博客 542

Python爬虫终极实战:逆向解析+异步处理,高效爬取中关村在线万级产品数据

爬虫工程师的战场,已经从简单的HTML解析,转向了对网络协议、JavaScript执行逻辑的深度逆向工程。然后刷新页面,当浏览器发起这个请求时,执行会暂停,我们可以一步步跟蹤调用栈(Call Stack),找到发起请求前的JavaScript代码,从而发现参数的计算逻辑。它们会添加一个动态的、一次性的签名(token)或加密参数,用于验证请求的合法性。这是整个爬虫最核心、最具技术含量的部分。的请求,其响应体正是结构清晰的JSON数据,包含了当前页面的所有手机信息(产品ID、名称、价格、图片等)。

2201_76125261的博客 429

如何用 UniHacker 实现跨平台 Unity 许可证管理:完整保姆级教程

UniHacker 是一款开源的跨平台 Unity 许可证管理工具:选中目标 Unity 或 Unity Hub 可执行文件,它会自动识别版本并应用对应补丁,让 4.x 到 2022.1 的 Unity 能自由用于学习和测试。适合不想被授权问题卡住的 Windows、MacOS、Linux 用户和新手开发者。 ## 🔍 它到底能干什么(核心能力速览):UniHacker 的许可证管理功能 #

gitblog_01144的博客 925

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

保姆级2023Libero安装教程:轻松上手,提升效率

保姆级2023Libero安装教程:轻松上手,提升效率 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在数字化时代,高效的软件工具是提高工作效率的关键。2023Libero作为一款功能强大的软件,旨在为用户提供简洁、流畅的操作体验。保姆级2023Libero安装教程将手把手引导用户完成软件的下载、安装及许可证申请,让您轻松上手,享受高效工作的乐趣。 项目技术分析 20...

gitblog_06781的博客 874

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

轻松上手OpenSCA-cli:开源组件安全扫描保姆级教程 [特殊字符]️

还在为项目中的第三方组件安全担忧吗?OpenSCA-cli作为一款专业的开源软件成分分析工具,能够帮你快速识别依赖组件中的安全风险,让开发更安心! ## 🚀 准备工作:确保环境就绪 在开始使用OpenSCA-cli之前,先确认你的系统环境是否满足要求: **系统兼容性**: - ✅ Windows 7及以上版本 - ✅ Linux各主流发行版 - ✅ macOS 10.12及以上版本

gitblog_00006的博客 1103

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

保姆级教程!开源 Python 项目详细指南

点击 机器学习算法与Python学习 ,选择加星标精彩内容不迷路来源:机器之心作者以 SciTime 项目(一个对算法训练时间进行估计的包)的发布为例,详细解释了发布的每个步骤。注意:本文...

机器学习算法与Python学习 565

【保姆级打包】STM32F103C8T6 中文数据手册:72MHz 入门芯片,把参数和适用场景一次讲清

如果你正在找一份能直接看懂的 STM32F103C8T6 数据手册,这个仓库就是为此而建的:它为 STM32F103C8T6 微控制器整理了一份中文数据手册,面向刚接触嵌入式的学生、硬件爱好者,以及需要在项目里快速查参数的工程师。不用再对着几百页英文原版逐句硬啃,查引脚、查时钟树、查外设规格,打开中文手册直接搜就行。 ## 为什么这颗芯片值得入手 ⚡ ### 72MHz 到底够用吗 够,而且

gitblog_01107的博客 226
上一篇: KCD技术分享:以SBOM为基础的云原生应用安全治理
下一篇: 版本升级 | v1.0.12发布,许可证风险早知道
OpenSCA社区
博客等级 码龄4年 171粉丝 42原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值