开源许可证教程
摘要: 作为一个开发者,如果你打算开源自己的代码,千万不要忘记,选择一种开源许可证license。许多开发者对开源许可证了解很少,不清楚有哪些许可证,应该怎么选择。本文介绍开源许可证的基本知识,主要参考了 OpenSource ...
许多开发者对开源许可证了解很少,不清楚有哪些许可证,应该怎么选择。本文介绍开源许可证的基本知识,主要参考了 OpenSource.com (1[1],2[2])。
一、什么是开源许可证开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。
版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。所以软件开源的话,必须明确地授予用户开源许可证。
二、开源许可证的种类目前,国际公认的开源许可证共有 80 多种[3]。它们的共同特征是,都允许用户免费地使用、修改、共享源码,但是都有各自的使用条件。
如果一种开源许可证没有任何使用条件,连保留作者信息都不需要,那么就等同于放弃版权了。这时,软件可以直接声明进入“公共领域”public domain。
根据使用条件的不同,开源许可证分成两大类。宽松式permissive许可证Copyleft 许可证
三、宽松式许可证3.1 特点宽松式许可证permissive license是最基本的类型,对用户几乎没有限制。用户可以修改代码后闭源。
它有三个基本特点。没有使用限制。用户可以使用代码,做任何想做的事情。没有担保。不保证代码质量,用户自担风险。披露要求notice requirement。用户必须披露原始作者。
3.2 常见许可证常见的宽松式许可证有四种。它们都允许用户任意使用代码,区别在于要求用户遵守的条件不同。
BSD(二条款版)分发软件时,必须保留原始的许可证声明。
BSD(三条款版)分发软件时,必须保留原始的许可证声明。不得使用原始作者的名字为软件促销。
MIT分发软件时,必须保留原始的许可证声明,与 BSD(二条款版)基本一致。
Apache 2分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。
四、Copyleft 许可证4.1 Copyleft 的含义Copyleft 是理查德・斯托曼[4]发明的一个词,作为 Copyright版权的反义词。
Copyright 直译是"复制权",这是版权制度的核心,意为不经许可,用户无权复制。作为反义词,Copyleft 的含义是不经许可,用户可以随意复制。
但是,它带有前提条件,比宽松式许可证的限制要多。
如果分发二进制格式,必须提供源码修改后的源码,必须与修改前保持许可证一致不得在原始许可证以外,附加其他限制上面三个条件的核心就是:修改后的 Copyleft 代码不得闭源。
4.2 常见许可证常见的 Copyleft 许可证也有四种(对用户的限制从最强到最弱排序)。
Affero GPL (AGPL)如果云服务(即 SAAS)用到的代码是该许可证,那么云服务的代码也必须开源。
GPL如果项目包含了 GPL 许可证的代码,那么整个项目都必须使用 GPL 许可证。
LGPL如果项目采用动态链接调用该许可证的库,项目可以不用开源。
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 代码(法律上叫做“停止侵害”),而不会强制要求你将源码开源,因为《版权法》里面的"违约救济"没有提到违约者必须开源,只提到可以停止侵害和赔偿损失。
Hadoop 培训 开源 源码 开源软件
作为一个开发者,如果你打算开源自己的代码,千万不要忘记,选择一种开源许可证license。许多开发者对开源许可证了解很少,不清楚有哪些许可证,应该怎么选择。本文介绍开源许可证的基本知识,主要参考了 OpenSource.com (1[1],2[2])。
一、什么是开源许可证开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。
版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。所以软件开源的话,必须明确地授予用户开源许可证。
二、开源许可证的种类目前,国际公认的开源许可证共有 80 多种[3]。它们的共同特征是,都允许用户免费地使用、修改、共享源码,但是都有各自的使用条件。
如果一种开源许可证没有任何使用条件,连保留作者信息都不需要,那么就等同于放弃版权了。这时,软件可以直接声明进入“公共领域”public domain。
根据使用条件的不同,开源许可证分成两大类。宽松式permissive许可证Copyleft 许可证
三、宽松式许可证3.1 特点宽松式许可证permissive license是最基本的类型,对用户几乎没有限制。用户可以修改代码后闭源。
它有三个基本特点。没有使用限制。用户可以使用代码,做任何想做的事情。没有担保。不保证代码质量,用户自担风险。披露要求notice requirement。用户必须披露原始作者。
3.2 常见许可证常见的宽松式许可证有四种。它们都允许用户任意使用代码,区别在于要求用户遵守的条件不同。
BSD(二条款版)分发软件时,必须保留原始的许可证声明。
BSD(三条款版)分发软件时,必须保留原始的许可证声明。不得使用原始作者的名字为软件促销。
MIT分发软件时,必须保留原始的许可证声明,与 BSD(二条款版)基本一致。
Apache 2分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。
四、Copyleft 许可证4.1 Copyleft 的含义Copyleft 是理查德・斯托曼[4]发明的一个词,作为 Copyright版权的反义词。
Copyright 直译是"复制权",这是版权制度的核心,意为不经许可,用户无权复制。作为反义词,Copyleft 的含义是不经许可,用户可以随意复制。
但是,它带有前提条件,比宽松式许可证的限制要多。
如果分发二进制格式,必须提供源码修改后的源码,必须与修改前保持许可证一致不得在原始许可证以外,附加其他限制上面三个条件的核心就是:修改后的 Copyleft 代码不得闭源。
4.2 常见许可证常见的 Copyleft 许可证也有四种(对用户的限制从最强到最弱排序)。
Affero GPL (AGPL)如果云服务(即 SAAS)用到的代码是该许可证,那么云服务的代码也必须开源。
GPL如果项目包含了 GPL 许可证的代码,那么整个项目都必须使用 GPL 许可证。
LGPL如果项目采用动态链接调用该许可证的库,项目可以不用开源。
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 代码(法律上叫做“停止侵害”),而不会强制要求你将源码开源,因为《版权法》里面的"违约救济"没有提到违约者必须开源,只提到可以停止侵害和赔偿损失。
大数据培训、人工智能培训、Python培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。 更多问题咨询,欢迎点击------>>>>在线客服!