开源爱好者必看!开源许可证基础知识扫盲

作为一个开发者,如果你打算开源自己的代码,千万不要忘记,选择一种开源许可证(license)。

许多开发者对开源许可证了解很少,不清楚有哪些许可证,应该怎么选择。本文介绍开源许可证的基本知识,主要参考了 OpenSource.com (1,2)。

一、什么是开源许可证

开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。

版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。所以软件开源的话,必须明确地授予用户开源许可证。

二、开源许可证的种类

目前,国际公认的开源许可证共有80多种。它们的共同特征是,都允许用户免费地使用、修改、共享源码,但是都有各自的使用条件。

如果一种开源许可证没有任何使用条件,连保留作者信息都不需要,那么就等同于放弃版权了。这时,软件可以直接声明进入"公共领域"(public domain)。

根据使用条件的不同,开源许可证分成两大类。

  • 宽松式(permissive)许可证
  • Copyleft 许可证

三、宽松式许可证

3.1 特点

宽松式许可证(permissive license)是最基本的类型,对用户几乎没有限制。用户可以修改代码后闭源。

它有三个基本特点。

(1)没有使用限制

用户可以使用代码,做任何想做的事情。

(2)没有担保

不保证代码质量,用户自担风险。

(3)披露要求(notice requirement)

用户必须披露原始作者。

3.2 常见许可证

常见的宽松式许可证有四种。它们都允许用户任意使用代码,区别在于要求用户遵守的条件不同。

(1)BSD(二条款版)

分发软件时,必须保留原始的许可证声明。

(2) BSD(三条款版)

分发软件时,必须保留原始的许可证声明。不得使用原始作者的名字为软件促销。

(3)MIT

分发软件时,必须保留原始的许可证声明,与 BSD(二条款版)基本一致。

(4)Apache 2

分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。

四、Copyleft 许可证

4.1 Copyleft 的含义

Copyleft 是理查德·斯托曼发明的一个词,作为 Copyright (版权)的反义词。

Copyright 直译是"复制权",这是版权制度的核心,意为不经许可,用户无权复制。作为反义词,Copyleft 的含义是不经许可,用户可以随意复制。

但是,它带有前提条件,比宽松式许可证的限制要多。

如果分发二进制格式,必须提供源码

修改后的源码,必须与修改前保持许可证一致

不得在原始许可证以外,附加其他限制

上面三个条件的核心就是:修改后的 Copyleft 代码不得闭源。

4.2 常见许可证

常见的 Copyleft 许可证也有四种(对用户的限制从最强到最弱排序)。

(1)Affero GPL (AGPL)

如果云服务(即 SAAS)用到的代码是该许可证,那么云服务的代码也必须开源。

(2)GPL

如果项目包含了 GPL 许可证的代码,那么整个项目都必须使用 GPL 许可证。

(3)LGPL

如果项目采用动态链接调用该许可证的库,项目可以不用开源。

(4)Mozilla(MPL)

只要该许可证的代码在单独的文件中,新增的其他文件可以不用开源。

五、常见问题

本节回答一些开源许可证的常见问题。

5.1 什么叫分发(distribution)?

除了 Affero GPL (AGPL) ,其他许可证都规定只有在"分发"时,才需要遵守许可证。换言之,如果不"分发",就不需要遵守。

简单说,分发就是指将版权作品从一个人转移到另一个人。这意味着,如果你是自己使用,不提供给他人,就没有分发。另外,这里的"人"也指"法人",因此如果使用方是公司,且只在公司内部使用,也不需要遵守许可证。

云服务(SaaS)是否构成"分发"呢?答案是不构成。所以你使用开源软件提供云服务,不必提供源码。但是,Affero GPL (AGPL) 许可证除外,它规定云服务也必须提供源码。

5.2 开源软件的专利如何处理?

某些许可证(Apache 2 和 GPL v3)包含明确的条款,授予用户许可,使用软件所包含的所有专利。

另一些许可证(BSD、MIT 和 GPL v2)根本没提到专利。但是一般认为,它们默认给予用户专利许可,不构成侵犯专利。

总得来说,除非有明确的"保留专利"的条款,使用开源软件都不会构成侵犯专利。

5.3 什么是披露要求?

