梦幻网络科技

稳健专业、倾听需求、致力创新

软件开发外包出去需要注意哪些问题分析盘点

软件定制开发或企业网站建设避免无谓的商业授权费,搞懂LGPL和GPL的不同

近几年来软件定制开发企业网站建设的开发计算机性能的进步与存储器价格的下降、工程师偏爱的程序语言配置的变化有很大关系,许多时候不再把程序能力作为首要优先考虑,再加上互联网的快速发展以及目前IOT(物联网)的发展趋势。

因此,如JavaScript,Python,Ruby等逐渐成为开发的主流,而且还将以手机应用程序的方式从网络后端Server程序跨越到桌面。Ruby、Go等语言已经有了和成熟的跨平台应用程序QT交互的函数库(可以把QT看作是由C++制成的图形界面函数库)。Electron是由Github开发的,它是一种新兴的跨平台桌面程序解决方案。

但是在使用这些优秀的解决方案之前,一定要注意它们的Licence协议哦!即使是开放源码的OpenSource也不代表没有报酬。

就拿Python来说,通过PyQt或PySide来调用QT函数库,Python能够轻松地帮助Python应用程序安装编写用户界面。

然而,PyQt和PySide是由不同的开发团队组成的,因此在选择方面有很大的不同,PyQt是商业授权和GPL并行,也就是说,要马你支付授权金(550美元/一个开发者),而PyQt则是完全开源的GPL。

天阿GPL这次病毒管制又来了!

但是不要慌张,你也可以选择PySide使用LGPL。

更正小编补充:

实际上,PyQt是学习之前的QT,在之前的QT4.7版本中,也是一种复合授权。

您可以使用免费的GPL,或“459美元/月的授权费”(即使微软也不会夸张,每月支付14,000元)。

但在QT4.7之后改用现在的LGPL授权(由于GPL具有感染性,所以并非所有人都能改用,只适用于撰写论文的团队)

总体来看,这是一个松绑的过程,具有商业价值。

由于PyQt并非QT官方团队开发的,因此无需跟随,

但是PySide是由QT的官方团队开发的,因此PySide现在也得到了LGPL的许可。

但是,事实上,他们之间的支持和支持方式都是有问题的(毕竟是一个独立的开发团队,有收入)

关于LGPL是如何被授权的,请继续往下看。

 

软件定制开发或企业网站建设避免无谓的商业授权费,搞懂LGPL和GPL的不同-梦幻科技

让我们先来看看GNUGeneralPublicLicense,又叫GNU一般公共授权条款(GNUGeneralPublicLicense,简称GNUGPL,GPL),它保障了所有客户端的自由使用权利,包括共享、修改和合法的自由使用,简而言之,如果GPL,你可以自由使用诸如复制,修改,发布服务等等,而且不受流量和数量的限制,这种自由的权利是建立在“copyleft”的基础上的,比如在一个正在开发的产品中使用“copyleft”条款后,该产品可以让用户自由使用,传播,改作,但它是根据copyleft条款,而在LinuxV2中,如果你使用了与GPL有关的套件进行开发,你也必须要求重新授权,也要按照版权法的规定,重新授权。

因此,简单地说,当你用GPL作为你开发程序的一部分时,你已经融入了开放源码共产社区,虽然这是开放源码的一个好打算,但是这样的好主意似乎也太苛刻了,对于V3版的GPL,你还可以赌一把,要求对其未来版本的“更版本”和修改是否能同时保障GPL的选择,而对GPL的所有版本,你也会下赌注。

开放源代码,我将来的子孙也会开放源代码,这太过分了!

软件定制开发或企业网站建设避免无谓的商业授权费,搞懂LGPL和GPL的不同-梦幻科技

但是好的风险是,有问题就有解决方案,现在有一个解决方案已经诞生,即GNULesserGeneralPublicLicense,LGPL。

