不要让你的开源项目「裸奔」,一文了解开源证书

选自choosealicense

机器之心编译

 

在我们现在所处的这个被软件和数字化内容包围的时代,开源证书具有极其重要的价值和意义。但你知道如何为你的项目或工作选择合适的开源证书吗?choosealicense.com 就是为这一任务而生的,能辅助你找到最适合的开源证书。本文总结该网站上的部分内容,介绍了选取开源证书的方式以及部分证书的授权内容,最后还谈到了对于无证书的情况的应对方法。

 

开源证书可以保护贡献者和用户。企业和精明的开发者不会触碰没有这种保护的项目。

已有的项目和社区

 

如果你在为一个已有的项目做贡献或做扩展,最简单的方法就是继续使用该项目的证书。要查找这个证书,只需寻找一个名叫 LICENSE 或 COPYING 的文件,另外还要浏览一下 README。如果你无法找到证书,可以询问项目维护者。

 

不同的项目有不同的偏好。对于某些项目而言,使用原项目的证书不仅是因为这样做最简单,而且还是原项目证书规定的一项要求。参见某些证书的「同一证书(same license)」条款。

某些社区非常偏好特定的证书。如果你想要参与其中某个社区,即使当你决定发起一个新项目而且不依赖已有项目时,使用他们偏好的证书会更轻松一些。下面给出一些例子:

 

  • Apache 需要 Apache License 2.0 证书

  • Cloud Native Computing Foundation(云原生计算基金会)默认指定了 Apache License 2.0 证书

  • GNU 建议大多数程序使用 GNU GPLv3 证书

  • NPM 软件包大都使用 MIT 证书或非常相似的 ISC 证书

  • OpenBSD 更偏好 ISC 证书

  • Rust crates 大都使用了 MIT 和 Apache License 2.0 证书

  • WordPress 插件和主题必须使用 GNU GPLv2(或更新的)证书

社区有各种各样的类型和规模,而且多个社区之间还可能存在关联(如果你在某家公司工作,还要注意公司的法律要求)。上面给出的例子都是已经很完善的社区。如果你正在构建项目的社区还没有固定的证书传统,或者你并不认为你的项目属于某个特定的社区,也没有问题:你需要选择自己的开源证书。下面简单介绍几种开源证书。

 

MIT 证书

 

这是一个简短的许可证,其条款中仅要求保留版权和许可声明。使用该证书的工作、修改和更大型的成果可能会以不同的条款进行分发,也可以不分发源代码。

GNU 许可证 v3.0

 

GNU 许可证 v3.0 按不同强度 copyleft 许可权限分为三级,分别是最强的 GNU Affero General Public License v3.0(GNU AGPLv3)、GNU General Public License v3.0(GNU GPLv3)和 GNU Lesser General Public License v3.0(GNU LGPLv3)。

 

首先,我们先看看 copyleft 许可强度居中的 GNU GPLv3:这是一种强 copyleft 的许可证,其条件是提供使用该证书的工作和修改的完整源代码,这包括:使用了已有该证书的工作的更大型工作也要使用同一证书。版权和许可声明必须保留。贡献者需明确提供专利权授权。

对于 copyleft 强度更高的 GNU AGPLv3,其要求在使用经过修改的该许可授权的代码在网络上提供服务时,同时也必须公开该服务所用的修改版的完整源代码。

 

而对于 copyleft 强度更低的 GNU LGPLv3,其许可:当通过接口方式提供已有该许可证的软件时,更大型的工作可以基于不同的条款分发,也无需提供该更大型工作的源代码。

 

除此之外,软件项目常用的开源证书还有 Mozilla Public License 2.0、Apache License 2.0、Boost Software License 1.0、The Unlicense 等,它们都有各自不同的许可权限范围以及要求。

非软件证书

 

除了用于开源软件项目的证书之外,也有针对非软件工作的证书。当然,开源软件证书基本也都可以用于非软件的工作,而且也往往也是最好的选择,尤其是当证书许可的工作是可以编辑或制作不同的版本时(比如开源硬件设计)。下面介绍一些针对不同类型的非软件工作的证书:

 

数据、媒体内容等

 

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 能够保证字体开放,但同时也让它们可以在其它工作中被自由地使用。

 

混合项目

如果你的项目包含软件和其它材料,你可以包含多个证书,只要你明确指定哪个证书适用于该项目的哪些部分。

不使用证书

当你在做一项创意工作(包括代码)时,该工作默认是有专属版本的。除非你使用一个证书明确说明许可权限,那么其他人都不能复制、分发或修改你的工作,因为这可能面临着被下架、索赔和起诉的风险。如果该工作还有其他贡献者(每个人都是一个版权所有者),那么就没人能用它了,包括你自己。

即使在缺少证书文件时,你也可能会授予一些权限,因为当你在某些网站上发布源代码时需要接受一些服务条款。举个例子,如果你在 GitHub 的一个公共库中发布你的源代码,那么你就接受了该网站的服务条款,也就是说你允许其他用户查看和分叉你的库。如果在特定情况中使用了版权限制和例外,那么其他人可能还需要你的许可。但是,不管是网站服务条款还是法律指定的版权限制,都不足以支持人们希望在公共代码托管方面所寻求的合作,比如开源证书所提供的那种实验、修改和共享授权。

不提供证书完全无需任何操作。但是,你也许需要在显眼的位置(比如 README)添加一个版权注意和声明,表明你不提供任何证书,这样用户就不会认为你忽视了这一点。如果你希望在你的无证书项目中接受其他人的贡献,你可能还需要和你的律师谈谈,添加一个贡献者声明,以便你能够维护来自贡献者的版权许可,即便你并不提供同样的权限。

你选择「无证书」的意图可能并不是禁止人们使用你的代码。有的开源证书允许人们在使用你的代码时维持你的版权。如果你的目标是完全抛弃版权限制,那么试试公共领域专用的证书:The Unlicense

用户该如何应对无证书的情况?

如果你发现某个软件没有证书,那么这通常意味着你无权使用、修改和共享该软件。尽管 GitHub 上的代码托管可能让你可以查看和分叉代码,但这并不意味着你有权以任何目的使用、修改和共享该软件。

你有如下选择:

  • 恳请维护者添加一个证书。除非该软件明确说明不允许使用,否则缺少证书多半是因为疏忽。如果该软件托管在 GitHub 这样的网站上,那么可以开一个问题,要求其提供一个证书。如果你胆子够大,而且你知道什么证书是最合适的,那么可以提出一个 pull 请求来添加证书。

  • 不要使用这个软件。寻找或创建有开源证书的替代软件。

  • 协商获取私人授权。叫上你的律师。

参考链接:

https://choosealicense.com/
https://github.com/github/choosealicense.com

推荐阅读
下载 | 621页《 Linux 命令行与 shell 脚本编程大全 》

这只狗,其实是猫变的:“撸猫神器”StarGAN v2来了!

一句f**k代码自动纠错,美女程序员教你建一个狂拽酷炫的终端

Github标星4.2K!微软开源的可视化工具,未免太酷炫了吧

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值