如何选择开源协议许可证

如何选择开源协议许可证

开源许可证 是开源项目为本项目所设立的一种使用约束和规范,你必须遵循该规范才能使用该开源项目,否则可能会构成侵权。根据 wiki 百科 对开源软件的定义

开源软件(英语:open source software,缩写:OSS)又称开放源代码软件,是一种源代码可以任意获取的计算机软件,这种软件的著作权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及以任何目的向任何人分发该软件。开源协议通常符合开放源代码的定义的要求。一些开源软件被发布到公有领域。开源软件常被公开和合作地开发。开源软件是开放源代码开发的最常见的例子,也经常与用户生成内容做比较[1]。 开源软件的英文“open-source software”一词出自自由软件的营销活动中[2]。

软件协议即是开源许可证。

我们在开发一些软件项目的时候,通常会去一些开源社区看看有哪些开源项目是可以使用的,站在巨人的肩膀上能为我们节省不少的开发时间。开源社区以及开源项目的出现,为整个信息社会的进步发展提供了强大的推动力,基于开源,人们可以相互合作、分享代码,避免了重复制造轮子。

但开源并不意味着免费,我们在使用的时候需要注意,每个开源软件,都会附带一份开源协议许可说明,这份说明决定了你使用该开源项目的限制,如果不注意,很有可能会构成侵权哦。

开源软件的类别

目前流行的开源许可证主要有:GPL、BSD、MIT、Mozilla、Apache 和 LGPL,这里简单做一下介绍。

Apache

全称 Apache License 2.0,一个较宽松且简明地指出了专利授权的协议。

  • 需要给代码的用户一份Apache Licence
  • 如果修改了代码,需要在修改的文件汇总说明
  • 在衍生的代码中需要带有原来代码中的协议、商标。专利声明和其他原来作者规定需要包含的说明
  • 如果在发布的产品中添加Notice,则Notice文件中需要带有Apache Licence,可以增加自己的许- 可,但不可以对Apache Licence构成更改

MIT

全称 MIT license。

最宽松的声明,只需要包含原始版权声明即可,其他的随便弄。

  • 被授权人有权使用、复制、修改、合并、出版发行、散步、在授权、以及贩售软件的副本
  • 被授权人可以根据程序修改授权条款内容
  • 在软件和软件所有副本都必须包含版权声明和许可声明
  • 该授权可以在自由、开源或非自由软件使用
  • 可以与其他授权条款并存

BSD3

全称 BSD 3-Clause “New” or “Revised” license

  1. 需包含原始版权和免责声明
  2. 未经许可不能用原作者做宣传

BSD2

全称 BSD 2-Clause “Simplified” or “FreeBSD” license。

需包含原始版权和免责声明。

GPL

全称 GNU General Public License 。

此协议是应用最为广泛的开源协议,拥有较强的版权自由( copyleft )要求。衍生代码的分发需开源并且也要遵守此协议。此协议有许多变种,不同变种的要求略有不同。

LGPL

全称 GNU Library or “Lesser” General Public License 。

就是GPL针对动态链接库放松要求了的版本,即允许非LGPL的代码动态链接到LGPL的模块。注意:不可以静态链接,否则你的代码也必须用LGPL协议开源。

MPL

全称 Mozilla Public License 2.0 。

修改版本必须保持其原始版权声明。如果发布了编译后的可执行文件,那么必须让对方可以取得MPL协议下程序的源码。

  • MPL可以通过在自己源代码库上加一个接口,除了接口程序的源代码以MPL许可证的形式对外许可,源代码库中的源代码就可以不用强制对外
  • MPL允许被许可人将获得的源代码与自己的代码混合得到自己的软件程序
  • MPL不反对软件专利,但是要求源代码作者不能提供已经受到专利保护的代码(除非本人是专利人,且书面向公众授权),也不能将这些源代码开源许可后再去申请相关专利。
  • 所有再发布者必须有一个专门的文件丢源代码修改的时间和修改方式有描述

CDDL

全称 Common Development and Distribution License。

它是MPL的扩展,允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。

EPL

全称 Eclipse Public License。

类似于GPL的商业友好型协议,主要是用于Eclipse基金会的。

如何识别开源许可呢?

开源许可证选择

相关

  1. wiki 开源软件定义
  2. 如何选择开源许可证?
  3. 开源许可证教程
  4. 开源社区 licenses 官网
Rating: