首页 > 其他分享 >开源许可证保姆级入门手册

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

时间:2023-07-07 18:22:08浏览次数:57  
标签:分发 入门 使用 手册 Copyleft 开源 许可证 Apache

开源许可证是个相当庞杂的范畴,仅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/

标签:分发,入门,使用,手册,Copyleft,开源,许可证,Apache
From: https://www.cnblogs.com/openscacommunity/p/17535788.html

相关文章

  • SignalR 入门
    SignalR介绍SignalR是一个开源的实时通信库,用于构建实时、双向的应用程序。它提供了简化实时通信的功能,允许服务器主动向客户端推送数据,实现实时更新和即时通知的功能。SignalR具有高度集成性、跨平台支持和可扩展性,适用于实时聊天、在线游戏、监控系统等各种应用场景。Signa......
  • Apache DolphinScheduler 荣获“掘进技术引力榜”「2023 年度 ROBUST 开源项目」奖项!
    经过紧张激烈的投票和严格的专家评审环节,“掘进技术引力榜”活动在上周的稀土掘金开发者大会上公布了「2023年度ROBUST开源项目」奖项的获奖名单,ApacheDolphinScheduler名列其中。ApacheDolphinScheduler代表上台领奖(右三)掘金技术引力榜「2023年度ROBUST开源项目」奖......
  • python爬虫scrapy入门教程
    背景:python实现网页爬虫,可以使用scrapy,首先,需要安装python的运行环境,我们这里使用anaconda集成环境。安装好以后,打开AnacondaNavigator,打开CMD.exePrompt,在命令行窗口运行:pipinstallscrapy,运行完,没有报错,意味着scrapy就安装好了,然后,在当前文件夹下新建一个文件,名为:myspider.p......
  • 用hexo搭配gittee搭建个人博客:从入门到放弃
    本地环境是WSL(Debian)+vscode,仓库在gittee上hexo个人页面搭建参考:Linux云服务器下Hexo部署及使用主题地址:Hexo-Theme-freemind.bithackgittee操作参考:在Gitee搭建属于自己的博客过程比较顺利,直到在申请开通gitteepages时需要上传身份证双面照和手持身份证双面照,我放弃了。......
  • 最近很火的开源培训系统,支持免费商用,3个月1000star!
    项目简介PlayEdu开源培训系统自发布以来,3个月内帮助上千位开发者部署了私有化培训平台,并在Github上获得了1000star。项目地址Github地址:https://github.com/PlayEdu/PlayEduGItee地址:https://gitee.com/playeduxyz/playedu界面预览Docker一键部署本文安装过程需要您......
  • clickhouse使用入门
    转载请注明出处(~ ̄▽ ̄)~严禁用于商业目的的转载~  导语:同学,你也不想你根本不懂ClickHouse,却赶鸭子上架使用的事情被其他人知道吧?写在前面:本文旨在让原先有一定SQL基础的人快速简单了解ClickHouse的(关键)概念/特性,侧重于使用方面的介绍比较而非原理/实现挖掘。文章算是个人摘录学......
  • 达梦数据库操作手册
    https://eco.dameng.com/document/dm/zh-cn/start/index.html#:~:text=%E6%9C%AC%E6%8C%87%E5%8D%97%E4%B8%BA%E6%AD%A6%E6%B1%89%E8%BE%BE%E6%A2%A6%E6%95%B0%E6%8D%AE%E5%BA%93%E8%82%A1%E4%BB%BD%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%EF%BC%88%E4%BB%A5%E4%B8%8B%E7%AE%80......
  • 【AI实战】开源大语言模型LLMs汇总
    大语言模型大语言模型(LLM)是指使用大量文本数据训练的深度学习模型,可以生成自然语言文本或理解语言文本的含义。大语言模型可以处理多种自然语言任务,如文本分类、问答、对话等,是通向人工智能的一条重要途径。来自百度百科发展历史2020年9月,OpenAI授权微软使用GPT-3模型,微软成为全......
  • 逼近GPT-4!BLOOMChat: 开源可商用支持多语言的大语言模型
    背景SambaNova和Together这2家公司于2023.05.19开源了可商用的支持多语言的微调模型BLOOMChat。SambaNova这家公司专注于为企业和政府提供生成式AI平台,Together专注于用开源的方式打造一站式的foundationmodel,赋能各个行业。OpenAI的GPT-4和Google的PaLM2对多语言的支持已经做......
  • 开源大模型新SOTA,支持免费商用,比LLaMA65B小但更强
    号称“史上最强的开源大语言模型”出现了。 它叫Falcon(猎鹰),参数400亿,在1万亿高质量token上进行了训练。最终性能超越650亿的LLaMA,以及MPT、Redpajama等现有所有开源模型。 一举登顶HuggingFaceOpenLLM全球榜单: 除了以上成绩,Falcon还可以只用到GPT-375%的训练预算,性能......