开源软件的通用协议

LGPL许可证

LGPL许可证是宽松通用公共许可证(LESSER GENERAL PUBLIC LICENSE)的缩写,也称为图书馆通用公共许可证(LIBRARY GENERAL PUBLIC LICENSE),中文翻译为“相对宽松的公共许可证”或“公共图书馆许可证”。本许可证适用于自由软件基金会和其他决定使用本许可证的软件作者专门设计的一些软件包,如函数库。LGPL许可证也是自由软件联盟的一种GNU开源软件许可证。大多数GNU软件,包括一些函数库,都受到原始GPL许可证的保护。LGPL许可证适用于专门设计的函数库,与原来的通用公共许可证有很大不同,给予被许可人更宽松的权利,因此被称为“更宽松的公共许可证”。在特定的函数库中使用它,允许非自由程序与这些函数库链接。当程序与函数库链接时,无论是静态链接还是使用函数库,两者的结合都可以合理地说是一个组合作品,是原函数库的衍生品。因此,最初的通用公共许可证只在整个组合符合其自由标准时才允许链接。更宽松的通用公共许可证允许其他程序代码以更宽松的标准与本库链接。例如,在少数情况下,可能有特殊的需要来鼓励人们尽可能广泛地使用特定的函数库,从而使其成为一个实用的标准。为了实现这个目标,必须允许非自由程序使用这个库。一个自由函数库和一个广泛使用的非自由函数库做同样的工作是很常见的情况。在这种情况下,将这个自由函数库的使用限制在自由软件上不会有太大的好处,所以我们使用LGPL许可证。在其他情况下,允许非自由程序使用特定的函数库可以让更多的人使用大部分自由软件。比如允许非自由程序使用GNU C库,可以让更多人使用整个GNU操作系统及其变种GNU/Linux操作系统。虽然LGPL许可证对用户的自由保护较少,但它可以确保链接到此库的程序的用户有自由,并有必要的方法来执行带有库的修改版本的程序。

MPL许可证

MPL是Mozilla Public License的缩写,是网景公司Mozilla团队在1998开头为其开源软件项目设计的软件许可证。MPL许可证出现的最重要原因是网景认为GPL许可证没有很好地平衡开发者对源代码的需求和他们从使用源代码中获得的利益。与著名的GPL许可证和BSD许可证相比,MPL在权利和义务的许多方面与它们相同(因为它们都是OSIA承认的开源软件许可证)。但与MPL相比,有几个显著的区别:◆ MPL要求对MPL许可发布的源代码的修改要以MPL许可的形式重新许可,以保证他人可以在MPL的条款下享有源代码。但是,在MPL许可证中,“分发”的定义是“由源代码分发的文件”,这意味着MPL允许企业在其现有的源代码基础上添加一个接口。除了接口程序的源代码以MPL许可的形式对外许可之外,源代码库中的源代码可以在没有MPL许可的情况下强制对外许可。这些都为自己的商业软件开发留下了借鉴他人源代码的空白。◆MPL许可证第3条第7款允许被许可人将通过MPL许可证获得的源代码与其他类型的自己的代码混合,以获得自己的软件程序。◆关于对待软件专利的态度,MPL license并没有像GPL license一样明确表示反对软件专利,但它明确要求源代码提供者不得提供已经受到专利保护的源代码(除非他是专利权人,并以书面形式将这些源代码免费许可给公众),也不得在以开源许可的形式许可后申请与这些源代码相关的专利。◆源代码的定义在MPL (version 1.1)许可证中,源代码的定义是:“源代码是指修改作品的最首选形式,它包括所有模块的所有源程序,加上相关接口的定义,再加上控制可执行作品的安装和编译的' original '(原文是' script '),或者说它与初始无关。MPL许可证第三条对描述源代码修改有一个特殊的规定,即要求所有的再发行者都有一个专门的文件来描述源代码程序的修改时间和方法。

BSD许可证

BSD许可证最初用于加州大学伯克利分校出版的各种4.4BSD/4.4BSD-Lite版本(BSD是Berkly Software Distribution的简称),此后逐渐被使用。1979年,加州大学伯克利分校发布了BSD Unix,被誉为开源代码的先驱。用BSD Unix开发的BSD许可证。BSD许可证现在被Apache和BSD操作系统等开源软件所采用。相对于GPL许可和MPL许可的严格,BSD许可要宽松很多,只需要附上原许可即可,不过有意思的是,它还要求所有进一步的开发者都把自己的版权材料放在上面,所以你拿到BSD许可分发的软件可能会遇到一个小情况,就是这些版权材料许可比程序占用的空间还要多。