因为GPL过于严格,也间接地影响了代码被采纳的速度,毕竟开发的目的是为了盈利,相信这对于许多人来说是一个共同的目标,而这个LGPL,实际上,它实际上就是所谓的GPL的松绑版本,它现在已经推出了第三版,虽然它还在遵循“通用GPL”的规范,但是它的定义却是“更宽松的GPL”

软件定制开发或企业网站建设避免无谓的商业授权费,搞懂LGPL和GPL的不同-梦幻科技

LGPL是自由软件基金会(FreeSoftwareFoundation,FSF)专门为函式库类别程序编写的自由软件授权条款,这是由于函式库本身的性质所致,其中大部分都是具有函式库类型的程序,通过连接(Link)的方式进行呼叫和接收,并将不同类别的存储信息和操作结果提供给其他软件或原软件加以利用,但如果这些函式库本身是属于GPL的规范,则也意味着只要这些函式库上的程序是通过GPL实现的,那么这些函数库也必须通过GPL实现。

但是这个定义本身也太严格了,一方面,这个函数库本身不属于一个独立的程序,另一方面,这个定义又过于狭隘,以至于后来。

还有谁敢动带有GPL的函数库阿..

因此GNU考察了函式库本身的应用推广,为了避免让大家退避三舍,以GPL为模板修改了LGPL,来规定如果使用了LGPL,单纯的函式库是否叫本身不需要被LGPL约束,作为推广函式库的一大利器,也让这样更符合开源和应用的原意,但当然GPL毕竟还是属于Licence的一种,本身也包含了所谓的“必须”或者“但是”啰!

首先,请为大家解释一下“必须”:如果今天用户使用LGPLLicense(包含函数库)的软件,对其进行任何更改、和/或重新开发并发布,那么您的产品必须与LGPL协议中提到的一样受到LGPL协议的影响,并且是开源的,并且在LGPL协议中提供了修改后的文本文件,来提示大家我们这次引用了什么,修改了什么,而且仍然是无私地献给大家的,因此LGPL仍然具有病毒性和扩展性。

软件定制开发或企业网站建设避免无谓的商业授权费,搞懂LGPL和GPL的不同-梦幻科技

但如果只对LGPL软件进行任何调用、连接而非包含、修改后再利用,那么可以不开放源代码,即可以封闭源代码,也可以进行商业利用。这种“不过”并不只是针对函数库,实际上它本身也在LGPL中松绑了应用方式。亦即所谓「LGPL约束条件不包括在只透过定式介面或过程调用具有LGPL特性的函式库中」,因为通常以此方式调用的动态连接内部,并不涉及所调用的代码。

因此从LGPL产品的角度来考虑商业模式比GPL更为可行,比如ffmpeg是一个同时发布GPL和LGPL的项目,其中内容结合了多媒体框架和播放解码器(codec),在基本功能方面部分LGPL发布,但是其中有一部分“最优部分播放”功能是以GPL发布的。它还意味着,如果您只引用了基本功能的函数库,那么您就不会开放源代码进行销售。

软件定制开发或企业网站建设避免无谓的商业授权费,搞懂LGPL和GPL的不同-梦幻科技

由于LGPL是松版的GPL,因此您可以严格地将LGPL转换为GPL再向外扩展是可行的,但GPL却无法将其转换为LGPL,比如您引用了LGPL的函式库,但又对其进行了修改,将函式库这种动态连接的引用特性删除(就像将LGPL的函式库修改为非函式库的特性),那么您只能将LGPL从宽松的LGPL升级为GPL。

本文开头所提到的Qt,就是为了检验用户的开创性和应用性,现在还支持诸如GPLv2、GPLv3和LGPLv3之类的各种授权(当然,这也与Nokia对其的收购不无关系),而且还支持Qt在各种平台上的可用性,开放源码社区的发展,以及商业领域的可利用性,毕竟GPL对商业模式的限制非常大。但是在结束的时候请记住,无论开源与否,盈利与否,最终License的使用必须根据组件和程序之间的依赖关系来进行。

联系我们

18825891603

853408942

:853408942@qq.com

:9:30-22:30

QR code