为什么QT可以兼用GPL和商业授权?

eechen 发布于 2012/07/10 15:55
阅读 5K+
收藏 0

既然GPL源码是由许多程序员贡献的,为什么Qt却可以把GPL源码用作商业授权?

也就是客户购买了Qt的商业授权许可后,开发的产品可以不公开源代码.

另外MySQL也有类似Qt的这种授权.

附: Qt FAQ http://qt.nokia.com/about-us-cn/licensing/frequently-asked-questions

加载中
0
Monkey
Monkey

开源只是在软件发布和再开发上做了非常严格的限制,如果一个组织他拥有一套完全自主的代码,这个代码没有使用任何第三方的资源,那么他可以决定使用什么方式发布自己的代码,关键是这个代码要完全是你的。但是你不能把第三方的GPL代码放进来然后以低于GPL要求的方式进行发布,这就是违背了GPL的规则了。

对于第三方开发者贡献的源码,你可以确定自己以哪种开源方式交给开源基金会,如果有人盗用你可以追究责任,但是创意不在开源协议保护之内,如果你的创意被商业版采用是可以的。

商业版的QT是绝对不会包含第三方开发的GPL的代码以及其编译好的文件。GPL最大特点还是在传播和二次开发上的,GPL是为了保护开源自由的,商业软件不得侵害开源行为。但是如果你软件里本来就不包含GPL那么你就发布就可以完全不遵守GPL,但是使用商业授权(不包容GPL的条件下)用户就禁止采用任何GPL包了。

还有一点就是商业授权如果不违背GPL协议也是可以的,也就是说你的商业授权是建立在GPL之上,这个时候就是说我卖给客户的是服务,程序代码发布完全是GPL规则,但是服务则是只能在商业授权规则内进行。此外还有一点就是连接到GPL代码的是不受GPL限制的,比如你开发自己程序连接到GPL的mysql,你的程序不会被要求强行被GPL。

GPL的目的就是防止商业软件来侵害开源软件,这是来自于unix血的教训,在GPL的范围,任何人都不能对代码发布进行限制,GPL目的就是阻止有人对代码拥有所有权。随着商业行为的改变,现在商业行为也变成了服务,或者是建立在开源代码提供的免费服务上进行获利了。