QPL许可证

QPL是Qt公共许可证的缩写,由一个挪威组织创建。QPL许可的基本要求是获取源代码,修改源代码,将修改与原代码分离;修改可以根据作者的意愿组合成新版本;二进制代码可以和原代码同名,这对于动态链接库尤其重要;任何人都可以修正错误,这对于系统的发布者来说非常重要;修改后的软件可以根据满足QPL许可证基本要求的任何开源软件许可证进行分发。

QNCL许可证

QNCL许可证是Qt非商业许可证的缩写,是QPL许可证的“兄弟版”。就像GPL许可和LGPL许可的关系一样,QNCL许可比QPL许可更严格。在修改和分发方面,QNCL许可证与QPL许可证相同,但区别在于软件的范围,或连接。QNCL许可证规定“如果一个应用程序向您提供了一个入口,使您有权使用QNCL许可证下该软件的功能开发程序,重用该程序的一部分或其他软件的一部分,则该应用程序的使用被视为QNCL许可证下使用该软件的行为,该应用程序应受QNCL许可证的约束”。QNCL许可证比QPL许可证更严格,因为QNCL许可证与GPL许可证一样,完全禁止在本许可证下获得的开源软件以其他许可方式与其他非系统库函数相关的软件一起分发。

通用许可证

通用许可证的全称是通用公共许可证。在满足OSIA开源软件许可认证标准后,通用许可中还有一些详细的条款值得参考:◆定义专利授权。一般开源软件都有明确的源代码著作权人将自己的修改权、复制权等著作权许可给公众,但保留署名权。在此基础上,共同许可还明确,如果源代码含有专利权,则源代码专利权人将向公众许可复制和使用的专有权利。◆规定源代码和修改后的源代码可以与不受本许可证约束的其他类型的代码结合,以新产品的形式发布,只要本许可证获得的源代码和修改后的源代码可以按照本许可证的要求发布。◆详细说明了许可终止的情况,包括专利侵权诉讼的发生。明确了一个独立责任的原则,即根据本许可证使用源代码的用户,如果将获得的源代码应用于商业用途,将对该源代码程序在商业应用中的使用所产生的侵权诉讼负全部责任。这一规定相当特殊,大多数开源软件许可证并不要求这样做。

ibm公共许可证

IBM许可证的全称是IBM公共许可证。在满足OSIA开源软件许可证认证标准的前提下,IBM许可证还具有以下详细规定:◆明确的专利授权。一般开源软件都明确表示,源代码的著作权人将自己的修改权、复制权等著作权许可给公众使用,但保留署名权。在此基础上,IBM许可证还明确规定,如果源代码包含专利权,则源代码专利权人将复制和使用的专有权利许可给公众。◆详细说明许可证的终止,包括未按许可证要求发布和使用源代码、专利侵权诉讼等。与通用许可一样,IBM许可也明确了独立责任原则,即如果根据许可使用源代码的用户将获得的源代码应用于商业用途,则应对商业应用中使用源代码程序所产生的侵权诉讼负全部责任。

Jabber许可证

Jabber许可证的全称是Jabber开源许可证,由美国Jabber,Inc .提供。Jabber许可证在源代码的复制和分发方面与其他许可证基本没有区别,但有一些详细的规定值得学习:◆通过本许可证获得的源代码和修改后的源代码可以与不受本许可证约束的其他类型的代码结合,以新产品的形式分发, 只要通过本许可证获得的源代码和修改后的源代码可以以类似于本许可证要求并符合OSI认证的其他开源软件许可证的形式分发。 ◆很明显,将源代码置于公开可用状态所需的时间至少应为12个月。◆第三方对合法权利的声明。如果用户发现一方拥有通过本许可证获得的源代码和应用程序接口中的知识产权,应在发布源代码时单独作出标题为“合法”的声明,说明知识产权索赔的详细情况,提醒源代码的接收方知道自己获得了哪些知识产权,并让源代码的接收方知道如何联系知识产权权利人。◆详细说明了许可证的终止,包括未按许可证要求发布和使用源代码以及专利侵权诉讼。

