⼏种常见的开源软件许可协议
(GPL,LGPL,ApacheLicense,BSD)
GPL
GPL授予程序接受⼈以下权利,或称“⾃由”:
* 以任何⽬的运⾏此程序的⾃由
* 以学习程序⼯作机理为⽬的,对程序进⾏修改的⾃由(能得到源代码是前提)
* 再发⾏复制件的⾃由
开放源代码意味着什么* 改进此程序,并公开发布改进的⾃由(能得到源代码是前提)
相反地,随版权所有软件的最终⽤户许可证⼏乎从不授予⽤户任何权利(除了使⽤的权利),甚⾄可能限制法律允许的⾏为,⽐如逆向⼯程。
GPL与其他⼀些更“许可的”⾃由软件许可证(⽐如BSD许可证)相⽐,主要区别就在于GPL寻求确保上述⾃由能在复制件及演绎作品中得到保障。它通过⼀种由Stallman发明的叫copyleft的法律机制实现,即要求
GPL程序的演绎作品也要在GPL之下。相反,BSD式的许可证并不禁⽌演绎作品变成版权所有软件。
GPL不会授予许可证接受⼈⽆限的权利。再发⾏权的授予需要许可证接受⼈开放软件的源代码,及所有修改。且复制件、修改版本,都必须以GPL为许可证。
这些要求就是copyleft,它的基础就是作品在法律上版权所有。由于它版权所有,许可证接受⼈就⽆权进⾏修改和再发⾏(除合理使⽤),除⾮它有⼀个copyleft条款。如果某⼈想⾏使通常被法律所禁⽌的权利,只需同意GPL的条款。相反地,如果某⼈发⾏软件违反了GPL(⽐如不开放源代码),他就有可能被原作者起诉。
copyleft利⽤版权法来达到与其相反的⽬的:copyleft给⼈不可剥夺的权利,⽽不是版权法所规定的诸多限制。这也是GPL被称作“被⿊的版权法”的原因。
许多GPL软件发⾏者都把源代码与可执⾏程序捆绑起来。另⼀⽅式就是以物理介质(⽐如CD)为载体提供源代码。在实践中,许多GPL软件都是在互联⽹上发⾏的,源代码也有许多可以FTP⽅式得到。
copyleft只在程序再发⾏时发⽣效⼒。对软件的修改可以不公开或开放源代码,只要不发⾏。注意copyleft只对软件有效⼒,⽽对软件的输出并⽆效⼒(除⾮输出的是软件本⾝)。不过这在GPL版本3中可能会有改动。
LGPL
GNU宽通⽤公共许可证,简称LGPL(GNU Lesser General Public License),被⽤于⼀些(但不是全部)GNU程序库。这个许可证以前被称为GNU库(Library)通⽤公共许可证。
LGPL是GPL的变种,也是GNU为了得到更多的甚⾄是商⽤软件开发商的⽀持⽽提出的。与GPL的最⼤不同是,可以私有使⽤LGPL授权的⾃由软件,开发出来的新软件可以是私有的⽽不需要是⾃由软件。所以任何公司在使⽤⾃由软件之前应该保证在LGPL或其它GPL变种的授权下。
Apache License
Apache License是著名的⾮盈利开源组织Apache采⽤的协议。该协议和BSD类似,同样⿎励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满⾜的条件:
* 需要给代码的⽤户⼀份Apache License
* 如果你修改了代码,需要再被修改的⽂件中说明
* 在延伸的代码中(修改和有源代码衍⽣的代码中)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明
* 如果再发布的产品中包含⼀个Notice⽂件,则在Notice⽂件中需要带有Apache License。你可以在Notice中增加⾃⼰的许可,但不可以表现为对Apache License构成更改
Apache License也是对商业应⽤友好的许可。使⽤者也可以在需要的时候修改代码来满⾜需要并作为开源或商业产品发布/销售。
BSD
BSD授权许可证(FreeBSD Copyright Information)具有多种授权许可证。总的来说你可以对软件任意处理,只要你在软件中注明其是来⾃于那个项⽬的就可以了。也就是说你具有更⼤的⾃由度来处置软件。如果你对软件进⾏了修改,你可以限制其他使⽤者得到你修改的软件的⾃由。
BSD授权许可证没有实现"通透性"⾃由,也就是其不保证软件源代码开放的连续性。这样如果你希望采⽤别⼈开发的BSD软件,进⾏⼀些修改,然后作为产品卖,或者仅仅保密⾃⼰的做的⼀些除了软件开发以外的⼯作,那么你就可以从中得利。
当⼀个⾮程序员仅仅理解⼀个程序的功能,但是不了解程序是如何做的时,即使你没有在开发软件中做任何⼯作那你就可以通过⾼超的市场技巧将软件卖给该⽤户。⽐如拿最流⾏的桌⾯操作系统作为例⼦,你就能很好的理解⼀个没有很好的程序技巧的软件公司只要具有⾼超的市场营销策略同样可以将垃圾卖
给客户。如果你不具有很强⼤的编程能⼒,但是具有很强的市场能⼒和能将其他开发者的软件包括到⾃⼰的系统,⽽同时不将⾃⼰的修改开放出来将是⾮常强⼤的能⼒。从赚钱为⽬的的商务⾓度看来,如果你使⽤了BSD授权许可证的软件,那么你就可以任意进⾏。你可以更好地控制你的OS系统,并且防⽌其他⼈拷贝你的商业产品。
总结
简单的说,就是你使⽤了GPL许可证的软件,那么你的软件产品就被GPL“传染”了,也必须“⾃由”!这对国内的商业软件开发商来说是很难接受的。
但是LGPL, Apache License, BSD就不存在这个问题,后两者只要求你对软件原作者的⼯作进⾏必要的认可和尊重就⾏了,所以这是适合商业应⽤的。
所以在选择应⽤开源软件时,⼀定要明⽩⾃⼰的⽤途,选择合适许可证下的软件。
最后,我们可以参考⼀下对GPL的评论:
2001年微软的⾸席执⾏官Steve Ballmer称Linux为“癌症”,因为GPL的影响。微软的批评指出,微软憎恶GPL的真正原因是因为对微软的“包围、扩展、消灭”策略起了反作⽤。注意微软已以GPL为许可证发⾏了SFU(Microsoft Windows Services for UNIX)中所包含的部分组件,例如GCC。
GPL的批评者常常认为GPL是有“传染性”的“病毒”,因为GPL条款规定演绎作品也必须是GPL的。由于“演绎作品”通常被解释为包含GPL代码或动态链接到GPL库(如上)的软件,“病毒说”来源于GPL对于许可证的强制继承的要求。这正是GPL与BSD式许可证的哲学思想上的差异。GPL的⽀持者确信⾃由软件应确保其演绎作品同样“⾃由”,但其他⼈认为⾃由软件应给⽤户最⼤的⾃由
【转载】blog.csdn/shareCode/article/details/7420320
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论