关于GPL协议的理解(开源与商⽤、免费与收费)
关于GPL协议的理解(开源与商⽤、免费与收费)
如果你使⽤并且修改了我的GPL软件,那么你的软件也必须要开源,否则就不能使⽤我的软件,你是否把你的软件商⽤和我没关系。⽐
如,Oracle卖的不是软件的版权,⽽是技术服务。MySQL作为⼀个开源数据库,⼏乎所有的⽤户都只是通过⾃⼰的程序去操作这个数据库,⽽不是改动源码,所以根本不⽤去考虑是否要遵循GPL,只有在你修改了MySQL源码的情况下,才要考虑GPL。
导读:
⽹络上多数朋友担⼼甲⾻⽂会对MySQL软件采⽤收费模式,多数朋友也不清楚MySQL开源到底是什么模式,开源=免费嘛?是很多的疑问,MySQL是遵守双重协议的,⼀个是GPL授权协议,⼀个是商⽤授权协议(注释:为解决其他企业⽤MySQL软件牟利或引⽤了MySQL的源代码⽽不想开源),虽然也有写关于MySQL版权的来龙去脉,但是这篇⽂章写更透彻与详尽,特转载ITPUB上的帖⼦,希望⼤家能够更加清晰!免费下载mysql
最近刚把MySQL和GPL的玩法搞明⽩,很是惭愧,居然花了这么久的时间才想通。不过聊以⾃慰的是,
搞明⽩这个玩法的⼈真是不多,尽管有些⼈已经搞了很多年。
看过GPL协议的⼈应该都会觉得⼀头雾⽔,究竟GPL在讲些什么。我看过好⼏遍,英⽂的原版、中⽂的各种译⽂,都没能真正理解,后来是从软件⾏业的历史等等⽅⾯综合考虑,才算是理解了。先总结⼀下我对GPL的理解,我认为GPL的精髓就是开源,和是否商⽤,是否收费完全没有关系。GPL(General Public License),其实从字⾯上就可以理解为公共许可证,也就是说遵循GPL的软件是公共的,其实不存在什么版权问题,或者说公众都有版权,GPL提出了和版权(copyright)完全相反的概念(copyleft)。⽽我经常听到的说法是如果你的程序或系统引⽤了别的GPL软件,并且向⽤户收费,那么你就需要向引⽤的GPL软件购买版权。听上去很合理,如果你⽤我的软件赚钱,那你当然应该向我⽀付⼀定的费⽤。但其实是错误的,正确的概念是如果你⽤了我的 GPL软件,那么必须你的软件也要开源,如果你不开源,那么就不能使⽤我的软件,你是否把你的软件商⽤和我没关系,如果你不能遵循GPL协议来开源,那么你付再多的钱也不能⽤GPL的软件,事实上很多GPL软件是很多⼈共同完成的,每个⼈在前⼈的基础上做出⾃⼰的贡献,如果收费的话你把钱交给谁?提出 GPL协议的GNU希望做到的是通过开源来使软件⾏业得到⼀个好的发展,试想如果你要做⼀个⼤型的软件,不在前⼈的源码基础上开发,那必然会是旷⽇持久的,也会有很多重复劳动,显然不利于软件技术的发展。所以理解了GNU的精神,也就能理解GPL在说些什么,其实就是开源。在现实⽣活中,我们受益于 GPL的地⽅,其实很多,⼏乎所有的操作系统,除了windows,其他的⼏乎都是基于linux开源代码改写的。
再来谈MySQL,这是个开源的数据库,做技术的应该都知道。MySQL最早是瑞典的⼀家叫做MySQL AB的公司开发的,它是以双授权的⽅式来发布MySQL。⼀种授权就是GPL,另⼀种授权就是商业授权。也就是如果你不能满⾜GPL,那么就⾛商业授权的路线,向这个公司交钱。我觉得这公司有挂⽺头卖狗⾁之嫌,想借着GPL快速传播它的软件,但⼜留着商业授权这个收费的⼝。后来这家公司以10亿美⾦的价格被Sun收购,接着Sun⼜被Oracle收购,MySQL成为了Oracle的东西。现在Oracle把MySQL分为三种产品,标准版、企业版和集版。不谈其中具体的差异,但都是以年度订阅(subscription)的⽅式来卖的。这个subscription引起了我的疑问,如果⽤户购买了⼀年,那么第⼆年⽤户还要继续付费才能合法使⽤?这三种版本都包含了⼀年的服务,那么如果第⼆年⽤户只需要⽤软件⽽不需要服务,怎么办?Oracle 官⽅没有⼀个说得过去的说法。后来我想通了,其实Oracle卖的不是软件的版权,也不是寂寞,⽽是技术服务。所有的GPL开源软件都不能卖版权,因为是公共版权,当然不能卖了。所以像redhat这类的开源软件都是⽤subscription的⽅式来赚钱的。赚钱其实是合法的,GPL 协议⾥⾯写了“Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish)我们的GNU通⽤公共许可证决意保证你有发布⾃由软件的⾃由(如果你愿意,你可以对此项服务收取⼀定的费⽤)”。但现在⼤众的误区是觉得购买的是软件产品的版权⽽不是服务。其实你要⽤GPL软件在绝⼤部分情况下都是合法的,不存在版权问题,那么在什么情况下才算是⾮法的呢?
前⽂⼀直提到“⽤”GPL软件的情况,这个“⽤”可能并不合适,GPL的原⽂“the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program”保证你的共享和修改⾃由软件的⾃由”。可以理解为你使⽤开源软件并不受GPL约束,只有在你基于开源软件,修改开源软件的源码的时候才受 GPL约束。MySQL作为⼀个开源数据库,⼏乎所有的⽤户都只是通过⾃⼰的程序去操作这个数据库,不涉及到改动源码的问题,根本不⽤去考虑是否要遵循 GPL的问题。只有在你修改MySQL源码的情况下,才需要考虑GPL。
如果我根据MySQL的源码开发出了⼀个新的数据库,我觉得⾃⼰开发的源码⾮常的优秀,想靠这个卖钱,不想公开源码。那么这种情况就⽆法满⾜GPL 的规定,我没法发布我的数据库。好在MySQL有个⾮常流氓的双授权,我就可以购买其商业授权来达到我的⽬的。为什么说这是流氓⾏为?因为既然MySQL 是根据GPL开源发布,多多少少有各路⼈马贡献⾃⼰的源码才成为今天的MySQL,卖别⼈的劳动成果来让⾃⼰受益,这就是流氓的做法。
所以GPL就是⼀个为了保护软件⾃由的⼀个协议,它强调的是开源,与钱⽆关。MySQL是⼀个双授权的软件,Oracle现在卖的是年度的服务(编者加注:另外主要收⼊来源是销售数据库维护⼯具),如果你只是使⽤MySQL⽽不是改写MySQL,那么在这些情况下你应该考虑购买Oracle的商业版本,⼀是Oracle的商⽤版本提供的附加组件(监控器、备份⼯具等)对你有价值,⼆是Oracle的年度技术⽀持是你需要的,三是各种潜规则。⽽不应该是你想合法的使⽤MySQL才去购买其商业版本。另外,如果
你是基于MySQL的源码开发你⾃⼰的产品,那么你需要购买的是商业授权,⽽不是subscription这些商业版本。
转⾃:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论