eechen
eechen
我同意你的观点. 从GPLv2第十条可以看出GPL给了原始程序作者使用多个许可证的权利.但原始程序作者是没有权利将其他人的修改代码应用于其他许可的.所以猜测Qt团度可能不接受外部贡献的代码,所有代码都是内部开发的(但如你所说,可以采取创意,自己实现),所以Qt团队是唯一的作者,Qt团队可以把程序置为商业许可.
1
吃土的汉子
吃土的汉子
你仔细看下Qt的授权协议,是GPL、Commercial和LGPL三种,Qt的源码最初由Trolltech公司创作,其所有权归Trolltech(现在归Nokia),其维护权也归其版权所属公司,公司有权决定其软件授权方式。它并不像Linux由自由软件基金会维护。它的多重授权方式允许开发者决定基于Qt开发的产品的授权。如KDE使用GPL授权的Qt创作,KDE就会受GPL这个“瘟疫扩散”式的协议约束,必须公开源码及不能随意商用,任何人使用KDE必须遵从GPL授权。其他一些厂商使用Commercial授权,则其产品可以不公开产品源码,从此这个产品就被打上Commercial烙印。你可以认为Qt从开发者决定授权方式的那一刻产生了三种版本,每一种版本遵从一种授权,他们之间是不同的
吃土的汉子
吃土的汉子
回复 @eechen : 那样公司就不敢把它拿过去了,Qt的源码确实主要由开发商来维护,大部分开源项目只是用Qt作为开发工具,并不直接对Qt本身贡献代码。不过事实是尽管现在违反GPL的软件商不在少数,自由基金会也只是睁一只眼闭一只眼
eechen
eechen
假如某个人为Qt贡献了GPL源码,而Qt商业版吸收了它,商业版也应该是GPL,按推理,使用了商业版的Qt客户也必须公开源码。除非商业版Qt从一开始就不吸收GPL源码,否则必须开源,但Qt商业版和GPL版用的是同一套源码。
1
摩西.M
摩西.M
GPL是认承作者对其软件作品的所有权的,不是说以GPL授权,就不归作者所有的。 另一方面,“修改者”或“贡献者”,他们可统称为版权“所有者”。但如果项目团队或者个人根本就不接收别人的贡献, 别人也不能以这个项目的名义发表软件,也就不是所有者了; 当然,别人可以在GPL基础上基于该软件或项目自由发表修改的代码或另外建立一个符合GPL协议的项目, 但那是另一个项目或软件, 所有者除包括修改人外,当然也包括原贡献者。
eechen
eechen
你太谦虚了,我只是一个学生.话说回来,我们都应该再看看GPLv2,看看这个中文译本: http://my.oschina.net/u/561214/blog/66344
0
Monkey
Monkey
开源开发者有权决定使用何种授权开放自己的代码。
吃土的汉子
吃土的汉子
回复 @eechen : 先有源码后有授权,并不是有了这个授权就必须影响到其他授权方式的源码。,每个授权方式下都是单独就事论事,从此授权之后的后续软件都要考虑最初的Qt授权
摩西.M
摩西.M
回复 @eechen : 你得要清楚一点:用GPL进行授权的产品不一定是会接受开源社区的代码的。 如果真的接受了第三方代码(比如你以GPL授权供献了一部分代码), 正常情况下, 这部分代码除非得到这部分代码原作者的授, 否则是不可以用于商业授权的;未经授权,该代码的作者可以追究责任; 但就QT来说, 真没看到过接受过第三方代码,也许是我孤陋寡闻了。
Monkey
Monkey
回复 @eechen : 把源代码的最上方的copyright改一下,在把打包的许可改一下不就可以了。哪怕代码一样都无所谓了。
eechen
eechen
但问题是Qt已经用GPL发布了,除非Qt商业版用的源代码没有用到GPL版的源代码。
0
摩西.M
摩西.M
你得要清楚一点:用GPL进行授权的产品不一定会接受第三方提供的GPL授权代码的。 如果真的接受了第三方代码(比如你以GPL授权供献了一部分代码), 正常情况下, 这部分代码除非得到这部分代码原作者的授权, 否则是不可以用于商业授权的;未经授权,该代码的作者可以追究责任; 但就QT来说, 真没看到过接受过第三方代码,也许是我孤陋寡闻了。
摩西.M
摩西.M
回复 @eechen : 在除第三方的代码外, 作者是可以决定自己的劳动成果的授权方式的。 GPL在我的理解上,最主要强调了开放的可持续性和引用(使用)代码人的责任和义务,并没有强制说不允许原拥有者的多重授权。对此,我仅阐述我个人的理解,不见得十分准确,见笑了。。
摩西.M
摩西.M
回复 @eechen : 确实允许, 但贡献模式正在细化讨论中;使用GPL之前, 代码的归属如果明确的话,我认为作者是可以确定这个代码是否允许多种授权的; 具体法律细节我不是很清楚, 但我相信这是可行的方案;
eechen
eechen
使用GPL就意味着这个软件的版权不再属于某一家公司或团体,这个不错吧,但Qt的商标还是Nokia的.另外从我给出的Nokia官方协议FAQ链接中可以看到Qt是允许用户贡献代码的问答.
0
摩西.M
摩西.M
当然, 也见过国外的无赖开源项目;刚开始是开源的, 也接受了不少第三方的代码;后来竟然封闭源代码了,或未经贡献者同意,擅自改变授权协议的, 这种事情不说多, 但也是有的。 如果代码贡献者计较, 这也是有问题的。。
吃土的汉子
吃土的汉子
GPL最初确实看起来很吓人,可惜开源软件作者很零散,基金会也没法有效阻止各种侵权行为
0
摩西.M
摩西.M
GPLv2在我看来还是很不错的, 对V3没有具体研究过, V2也仅仅是浮光掠影地看过一遍,难免有错, 如果有说地不对地地方,欢迎指正。
0
f
freewinger

商业 = 服务

了解了吗?

商业也是必须公开gpl相关代码的.


f
freewinger
回复 @eechen : 仅仅是应用 但是不能修改 你可以使用某个开源的编译器,但是不能修改他然后卖了! 再不明白 x你小jj
eechen
eechen
但购买Qt商业版的客户不需要公开源代码."如果您想使用 Qt 开发专属和/或商业软件,但又不想共享源代码,那么 Qt 商业授权是正确的授权方式。"——Qt官网
-1
Monkey
Monkey

LGPL是窄授权,可以用于商业代码的。这个就是为了弥补GPL过于流氓而产生的。

eechen
eechen
你没有理解我的问题,问题并非讨论LGPL,谢谢.
返回顶部
顶部