所有的开源许可证都带有"披露要求"(notice requirement),即要求软件的分发者必须向用户披露,软件里面有开源代码。

一般来说,你只要在软件里面提供完整的原始许可证文本,并且披露原始作者,就满足了"披露要求"。

5.4 GPL 病毒是真的吗?

GPL 许可证规定,只要你的项目包含了 GPL 代码,整个项目就都变成了 GPL。有人把这种传染性比喻成"GPL 病毒"。

很多公司希望避开这个条款,既使用 GPL 软件,又不把自己的专有代码开源。理论上,这是做不到的。因为 GPL 的设计目的,就是为了防止出现这种情况。

但是实际上,不遵守 GPL,最坏情况就是被起诉。如果你向法院表示无法履行 GPL 的条件,法官只会判决你停止使用 GPL 代码(法律上叫做"停止侵害"),而不会强制要求你将源码开源,因为《版权法》里面的"违约救济"没有提到违约者必须开源,只提到可以停止侵害和赔偿损失。


原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2017-11-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器人网

太可怕!全球百余款工控系统密码被泄漏,包括AB、施耐德、西门子

来自俄罗斯的ICS/SCADA研究人员已经在线发布了一份高人气工业系统清单——但这可不是什么荣誉榜,此次各入围方案所使用的默认密码已经被成功解 包。ICS/SC...

28070
来自专栏开源项目

GVP 特辑!7 款 JAVA 程序开发“大杀器” | 码云周刊第 39 期

码云 GVP 特辑 工欲善其事,必先利其器。对于 Java 程序员来说若想提高工作效率,那么以下这 7 款 Java 程序开发工具绝对是你不能错过的,不仅可...

40950
来自专栏企鹅号快讯

计算机网络的功能与组成

【本章导学】 通过本章的学习,我们希望你能够: 复述计算机网络的组成和作用; 简述计算机网络的分类方法和类型。 ? 本章你需要学习4个知识点,其中标的为本章核心...

32860
来自专栏SAP最佳业务实践

从SAP最佳业务实践看企业管理(121)-MM-130无QM采购

该采购流程使用报价请求,采购申请可以通过物料需求计划流程生成或由申请人手动生成。买方验证采购申请的准确性,然后将采购申请转换成采购订单。 同时也可以通过手动创建...

36050
来自专栏华章科技

微软打脸,Windows 7 再次成为微软的头号桌面操作系统

导读:近日,微软裁撤Windows部门,对公司进行大规模重组。此外,微软官方表示 Windows 10 用户一直在增长,该公司的统计数据显示,该操作系统在 2 ...

9920
来自专栏阮一峰的网络日志

亚马逊如何变成 SOA(面向服务的架构)?

上一篇文章,我摘录了《程序员的呐喊》。这本书有趣的内容太多,今天再摘录一段。 1、 亚马逊公司不仅是世界最大的网络书店,还是世界最大的云服务商。它是怎么实现从...

30990
来自专栏FreeBuf

安全招聘中,如何招到优秀的Web渗透测试人员?

越来越多的企业招聘安全人员,然而安全人员大多草根出身,可谓鱼龙混杂。作为企业,你就必须要知道如何才能招到最优秀的Web渗透人员,而不是“职业骗子”。本文罗列了一...

35060
来自专栏沃趣科技

数据库驱动企业互联网架构转型

现今几乎每个大型技术峰会,都离不开互联网金融,企业数字化转型话题。国内外大型云计算独角兽企业,例如阿里云、Amazon、微软Azure等云计算供应商更是提供一站...

14710
来自专栏腾讯大讲堂的专栏

解密Midas、Webank、金融云背后的核心数据库TDSQL【海量服务之道2.0】

如果,你在寻找一款数据库,希望: •在任何情况下,数据都不丢失或错乱; •能7*24小时不间断的对外提供服务,即使故障也不会中断; •能支撑业务量10倍以上的弹...

34390
来自专栏FreeBuf

75%安卓设备受威胁,都是高通API代码惹的祸 ?

近日,美国网络安全公司FireEye披露了一个严重的信息泄露漏洞,该漏洞是由移动芯片巨头高通公司引入到 Android系统中的。 ? 关于高通 高通 (Qual...

22770

扫码关注云+社区

领取腾讯云代金券