协议比较

BSD开源协议

BSD开源协议是一个给用户很大自由度的协议。基本上,用户可以“为所欲为”,自由使用和修改源代码,并将修改后的代码作为开源或专有软件进行再分发。但是,使用BSD协议发布代码时“为所欲为”的前提,或者在BSD协议代码的基础上开发自己的产品,需要满足三个条件:◆如果再分发的产品包含源代码,则源代码必须包含原代码中的BSD协议。◆如果只重分发二进制类库/软件,需要在类库/软件的文档和版权声明中,在原代码中包含BSD协议。◆不得使用开源代码作者/机构的名称和原产品的名称进行营销。BSD代码鼓励代码享受,但需要尊重代码作者的版权。BSD是一个对业务集成友好的协议,因为它允许用户修改和重新分发代码,也允许用户在BSD代码上使用或开发商业软件分发和销售。很多公司和企业在选择开源产品的时候更倾向于BSD协议,因为可以完全控制这些第三方的代码,并且可以在必要的时候进行修改或者重新开发。

麻省理工学院(Massachu-setts Institute of Technology)

MIT是和BSD一样宽泛的许可协议,作者只想保留版权,没有任何其他限制。换句话说,无论是以二进制还是源代码形式发布,您都必须在发布中包含原始许可协议的声明。MIT agreement,又称MIT license,最初是由MIT开发的。被许可人的权利:1。被许可方有权使用、复制、修改、合并、发布、分发、再许可和销售软件及其副本。2.被许可方可以根据程序的需要将许可条款修改为适当的内容。被许可方的义务:软件和软件的所有副本必须包含版权声明和许可声明。

GNU GPL

我们熟悉的Linux采用了GPL。GPL协议与BSD、Apache Licence和其他鼓励代码重用的许可证有很大不同。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但修改和衍生的代码不允许作为闭源商业软件分发和销售。这就是为什么我们可以使用各种免费的linux,包括商业公司的linux,以及个人、组织、商业软件公司在linux上开发的各种免费软件。GPL协议的主要内容是,只要在一个软件中使用了GPL协议的一个产品(“使用”是指类库引用、修改后的代码或衍生代码),该软件产品也必须采用GPL协议,该协议既是开源的,也是免费的。这就是所谓的“传染性”。GPL协议的产品可以作为单一产品使用,没有任何问题,还可以享受免费的优势。因为GPL严格要求使用GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门,不适合集成/采用作为类库和二次开发的基础。其他细节,比如再分发时需要附带GPL协议,类似于BSD/Apache。

枪LGPL

LGPL是一个主要为类库使用而设计的GPL开源协议。与GPL要求不同的是,任何使用/修改/派生GPL类库的软件都必须采用GPL协议。LGPL允许商业软件通过类库引用(链接)的方式使用LGPL类库,无需开源商业软件的代码。这使得使用LGPL协议的开源代码可以被商业软件作为类库引用并出版和出售。但是,如果修改或派生LGPL协议的代码,则修改部分涉及的所有修改代码、额外代码和派生代码都必须采用LGPL协议。正因为如此,LGPL协议的开源代码非常适合被商业软件作为第三方类库引用,但不适合那些想基于LGPL协议代码通过修改和派生进行二次开发的商业软件。GPL/LGPL都保护原作者的知识产权,并防止有人使用开源代码来复制和开发类似的产品。

Apache许可证2.0

Apache Licence是著名的非营利开源组织Apache采用的协议。与BSD类似,该协议也鼓励代码享有并尊重原作者的版权,也允许代码被修改后发布(作为开源或商业软件)。需要满足的条件和BSD差不多:◆你需要给代码的用户一个Apache许可◆如果修改代码,需要在修改文件中说明。◆扩展代码(修改后的代码和来源于源代码的代码)中,需要包含原作者在原代码中要求的协议、商标、专利声明等描述。◆如果重新分发的产品包含通知文件,您需要在通知文件中有Apache许可证。您可以在通知中添加自己的许可证,但它不能显示为对Apache许可证的更改。Apache许可证也是一种商业友好的许可证。用户还可以根据需要修改代码,并将其作为开源或商业产品发布/销售。