开源GPL Sencha Ext JS 4.0与商业

时间:2011-10-13 16:08:26

标签: open-source gpl extjs

我有一个商业SaaS应用程序的想法,我想使用Sencha的Ext JS框架构建。我知道需要支付商业许可证才能转换并销售我使用ext js构建的应用程序,但我很好奇为什么在开发过程中需要支付许可证。我认为构建和测试应用程序是可行的,看看它是否可行以及是否有市场,然后在实际销售之前支付许可费。

http://www.sencha.com/products/extjs/download?page=a

    When to use the commercial version
If you’re going to build a commercial application with Sencha Products, you must write your application code under the commercial license from the beginning of the application development process.

最重要的是,不是我打算这样做,但是如果我在没有许可证的情况下使用Ext JS开发我的应用程序然后在实际销售它之前购买了一个,那么Sencha会知道吗?

3 个答案:

答案 0 :(得分:6)

这更像是一个正式的问题......你在GPL下编写的所有代码(如果你还没有安排其他许可,你仍然拥有所有的GPL权限)受GPL条款的约束。您有权重新分发代码,无论是单独使用还是作为您自己产品的一部分,前提是您还可以根据相同的GPL条款向相同的人员提供源代码。

  

但是,如果我在没有许可证的情况下使用Ext JS开发我的应用程序然后在实际销售之前购买了应用程序,Sencha会知道吗?

没有!它仅通过GPL许可证进行限制。在我购买专有许可证之前,我也开始使用GPL进行开发。只要你在私下做所有事情,没有人会知道这一点。

答案 1 :(得分:6)

回答你的问题有三件事:

  • 如果您使用GPL软件而不进行修改,您可以按照自己喜欢的方式使用它。
  • 如果您确实修改了GPL许可软件并进行了分发,则必须提供修改的源代码
  • 如果您不分发软件,但使用GPL许可软件提供服务(SaaS),则无需执行任何操作。

总之:因为您在SaaS产品中使用Ext JS,您可以使用开源版本,无需使用商业计划。

请参阅http://www.linux-mag.com/id/3017/,其中最重要的一点是:

  

换句话说,作为服务提供的软件现在正式不受GPL保护。

免责声明:IANAL

答案 2 :(得分:2)

通常的IANAL警告......

在开发过程中,您不应该需要商业许可,直到与您自己的法律实体不同的人使用该应用程序的阶段。根据Sencha的说法,您必须获得商业许可,或者您必须向相关最终用户发布完整的源,客户端和服务器。

来自Sencha的许可常见问题:

  

我可以使用GPLv3版本开始开发,然后在我想要发布我的应用程序之前购买商业许可证吗?

     

不,我们的商业许可条款不允许这样做。您必须在开发生命周期的开始阶段选择要使用的许可证(商业,GPLv3或OEM)。

总结一下,如果不是,那就是或者可能是。

您是否需要使用仅在客户端使用Sencha工具包的SaaS产品的商业许可证更难回答。

来自Sencha的网站(http://www.sencha.com/legal/open-source-faq/):

  

软件程序的定义

     

由于边界定义了   个人软件程序在现代应用程序架构中可能会模糊,   我们遵循“确定什么构成软件时的规则”   程序,遵循GPL v3的主要原则,其中指出了这一点   用户应该可以随意修改整个软件程序   为了自己的目的合并了GPL代码“。对于软件程序   使用当今使用基于远程网络的Web架构构建   内部通信的服务接口而不是传统的   静态或动态链接,相关的软件程序是   应用程序代码的总和,包括在代码上执行的代码   服务器和代码在客户端上执行,前提是服务器代码   是应用程序的组成部分。我们从定义中排除   “软件程序”,软件包含在软件程序中   通过提供辅助功能的服务接口   程序的主要目的,与应用程序无关的功能   逻辑或许多单独使用的功能   应用程序以外的应用程序。有了这个警告,   请记住在和中使用任何特定的技术方法   本身并不保证不会持有“衍生”   已经发生了。

     

实施例

     

例如:让我们拿抵押处理软件   程序。假设应用程序有一个前端(那个   生成链接到Ext JS JavaScript的网页进行通信   使用后端服务通过JSON / HTTP。此后端服务包含   仅针对此应用程序的批准和验证逻辑。 即使只是   前端使用Ext JS代码,你应该考虑一下   前端和后端的组合构成了应用,并且   需要提供后端和前端的源代码   如果使用该应用程序,则使用GPLv3下的应用程序的最终用户   由不属于同一法人实体的最终用户持有   Ext JS代码的GPLv3许可。

     

接下来,让我们假设抵押贷款申请网页也提供   允许用户搜索当前利率的功能,以及   提交客户支持票证(功能辅助目的   应用程序)和那些功能是分开提供的   服务器端服务。我们不会考虑这些程序   用于GPLv3的软件程序的一部分。对于   例如,在所有情况下,我们都不会考虑提供的数据库   数据通过标准接口连接到应用程序的一部分   申请书。

在我看来,给出的例子很清楚。

但是,这假设他们已正确解释了GPLv3许可证的措辞。特别是,客户端GPL许可扩展到基于云的后端的说法具有可争议性,GPL具有特定的措辞:

  

仅通过计算机网络与用户进行交互,而无需传输副本,无法传达。

这一陈述使得Sencha声称在客户端使用ExtJS所需的GPLv3许可证延伸到后端。