锐商企业CMS 写道 "越来越多的开发者与设计者希望将自己的产品开源,以便其他人可以在他们的代码基础上做更多事,开源社区也因此充满生机。在我们所能想到的应用领域,都有开源软件存在(象 WordPress,Drupal 这些开源CMS)。然而很多人对开源许可并不了解,本文介绍开源领域常用的几种许可协议以及它们之间的区别。
什么是许可协议?
什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供一定的权限。
不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。
而
开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。以下是开源界的 5 大许可协议。
GNU GPL
GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:
-
可自由复制
你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。
-
可自由分发
在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。
-
可以用来盈利
你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
-
可自由修改
如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。
需要注意的是,分发的时候,需要明确提供源代码和二进制文件,另外,用于某些程序的某些协议有一些问题和限制,你可以看一下
@PierreJoye 写的
Practical Guide to GPL Compliance 一文。使用 GPL 协议,你必须在源代码代码中包含相应信息,以及协议本身。
GNU LGPL
GNU 还有另外一种协议,叫做 LGPL (
Lesser General Public Licence),它对产品所保留的权利比 GPL 少,总的来说,LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为 GPL 要求,使用了 GPL 代码的产品必须也使用 GPL 协议,开发者不允许将 GPL 代码用于商业产品。LGPL 绕过了这一限制。
BSD
BSD 在软件分发方面的限制比别的开源协议(如 GNU GPL)要少。该协议有多种版本,最主要的版本有两个,新 BSD 协议与简单 BSD 协议,这两种协议经过修正,都和 GPL 兼容,并为开源组织所认可。
新 BSD 协议(3条款协议)在软件分发方面,除需要包含一份版权提示和免责声明之外,没有任何限制。另外,该协议还禁止拿开发者的名义为衍生产品背书,但简单 BSD 协议删除了这一条款。
MIT
MIT 协议可能是几大开源协议中最宽松的一个,核心条款是:
该软件及其相关文档对所有人免费,可以任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版权和许可提示。
这意味着:
- 你可以自由使用,复制,修改,可以用于自己的项目。
- 可以免费分发或用来盈利。
- 唯一的限制是必须包含许可声明。
MIT 协议是所有开源许可中最宽松的一个,除了必须包含许可声明外,再无任何限制。
Apache
Apache 协议 2.0 和别的开源协议相比,除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合(
这里有一篇文章阐述这个问题)。
Apache 协议还有以下需要说明的地方:
-
永久权利
一旦被授权,永久拥有。
-
全球范围的权利
在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。
-
授权免费,且无版税
前期,后期均无任何费用。
-
授权无排他性
任何人都可以获得授权
-
授权不可撤消
一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码。
分发代码方面包含一些要求,主要是,要在声明中对参与开发的人给予认可并包含一份许可协议原文。
Creative Commons
Creative Commons (CC) 并非严格意义上的开源许可,它主要用于设计。Creative Commons 有多种协议,每种都提供了相应授权模式,CC 协议主要包含 4 种基本形式:
-
署名权
必须为原始作者署名,然后才可以修改,分发,复制。
-
保持一致
作品同样可以在 CC 协议基础上修改,分发,复制。
-
非商业
作品可以被修改,分发,复制,但不能用于商业用途。但商业的定义有些模糊,比如,有的人认为非商业用途指的是不能销售,有的认为是甚至不能放在有广告的网站,也有人认为非商业的意思是非盈利。
-
不能衍生新作品
你可以复制,分发,但不能修改,也不能以此为基础创作自己的作品。
这些许可形式可以结合起来用,其中最严厉的组合是“署名,非商用,不能衍生新作品”,意味着,你可以分享作品,但不能改动或以此盈利,而且必须为原作者署名。在这种许可模式下,原始作者对作品还拥有完全的控制权,而最宽松的组合是“署名”,意味着,只要为原始作者署名了,就可以自由处置。延伸资源
本文国际来源:Smashing Magazine
A Short Guide To Open-Source And Similar Licenses 中文编译来源:
锐商企业CMS 网站内容管理系统 官方网站"
分享到:
相关推荐
免去了研究那些专业的许可条款的麻烦 更方便的对开源项目贡献出自己的代码 能保护你作为作品的原创作者 确保你至少拥有由于贡献参与而带来的署名荣誉 阻止其他人企图声明对你的作品拥有所有权的行为
- **注意事项**: 在使用开源代码时,必须仔细阅读并理解所采用的开源许可证的具体条款,以确保不会违反许可协议的要求。 通过以上介绍可以看出,不同类型的开源协议各有侧重,选择合适的开源协议对于开源项目的长期...
BSD许可是一种非常宽松的开源许可协议,它允许用户自由使用、修改和分发软件,只需要保留原始版权和许可声明即可。具体来说,使用BSD许可的软件时需遵循以下几点: - 在发布修改版或衍生作品时,必须包含原始的版权...
以思维导图的方式,描述几种常见的开源许可协议的核心内容。
开源授权许可协议详解 在软件开发中,开源授权许可协议是一个非常重要的概念。随着开源软件的普及,各种开源授权许可协议也相应地出现了。常见的开源授权许可协议有GPL、LGPL、Apache、BSD等。每种协议都有其特点和...
了解了这些基本的开源协议后,开发者在选择或创建Python项目时,可以根据自己的需求来决定适用的许可证。例如,如果希望代码被广泛使用并鼓励贡献,可以选择MIT或Apache 2.0;如果希望保持项目的开源本质,防止被...
- **简介**:MIT协议是一种极其宽松的开源许可证,几乎不附加任何限制。 - **主要条款**: - 必须保留版权声明和许可声明。 - 除上述条款外,几乎没有任何其他限制。 - **特点**: - 极其简单易懂,几乎没有使用...
本文将分析五个开源的TCP/IP协议栈:BSD TCP/IP、uC/IP、LwIP、uIP以及TinyTcp,探讨它们的特点、适用场景以及选择考虑因素。 1、**BSD TCP/IP协议栈**: 源自Berkeley Software Distribution (BSD),它是其他商业...
此外,参与开源社区需要遵循一定的规则,如遵循开源许可证条款,尊重他人的知识产权,积极回馈社区等。 总的来说,开源的CANOpen协议为开发者提供了强大的工具,有助于降低基于CAN总线系统的开发成本和难度,推动了...
在编程世界中,Java程序员经常会接触到各种开源项目,这些项目的许可协议对于理解代码的使用、修改和分发有着至关重要的作用。本篇文章将详细介绍几个Java程序员必须了解的开源协议,帮助开发者更好地理解和遵循这些...
MPL是一种弱复制许可协议,允许开发者修改和扩展源代码,同时要求如果发布基于MPL的衍生作品,则必须以MPL许可证发布修改后的代码。这种协议旨在促进开源社区内的合作与创新,同时保护原始作者的权利。使用MPL的项目...
MIT协议是另一个非常宽松的许可协议,它只保留了版权声明,对使用者几乎没有其他限制,无论是发布二进制还是源代码形式,都需要包含原始许可协议。 MPL,Mozilla Public License,是Netscape为了平衡开发者需求和...
附加的"各开源协议直接的比较"部分可能会对比这些协议的关键条款和适用场景,帮助用户更好地选择适合自己项目的许可证。例如,如果你希望自己的代码被广泛采用并可能被用于闭源项目,MIT或Apache 2.0可能是好选择;...
开源协议是开源软件项目的重要组成部分,它决定了软件的使用、修改和...对于希望采用开源代码的商业组织,合理选择和遵守相应的开源许可证,不仅可以避免潜在的法律风险,还能更好地融入开源社区,促进技术交流和创新。
常见开源许可协议的核心内容.emmx
BSD 开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用、修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但是需要满足三个条件:A 如果再发布的产品中包含源...
### JAVA程序员必须了解的七大开源协议 #### 1. MPL (Mozilla Public License) **MPL**(Mozilla Public License) 是一种较为独特的开源协议,它既维护了软件发起者的利益,同时也鼓励代码的分享与修改。根据MPL...
不同的开源许可证对软件的使用、修改和分发有不同的规定,因此选择合适的许可证对于维护开源项目和促进技术创新至关重要。 #### 二、主要开源协议简介及案例分析 根据给定的部分内容,我们可以看到几种常见的开源...
GPL是最具影响力的开源许可证之一,由自由软件基金会(FSF)发布,旨在确保软件的自由性和开放性。根据GPL,任何使用、修改或分发GPL许可软件的人,都必须将其衍生作品也以GPL许可证发布,这被称为“传染性”或...
6. **LICENCE.txt**:开源框架的许可证文件,详细列出了该框架的版权信息和使用许可条款。 7. **changeslog.txt**:变更日志,记录了项目的版本更新和改进内容。 8. **README.txt**:项目介绍和使用指南,帮助...