更新《2022中国开源发展蓝皮书》非最终版/第1章 开源的基本概念.md

上级 dc65446c
...@@ -233,57 +233,91 @@ EULA一般主要规定用户不可以盗版软件,并没有对用户明确涉 ...@@ -233,57 +233,91 @@ EULA一般主要规定用户不可以盗版软件,并没有对用户明确涉
**(1)GNU通用公共许可证(GPL)** **(1)GNU通用公共许可证(GPL)**
GPL通用公共许可证是一个许可证家族的泛称,是一个被广泛使用的自由软件许可协议条款,为使用者提供了足够的复制、分发、修改的权利: GPL通用公共许可证是一个许可证家族的泛称,是一个被广泛使用的自由软件许可协议条款,为使用者提供了足够的复制、分发、修改的权利:
可自由复制;
可自由分发,提供他人下载; * 可自由复制;
可以用来盈利,分发软件过程中收费(必须在收费前向客户提供该软件的 GNU GPL许可协议); * 可自由分发,提供他人下载;
可自由地修改(使用了这段代码的项目也必须使用GPL协议)。 * 可以用来盈利,分发软件过程中收费(必须在收费前向客户提供该软件的 GNU GPL许可协议);
* 可自由地修改(使用了这段代码的项目也必须使用GPL协议)。
GPL当前主要使用的有GPL v2和GPL v3两个版本。这组许可证的共同特征在于其“传染性”:任何基于GPL代码编写的软件都必须成为开源软件。换言之,使用了任何GPL代码的软件,无论GPL代码的占比多少,都必须将完整的源代码公开,并允许他人修改、发布。 GPL当前主要使用的有GPL v2和GPL v3两个版本。这组许可证的共同特征在于其“传染性”:任何基于GPL代码编写的软件都必须成为开源软件。换言之,使用了任何GPL代码的软件,无论GPL代码的占比多少,都必须将完整的源代码公开,并允许他人修改、发布。
GPLv2许可证存在一些漏洞,例如它不能阻止一个软硬件结合的系统中,通过对硬件部分施加限制,间接阻止用户在在该硬件上运行软件的修改版本;没有包括关于专利的约定,导致实践中出现 Microsoft-Novell专利协议这类试图将专利申请用作于对付自由软件社群的武器的现象。 GPLv2许可证存在一些漏洞,例如它不能阻止一个软硬件结合的系统中,通过对硬件部分施加限制,间接阻止用户在在该硬件上运行软件的修改版本;没有包括关于专利的约定,导致实践中出现 Microsoft-Novell专利协议这类试图将专利申请用作于对付自由软件社群的武器的现象。
为解决这些问题,GPL v3于2007年发布。除填补上述漏洞,GPL v3兼容性更好。自由软件基金会明确表示GPL v3与Apache 2.0 许可证兼容。 为解决这些问题,GPL v3于2007年发布。除填补上述漏洞,GPL v3兼容性更好。自由软件基金会明确表示GPL v3与Apache 2.0 许可证兼容。
目前,使用GPL许可证的重要项目包括Linux内核和MySQL等,但新兴的项目一般会选用更宽松的许可证。
(2)LGPL(Lesser General Public License) 目前,使用GPL许可证的重要项目包括Linux内核和MySQL等,但新兴的项目一般会选用更宽松的许可证。
**(2)LGPL(Lesser General Public License)**
LGPL叫做GNU宽通用公共协议,对产品所保留的权利比GPL少。LGPL 适用于非开源产品的开源类库或框架,并可以不继承LGPL协议,使用其他的开源协议。 LGPL叫做GNU宽通用公共协议,对产品所保留的权利比GPL少。LGPL 适用于非开源产品的开源类库或框架,并可以不继承LGPL协议,使用其他的开源协议。
LGPL的特点在于,链接到该软件库的软件可以不适用LGPL或GPL,换言之,可以不公开源代码。LGPL的这一特性消除了在GPL下软件商用的最大障碍。尽管如此,基于该库修改而得到的软件仍然需要遵循GPL许可证。 LGPL的特点在于,链接到该软件库的软件可以不适用LGPL或GPL,换言之,可以不公开源代码。LGPL的这一特性消除了在GPL下软件商用的最大障碍。尽管如此,基于该库修改而得到的软件仍然需要遵循GPL许可证。
(3)Mozilla Public License(MPL)
**(3)Mozilla Public License(MPL)**
MPL允许在其授权下的源代码与其他授权的文件进行混合,包括私有许可证。在MPL授权下的代码文件必须保持MPL授权,并且保持开源,即允许在派生项目中存在私有模块,同时保证核心文件的开源。使用MPL授权的软件并不受专利的限制,其可以自由使用、修改,并可自由的重新发布。带有专利代码的版本仍然可以使用、转让,甚至出售。 MPL允许在其授权下的源代码与其他授权的文件进行混合,包括私有许可证。在MPL授权下的代码文件必须保持MPL授权,并且保持开源,即允许在派生项目中存在私有模块,同时保证核心文件的开源。使用MPL授权的软件并不受专利的限制,其可以自由使用、修改,并可自由的重新发布。带有专利代码的版本仍然可以使用、转让,甚至出售。
(4)BSD许可证系列
**(4)BSD许可证系列**
BSD许可证是由加州大学伯克利分校首倡和维护的,版本繁多,目前常用版本包括原始的BSD-4、BSD-3以及简化的BSD-2。BSD属于宽松许可证,与MIT许可证接近但更加宽松,甚至跟公有领域更为接近。在最简化的BSD-2许可证下,保留著作权声明、许可证内容以及免责声明即可;只要满足许可证设定的条件,就可以自由地修改并发布代码。 BSD许可证是由加州大学伯克利分校首倡和维护的,版本繁多,目前常用版本包括原始的BSD-4、BSD-3以及简化的BSD-2。BSD属于宽松许可证,与MIT许可证接近但更加宽松,甚至跟公有领域更为接近。在最简化的BSD-2许可证下,保留著作权声明、许可证内容以及免责声明即可;只要满足许可证设定的条件,就可以自由地修改并发布代码。
BSD-3许可证在BSD-2许可证的基础上增加了禁止背书条款(未经事先书面许可不得使用原作者之名来推广衍生作品);BSD许可证进一步增加了广告条款(衍生作品的广告材料必须说明该软件包含由加州大学伯克利分校及其贡献者开发的软件)。 BSD-3许可证在BSD-2许可证的基础上增加了禁止背书条款(未经事先书面许可不得使用原作者之名来推广衍生作品);BSD许可证进一步增加了广告条款(衍生作品的广告材料必须说明该软件包含由加州大学伯克利分校及其贡献者开发的软件)。
(5)MIT许可证
**(5)MIT许可证**
排名第二的MIT许可证之名源自首倡者MIT麻省理工学院,又称“X许可协议”(X License)或“X11许可协议”(X11 License)。 排名第二的MIT许可证之名源自首倡者MIT麻省理工学院,又称“X许可协议”(X License)或“X11许可协议”(X11 License)。
据统计,2015 年GitHub上高达45%的项目使用MIT许可证。近几年MIT许可证的份额有所下滑,在2020年市场份额第一的位置被Apache 2.0取代,但仍是最受开发者欢迎的许可证之一。 据统计,2015 年GitHub上高达45%的项目使用MIT许可证。近几年MIT许可证的份额有所下滑,在2020年市场份额第一的位置被Apache 2.0取代,但仍是最受开发者欢迎的许可证之一。
MIT的特点在于条款非常简单,也是开源协议中最宽松的一个:“被许可人有权利使用、复制、修改、合并、出版发行、散布、再许可和/或贩售软件及软件的副本,及授予被供应人同等权利”,加上要求被许可人保持同样的声明。 MIT的特点在于条款非常简单,也是开源协议中最宽松的一个:“被许可人有权利使用、复制、修改、合并、出版发行、散布、再许可和/或贩售软件及软件的副本,及授予被供应人同等权利”,加上要求被许可人保持同样的声明。
(6)Apache许可证
**(6)Apache许可证**
Apache许可证是一种“宽松”(Permissive)的许可证,目前常用版本是2.0,2020年成为使用最多的许可证。“宽松”是指不保证被使用软件的派生版会继续保持自由软件的形式,即:“怎么用都行,用在哪都行”。 Apache许可证是一种“宽松”(Permissive)的许可证,目前常用版本是2.0,2020年成为使用最多的许可证。“宽松”是指不保证被使用软件的派生版会继续保持自由软件的形式,即:“怎么用都行,用在哪都行”。
具体而言,Apache 2.0许可要求保留版权和许可声明,但允许许可作品、修改和更大的作品在不同的条款和没有源代码的情况下分发,只是未修改的部分仍然需要保留Apache许可证。除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合。 具体而言,Apache 2.0许可要求保留版权和许可声明,但允许许可作品、修改和更大的作品在不同的条款和没有源代码的情况下分发,只是未修改的部分仍然需要保留Apache许可证。除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合。
由于上述利好条件,Apache 2.0成为了相当多流行的开源项目的许可证,最著名的例子之一就是Kubernetes。 由于上述利好条件,Apache 2.0成为了相当多流行的开源项目的许可证,最著名的例子之一就是Kubernetes。
不同开源许可证就许可、条件和限制的比较参见https://choosealicense.com/appendix/。主要常见开源许可证的对比汇总见下表。 不同开源许可证就许可、条件和限制的比较参见https://choosealicense.com/appendix 。主要常见开源许可证的对比汇总见下表。
图片: https://uploader.shimo.im/f/uEK9a3Lc9Dy9tsH1.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTMyOTY2OTgsImZpbGVHVUlEIjoiNVdLNlB2VjJSTXNHVmJyaCIsImlhdCI6MTY1MzI5NjM5OCwidXNlcklkIjo2Mjc3ODk0N30.xZ3xlj9bb3JmfiwU1hjufU2ez4z26zVHLT822er3cpY 常见开源许可证的对比汇总表
![](https://img-blog.csdnimg.cn/04afdcefa89a4004ac2e92ae862f8c8d.png)<br/>*常见开源许可证的对比汇总表*
可以看出,除了允许商业性使用、分发和修改外等常见特征外,开源许可证还有两个共同点:一是开发者不承担保证责任(瑕疵担保责任)。开源代码通常都是免费提供的,因此开发者不应为他人使用该软件造成的损失而承担责任;二是要求保留著作权标记。开源软件并不意味着放弃著作权。相反,开源许可证的强制效力来源,恰恰来自于作者对开源软件的著作权。 可以看出,除了允许商业性使用、分发和修改外等常见特征外,开源许可证还有两个共同点:一是开发者不承担保证责任(瑕疵担保责任)。开源代码通常都是免费提供的,因此开发者不应为他人使用该软件造成的损失而承担责任;二是要求保留著作权标记。开源软件并不意味着放弃著作权。相反,开源许可证的强制效力来源,恰恰来自于作者对开源软件的著作权。
因此,许可证一般都要求以适当的形式保留著作权标记(包括许可证正文以及作者署名)。 因此,许可证一般都要求以适当的形式保留著作权标记(包括许可证正文以及作者署名)。
通常,开源软件许可证也可用于非软件作品,通常是最佳选择,尤其是当相关作品可以作为源代码进行编辑和版本控制时(例如,开源硬件设计)。 通常,开源软件许可证也可用于非软件作品,通常是最佳选择,尤其是当相关作品可以作为源代码进行编辑和版本控制时(例如,开源硬件设计)。
数据、媒体等:对于网站、图像、视频、博客、电子文档、书籍、数据集等自由文化作品,一般采用Creative Commons(CC)知识共享公共许可证系其中CC0-1.0、CC-BY-4.0和CC-BY-SA-4.0等。是用于从数据集到视频的非软件材料的开放许可证。其中CC-BY-4.0和CC-BY-SA-4.0不应用于软件。
文档:任何开源软件许可证或媒体开放许可证(见上文)也适用于软件文档。如果您对软件及其文档使用不同的许可证,需确保指定文档中的源代码示例也在软件许可证下获得许可。 **数据、媒体等**:对于网站、图像、视频、博客、电子文档、书籍、数据集等自由文化作品,一般采用Creative Commons(CC)知识共享公共许可证系其中CC0-1.0、CC-BY-4.0和CC-BY-SA-4.0等。是用于从数据集到视频的非软件材料的开放许可证。其中CC-BY-4.0和CC-BY-SA-4.0不应用于软件。
字体:SIL Open Font License 1.1保证字体开放,允许在其他作品中自由使用。
混合项目:如果您的项目包含软件和其他材料的混合,则可以包含多个许可证,只要明确说明哪个许可证适用于项目的每个部分。 **文档**:任何开源软件许可证或媒体开放许可证(见上文)也适用于软件文档。如果您对软件及其文档使用不同的许可证,需确保指定文档中的源代码示例也在软件许可证下获得许可。
1.4.4 木兰开源许可证解读
**字体**:SIL Open Font License 1.1保证字体开放,允许在其他作品中自由使用。
**混合项目**:如果您的项目包含软件和其他材料的混合,则可以包含多个许可证,只要明确说明哪个许可证适用于项目的每个部分。
#### 1.4.4 木兰开源许可证解读
木兰许可证族由中国电子标准化研究院牵头研制,已发布版本包含木兰宽松许可证(MulanPSL v1;MulanPSL v2)、木兰公共许可证(MulanPubL v1;MulanPubL v2)、木兰-白玉兰开放数据许可协议(MBODL v1)。 木兰许可证族由中国电子标准化研究院牵头研制,已发布版本包含木兰宽松许可证(MulanPSL v1;MulanPSL v2)、木兰公共许可证(MulanPubL v1;MulanPubL v2)、木兰-白玉兰开放数据许可协议(MBODL v1)。
木兰宽松许可证(MulanPSL)
**木兰宽松许可证(MulanPSL)**
MulanPSL v2于2020年通过OSI认证,是全球首个由我国主导的国际通用中英文双语许可证,与Apache 2.0许可证有良好的兼容性,最大限度鼓励专利和版权开放,并于2021年发布日文版。截止至2020年底,已超过1万余项国内自主开源项目支持MulanPSL 2.0,已得到Linux基金会、Apache基金会、华为、阿里、开源中国、CSDN等开源组织、公司和代码托管平台的支持应用,1万7千余代码仓应用(Gitee11000+,Github7000+)。其中典型应用有OpenEuler、OpenGauss、方舟编译器、XiOUS等。 MulanPSL v2于2020年通过OSI认证,是全球首个由我国主导的国际通用中英文双语许可证,与Apache 2.0许可证有良好的兼容性,最大限度鼓励专利和版权开放,并于2021年发布日文版。截止至2020年底,已超过1万余项国内自主开源项目支持MulanPSL 2.0,已得到Linux基金会、Apache基金会、华为、阿里、开源中国、CSDN等开源组织、公司和代码托管平台的支持应用,1万7千余代码仓应用(Gitee11000+,Github7000+)。其中典型应用有OpenEuler、OpenGauss、方舟编译器、XiOUS等。
木兰公共许可证(MulanPubL)
**木兰公共许可证(MulanPubL)**
木兰公共许可证在宽松版基础上增加了其传染性,对开源软件的分发增加了限制性要求。木兰公共许可证和木兰宽松许可证间存在较大差异,均以第 2 版为例,木兰公共许可证和木兰宽松许可证的差别集中在“分发限制”上。木兰公共版许可证类似 GPL具有传染性,要求接受者必须开放源代码。而木兰宽松许可证的“分发限制”中仅仅要求保留代码中的许可证声明,并未要求再次分发时的许可证设置,不具有“传染”特质。 木兰公共许可证在宽松版基础上增加了其传染性,对开源软件的分发增加了限制性要求。木兰公共许可证和木兰宽松许可证间存在较大差异,均以第 2 版为例,木兰公共许可证和木兰宽松许可证的差别集中在“分发限制”上。木兰公共版许可证类似 GPL具有传染性,要求接受者必须开放源代码。而木兰宽松许可证的“分发限制”中仅仅要求保留代码中的许可证声明,并未要求再次分发时的许可证设置,不具有“传染”特质。
木兰宽松许可证与木兰公关许可证的共同特点是:采用中英文表达,中英文表述具有同等法律效力;遵从表述简洁原则,容易理解;明确授予版权和专利权,不授予商标权。而区别在于前者能与现有的其他许可证友好兼容,后者对开源软件的分发条件有限制性要求,对云计算和SaaS等新兴技术的分发也有条件限制。 木兰宽松许可证与木兰公关许可证的共同特点是:采用中英文表达,中英文表述具有同等法律效力;遵从表述简洁原则,容易理解;明确授予版权和专利权,不授予商标权。而区别在于前者能与现有的其他许可证友好兼容,后者对开源软件的分发条件有限制性要求,对云计算和SaaS等新兴技术的分发也有条件限制。
![](https://img-blog.csdnimg.cn/0a05ddc3700243ed9c5e5c5a7486d465.png)<br/>木兰宽松许可证与业界主流许可证的异同
图片: https://uploader.shimo.im/f/sgx7YrC0PV8N9esD.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTMyOTY2OTgsImZpbGVHVUlEIjoiNVdLNlB2VjJSTXNHVmJyaCIsImlhdCI6MTY1MzI5NjM5OCwidXNlcklkIjo2Mjc3ODk0N30.xZ3xlj9bb3JmfiwU1hjufU2ez4z26zVHLT822er3cpY 木兰宽松许可证与业界主流许可证的异同 ![](https://img-blog.csdnimg.cn/28c3ad17811c4b6682e57e88d993ed9f.png)<br/>木兰公共许可证与主流许可证对分发的限制
图片: https://uploader.shimo.im/f/Lf82B1KNsx94ST03.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTMyOTY2OTgsImZpbGVHVUlEIjoiNVdLNlB2VjJSTXNHVmJyaCIsImlhdCI6MTY1MzI5NjM5OCwidXNlcklkIjo2Mjc3ODk0N30.xZ3xlj9bb3JmfiwU1hjufU2ez4z26zVHLT822er3cpY 木兰公共许可证与主流许可证对分发的限制
1.4.5 开源许可证的选用逻辑 #### 1.4.5 开源许可证的选用逻辑
选择开源许可证时,可以从三层阶梯的五个问题入手:他人修改代码后,是否可以关系源;新增代码是否采用同样许可证;是否需要对源码的修改之处,提供说明文档;每一个修改过的文件,是否都必须放置版权说明;衍生软件的广告是否可以用你的名字促销。 选择开源许可证时,可以从三层阶梯的五个问题入手:他人修改代码后,是否可以关系源;新增代码是否采用同样许可证;是否需要对源码的修改之处,提供说明文档;每一个修改过的文件,是否都必须放置版权说明;衍生软件的广告是否可以用你的名字促销。
![](https://uploader.shimo.im/f/VbIxr3Ho9H58NYEx.png)<br/>*开源许可证选用逻辑* ![](https://img-blog.csdnimg.cn/acd30e6000044e21826e076efca9f420.png)<br/>*开源许可证选用逻辑*
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册