软件各种协议比较(GPL、AGPL、LGPL、Apache、ZlibLibpng、BSD、
软件各种协议⽐较(GPL、AGPL、LGPL、Apache、
ZlibLibpng、BSD、MIT)
即通⽤性公开许可证(General Public License,简称GPL)。
GPL同其它的⾃由软件许可证⼀样,许可社会公众享有:运⾏、复制软件的⾃由,发⾏传播软件的⾃由,获得软件源码的⾃由,改进软件并将⾃⼰作出的改进版本向社会发⾏传播的⾃由。
GPL还规定:只要这种修改⽂本在整体上或者其某个部分来源于遵循GPL的程序,该修改⽂本的 整体就必须按照GPL流通,不仅该修改⽂本的源码必须向社会公开,⽽且对于这种修改⽂本的流通不准许附加修改者⾃⼰作出的限制。因此,⼀项遵循GPL流通 的程序不能同⾮⾃由的软件合并。GPL所表达的这种流通规则称为copyleft,表⽰与copyright(版权)的概念“相左”。
GPL协议最主要的⼏个原则:
1、确保软件⾃始⾄终都以开放源代码形式发布,保护开发成果不被窃取⽤作商业发售。任何⼀套软 件,只要其中使⽤了受 GPL 协议保护的第三⽅软件的源程序,并向⾮开发⼈员发布时,软件本⾝也就⾃动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。
2、GPL ⼤致就是⼀个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所⽆”、“版责”等)的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、⼆进制版附上 GPL 的许可证就⾏,让后⼈可以很明确地得知此软件的授权信息。GPL
精髓就是,只要使软件在完整开源 的情况下,尽可能使使⽤者得到⾃由发挥的空间,使软件得到更快更好的发展。
3、⽆论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在⼆进制版本(如果有的话)下载的同⼀个页⾯,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源⽂件的光盘。
4、开发或维护遵循 GPL 协议开发的软件的公司或个⼈,可以对使⽤者收取⼀定的服务费⽤。但还是⼀句⽼话——必须⽆偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。
AGPL 协议:
原有的GPL协议,由于现在⽹络服务公司兴起(如:google)产⽣了⼀定的漏洞,⽐如使⽤GPL的⾃由软件,但是并不发布与⽹络之中,则可以⾃由的使 ⽤GPL协议确不开源⾃⼰私有的解决⽅案。AGPL则增加了对此做法的约束。
GPL的约束⽣效的前提是“发布”软件,即使⽤了GPL成分的软件通过互联⽹或光盘release软件,就必需明⽰地附上源代码,并且源代码和产品也受GPL保护。
这样如果不“发布”就可以不受约束了。⽐如使⽤GPL组件编写⼀个Web系统,不发布这个系统,但是⽤这个系统在线提供服务,同时不开源系统代码。
LGPL 协议:
麻省理工申请条件宽松公共许可证(Lesser General Public License)或库通⽤公共许可证(Library General Public License)
基于 LGPL 的软件也允许商业化销售,但不允许封闭源代码。
如果您对遵循 LGPL 的软件进⾏任何改动和/或再次开发并予以发布,则您的产品必须继承 LGPL 协议,不允许封闭源代码。但是如果您的程序对遵循 LGPL 的软件进⾏任何连接、调⽤⽽不是包含,则允许封闭源代码。
Apache 协议:
Apache Licence是著名的⾮盈利开源组织Apache采⽤的协议。该协议和BSD类似,同样⿎励代码共享
和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满⾜的条件也和BSD类似:
1. 需要给代码的⽤户⼀份Apache Licence
2. 如果你修改了代码,需要在被修改的⽂件中说明。
3. 在延伸的代码中(修改和有源代码衍⽣的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说
明。
4. 如果再发布的产品中包含⼀个Notice⽂件,则在Notice⽂件中需要带有Apache Licence。你可以在Notice中增加⾃⼰的许可,但不
可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应⽤友好的许可。使⽤者也可以在需要的时候修改代码来满⾜需要并作为开源或商业产品发布/销售。
Zlib/Libpng协议:
The license only has the following points to be accounted for:
Software is used on 'as-is' basis. Authors are not liable for any damages arising from its use.
The distribution of a modified version of the software is subject to the following restrictions:
1.The authorship of the original software must not be misrepresented,
2.Altered source versions must not be misrepresented as being the original software, and
3.The license notice must not be removed from source distributions.
The license does not require source code to be made available if distributing binary code.
中⽂参考如下(个⼈理解)
该协议要求遵守以下⼏点:
基于该软件的原样使⽤,作者不负责使⽤该软件照成的任何损失。
该软件修改后的版本将受到以下限制:
1. 不能歪曲原软件的著作权
2. 修改后的软件不能歪曲为原版软件
3. 不能删除源码中的协议许可内容
如果发布⼆进制代码可以不⽤附上源代码。
BSD 协议:
BSD开源协议是⼀个给于使⽤者很⼤⾃由的协议。可以⾃由的使⽤,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。当你发布使⽤了BSD协议的代码,或者以BSD协议代码为基础做⼆次开发⾃⼰的产品时,需要满⾜三个条件:
1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2. 如果再发布的只是⼆进制类库/软件,则需要在类库/软件的⽂档和版权声明中包含原来代码中的BSD协议。
3. 不可以⽤开源代码的作者/机构名字和原来产品的名字做市场推⼴。
BSD代码⿎励代码共享,但需要尊重代码作者的著作权。BSD由于允许使⽤者修改和重新发布代码,也允许使⽤或在BSD代码上开发商业软件发布和销 售,因此是对商业集成很友好的协议。很多的公司企业在选⽤开源产品的时候都⾸选BSD协议,因为可以完全控制这些第三⽅的代码,在必要的时候可以修改或者 ⼆次开发。
MIT 协议:
MIT许可证之名源⾃⿇省理⼯学院(Massachusetts Institute of Technology, MIT),⼜称「X条款」(X License)或「X11条款」(X11 License),MIT内容与三条款BSD许可证(3-clause BSD license)内容颇为近似,但是赋予软体被授权⼈更⼤的权利与更少的限制。
1. 被授权⼈有权利使⽤、复制、修改、合并、出版发⾏、散布、再授权及贩售软体及软体的副本。
2. 被授权⼈可根据程式的需要修改授权条款为适当的内容。
3. 在软件和软件的所有副本中都必须包含版权声明和许可声明。
此授权条款并⾮属copyleft的⾃由软体授权条款,允许在⾃由/开放源码软体或⾮⾃由软体(proprietary software)所使⽤。此亦为MIT 与BSD(The BSD license, 3-clause BSD license)本质上不同处。MIT条款可与其他授权条款并存。另外,MIT条款也是⾃由软体基⾦会(FSF)所认可的⾃由软体授权
条款,与GPL相容。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。