您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

一文看懂开源许可证,能不能商用再也不抓瞎

时间:2020-05-07 11:14:36  来源:  作者:

在github中闲逛,宝藏多福利好。不过心里或许总有小忐忑,这么多开源项目,我的产品里能不能用呀!

其实想知道项目能不能用看下项目的开源许可证就清楚了(即使是非软件产品比如数据、媒体、资料等也可以通过开源许可证知道它们的可用范围)。

一文看懂开源许可证,能不能商用再也不抓瞎

开源许可证

先举两个例子,这两位应该是最常用的许可证了:

  • MIT许可证:只为作者保留版权,而无任何其他了限制。它使人们几乎可以对您的项目进行任何操作,即时是制作和分发封闭源代码版本。Babel,.NET Core和 Rails 使用MIT许可证。
  • GNU GPLv3:让人们可以做几乎任何他们想要做的项目,不能分发封闭源代码的版本。Ansible, Bash和 GIMP 使用GNU GPLv3。

如果你的工作是在开源社区开发项目,使用社区常用的许可证就可以了。

如果希望商用则特别要注意下,许可的范围。以下都是常用许可证类型的概要信息:

一文看懂开源许可证,能不能商用再也不抓瞎

Apache Licese @ opensource.org

  • Apache License 2.0 :商业软件最爱, 主要条件是要求保留原始版权和许可声明。同时向贡献者明确授予专利权。使用者可以自由修改,进行商业使用,大型项目可以不同的条款分发,没有开源要求,修改源代码需要记录变更。
  • BSD 3-Clause "New" or "Revised" license:允许商业发布和销售。使用者可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。主要条件是要求尊重代码作者的著作权,即包含原始版权和免责声明(二进制形式分发必须分发文档中包含版权申明及免责声明),且未经事先特别书面许可,不可以用开源代码的“作者/机构的名字”或“原来产品的名字”做市场推广。
  • BSD 2-Clause "Simplified" or "FreeBSD" license:比3-Clause少一个条目,去掉了“不可以用开源代码的“作者/机构的名字”或“原来产品的名字”做市场推广。”.
  • GNU General Public License: 商业软件绕开,GPL不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
  • GNU Library or "Lesser" General Public License (LGPL):允许商业软件代码动态link到LGPL类库。注意:不可以静态链接,否则你的代码也必须用LGPL协议开源。(即:商业软件可以动态使用,但不能修改
  • Mozilla Public License 2.0:修改的版本需要保持原始版权申明。编译版本需和可获得MPL协议下的源码。修改源代码需要记录变更。
  • Common Development and Distribution License:商业软件可用,也可以修改。可以自行发布许可,允许公共版权使用,提供专利保护,无专利费
  • Eclipse Public License version 2.0:商业软件可用,也可以修改,无需开源。不过将本程序包含在商业产品中的贡献者需要承担因代码而产生的侵权责任,及对所有其他贡献者的相关损失

一般开源许可证中会说明以下权限、使用条件和责任限制:

  • 商业使用(Commercial use):该软件及其衍生产品可用于商业目的。
  • 分发(Distribution):该软件可以被分发。
  • 修改(Modification):该软件可能会被修改。
  • 专利使用(Patent use):该许可证提供了明确的专利权授予。/该许可明确声明它不授予贡献者专利的任何权利。
  • 私人使用(Private use):该软件可以私下使用和修改。
  • 开源(Disclose source):分发软件时必须开源。
  • 许可及版权声明(License and copyright notice):该软件必须随附许可证和版权声明的副本。
  • 分布式网络使用(Network use is distribution):通过网络与软件进行交互的用户被授予接收源代码副本的权利。
  • 相同许可证(Same license):分发软件时,必须以相同的许可证发布修改。在某些情况下,可以使用类似或相关的许可证
  • 状态变更(State changes):对代码所做的更改必须记录。
  • 责任限制(Liability):该许可包括责任限制。
  • 商标使用(Trademark use):该许可证明确声明它不授予商标权,即使没有此类声明的许可证可能不授予任何隐含的商标权。
  • 保证(Warranty):许可证明确声明不提供任何保证。
一文看懂开源许可证,能不能商用再也不抓瞎

CC-BY-4.0

此外还有一些属于非软件许可证:

  1. 数据,媒体等内容:CC0-1.0,CC-BY-4.0和CC-BY-SA-4.0是开放许可证,用于从数据集到视频的非软件内容。这里CC-BY-4.0和CC-BY-SA-4.0 不应用于软件产品。
  2. 文献资料:任何开源软件许可证或媒体开放许可证也适用于软件文献资料。如果您为软件及其文档使用不同的许可证,请确保指定文档中的源代码示例也已获得软件许可证的许可。
  3. 字体:SIL Open Font License 1.1 保持字体开放的同时,允许它们在其他项目自由使用。

如果您的项目包含软件和其他部分的混合,您可以通过说明明确各个许可证适用于项目的不同部分。


总结一下:开源许可证存在的主要意义就是保护项目贡献者和使用用户。倘若没有许可证保护,企业和开发人员一般就不会接触项目,开源社区也很难繁荣起来。如果要更全面的了解和选择开源许可证,可以去大本营查看所有已批准的许可证包括:如专用许可证、被取代的许可证或失效的许可证。

按名称排序(按字母顺序):https://opensource.org/licenses/alphabetical

按类别排序:https://opensource.org/licenses/category



Tags:开源许可证   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
在github中闲逛,宝藏多福利好。不过心里或许总有小忐忑,这么多开源项目,我的产品里能不能用呀!其实想知道项目能不能用看下项目的开源许可证就清楚了(即使是非软件产品比如数据、...【详细内容】
2020-05-07  Tags: 开源许可证  点击:(127)  评论:(0)  加入收藏
社区时常为流行产品中有争议的开源许可证而感到震惊,这引起各方关注,纷纷争论何为真正的开源许可证。去年,Apache 基金会(Apache Foundation)禁止使用 Facebook React 那些具有争...【详细内容】
2020-02-29  Tags: 开源许可证  点击:(62)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条