开源许可证的选择

Clloz · · 1,687次浏览 ·

前言

开源许可证授予任何人以任何目的使用,修改和共享许可软件的权限,但要遵守保护该软件的来源和开放性的条件。对于常用的开源许可证我们要理解他们的区别才能正确使用。常用的许可证区别可以看下图。

open-source-license

github 有一个页面帮助你选择开源许可证,另外还有一个网站choosealicense也有主要的许可证介绍。

许可证介绍

开源许可证可以分为两类:

  • 宽松式(permissive)许可证:最基本的类型,对用户几乎没有限制。用户可以修改代码后闭源。用户可以使用代码,做任何想做的事情,不保证代码质量,用户自担风险,用户必须披露原始作者。常见的宽松式许可证有:BSDMITApache 2.0
  • Copyleft 许可证:比宽松式许可证严格。如果分发二进制格式,必须提供源码修改后的源码,必须与修改前保持许可证一致,不得在原始许可证以外,附加其他限制。核心就是修改后的代码不可以闭源。

Copyleft 是理查德·斯托曼发明的一个词,作为 Copyright (版权)的反义词。Copyright 直译是”复制权”,这是版权制度的核心,意为不经许可,用户无权复制。作为反义词,Copyleft 的含义是不经许可,用户可以随意复制。

BSD

BSD 有两个版本,两个版本的共同要求是分发软件时,必须保留原始的许可证声明。另外一个附加条款是不得使用原始作者的名字为软件促销。

MIT License

MIT License 是一个非常宽松的许可证,你只要保留版权声明和许可声明就可以。你可以用代码做任何事情,包括闭源你的项目。使用这个许可证的项目有 Babel, .NET Core, RailsjQuery 等。

Apache License 2.0

Apache LicenseMIT License 类似,都很宽松,但是他包含了贡献者向用户提供专利授权相关的条款,分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。使用该许可证的项目有 ApacheSVNNuGet

GNU GPLv3

许可证。这是一种 Copyleft 许可证,要求修改项目代码的用户再次分发源码或二进制代码时,必须公布他的相关修改。

GNU LGPLv3

GPL 的区别是:如果项目采用接口调用该许可证的库,项目可以不用开源。

Mozilla Public License 2.0

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

不添加许可证

如果你不添加任何许可证,那么你的代码默认具有专有版权,别人不可以复制、分发和修改。当代码超过一个贡献者时,连你自己也不可以进行复制,分发和修改。Github 有用户协议,可以让其他用户查看和复制你的代码,但不代表可以用这个代码去做其他的事情。

Github 添加许可证

想要知道一个 Github 仓库的许可证,看项目的页面右边的 About 区域即可(老版的 Github 在文件列表上方的 tab 末尾)

如何为我们的项目添加一个 license 呢,我们只要点击页面上的 creat new file 然后文件名填写 LICENSE (全大写),右边会出现一个 choose a license template 按钮,点进去选择自己想要的 license 然后完成文件的创建即可。具体流程参考添加许可到仓库

参考文章

  1. 开源许可证教程

Clloz

人生をやり直す

发表评论

电子邮件地址不会被公开。 必填项已用*标注

我不是机器人*

 

00:00/00:00