From a17d9fe2e2212d39673f73c54d24993b8c26bf3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E5=9F=BA=E7=B1=B3=E4=B8=9C?= <870179822@qq.com> Date: Sat, 13 Apr 2024 11:00:13 +0000 Subject: [PATCH] =?UTF-8?q?update=20=E7=AC=AC=E5=9B=9B=E9=83=A8=E5=88=86?= =?UTF-8?q?=EF=BC=9A=E5=90=AF=E5=8A=A8=E8=87=AA=E5=B7=B1=E7=9A=84=E5=BC=80?= =?UTF-8?q?=E6=BA=90=E9=A1=B9=E7=9B=AE/=E7=AC=AC=203=20=E5=B0=8F=E8=8A=82?= =?UTF-8?q?=EF=BC=9A=E5=BC=80=E6=BA=90=E8=AE=B8=E5=8F=AF=E8=AF=81=E7=9A=84?= =?UTF-8?q?=E5=BA=94=E7=94=A8.md.=20=E4=BC=98=E5=8C=96=E7=A4=BA=E6=84=8F?= =?UTF-8?q?=E5=9B=BE=EF=BC=8C=E4=BF=AE=E6=AD=A3=E6=96=87=E7=AB=A0=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 阿基米东 <870179822@qq.com> --- ...01\347\232\204\345\272\224\347\224\250.md" | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git "a/\347\254\254\345\233\233\351\203\250\345\210\206\357\274\232\345\220\257\345\212\250\350\207\252\345\267\261\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\347\254\254 3 \345\260\217\350\212\202\357\274\232\345\274\200\346\272\220\350\256\270\345\217\257\350\257\201\347\232\204\345\272\224\347\224\250.md" "b/\347\254\254\345\233\233\351\203\250\345\210\206\357\274\232\345\220\257\345\212\250\350\207\252\345\267\261\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\347\254\254 3 \345\260\217\350\212\202\357\274\232\345\274\200\346\272\220\350\256\270\345\217\257\350\257\201\347\232\204\345\272\224\347\224\250.md" index 1ed9392..cd2efce 100644 --- "a/\347\254\254\345\233\233\351\203\250\345\210\206\357\274\232\345\220\257\345\212\250\350\207\252\345\267\261\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\347\254\254 3 \345\260\217\350\212\202\357\274\232\345\274\200\346\272\220\350\256\270\345\217\257\350\257\201\347\232\204\345\272\224\347\224\250.md" +++ "b/\347\254\254\345\233\233\351\203\250\345\210\206\357\274\232\345\220\257\345\212\250\350\207\252\345\267\261\347\232\204\345\274\200\346\272\220\351\241\271\347\233\256/\347\254\254 3 \345\260\217\350\212\202\357\274\232\345\274\200\346\272\220\350\256\270\345\217\257\350\257\201\347\232\204\345\272\224\347\224\250.md" @@ -1,5 +1,6 @@ # 第 3 小节:开源许可证的应用 -### 选择一个合适的开源许可证 + +## 选择一个合适的开源许可证 相信对于很多刚踏入软件这个行业的小伙伴来说,「开源软件许可证」是个比较陌生的概念,毕竟在现阶段如何写好手中的代码才是更加重要的事。但是随着经手项目逐渐增多,会发现很多项目,尤其是一些大型项目,经常会引用到别人一些优秀的开源代码,而这些优秀的开源代码通常都会在最开始简单地附上一段关于授权的声明或在项目根目录下提供完整的授权声明文件,比如:「The project is licensed under the Apache 2 license.」,诸如此类便是「开源许可证」。 @@ -7,11 +8,11 @@ 开源不等于免费,开源也不等于没有约束。 -#### 开源许可证概述 +## 开源许可证概述 开源许可证是开源软件的授权许可,里面详尽表述了个人或组织获得开源代码后拥有的权力,包括可以进行哪些操作以及禁止哪些操作。对于绝大部分人来说,与其自己花大把时间去编写一份开源许可证,倒不如直接选择一个广为流传且合适的已有开源许可证,这样做既省心又省力。而且,靠个人完成一份开源许可证的编写也不是一件容易的事情。 -#### 常见开源许可证授权概述 +### 常见开源许可证 | 协议 | 描述 | 要求 | 允许 | 禁止 | | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | ----------------------------------------------- | -------------------------------------------- | @@ -23,7 +24,7 @@ | Apache | 一个较宽松且简明地指出了专利授权的协议。 | 1.协议和版权信息 2.声明变更 | 1.商用 2.分发 3.修改 4.专利授权 5.私用 6.附加协议 | 1.责任承担 2.商标使用 | | AGPL | 一个严格的开源协议,除非获得商业授权,否则无论以何种方式修改或者使用代码,都需要开源。 | 1.公开源码 2.协议和版权信息 3.声明变更 | 1.商用 2.分发 3.修改 4.专利授权 5.私用 6.附加协议 | 1.责任承担 | -#### 木兰协议介绍 +### 木兰协议介绍 | 协议 | 描述 | 要求 | 允许 | 禁止 | |----------|------------|----|----|----| @@ -33,34 +34,36 @@ - 解决联盟存在互诉漏洞,也就是 A 想诉 B,A 授权 C,由 C 可以诉 B 的问题。 - 比 Apache License 更友好一些,Apache License 要求列出每个修改文件,其实很多项目做不到这一点,所以 MulanPSL 直接取消了这项要求。 -#### 快速选择 +## 如何选择开源许可证 + +### 快速选择 国内大神阮一峰根据乌克兰程序员 Paul Bagwell 的开源许可证选择分析图翻译的一份 [中文版本](http://www.ruanyifeng.com/blogimg/asset/201105/free_software_licenses.png),是我目前见过的最通俗易懂的解析,因为语法支持的问题,用以下代码大致表示为: ```txt 他人修改源码后, 是否可以闭源? - ---------- No ---------- ---------- Yes ---------- + +--------- No ---------- ---------- Yes ---------+ │ | │ | | | | | 新增代码是否采用 每一个修改过的文件, 同样许可证? 是否都必须放置版权 - ----- No ----- ----- Yes ----- 说明? - | | ----- No ----- ----- Yes ----- + +---- No ----- ----- Yes ----+ 说明? + | | +---- No ----- ----- Yes ----+ | | | | | | | | | | | | - 是否需要对源码的 | | | - 修改之处,提供说 | 衍生软件的广告, | - 明文档? GPL 是否可以用你的名 Apache - ----- No ----- ----- Yes ----- 字促销? - | | ----- No ----- ----- Yes ----- + 是否需要对源码的 | | | + 修改之处,提供说 | 衍生软件的广告, | + 明文档? GPL 是否可以用你的 Apache + +---- No ----- ----- Yes ----+ 名字销售? + | | +---- No ----- ----- Yes ----+ | | | | | | | | | | | | - LGPL Mozilla BSD MIT + LGPL Mozilla BSD MIT ``` ### 使用 Gitee 开源许可证向导来选择 @@ -93,21 +96,21 @@ 当然,该向导功能未来还将继续完善,增加问题引导或增加可选择的内置许可证等。目前该向导也存在部分对用户不友好的体验内容,比如没有突出展现每个许可证的评分扣分点在哪里,是哪个条款;又比如内置许可证的名称一般只显示简称,对于对许可证的简称不够了解的开发者们进行选择不够友好等。这些内容 Gitee 官方都将在后续的优化中持续的优化,欢迎大家提出意见和建议。 -### 关于修改开源许可证 +## 关于修改开源许可证 开源软件的著作权属于作者所有,作者可以自行决定是否变更开源许可证,但是需要注意以下几点: * 变更授权之前的授权不能撤销 * 如果有许多著作权所有者,需要共同同意 * 如果使用多个开源许可证,变更开源许可证后,要防止不同开源许可证在授权上出现冲突的问题 -### 参考资料 +## 参考资料 * [如何选择开源协议](https://www.cnblogs.com/cangqinglang/p/11326130.html). * [如何选择开源许可证?](http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html). * [木兰宽松许可证](http://license.coscl.org.cn/MulanPSL2). * [木兰宽松许可证(MulanPSL v2)解析](https://cloud.tencent.com/developer/article/1593556). -### 本部分内容贡献者 +## 本部分内容贡献者 -[prog1mmer](https://gitee.com/progr1mmer)、[雪山凌狐](https://gitee.com/xueshanlinghu)、[zeroTwozeroTwo](https://gitee.com/zerotwozerotwo) +[prog1mmer](https://gitee.com/progr1mmer)、[雪山凌狐](https://gitee.com/xueshanlinghu)、[zeroTwozeroTwo](https://gitee.com/zerotwozerotwo)、[阿基米东](https://gitee.com/luhuadong) > 发现内容中的错误?还是想要补充更多符合主题的内容?《开源指北》欢迎你进行贡献,点击[贡献指南](./../贡献指南.md)了解贡献的具体步骤。 \ No newline at end of file -- Gitee