既然GPL源码是由许多程序员贡献的,为什么Qt却可以把GPL源码用作商业授权?
也就是客户购买了Qt的商业授权许可后,开发的产品可以不公开源代码.
另外MySQL也有类似Qt的这种授权.
附: Qt FAQ http://qt.nokia.com/about-us-cn/licensing/frequently-asked-questions
既然GPL源码是由许多程序员贡献的,为什么Qt却可以把GPL源码用作商业授权?
也就是客户购买了Qt的商业授权许可后,开发的产品可以不公开源代码.
另外MySQL也有类似Qt的这种授权.
附: Qt FAQ http://qt.nokia.com/about-us-cn/licensing/frequently-asked-questions
开源只是在软件发布和再开发上做了非常严格的限制,如果一个组织他拥有一套完全自主的代码,这个代码没有使用任何第三方的资源,那么他可以决定使用什么方式发布自己的代码,关键是这个代码要完全是你的。但是你不能把第三方的GPL代码放进来然后以低于GPL要求的方式进行发布,这就是违背了GPL的规则了。
对于第三方开发者贡献的源码,你可以确定自己以哪种开源方式交给开源基金会,如果有人盗用你可以追究责任,但是创意不在开源协议保护之内,如果你的创意被商业版采用是可以的。
商业版的QT是绝对不会包含第三方开发的GPL的代码以及其编译好的文件。GPL最大特点还是在传播和二次开发上的,GPL是为了保护开源自由的,商业软件不得侵害开源行为。但是如果你软件里本来就不包含GPL那么你就发布就可以完全不遵守GPL,但是使用商业授权(不包容GPL的条件下)用户就禁止采用任何GPL包了。
还有一点就是商业授权如果不违背GPL协议也是可以的,也就是说你的商业授权是建立在GPL之上,这个时候就是说我卖给客户的是服务,程序代码发布完全是GPL规则,但是服务则是只能在商业授权规则内进行。此外还有一点就是连接到GPL代码的是不受GPL限制的,比如你开发自己程序连接到GPL的mysql,你的程序不会被要求强行被GPL。
GPL的目的就是防止商业软件来侵害开源软件,这是来自于unix血的教训,在GPL的范围,任何人都不能对代码发布进行限制,GPL目的就是阻止有人对代码拥有所有权。随着商业行为的改变,现在商业行为也变成了服务,或者是建立在开源代码提供的免费服务上进行获利了。
商业 = 服务
了解了吗?
商业也是必须公开gpl相关代码的.
唯一的可能就是QT没有包含GPL授权的源码,这样QT就可以按照自己的意愿指定发布的许可证。否则如果其中包含了GPL的源码,QT无权改变其授权模式,导致GPL传染到客户的软件,失去了商业授权的意义。